{"version":3,"sources":["assets/img/brand/error.png","assets/img/theme/blank-profile.png","services/httpServices.js","variables/charts.js","appConfig.js","assets/img/brand/branchGif.gif","assets/img/brand/white-logo.png","components/Navbars/AdminNavbar.js","components/Sidebar/Sidebar.js","components/Headers/Header.js","components/FullPageLoader/fullpageloader.js","views/subscriber/voucher-wallet.js","components/Headers/MerchantHeader.js","components/Headers/AdminHeader.js","components/Headers/subscriberHeader.js","components/Headers/BankHeader.js","components/Headers/FinanceUserHeader.js","components/Headers/settlementBankHeader.js","components/Headers/SuperAgentHeader.js","components/Headers/AgentHeader.js","components/Headers/MasterAgentHeader.js","views/Home.js","views/Insights.js","views/Index.js","views/bank/constant.js","views/subscriber/constant.js","views/subscriber/action.js","views/examples/constant.js","views/examples/Login.js","views/examples/action.js","views/merchant/add-merchant.js","components/NoRecordFound/NoRecordFound.js","views/merchant/view-merchant.js","views/merchant/edit-merchant.js","views/finance-user/constant.js","views/finance-user/action.js","views/merchant/merchant-list.js","views/merchant-users/add-merchant-user.js","views/merchant-users/merchant-users-list.js","components/GoogleMaps/index.jsx","views/merchant-locations/add-merchant-location.js","views/merchant-locations/view-merchant-location.js","views/merchant-locations/edit-merchant-location.js","views/merchant-locations/merchant-locations-list.js","components/dropdown/SearchDropdown.js","views/nfc/add-nfc.js","views/nfc/edit-nfc.js","views/nfc/nfc-list.js","views/change-password.js","views/examples/forgot-pswd.js","views/fsp/add-fsp.js","views/fsp/view-fsp.js","views/fsp/edit-fsp.js","views/fsp/fsp-list.js","views/fsp-users/add-fsp-user.js","views/fsp-users/view-fsp-user.js","views/fsp-users/edit-fsp-user.js","views/fsp-users/fsp-users-list.js","views/settlement-process/settlement-process-list.js","views/merchant-settlement-transaction-history/merchant-settlement-transaction-history-list.js","assets/gif/shield.gif","views/customer-whitelist/index.js","views/users/add-user.js","views/users/view-user.js","views/users/edit-user.js","views/users/user-list.js","views/subscriber/top-up-new.js","views/subscriber/subs-trans.js","components/makePaymentScreens/pay-smart-bills.js","components/makePaymentScreens/pay-university-fees.js","views/sub-agent/EDSAPayment.js","views/sub-agent/SmartKorporPaymentTab.js","views/subscriber/make-payment.js","views/sub-agent/BetSalonePaymentTab.js","views/sub-agent/ElephantBetsPaymentTab.js","components/makePaymentScreens/lapo-loan-repayment.js","views/sub-agent/make-payment.js","views/finance-user/collection-list.js","views/settlement-bank/settle-merchant-payment.js","components/VisuallyHiddenLoader/visuallyhiddenLoader.js","views/examples/pay-with-voucher.js","views/subscriber/topup-history-list.js","views/examples/show-msg.js","views/merchant/payments.js","views/examples/search-transaction.js","views/report/collection-report.js","views/report/collection-report-table.js","views/report/collection-summary-report.js","views/report/collection-summary-table.js","views/report/settlement-summary-report.js","views/report/settlement-summary-table.js","views/report/settlement-report.js","views/report/settlement-report-table.js","views/report/transaction-report.js","views/report/transaction-report-table.js","views/report/bank-report.js","views/report/bank-report-table.js","views/report/merchant-commission.js","views/report/merchant-commission-table.js","views/report/wallet-commission-table.js","views/report/wallet-commission.js","views/report/EDSATransaction.js","views/report/pending-settlements.js","views/report/subscriber-balance-analysis.js","views/report/settlement-liquidity-analysis.js","views/report/commissions-growth-analysis.js","views/report/agent-commissions.js","views/report/pending-settlements-table.js","views/report/subscriber-balance-analysis-table.js","views/report/settlement-liquidity-analysis-table.js","views/report/agent-commissions-table.js","views/report/commissions-growth-analysis-table.js","views/report/all-transaction-report.js","views/report/reports.js","views/sign-up/profile-details.js","views/sign-up/verify-user.js","views/preview-subscriber.js","views/sign-up/bank-details.js","views/sign-up/mmo-details.js","views/sign-up/signup-subscriber.js","views/subscriber/change-pin.js","views/pos-terminal/add-pos-terminal.js","services/pos-terminal-service.js","views/pos-terminal/view-pos-terminal.js","views/pos-terminal/edit-post-terminal.js","views/pos-terminal/pos-terminal-list.js","services/commission-service.js","views/commission/add-commission.js","views/commission/view-commission.js","views/commission/edit-commission.js","views/commission/commission-list.js","views/commission/merchant-commission.js","views/subscriber/view-subscriber.js","views/bank/subscriber-verification.js","views/subscriber/transfer-money.js","views/top-up-subscriber/cash-withdrawal.js","assets/img/brand/lapologo.PNG","assets/img/brand/nacsaLogo.png","assets/img/brand/wellbodi-logo.jpg","assets/img/brand/project_logo.png","views/top-up-subscriber/add-top-up-subscriber.js","views/top-up-subscriber/top-up-subscriber-list.js","views/logs/user-logs.js","views/logs/user-logs.table.js","views/logs/transaction-logs.js","views/logs/transaction-log-table.js","views/logs/logs.js","views/examples/privacy-policy.js","views/examples/whiteListCustomer.js","assets/img/brand/verified.png","views/examples/whiteListCustomerLink.js","assets/img/brand/checkmark-1.png","assets/img/brand/cancel-1.png","views/payment-info.js","views/super-agent/add-super-agent.js","views/super-agent/edit-super-agent.js","views/sub-agent/add-sub-agent.js","views/sub-agent/edit-sub-agent.js","views/master-agent/edit-master-agent.js","views/master-agent/add-master-agent.js","views/subscriber/top-up.js","views/merchant/EDSATransactionsMerchant.js","assets/kb/UserRolesFlow.jpg","assets/kb/AccessRights.png","views/knowledge-base/Overview.jsx","assets/kb/HTTPs.jpg","assets/kb/JWT.jpg","views/knowledge-base/TechnicalBackground.jsx","assets/kb/Login.png","assets/kb/SelfRegister.png","assets/kb/OTPEmail.png","assets/kb/SleftRegOTPVerify.png","assets/kb/1FA and bank.png","assets/kb/Preview.png","assets/kb/regsuccessfull.png","assets/kb/credentialemail.png","assets/kb/SubscriberFlow.png","assets/kb/1.png","assets/kb/2.png","assets/kb/3.png","assets/kb/4.png","assets/kb/6.png","assets/kb/7.png","assets/kb/8.png","assets/kb/9.png","assets/kb/10.png","assets/kb/11.png","assets/kb/12.png","assets/kb/13.png","assets/kb/14.png","views/knowledge-base/SubscriberJourney.jsx","assets/kb/SelfRegOTP.png","assets/kb/M1.png","assets/kb/M2.png","assets/kb/M3.png","assets/kb/M4.png","assets/kb/MasterAgentFlow.png","views/knowledge-base/MasterAgentJourney.jsx","assets/kb/SP1.png","assets/kb/SP2.png","assets/kb/SP3.png","assets/kb/SP4.png","assets/kb/SP5.png","assets/kb/SuperAgent.png","views/knowledge-base/SuperAgentJourney.jsx","assets/kb/SA1.png","assets/kb/SA3.png","assets/kb/SA4.png","assets/kb/SA5.png","assets/kb/SA6.png","assets/kb/SA7.png","assets/kb/SA8.png","assets/kb/SubAgent.png","views/knowledge-base/SubAgentJourney.jsx","assets/kb/MR1.png","assets/kb/MR2.png","assets/kb/MR3.png","assets/kb/MR4.png","assets/kb/Merchant.png","views/knowledge-base/MerchantJourney.jsx","assets/kb/CB1.png","assets/kb/CB2.png","assets/kb/CB3.png","assets/kb/CB4.png","assets/kb/SB1.png","assets/kb/SB2.png","views/knowledge-base/index.jsx","views/knowledge-base/BankUserJourney.jsx","views/knowledge-base/LegalInformation.jsx","views/knowledge-base/ContactUs.jsx","views/tellers/index.js","views/statements/index.js","views/sales/index.js","views/maps/index.js","views/pos/index.js","assets/img/brand/Apex-logo.jpeg","assets/img/brand/link-logo.png","views/sub-agent/Cashout.js","views/fsp-customers/fsp-customer-reset-pin.js","views/fsp-customers/cards-list.js","views/fsp-customers/fsp-customers-list.js","routes.js","layouts/Admin.js","layouts/Auth.js","views/bank/reducer.js","redux/bank/rootBankReducer.js","views/finance-user/reducer.js","redux/finance/rootFinanceReducer.js","views/examples/reducer.js","redux/login/rootLoginReducer.js","views/subscriber/reducer.js","redux/subscriber/rootSubsReducer.js","redux/reducers.js","views/bank/action.js","views/bank/saga.js","redux/bank/rootBankSaga.js","views/finance-user/saga.js","redux/finance/rootFinaceSaga.js","views/subscriber/saga.js","redux/subscriber/rootSubsSaga.js","redux/sagas.js","redux/store.js","index.js","services/util.js","assets/img/brand/right-checkmark-removebg-preview.png"],"names":["axios","interceptors","request","use","req","data","FormData","append","getUserId","checkJSON","addLoggedInUserId","hasOwnProperty","SearchText","length","trim","err","Promise","reject","response","res","responseCode","responseMessage","ob","resolve","error","status","console","log","window","localStorage","clear","location","_error$response$data","_error$response$data2","result","str","JSON","parse","e","LoggedInUserId","stringify","isLoggedIn","loginType","loginUserEmail","loginUserName","loginUserImageB64","loginUserId","loginSuperAgentId","getAuthToken","token","getItem","postMethod","async","url","method","API_ENDPOINTS","headers","getMethod","getMethodDefaultToken","TOKEN","postMethodDefaultToken","loginMethod","getLoggedIn","setLoggedIn","value","getLoginType","setLoginType","type","setItem","getUserEmail","setUserEmail","email","setUserName","name","getUserName","setUserB64","b64","getUserB64","setUserId","id","setSuperAgentId","getSuperAgentId","checkSpace","test","Chart","require","getAmt","elements","Rectangle","prototype","draw","left","right","top","bottom","signX","signY","borderSkipped","ctx","this","_chart","vm","_view","borderWidth","horizontal","base","x","y","height","width","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","radius","lineTo","quadraticCurveTo","fill","stroke","fonts","colors","default","primary","secondary","info","success","danger","warning","chartExample1","options","scales","yAxes","gridLines","color","zeroLineColor","ticks","callback","tooltips","callbacks","label","item","datasets","datasetIndex","yLabel","content","data1","canvas","labels","data2","module","exports","chartOptions","defaults","global","responsive","maintainAspectRatio","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","layout","padding","legend","display","position","usePointStyle","point","line","tension","borderCapStyle","rectangle","arc","enabled","mode","intersect","doughnut","cutoutPercentage","legendCallback","chart","forEach","bgColor","scaleService","updateScaleDefaults","borderDash","borderDashOffset","drawBorder","drawTicks","zeroLineWidth","zeroLineBorderDash","zeroLineBorderDashOffset","beginAtZero","drawOnChartArea","parseOptions","parent","chartExample2","maxBarThickness","PendingChartData","xAxes","CollectedChartData","PendingChartData2","merchantCommission","bankCommission","CollectedChartData2","mmoCommission","merchantMTDChartData","obj","daysArr","dataArr","merchantYTDChartData","monthArr","SubscriberChartData","subsMTDPayment","barPercentage","bankArr","walletArr","subsMTDWithDrawal","mmoArr","subsMTDWalletTrans","getArr","sendArr","bankCommMTDChartData","totalComm","bankCT_MTD","split","totalTopUp","topUpArr","totalPayment","paymentArr","FinancePieChart","collectionAmt","settlementAmt","walletComm","transfer","financeMTDCollection","financeMTDCommission","settlementMTDMerchant","SettlementPieChart","settlementMTDTransfer","doughnutCollectionChart","seriesData","subAgentCommissionCumulative","total","reduce","a","v","inPercent","map","max","labelsData","hoverBackgroundColor","text","plugins","datalabels","tooltipItem","doughnutTransferredChartChart","FinanceDoughnutChart","totalCollection","totalCommission","parseFloat","replace","SettlementDoughnutChart","financeMTDCollectionLC","LOGIN_API_ENDPOINTS","iconCss","btnCss","cursor","boxShadow","border","subsStatus","key","className","collBankStatus","ReportStatus","FinanceUserStatus","SettleBankUserStatus","DayEndReportStatus","AUTH_MODE","getFspCategories","arr","_jsx","children","push","NFC_OPTION","getConfirmOptions","GET_YEAR_LIST","year","Date","getFullYear","AMOUNT_HINT","PIN_HINT","PASSWORD_HINT","SECRET_KEY","MOBILE_ONLY_COUNTRY","CASH_TOPUP_HINT","knowledgeBaseItems","connect","state","props","history","useHistory","profileImage","userName","userEmail","addToast","useToasts","notifyFailed","appearance","autoDismiss","openModal","msg","swal","fire","html","customClass","allowEscapeKey","allowOutsideClick","didOpen","showLoading","then","errorMsg","close","catch","_Fragment","Navbar","style","expand","_jsxs","Container","fluid","brandText","Nav","navbar","UncontrolledDropdown","nav","DropdownToggle","Media","alt","src","DropdownMenu","DropdownItem","header","tag","divider","onClick","preventDefault","changepswd","changepin","class","href","logout","Sidebar","collapseOpen","setCollapseOpen","useState","navbarRef","useRef","useEffect","scrollPosition","document","getElementById","scrollTop","toggleCollapse","closeCollapse","routes","logo","innerLink","outterLink","onScroll","_e$target","current","target","ref","NavbarBrand","imgAlt","imgSrc","Collapse","isOpen","Row","Col","xs","Link","to","Form","prop","_prop$title","navItem","NavItem","title","NavLink","path","NavLinkRRD","activeClassName","activeStyle","fontWeight","background","icon","route","routePermissions","find","hideFromMenu","common","allow","createLinks","defaultProps","Header","loaderContainer","heigth","loader","zIndex","FullPageLoader","outerDiv","innerDiv","role","VoucherWallet","MerchantHeader","totalAmt","setAmount","React","totalPayable","setTotalPayable","currentMonthAmt","setCurrentMonthAmt","todayAmt","setTodayAmt","totalCashTopUp","setTotalCashTopUp","balanceLoading","setBalLoading","showTopupList","setShowTopupList","topupList","setTopupList","totalTopupAmount","setTotalTopupAmout","dashboardInfo","setDashboardInfo","todaySales","todayCommissions","totalTodaySales","mtdSales","mtdCommissions","totalMTDSales","ytdSales","ytdCommissions","totalYTDSales","aspt","asptAmount","asptCommission","asptStatus","dailySales","monthlySales","loginUser","fetchBalance","getDayData","input","Object","values","acc","day","Key","getDate","amount","Value","MonthArraySM","_res$data$result","val","month","getMonth","l","Number","ytdChart","showMerchantYTD","showMerchantYTDLoader","setData","merchantMTDMonth","merchantMTDYear","totalDays","daysInMonth","daysInArray","valArr","_res$data$result2","mtdChart","showMerchantMTD","showMerchantMTDLoader","resp","_resp$topupToPlatform","paid","totalReceived","pending","totalPending","monthAmt","monthlyReceived","todayReceived","cashTopUp","topupToPlatform","_resp$topupToPlatform2","totalAmount","amt","toLocaleString","lg","xl","md","Card","CardBody","CardTitle","AdminHeader","totalMasterAgentBalance","setTotalMasterAgentBalance","totalSuperAgentBalance","setTotalSuperAgentBalance","totalSubAgentBalance","setTotalSubAgentBalance","customerTopupCumulative","setCustomerTopupCumulative","totalWalletAmt","setWalletAmt","setTotalCommission","subagentList","setSubagentList","superagentList","setSuperagentList","masteragentList","setMasteragentList","showSuperAgentsList","setShowSuperAgentsList","showSubAgentsList","setShowSubAgentsList","showMasterAgentsList","setShowMasterAgentsList","totalWalletBalance","setCharts","setChartData","setCollectedChartData","commissionAmount","pendingChart","showPendingChart","fetchMTDCommission","Year","financeMTDCommYear","Month","financeMTDCommMonth","list","financeMTDColltnMonth","financeMTDColltnYear","showFinanceMTDComm","showFinanceMTDCommLoader","showCollectedChart","showAdminMTDWalletTransLoader","setAdminMTDWalletTrans","adminMTDWalletTransMonth","adminMTDWalletTransYear","showSubAgentMTDWalletTransLoader","setSubAgentMTDWalletTrans","subAgentMTDWalletTransMonth","subAgentMTDWalletTransYear","Status","transferFrom","transferTo","showAdminMTDWalletTrans","showSubAgentMTDWalletTrans","showAgentsList","idx","firstName","lastName","balance","SubscriberHeader","bankWithDraw","setBankWithDraw","mmoWithDraw","setMMOWithDraw","merchantPayment","setMerchantPayment","receivedAmt","setReceivedAmt","transferAmt","setTransferAmt","showSubsMTDWithDrawLoader","setMTDWithDrawChart","subsMTDWithDrawMonth","subsMTDWithDrawYear","showSubsMTDPaymentLoader","setMTDPaymentChart","subsMTDPaymentMonth","subsMTDPaymentYear","showSubsMTDWalletTransLoader","setMTDWalletTrans","subsMTDWalletTransMonth","subsMTDWalletTransYear","totalBankWithdrawals","totalMMOWithdrawals","totalMerchantPayments","totalTransfers","bankWithdrawal","mmoWithdrawal","showSubsMTDWithDraw","bankPayment","walletPayment","showSubsMTDPayment","showSubsMTDWalletTrans","BankHeader","totalSubs","setSubs","verifiedSubs","setVerifiedSubs","unVerifiedSubs","setUnverifiedSubs","totalCollectn","setCollectn","cardLoading","setCardLoading","fetch","showBankCommLoader","setBankCommMonth","bankCommMonth","bankCommYear","showBankCTLoader","setBankMTDCt","bankCTMonth","bankCTYear","totalSubscriber","verifiedSubscriber","unVerifiedSubscriber","showBankCommMTD","topUp","payment","showBankCTMTD","FinanceUserHeader","settleBal","setSettleBal","collBal","setCollBal","setWalletComm","showFinancePieLoader","fetchPieChart","financePieMonth","financePieYear","showFinanceMTDColltnLoader","fetchMTDCollection","totalBankSettlement","totalMerchantSettlement","showFinancePieChart","showFinanceMTDColltn","SettlementBankHeader","merchantPayable","setMerchantPayable","showSettlementMTDMerchantLoader","fetchMerchantSettlement","settlementMTDMerchantMonth","settlementMTDMerchantYear","showSettlementPieLoader","settlementPieMonth","settlementPieYear","showSettlementMTDTransferLoader","fetchMTDTransfer","settlementMTDTransferMonth","settlementMTDTransferYear","totalSettlement","totalMerchantPayable","showSettlementMTDMerchant","showSettlementPieChart","showSettlementMTDTransfer","SuperAgentHeader","setSubAgentCommissionCumulative","subAgentBalance","setSubAgentBalance","reverseBalance","setReverseBalance","_res$data$result$subA","_res$data$result2$sub","transferAmount","AgentHeader","mothlyReceived","setMonthlyReceived","totalCashTopup","setCashTopup","earnedCashCommission","setEarnedCashCommission","monthlyCashTopup","setMonthlyCashTopup","superAgentId","totalReceivedBalance","MasterAgentHeader","_getAmt","balanceTransferred","setBalanceTransferred","setTotalCashTopup","mmtdloaderContainer","mmtdloader","YEARS","YearArray","Home","logintype","currentMonth","currentYear","setPendingChart","pendingChartData","setPendingChartData","collectedChart","setCollectedChart","collectedChartData","merchantChart","setMerchantChart","merchantMTD","setMerchantMTD","setMerchantMTDMonth","setMerchantMTDYear","merchantMTDLoading","setMerchantMTDLoading","merchantYTD","setMerchantYTD","merchantYTDYear","setMerchantYTDYear","merchantYTDLoading","setMerchantYTDLoading","adminChart","setAdminChart","adminMTDWalletTrans","adminMTDWalletTransLoading","setAdminMTDWalletTransLoading","setAdminMTDWalletTransMonth","setAdminMTDWalletTransYear","subAgentMTDWalletTrans","subAgentMTDWalletTransLoading","setSubAgentMTDWalletTransLoading","setSubAgentMTDWalletTransMonth","setSubAgentMTDWalletTransYear","subscriberChart","setSubscriberChart","subsMTDWithDraw","setSubsMTDWithDraw","subsMTDWithDrawLoading","setSubsMTDWithDrawLoading","setSubsMTDWithDrawMonth","setSubsMTDWithDrawYear","setSubsMTDPayment","subsMTDPaymentLoading","setSubsMTDPaymentLoading","setSubsMTDPaymentMonth","setSubsMTDPaymentYear","setSubsMTDWalletTrans","subsMTDWalletTransLoading","setSubsMTDWalletTransLoading","setSubsMTDWalletTransMonth","setSubsMTDWalletTransYear","bankChart","setBankChart","setBankCommYear","bankCommLoading","setBankCommLoading","setBankCommission","setBankCTMonth","setBankCTYear","bankCTloading","setBankCTLoading","bankCT","setBankCT","financeChart","setFinanceChart","financePieChart","setFinancePieChart","setFinancePieMonth","setFinancePieYear","financePieLoading","setFinancePieLoading","financeMTDColltn","setFinanceMTDColltn","setFinanceMTDColltnMonth","setFinanceMTDColltnYear","financeMTDColltnLoading","setFinanceMTDColltnLoading","financeMTDComm","setFinanceMTDComm","setFinanceMTDCommMonth","setFinanceMTDCommYear","financeMTDCommLoading","setFinanceMTDCommLoading","settlementPieChart","setSettlementPieChart","setSettlementPieMonth","setSettlementPieYear","settlementPieLoading","setSettlementPieLoading","settlementChart","setSettlementChart","setSettlementMTDMerchant","setSettlementMTDMerchantMonth","setSettlementMTDMerchantYear","settlementMTDMerchantLoading","setSettlementMTDMerchantLoading","setSettlementMTDTransfer","setSettlementMTDTransferMonth","setSettlementMTDTransferYear","settlementMTDTransferLoading","setSettlementMTDTransferLoading","chartExample1Data","setChartExample1Data","getMonths","MonthArrayCAP","slice","c","doughnutOptions","boxWidth","changeFinanceMTDCommMonth","changeFinanceMTDCommYear","CardHeader","Input","onChange","Bar","changeAdminMTDWalletTransMonth","changeAdminMTDWalletTransYear","changeSubsMTDWithDrawMonth","changeSubsMTDWithDrawYear","changeSubsMTDPaymentMonth","changeSubsMTDPaymentYear","changeSubsMTDWalletTransMonth","changeSubsMTDWalletTransYear","changeBankCommMonth","changeBankCommYear","changeBankCTMonth","changeBankCTYear","changeFinanceMTDColltnMonth","changeFinanceMTDColltnYear","changeFinancePieMonth","changeFinancePieYear","Doughnut","changeSettlementMTDMerchantMonth","changeSettlementMTDMerchantYear","changeSettlementMTDTransferMonth","changeSettlementMTDTransferYear","changeSettlementPieMonth","changeSettlementPieYear","formatter","font","weight","size","time","unit","tooltipFormat","stepSize","tooltip","context","dataset","raw","Insights","_data$customerRegistr","_data$customerRegistr2","_data$customerRegistr3","_data$customerWhiteli","_data$customerWhiteli2","loading","setLoading","fspCategoryData","fspCustomerVerificationRate","customerRegistrationCount","pieData","setPieData","chartData","finally","fspCategory","percentage","_data$fspCustomerVeri","_data$fspCustomerVeri2","date","toLocaleDateString","successRate","totalRegistrations","changeDirection","customerWhitelistingProcessAvgTime","averageTime","Pie","Line","Index","activeTab","setActiveTab","toggle","tab","pills","classnames","active","marginLeft","TabContent","TabPane","tabId","DEFAULT_ACTION","PAYMENT_FECTH_LIST","PAYMENT_SET_LIST","PAYMENT_FETCH_ERROR","RESET_PAYMENT_LIST","COLLECTION_BANK_LIST","COLLECTION_BANK_SET_LIST","COLLECTION_BANK_ERROR","RESET_COLLECTION_BANK_LIST","FETCH_SUBSCRIBER_INFO","SET_SUBSCRIBER_INFO","SET_ERROR","ADD_VOUCHER","ADD_VOUCHER_SUCCESS","ADD_VOUCHER_FAILED","RESET_VOUCHER","FETCH_MERCHANT","FETCH_MERCHANT_ERROR","SET_MERCHANT","RESET_MERCHANT","FETCH_PAYABLE_AMT","SET_PAYABLE_AMT","PAYABLE_AMT_ERROR","RESET_PAYABLE_AMT","fetchSubs","setError","payload","addVoucherFailed","resetVoucher","fetchMerchantError","resetMerchant","fetchPayableAmtErro","resetPayableAmt","SET_LOGIN_USER_IMAGE","dispatch","fetchSubsInfo","setImg","setUserImage","initialValue","pswd","setValues","errors","setErrors","showPswd","setShowPswd","loginOption","setLoginOption","handleLoginOptionChange","handleInputChange","notify","fetchUserInfo","onSubmit","event","validationErrors","inputs","isNaN","validate","noErrors","every","noDashboardUsers","Email","Password","decoded","jwt_decode","UserProfile","userProfile","UserRole","UserName","UserID","includes","otpSent","FormGroup","htmlFor","checked","PhoneInput","country","enableSearch","phone","countryCodeEditable","phoneChange","formattedValue","dialCode","InputGroup","placeholder","autoComplete","disabled","InputGroupAddon","addonType","InputGroupText","Button","forgotPswd","textWrap","margin","privacyPolicy","merchantAccountInitialState","merchantName","fspId","fspName","accountId","address","mobileCode","phoneWithCC","bankName","bban","attachFile","apiUrl","uniqueLabel","commissionId","authType","basicAuthUName","basicAuthPswd","validateUrl","updateStatusUrl","bankAccNo","bankProfileId","cashTopupCommId","address1","address2","district","chiefdomOrArea","receivablesUse","onlineGateway","smartBill","Merchant","file","setFile","commissions","setCommission","cashTopUpComm","setCashTopUpComm","showPin","setShowPin","merchantBankAccounts","setMerchantBankAccounts","fsps","setFsps","verifyErrros","setVerifyErrors","fetchCommission","fetchCashTopUpCommission","fetchAllFsps","_res$data","checkMobValidation","changeState","checkBbanValidation","checkName","checkBankAccNo","digiRegex","closeModal","onAccChange","updated","structuredClone","_fsps$find","fontSize","verifyAll","accountNumber","verifyAccount","allProms","all","promResults","_i$data","substring","required","SmartBill","for","UncontrolledAlert","Fragment","filtered","filter","_","j","accept","files","NoRecordFound","userProfileId","ViewMerchant","phoneNumber","webSiteURL","labelKey","webSiteUser","webSitePassword","bankAccountNumber","addressLine1","addressLine2","topUpCommissionId","merchantAPIConfig","methodName","methodURL","validateUrlId","updateStatusUrlId","EditMerchant","_props$address","_props$merchantBankAc","spinner","setSpinner","bank","toString","marginTop","downloadFile","config","FETCH_SETTLEMENT_BANK","SET_SETTLEMENT_BANK","SETTLEMENT_BANK_ERROR","RESET_SETTLEMENT_BANK","fetchSettlementBank","settlementBankError","resetSettleError","sortIS","sortName","sortEmail","sortPhone","sortBban","fetchSettlementBankInfo","_props$finance5","open","setOpen","view","setView","merchantObj","setMerchantObj","openEdit","setOpenEditModal","editObj","setEditObj","merchantlist","setMerchantList","filteredList","setFilteredList","cBanks","setCbanks","currentPage","setCurrentPage","pageSize","setPageSize","pagesCount","setPageCount","timeout","setTimeoutNew","deleteObj","setDeleteObj","openDelModal","setOpenDelModal","modalLoading","setModalLoading","searchText","setSearchText","totalRec","setTotalRec","sort","setSort","refresh","setRefresh","isMounted","setIsMounted","privileges","getPrivileges","_props$finance","_props$finance2","_props$finance3","_props$finance4","finance","settlementBankInfo","fetchMerchant","openDelete","mmo","closeDeleteModal","pc","ceil","totalRecords","fetchMerchantById","sortHandle","fieldValue","fieldName","newValue","getSearch","add","reloadList","Modal","maxWidth","ModalBody","closeViewModal","closeEditModal","ModalHeader","isBlocked","getBlockText","deleteMerchant","notifySuccess","Table","scope","getSortCls","edit","block","unblock","CardFooter","ReactPaginate","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","marginPagesDisplayed","pageRangeDisplayed","onPageChange","_ref","selected","selectedPage","containerClassName","subContainerClassName","forcePage","gender","MobileCodeId","MobileNumber","roleId","merchantId","merchantUserID","userCategory","merchantUsers","setMerchantUsers","allMerchants","setAllMerchants","roles","setRoles","selectedMerchant","setSelectedMerchant","fetchAllMerchant","fetchRoles","normalizedName","_validate","_inputs","allErrors","_input$firstName","_input$lastName","_input$MobileNumber","_input$email","_input$roleId","currentMerchant","String","user","_errors$idx","_errors$idx2","_errors$idx3","_errors$idx4","_errors$idx5","_errors$idx6","_errors$idx7","_errors$idx8","_errors$idx9","_errors$idx10","Alert","MerchantUsersList","PageNumber","PerPage","AddMerchantUser","userPhoneNumber","center","lat","lng","GoogleMaps","setCoords","pos","disable","isLoaded","useJsApiLoader","googleMapsApiKey","coords","undefined","setPosition","GoogleMap","mapContainerStyle","zoom","latLng","Marker","memo","locationId","chiefdomOrZone","gpsCoordinate","AddMerchantLocation","setValue","showMap","setShowMap","currentValue","_inputs$gpsCoordinate","_inputs$district","_inputs$chiefdomOrZon","createdBy","createdDate","toISOString","updatedBy","updatedDate","join","ViewMerchantLocation","_props$values","_String","MerchantLocationsList","EditMerchantLocation","merchantLocationsid","SearchableSelect","onSelect","defaultValue","dropdownVersion","setIsOpen","searchValue","setSearchValue","selectedOption","setSelectedOption","filteredOptions","option","toLowerCase","Dropdown","direction","caret","textAlign","maxHeight","overflowX","handleOptionSelect","customerId","nfcCardName","nfcCardID","nfcCardClientID","isBlock","isDelete","AddNFC","_customers$filter","customers","setCustomers","allCards","setAllCards","fetchNFC","fetchCardNames","cardName","isDeleted","verificationStatus","fullName","maxLength","EditNFC","_customers$filter2","_customers$filter2$ma","rest","NFCList","deleteNFC","_mmo$customerName","_mmo$nfcCardName","customerName","ChangePassword","oldpswd","newpswd","confirmpswd","showOldPswd","setOldPswd","showNewPswd","setNewPswd","showConfirmPswd","setComfirmPswd","validateConfirmPswd","keys","ForgotPassword","_location$state","_location$state2","_location$state3","_location$state5","otp","useLocation","showOtp","setOtpCard","showPswdCard","setPswdCard","setShowNewPswd","setShowConfirmPswd","showEmailCard","setEmailCard","minutes","setMinutes","seconds","setSeconds","isTimerStart","setIsTimerStart","timerRef","_location$state4","checkOtp","setInterval","mins","s","clearTimeout","getDigits","num","otpValidate","pswdValidate","regulatoryLicenseNo","officialEmail","officialMobileNo","adminContactEmail","adminContactMobileNo","ictContactEmail","ictContactMobileNo","posGateway","agentOperations","apiurl","password","privateKey","maxSingleTransactionValue","extraSecurityDetails","inboundTransfersFeeTable","inboundTransfersFSPPays","inboundTransfersSmartPayPays","outboundTransfersFeeTable","outboundTransfersFSPPays","outboundTransfersSmartPayPays","agencyServicesFeeTable","agencyServicesFSPPays","agencyServicesSmartPayPays","createBy","AddPOS","entries","check","inline","Label","bordered","EditFSP","FSPList","postlist","setPosList","POSObj","setPOSObj","fetchFSP","isDescending","sortingOn","perPage","pageNumber","_res$data$result$resu","_res$data$result2$res","_res$data$result3","_res$data$result3$res","_res$data$result4","_res$data$result4$res","_res$data$result5","_res$data$result5$res","timeout1","setTimeout","ViewFSP","deleteFsp","fetchFSPById","middleName","mobileCodeId","mobileNumber","userId","userStatus","AddFspUser","ViewFspUser","EditFspUser","FspUsersList","fetchFSPUsers","_res$data2","_res$data2$result","_res$data3","_res$data3$result","_res$data4","_res$data4$result","_res$data5","_res$data5$result","fetchFSPUsersById","sortMerchantUID","sortMerchantName","sortFspName","sortMerchantAccountNumber","sortPendingBalance","SettlementProcessList","_Object$entries","merchantBanks","setMerchantBanks","openBalModal","setOpenBalModal","totalInfo","setTotalInfo","selectedMerchantAcc","setSelectedMerchantAcc","paymentType","settlementType","refNum","description","bankAccountId","balanceInfo","setBalanceInfo","fetchTotalInfo","fetchBalanceInfo","fetchSettlementsList","fetchMerchantBanks","pendingBalance","submitSettleMent","_selectedMerchantAcc$","merchantUserId","MerchantAccountId","toId","toName","referance","settledAmount","remainingAmount","settledBy","toBeSettledAmount","_inputs$refNum","submitSettleMentData","_ref2","charAt","toUpperCase","reportData","doc","jsPDF","setFontSize","startY","head","body","merchantUID","merchantAccountNumber","colSpan","styles","fillColor","settlementPendingAmount","collectionAccountBalance","autoTable","save","exportPDF","k","MerchantSettlementTransactionHistoryList","metaInfo","setMetaInfo","serttlementList","_Date$toLocaleString","_mmo$fromName","_mmo$toName","_mmo$settledBy","_mmo$settlementType","_mmo$settledAmount","_mmo$remainingAmount","_mmo$settlementStatus","fromName","settlementStatus","fspid","accountNo","CustomerWhitelist","_accounts$0$accountNa","_accounts$","_accounts$0$accountNo","_accounts$2","_accounts$0$email","_accounts$3","_accounts$0$avlBal","_accounts$4","_accounts$0$product","_accounts$5","accounts","setAccounts","isLinkSent","setIsLinkSent","selectedAcc","setSelectedAcc","setFspCategory","isDirectDone","setIsDirectDone","handleSubmit","_accounts$find","hasAnyField","_res$data4$result$cus","customerAcct","_res$data6","_res$data6$result","message","errMsg","findAcc","_res$data7","_res$data7$result","_res$data8","_res$data9","justifyContent","alignItems","flexDirection","ShieldGif","_item$accountName","_item$accountNo","_item$email","_item$avlBal","_item$product","accountName","avlBal","product","mobWithoutCC","userRole","User","image","setImage","usreRole","mobWithCC","ViewUser","mobileWithCC","EditUser","sortRole","UserList","userObj","setUserObj","userlist","setUserList","fetchUsers","AddUser","deleteUser","roleName","fetchUserByIdV2","fetchUserById","initialState","walletType","wallet","walletFrom","sessionStartTime","smartPayCheckoutSessionId","metadata","fromphone","subsInfo","setSubsInfo","subscriber","minHeight","_isPhoneValid$data","isPhoneValid","validatePhone","uuidv4","checkoutUrl","initiatePayment","STATUS","sortPaymentTo","sortPaymentFrom","sortReferenceId","sortProductId","sortCreatedAt","sortAmount","sortFeesAmount","sortStatus","sortPaymentMethod","sortPaymentType","SubsTransaction","transList","setTransList","statusFilter","setStatusFilter","totalList","setTotalList","fetchTrans","statusFormat","Badge","getPaymentType","changeStatus","paymentTo","paymentFrom","paymentMethod","referenceId","productId","moment","createdAt","format","feesAmount","PaySmartBills","form","merchants","changeLabel","checkForm","checkFees","validatePin","fees","goBack","handleSubmitV2","use2FA","resendOtp","makePaymentInfoLoading","uniqueNo","accountType","mmoName","mmoAccountNumber","universities","feeTypes","receiptNumber","getCurrentDateTime","floor","random","transactionDate","pinCost","applicantName","applicantPhone","applicantEmail","universityName","feeType","pin","studentFeeAmount","PayUniversityFees","pinTypes","setPinTypes","paymentInfo","setPaymentInfo","feeTypes1","setFeeTypes1","studentFeeDetails","setStudentFeeDetails","getFeeTypes","_JSON$parse","Data","_JSON$parse2","_JSON$parse3","arguments","getStudentInfo","studentId","sid","studentID","_res$data10","_res$data11","_res$data12","_res$data13","onMakeFeePayment","reference","payerName","sName","payerPhone","_res$data14","_res$data14$value","_res$data15","_res$data15$value","_res$data16","_res$data16$value","_res$data17","_res$data18","_res$data19","_res$data19$value","_inputs$applicantPhon","_res$data$value","_res$data2$value","_res$data3$value","_res$data6$value","_res$data9$value","PinCost","AccountNumber","PinCategory","FeesTypeValue","FeesTypeTitle","collegeName","cName","sem","onlyCountries","toLocaleUpperCase","SuccessImg","resetForm","EDSAPayment","values2","handleSubmit2","handleInputChange2","formState2","errors2","setValues2","initialValue2","loading2","setFormState2","billNumber","SmartKorporPaymentTab","values1","handleSubmit1","handleInputChange1","formState1","errors1","userResponse1","setValues1","initialValue1","loading1","setFormState1","refNo","minLength","currency","customername","customer_account_number","merchantProfileId","billTypes","billSubTypes","fetchMerchantInfo","fetchAmt","fetchPayableAmt","setMerchants","form2","setForrm2","use1FA","set1FA","set2FA","form3","setForm3","currentScreenName","setcurrentScreenName","currentSubScreenName","setcurrentSubScreenName","setForm","setFees","currentBillScreen","setCurrentBillScreen","currentSubBillScreen","setCurrentSubBillScreen","setErrors1","setLoading1","setUserResponse1","setErrors2","setLoading2","validateEDSA","initiatePaymentEDSA","validate1","isNoError","validateSmartKorpor","initiatePaymentSmartKorpor","refno","_res$data9$data","_res$data10$data","_res$data11$data","payment_status","desc","makePaymentInfo","amountInfo","genOtp","merchant","m","getLabel","pinValidation","checkOTP","MerchantUserId","ProductId","validate2","saveTrans","validate3","verifyPin","mmoId","isBankApiAvailable","updateMerchant","transactionId","Amount","PIN","CollectionType","OtpType","closeOnClickOutside","buttons","confirm","visible","transId","MerchantId","TransactRefId","PaymentAmount","PaymentType","authFactorType","renderSubBillScreen","scrennNum","minWidth","xmlns","viewBox","d","fillRule","gap","flexWrap","inverse","onClickSubBillSelectBtn","subBillType","renderBillScreen","onClickBillSelectBtn","billType","BetSalonePaymentTab","formState","currencyTypes","langs","userResponse","setFormState","lang","surname","ElephantBetsPaymentTab","bettingCompanyTypes","VerifyAgent","bettingCompany","agentId","LapoLoanRepaymentTab","_userResponse5$client","_userResponse5$client2","_userResponse5$client3","_userResponse5$client4","_userResponse5$loanAc","_userResponse5$loanAc2","_userResponse5$loanAc3","_userResponse5$loanAc4","_userResponse5$transa","_userResponse5$transa2","_userResponse5$loanAc5","_userResponse5$loanAc6","_userResponse5$loanAc7","values5","handleSubmit5","handleInputChange5","formState5","errors5","userResponse5","setValues5","initialValue5","loading5","setFormState5","accNo","marginBottom","client","personal","loanAccount","loanAmount","maximumRepayableAsOfToday","interestRate","userDefinedInterestRate","transactions","companyName","companyId","initialValue3","betSaloneToken","setUserResponse","setbettingCompanyTypes","values3","setValues3","errors3","setErrors3","loading3","setLoading3","formState3","setFormState3","userResponse3","setUserResponse3","setErrors5","setLoading5","setUserResponse5","getCompanyList","_bettingCompanyTypes$","handleInputChange3","validateUser","validate5","initiateLapoLoanRepayment","validateLapoAccNo","handleSubmit3","validateBetSalone","initiatePaymentBetsAlone","agent_id","metaData","_res$data7$data","_res$data8$data","_res$data15$result","_res$data$result$0$me","_res$data16$result","_res$data16$result$","account","accountID","_res$data20","_res$data20$data","_res$data21","_res$data21$data","_res$data22","_res$data$message","_res$data23","_res$data24","_res$data25","_res$data26","_res$data27","_res$data28","_res$data29","_res$data30","CardText","sortBankName","sortCollectionType","banklist","setBankList","openApproveModal","setOpenApproveModal","approveObj","setApproveObj","approveReason","setApproveReason","settleBankId","setSettleBankId","settleBankList","setSettleBankList","coreTransId","setCoreTransId","openLockModal","setOpenLockModal","openUnlockModal","setOpenUnlockModal","fetchBank","closeApproveModal","closeLockModal","closeUnlockModal","closeManaualModal","approveManualPayment","validateManual","collectionIds","settlementBankId","collectionType","bankId","approvePayment","approve","trans","approveManual","rejectManual","VisuallyLoader","colorCls","CryptoJS","PayWithVoucher","initialLoading","setinitialLoading","useParams","failed","setFailed","validationError","setValidError","getCypherText","checkId","enc","Utf8","iv","AES","encrypt","keySize","CBC","pad","Pkcs7","setCheckIdResp","subscriberId","merchantUrl","paymentLogId","UserProfileImage","verifyOtp","sendToNext","pathname","TopUpHistory","balanceAmount","bal","SHOWMSG","login","gotoLogin","MerchantPaymentList","profession","SearchTransaction","setResponse","isPOS","setIsPOS","people","setPeople","addon","reset","submit","transationFrom","transationTo","posSerialNumber","gpsLocation","currentStatus","PAYMENT_TYPE","CollectionReport","setMerchant","merchantFilter","setMerchantFilter","startDate","setStartDate","endDate","setEndDate","minEndDate","setMinEndDate","setBank","bankCode","setBankCodeFilter","setPaymentType","submitButton","setSubmitButton","fetchReport","parentLoading","pdfLoading","fetchReportData","xlLoading","isBefore","sortCreatedat","sortBank_MMOCode","sortSubscriberMobileNumber","sortUpdatedat","parentCallback","parentReportData","errorReportData","changeMerchant","uid","changePaymentFilter","changeBankCode","onSubmitReport","changePage","reportloaderContainer","CollectionReportTable","datalist","setParentSort","createdat","bank_MMOCode","subscriberMobileNumber","updatedat","reportloader","CollectionSummaryReport","CollectionSummaryReportTable","SettlementSummaryReport","sortPayingBankCode","SettlementSummaryReportTable","payingBankCode","SettlementReport","sortReceivingBank","sortUpdatedAt","SettlementReportTable","receivingBank","updatedAt","TransactionReport","TransactionReportTable","bankPaymentType","BankReport","setBankId","fetchBankList","sortSubscriberName","sortDate","changeBank","BankReportTable","subscriberName","MerchantCommission","MerchantCommissionTable","paymentAmount","sortTransactionType","WalletCommissionTable","WalletCommission","EDSATransaction","sendNotification","transactionID","meterNumber","units","voucherPin","denomination","statusDescription","PendingSettlementsReport","sortAccountNo","sortAmountDue","SubscriberBalanceAnalysisReport","renameKey","resultFilter","Array","isArray","SettlementLiquidityAnalysisReport","CommissionsGrowthAnalysisReport","FromDate","ToDate","AgentCommissionsReport","PendingSettlementsReportTable","_props$headings","_props$headings2","_props$headings3","_props$headings3$acti","_props$headings4","headings","numberofMerchants","activityRatio","toFixed","overallDueAmount","merchantBankName","merchantAccountNo","SubscriberBalanceAnalysisReportTable","_props$headings$data","_props$headings2$data","totalSubscriberBalanceAmount","icRatio","_mmo$percentShare","individualSubscriber","corporateSubscriber","totalSubscriberCount","percentShare","SettlementLiquidityAnalysisReportTable","_props$datalist","_props$datalist2","_props$datalist3","_props$datalist4","_props$datalist5","_props$datalist6","_props$datalist7","_props$datalist7$perc","_props$datalist8","_props$datalist9","_props$datalist10","_props$datalist10$per","totalBankBalance","slRatio","overallPendingsettlement","netPosition","settlemenetBankBalance","percentagesettlementshare","rowSpan","collectionBankBalance","percentagecollectionshare","AgentCommissionsReportTable","CommissionsGrowthAnalysisReportTable","AllTransactionReport","posData","setPosData","transactionStatus","posMacID","collectedBy","merchantID","dateRange","isFirst","setIsFirst","setPdfLoading","setXlLoading","_values$transactionSt","_values$collectionTyp","_values$posMacID","_values$merchantID","_values$fspid","_values$collectedBy","ReactSelect","isMulti","isSearchable","fsp","_mmo$toPaymentName","_mmo$collectionType","_getAmt2","_mmo$transactionStatu","fromPaymentName","toPaymentName","commission","nfcCardId","thirdPartyRefId","sum","el","wb","XLSX","book_new","_mmo$toPaymentName2","_mmo$collectionType2","_getAmt3","_getAmt4","_mmo$transactionStatu2","Commission","ws","json_to_sheet","book_append_sheet","heading","wch","VERSIONS","REPORTS","SUBS_STATUS","Reports","reportFilter","setReportFilter","version","setVersion","setResult","collectionR","setCollectionR","setMMO","setReportData","reportHeadings","setReportHeadings","allTransactionsInfo","setAllTransactionsData","fetchMerchants","getPdfHeader","getPdfTitle","transStatusFormat","getTransactionType","getPdfTotal","elt","_elt$percentShare","getPdfData","summaryReport","COLSPAN","getCsvHeader","getColumnName","exportToCSV","_elt$percentShare2","exportToXlsx","originalHeader","Heading","newReportData","assign","csvFormat","aoa_to_sheet","sheet_add_json","skipHeader","origin","sheet_add_aoa","wscols","original","Sheets","SheetNames","excelBuffer","bookType","Blob","FileSaver","detailHandleCB","detailSummarySort","transactionReportHandleCB","bankReportHandleCB","summaryHandleCB","reportLoading","loaderValue","setReportHandle","setErrorReportData","changePageNo","changeReportType","getReportData","getXLReportData","ProfileDetails","setUserDetails","showConfirmPin","setShowConfirmPin","validateConfirmPin","confirmpin","genotp","subscriberType","organisationName","checkProfileTab","valid","checkEmail","VerifyUser","verifyotp","checkOTPTab","MODES","HINT","Subscriber","SubscriberSelfReg","selfRegistered","modalName","reviewModal","_Object$fromEntries","registerType","mobileMoney","mobileMoneyAccNo","authMode","oneFAAmt","delete","fromEntries","SubscriberType","cashTopUpCommList","bankList","BankDetails","BANKS","banks","getMobCodes","setBanks","checkBank","bankLinkedMobileCode","PreviewSubscriber","mobileMoneyList","MMODetails","MMO","checkMobileMoneyAccNo","checkMMTab","SignupSubscriber","profileDetails","setProfileDetails","page","setPage","fetchMMO","userDetails","otpVerified","ChangePin","otpLoading","setotpLoading","confirmPin","validateV2","changePin","posDeviceName","posMake","posModel","posManufactureYear","posMacAddress","isNFCEnabled","isMagStripeEnabled","isChipEnabled","NFC","setPosTerminalvalues","make","model","manufactureYear","macAddress","serialNo","nfc","chip","magStrip","deviceName","ViewPOS","EditPOS","checkMacAddress","posId","PosTerminalList","fetchPOS","deletePOS","fetchPOSById","fields","ALL_FIELDS","CommissionType","CalcMethod","checkTableField","changeCalMethod","table","flatamount","rate","checkTableValues","calcMethod1","calcMethod2","calcMethod3","calcMethod4","calcMethod5","ValidateCommission","checkMinMax","getInitialValue","commissionName","commissionType","commissionCalculateMethod","commissionValue","minAmt1","maxAmt1","commissionAmt1","commissionRate1","minAmt2","maxAmt2","commissionAmt2","commissionRate2","minAmt3","maxAmt3","commissionAmt3","commissionRate3","minAmt4","maxAmt4","commissionAmt4","commissionRate4","minAmt5","maxAmt5","commissionAmt5","commissionRate5","commissionTableId1","commissionTableId2","commissionTableId3","commissionTableId4","commissionTableId5","commissionTable","minAmount","maxAmount","commissionTableId","calculateMethod","setCommissionValues","checkTableRateField","TableCalcMethod","TableBody","checkTableAmountTypeField","getMinValueName","checkMinAmtDisable","TYPE","METHOD","TABLE_METHOD","TABLE_BODY","AddCommission","checkDigit2Decimal","checkPercentage","getTableTypeValue","checkDisable","showAmtOrRate","overflow","count","ViewCommission","EditCommission","sortType","sortMethod","CommissionList","ViewObj","setViewObj","fetchCommissionById","commissionCalculateMethodName","sortSubsName","sortPaymentAmt","sortCommAmt","setList","ViewSubscriber","bankMobWithCC","bbanLinkMobileCode","bbanLinkMobileNumber","organizationName","SubscriberVerificationList","subslist","setSubsList","subsObj","setSubsObj","verifyBankLoading","setVerifyBankLoading","verifyBankObj","setVerifyBankObj","openVerifyBankModal","setOpenVerifyBankModal","closeVerifyBankModal","verifySubsBank","isBankVerified","openVerifyBank","toMobWithCC","toMobWithoutCC","toMobCC","TransferMoney","SubscriberDetails","setSubscriberDetails","toUserInfo","setToUserInfo","resendLoader","setResendLoader","routeName","toUserId","ev","checkNumberOnly","checkToMob","verifyPinV2","mobNumber","verifyPinHandle","UserId","transferMoney","ToUserId","toPhone","commissionWillCredit","actualCommission","goBack1","goBack2","CashWithDrawals","getCommissionAmt","subscriberMobileCode","subscriberEmail","topUpAmount","paymentToOptions","LapoLogo","NacsaLogo","WellbodiLogo","SpayLogo","platform","AddTopUpSubscriber","handleCashout","walletOrAccount","subAgentName","sortFees","TopUpSubscriberList","subMobileCode","subMobileNumber","UserLogs","logType","setLogType","User_Log_Action_Type","logTypeFilter","setLogTypeFilter","fetchLogs","sortAction","sortActionBy","sortLoginUserType","sortUserType","changeLogType","sortDesc","UserLogTable","setToolTips","toolTipRef","handler","contains","addEventListener","removeEventListener","checkOpen","getActionType","closepopOver","actionType","performBy","performByRole","userType","Popover","placement","PopoverHeader","PopoverBody","TransactionLogs","Transaction_Log_Action_Type","sortTransactionStatus","sortTransactionRefId","TransactionLogTable","transactionType","transactionRefId","ACTION_TYPE","Logs","setActionType","changeActionType","h1Style","h4Style","otpType","WhiteListCustomer","isSuccess","setIsSuccess","_inputs$otp","_inputs$pin","_inputs$pin2","_inputs$confirmPin","_inputs$confirmPin2","_inputs$pin3","post","PIN1","PIN2","OTPInput","inputStyle","borderRadius","marginRight","inputType","numInputs","renderSeparator","renderInput","dob","_id$split$","_maskText","_maskText2","_maskText3","_maskText4","_maskText5","_maskText6","_maskText7","_maskText8","_customer$gender","_maskText9","isExpired","setIsExpired","isVerified","setIsVerified","isSentOtp","setIsSentOtp","allVerified","setAllVerified","step","setStep","customer","setCustomer","get","maskText","textLength","firstThree","remaining","repeat","validateCustomer","dateOfBirth","branchName","custEmail","custId","custPhone","generateOTP","_values$accountNo","_values$customerId2","textP","PaymentInfo","params","URLSearchParams","search","CancelImg","addVoucherAmt","addVoucher","voucherInfo","successMsg","resetValues","handleSubmitCB","EDSATransactionsMerchant","overviewPageListItems","Overview","UserFlowImg","AccessRightsImg","TechnicalBackground","HTTPsImg","JWTImg","SubscriberJourney","LoginImg","SelfRegisterImg","OTPEmail","objectFit","SleftRegOTPVerify","FA1Img","PreviewImg","regsuccessfullImg","credentialemailImg","SubscriberFlowImg","Img1","Img2","Img3","Img4","Img6","Img7","Img8","Img9","Img10","Img11","Img12","Img13","Img14","MasterAgentJourney","M2Img","M3Img","M4Img","M1Img","MasterAgentFlowImg","SuperAgentJourney","SP1Img","SP2Img","SP3Img","SP4Img","SP5Img","SuperAgentImg","SubAgentJourney","SA6Img","SA1Img","SA7Img","SA5Img","SA4Img","SA3Img","SA8Img","SubAgentImg","MerchantJourney","MR1Img","MR2Img","MR3Img","MR4Img","MerchantImg","cardHeaderCls","All_TABS","BankUserJourney","CB1Img","CB4Img","CB2Img","CB3Img","SB1Img","SB2Img","LegalInformation","ContactUs","rel","AddSubscriber","activeTabName","setActiveTabName","tabs","overflowY","whiteSpace","CurrentTab","getActiveTabContent","sortPOSID","sortRegisteredDate","sortRegisteredLocation","sortTodaysSales","sortMtdSales","sortYtdSales","Tellers","sortBy","setSortBy","sortDirection","setSortDirection","fetchData","filteredData","b","localeCompare","tellerName","teller","_teller$tellerId","_teller$registeredDat","_teller$tellerName","_teller$todaysSales","_teller$mtdSales","_teller$ytdSales","tellerId","registeredDate","todaysSales","Statements","posDeviceData","setPosDeviceData","allUsers","setAllUsers","users","setUsers","devices","setDevices","statements","setStatements","getAllData","posMacIds","posAgentUseIds","_teller$transactionId","_teller$amount","_teller$fromPaymentNa","_teller$collectedBy","sortTransactionDate","sortNoOfTransactions","Sales","_teller$noOfTransacti","_teller$noOfPOS","_teller$noOfTellers","_teller$noOfLocations","_teller$totalSales","noOfTransactions","noOfPOS","noOfTellers","noOfLocations","totalSales","Maps","sortTellerID","sortTellerName","POS","registeredLocation","_teller$pos","_teller$registeredLoc","ApexLogo","LinkLogo","CashoutSubAgent","setPaymentTo","FSPCustomerResetPin","encryptText","textToEncrypt","keyBytes","padEnd","_String2","CardsList","sortFullName","component","Login","MerchantList","FSPUsersList","isCardModalOpen","setIsOpenCardModal","openReset","setOpenReset","toLocaleLowerCase","_teller$customerId","_teller$fullName","_teller$email","_Date$toLocaleDateStr","_teller$verificationS","CustomerWhiteList","WhiteListCustomerLink","TopUpWallet","MakePayment","AgentMakePayment","CollectionList","KnowledgeBase","Admin","mainContent","documentElement","scrollingElement","AdminNavbar","getBrandText","Switch","Route","Redirect","from","Auth","classList","remove","paymentInitialState","cbankListIS","combineReducers","paymentList","action","cBankList","settlementBankIs","loginIS","SubscriberIS","VoucherIS","makePaymentIS","payableAmtIS","rootBankReducer","rootSubsReducer","rootFinanceReducer","rootLoginReducer","paymentListError","resetPaymentList","cBankListError","resetCbankList","fetchPaymentList","put","setPaymentList","fetchCBankList","bankSaga","takeLatest","rootBankSaga","fork","fetchSettleBank","financeSaga","rootFinaceSaga","fetchSubscriberInfo","addVoucherSuccess","fetchPayableAmount","setPayableAmt","subsSaga","rootSubsSaga","rootSaga","sagaMiddleware","createSagaMiddleware","middlewares","validLayouts","ReactDOM","render","Provider","store","createStore","reducers","applyMiddleware","run","sagas","configureStore","ToastProvider","BrowserRouter","AdminLayout","AuthLayout","_props$userDetails","bankLinkedPhone","bankMobWithoutCC","checkDigitOnly","checkMMOBankAccNo","DUMMY_USER","previleges","getUserPrivileges","getMMOPrivileges","getBanksPrivileges","getMerchantPrivileges","getSubscriberPrivileges","getCommissionPrivileges","getSuperAgentPrivileges","now","getHours","getMinutes","getSeconds"],"mappings":"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","file":"static/js/main.b314e317.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/error.26e9f864.png\";","export default __webpack_public_path__ + \"static/media/blank-profile.a9136072.png\";","import axios from 'axios';\r\nimport { API_ENDPOINTS, TOKEN, LOGIN_API_ENDPOINTS } from '../appConfig';\r\n\r\n\r\naxios.interceptors.request.use(\r\n (req) => {\r\n // Add configurations here\r\n if (req.data) {\r\n if (req.data instanceof FormData) {\r\n req.data.append('LoggedInUserId', getUserId());\r\n } else if (typeof(req.data) === 'string') {\r\n if (checkJSON(req.data)) {\r\n req.data = addLoggedInUserId(req.data);\r\n }\r\n } else if (typeof(req.data) === 'object') {\r\n if (\r\n req.data.hasOwnProperty('SearchText') &&\r\n req.data.SearchText.length\r\n ) {\r\n req.data.SearchText = req.data.SearchText.trim();\r\n }\r\n req.data['LoggedInUserId'] = getUserId();\r\n }\r\n } \r\n return req;\r\n\r\n // const CancelToken = axios.CancelToken;\r\n // return {\r\n // ...req,\r\n // cancelToken: new CancelToken((cancel) => cancel('Cancel repeated request'))\r\n // };\r\n },\r\n (err) => {\r\n return Promise.reject(err);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(\r\n (res) => {\r\n if (\r\n res && \r\n res.data && \r\n res.data.responseCode !== '200' &&\r\n res.data.responseMessage\r\n ) {\r\n let ob = {\r\n data: {\r\n ...res.data\r\n }\r\n };\r\n return Promise.resolve(ob);\r\n } else {\r\n return Promise.resolve(res);\r\n }\r\n }, \r\n (error) => {\r\n\r\n const expectedError =\r\n error.response &&\r\n error.response.status >= 400 &&\r\n error.response.status < 500;\r\n if (!expectedError) {\r\n console.log(\"Oops!\", \"Something went wrong!\", \"error\");\r\n }\r\n if (error && error.response && error.response.status === 401) {\r\n window.localStorage.clear();\r\n window.location = \"/\";\r\n let ob = {\r\n data: {\r\n responseCode: '400',\r\n responseMessage: 'Session Expires'\r\n }\r\n };\r\n return Promise.resolve(ob);\r\n } else if (error && error.response && error.response.status === 400) {\r\n let ob = {\r\n data: {\r\n responseCode: '400',\r\n responseMessage: error.response.data.responseMessage ? \r\n error.response.data.responseMessage : typeof error.response.data?.result === \"string\" ? error.response.data?.result : 'Bad Request'\r\n }\r\n };\r\n return Promise.resolve(ob);\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n});\r\n\r\n\r\nconst checkJSON = (str) => {\r\n try {\r\n let ob = JSON.parse(str);\r\n if (typeof ob === 'object') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch (e) {\r\n return false;\r\n } \r\n}\r\n\r\nconst addLoggedInUserId = (str) => {\r\n try {\r\n let ob = JSON.parse(str);\r\n ob.LoggedInUserId = getUserId();\r\n if (\r\n ob.hasOwnProperty('SearchText') &&\r\n ob.SearchText.length\r\n ) {\r\n ob.SearchText = ob.SearchText.trim();\r\n }\r\n return JSON.stringify(ob);\r\n } catch (e) {\r\n return str;\r\n }\r\n}\r\n\r\nlet isLoggedIn = null;\r\nlet loginType = null;\r\nlet loginUserEmail = null;\r\nlet loginUserName = null;\r\nlet loginUserImageB64 = null;\r\nlet loginUserId = null;\r\nlet loginSuperAgentId = null;\r\nlet loginPswd = null;\r\n// const setAuthTokenHeader = () => {\r\n// const token = authService.getAuthToken();\r\n// if (!token || token === \"undefined\") {\r\n// window.location = \"/\";\r\n// logout();\r\n// return null;\r\n// } else {\r\n// return {\r\n// access_token: token,\r\n// };\r\n// }\r\n// };\r\n\r\n// export const fetchMethod = (url, data, method) => axios({\r\n// url: `${API_ENDPOINTS}${url}`,\r\n// method,\r\n// data,\r\n// // headers: isAuthToken ? { ...setAuthTokenHeader() } : null,\r\n// });\r\n\r\nconst setAuthTokenHeader = () => {\r\n // const token = window.localStorage.getItem(\"token\");\r\n // if (!token) {\r\n // window.location = \"/\";\r\n // return null;\r\n // }\r\n return {\r\n Authorization: `Bearer ${TOKEN}`,\r\n };\r\n};\r\n\r\nconst getAuthToken = () => {\r\n const token = window.localStorage.getItem(\"token\");\r\n if (!token) {\r\n window.location = \"/\";\r\n return null;\r\n }\r\n return token;\r\n}\r\nexport const fetchMethod = (url, data, method, isAuthToken) => {\r\n return axios({\r\n url: `${API_ENDPOINTS}${url}`,\r\n method,\r\n data,\r\n headers: isAuthToken ? { ...setAuthTokenHeader() } : null,\r\n });\r\n};\r\n\r\n\r\nexport const postMethod = async (url, data, method) => {\r\n const token = getAuthToken();\r\n return axios({\r\n url: `${API_ENDPOINTS}${url}`,\r\n method,\r\n data,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n // \"Authorization\": `Bearer ${TOKEN}`\r\n \"Authorization\": 'Bearer ' + token\r\n },\r\n });\r\n}\r\n\r\nexport const getMethod = async (url, method) => {\r\n const token = getAuthToken();\r\n return await axios({\r\n url: `${API_ENDPOINTS}${url}`,\r\n method,\r\n // data,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n // \"Authorization\": `Bearer ${TOKEN}`\r\n \"Authorization\": 'Bearer ' + token\r\n },\r\n });\r\n}\r\n\r\nexport const getMethodDefaultToken = (url, method) => {\r\n // const token = getAuthToken();\r\n return axios({\r\n url: `${API_ENDPOINTS}${url}`,\r\n method,\r\n // data,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": `Bearer ${TOKEN}`\r\n // \"Authorization\": 'Bearer ' + token\r\n },\r\n });\r\n}\r\n\r\nexport const postMethodDefaultToken = (url, data, method) => {\r\n // const token = getAuthToken();\r\n return axios({\r\n url: `${API_ENDPOINTS}${url}`,\r\n method,\r\n data,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n // \"Authorization\": `Bearer ${TOKEN}`\r\n // \"Authorization\": 'Bearer ' + token\r\n },\r\n });\r\n}\r\n\r\nexport const loginMethod = (url, data, method) => {\r\n return axios({\r\n url: `${API_ENDPOINTS}${url}`,\r\n method,\r\n data,\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n });\r\n}\r\n\r\nexport const adminMethod = (url, data, method) => {\r\n const token = getAuthToken();\r\n return axios({\r\n url: `${LOGIN_API_ENDPOINTS}${url}`,\r\n method,\r\n data,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": 'Bearer ' + token\r\n },\r\n });\r\n}\r\n\r\n// export const handleError = (error) => {\r\n\r\n// if (error && error.response) {\r\n// if (error.response.status == 401) {\r\n// window. window.localStorage.clear();\r\n// window.location = \"/\";\r\n// }\r\n// } else {\r\n\r\n// }\r\n// }\r\n\r\nexport const getLoggedIn = () => {\r\n if (\r\n !isLoggedIn &&\r\n window.localStorage.getItem('validUser') === \"true\"\r\n ) {\r\n return true\r\n }\r\n return isLoggedIn;\r\n}\r\n\r\nexport const setLoggedIn = (value) => {\r\n isLoggedIn = value;\r\n}\r\n\r\nexport const getLoginType = () => {\r\n if (!loginType && window.localStorage.getItem('userType') !== \"null\") {\r\n return window.localStorage.getItem('userType');\r\n }\r\n return loginType;\r\n}\r\n\r\nexport const setLoginType = (type) => {\r\n loginType = type;\r\n window.localStorage.setItem('userType', type);\r\n}\r\n\r\nexport const getUserEmail = () => {\r\n if (!loginUserEmail && window.localStorage.getItem('userEmail') !== \"null\") {\r\n return window.localStorage.getItem('userEmail');\r\n }\r\n return loginUserEmail;\r\n}\r\n\r\nexport const setUserEmail = (email) => {\r\n loginUserEmail = email.trim();\r\n window.localStorage.setItem('userEmail', loginUserEmail);\r\n}\r\n\r\nexport const setUserName = (name) => {\r\n loginUserName = name;\r\n window.localStorage.setItem('userName', name);\r\n}\r\n\r\nexport const getUserName = () => {\r\n if (!loginUserName && window.localStorage.getItem('userName') !== \"null\") {\r\n return window.localStorage.getItem('userName');\r\n }\r\n return loginUserName;\r\n}\r\n\r\nexport const setUserB64 = (b64) => {\r\n loginUserImageB64 = b64;\r\n window.localStorage.setItem('userImg', b64);\r\n}\r\n\r\nexport const getUserB64 = () => {\r\n if (!loginUserImageB64 && window.localStorage.getItem('userImg') !== \"null\") {\r\n return window.localStorage.getItem('userImg');\r\n }\r\n return loginUserImageB64;\r\n}\r\n\r\nexport const setUserId = (id) => {\r\n loginUserId = id;\r\n window.localStorage.setItem('userId', id);\r\n}\r\n\r\nexport const setSuperAgentId = (id) => {\r\n loginSuperAgentId = id;\r\n window.localStorage.setItem('loginSuperAgentId', id);\r\n}\r\n\r\nexport const getUserId = () => {\r\n if (!loginUserId && window.localStorage.getItem('userId') !== \"null\") {\r\n return window.localStorage.getItem('userId');\r\n }\r\n return loginUserId;\r\n}\r\n\r\nexport const getSuperAgentId = () => {\r\n if (!loginSuperAgentId && window.localStorage.getItem('loginSuperAgentId') !== \"null\") {\r\n return window.localStorage.getItem('loginSuperAgentId');\r\n }\r\n return loginSuperAgentId;\r\n}\r\n\r\nexport const checkSpace = (value) => {\r\n const spaceRegex = /^\\s*$/;\r\n if (!spaceRegex.test(value) || !value.length) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const setPswd = (value) => {\r\n loginPswd = value;\r\n window.localStorage.setItem('pswd', value);\r\n}\r\n\r\nexport const getPswd = () => {\r\n if (!loginPswd && window.localStorage.getItem('pswd') !== \"null\") {\r\n return window.localStorage.getItem('pswd');\r\n }\r\n return loginPswd;\r\n}\r\n\r\nexport default {\r\n fetchMethod,\r\n postMethod,\r\n getMethod,\r\n loginMethod,\r\n setLoggedIn,\r\n getLoggedIn,\r\n getLoginType,\r\n setLoginType,\r\n getUserEmail,\r\n setUserEmail,\r\n adminMethod,\r\n getUserB64,\r\n setUserB64,\r\n getUserName,\r\n checkSpace,\r\n setPswd,\r\n getPswd,\r\n getMethodDefaultToken,\r\n postMethodDefaultToken\r\n};\r\n","/*!\r\n\r\n=========================================================\r\n* Argon Dashboard React - v1.2.0\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/argon-dashboard-react\r\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\r\n* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard-react/blob/master/LICENSE.md)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\nconst Chart = require(\"chart.js\");\r\nconst { getAmt } = require(\"services/util\");\r\n//\r\n// Chart extension for making the bars rounded\r\n// Code from: https://codepen.io/jedtrow/full/ygRYgo\r\n//\r\n\r\nChart.elements.Rectangle.prototype.draw = function () {\r\n var ctx = this._chart.ctx;\r\n var vm = this._view;\r\n var left, right, top, bottom, signX, signY, borderSkipped, radius;\r\n var borderWidth = vm.borderWidth;\r\n // Set Radius Here\r\n // If radius is large enough to cause drawing errors a max radius is imposed\r\n var cornerRadius = 6;\r\n\r\n if (!vm.horizontal) {\r\n // bar\r\n left = vm.x - vm.width / 2;\r\n right = vm.x + vm.width / 2;\r\n top = vm.y;\r\n bottom = vm.base;\r\n signX = 1;\r\n signY = bottom > top ? 1 : -1;\r\n borderSkipped = vm.borderSkipped || \"bottom\";\r\n } else {\r\n // horizontal bar\r\n left = vm.base;\r\n right = vm.x;\r\n top = vm.y - vm.height / 2;\r\n bottom = vm.y + vm.height / 2;\r\n signX = right > left ? 1 : -1;\r\n signY = 1;\r\n borderSkipped = vm.borderSkipped || \"left\";\r\n }\r\n\r\n // Canvas doesn't allow us to stroke inside the width so we can\r\n // adjust the sizes to fit if we're setting a stroke on the line\r\n if (borderWidth) {\r\n // borderWidth shold be less than bar width and bar height.\r\n var barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n var halfStroke = borderWidth / 2;\r\n // Adjust borderWidth when bar top position is near vm.base(zero).\r\n var borderLeft = left + (borderSkipped !== \"left\" ? halfStroke * signX : 0);\r\n var borderRight =\r\n right + (borderSkipped !== \"right\" ? -halfStroke * signX : 0);\r\n var borderTop = top + (borderSkipped !== \"top\" ? halfStroke * signY : 0);\r\n var borderBottom =\r\n bottom + (borderSkipped !== \"bottom\" ? -halfStroke * signY : 0);\r\n // not become a vertical line?\r\n if (borderLeft !== borderRight) {\r\n top = borderTop;\r\n bottom = borderBottom;\r\n }\r\n // not become a horizontal line?\r\n if (borderTop !== borderBottom) {\r\n left = borderLeft;\r\n right = borderRight;\r\n }\r\n }\r\n\r\n ctx.beginPath();\r\n ctx.fillStyle = vm.backgroundColor;\r\n ctx.strokeStyle = vm.borderColor;\r\n ctx.lineWidth = borderWidth;\r\n\r\n // Corner points, from bottom-left to bottom-right clockwise\r\n // | 1 2 |\r\n // | 0 3 |\r\n var corners = [\r\n [left, bottom],\r\n [left, top],\r\n [right, top],\r\n [right, bottom],\r\n ];\r\n\r\n // Find first (starting) corner with fallback to 'bottom'\r\n var borders = [\"bottom\", \"left\", \"top\", \"right\"];\r\n var startCorner = borders.indexOf(borderSkipped, 0);\r\n if (startCorner === -1) {\r\n startCorner = 0;\r\n }\r\n\r\n function cornerAt(index) {\r\n return corners[(startCorner + index) % 4];\r\n }\r\n\r\n // Draw rectangle from 'startCorner'\r\n var corner = cornerAt(0);\r\n ctx.moveTo(corner[0], corner[1]);\r\n\r\n for (var i = 1; i < 4; i++) {\r\n corner = cornerAt(i);\r\n let nextCornerId = i + 1;\r\n if (nextCornerId === 4) {\r\n nextCornerId = 0;\r\n }\r\n\r\n // let nextCorner = cornerAt(nextCornerId);\r\n\r\n let width = corners[2][0] - corners[1][0];\r\n let height = corners[0][1] - corners[1][1];\r\n let x = corners[1][0];\r\n let y = corners[1][1];\r\n // eslint-disable-next-line\r\n var radius = cornerRadius;\r\n\r\n // Fix radius being too large\r\n if (radius > height / 2) {\r\n radius = height / 2;\r\n }\r\n if (radius > width / 2) {\r\n radius = width / 2;\r\n }\r\n\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n }\r\n\r\n ctx.fill();\r\n if (borderWidth) {\r\n ctx.stroke();\r\n }\r\n};\r\n\r\nvar mode = \"light\"; //(themeMode) ? themeMode : 'light';\r\nvar fonts = {\r\n base: \"Open Sans\",\r\n};\r\n\r\n// Colors\r\nvar colors = {\r\n gray: {\r\n 100: \"#f6f9fc\",\r\n 200: \"#e9ecef\",\r\n 300: \"#dee2e6\",\r\n 400: \"#ced4da\",\r\n 500: \"#adb5bd\",\r\n 600: \"#8898aa\",\r\n 700: \"#525f7f\",\r\n 800: \"#32325d\",\r\n 900: \"#212529\",\r\n },\r\n theme: {\r\n default: \"#172b4d\",\r\n primary: \"#5e72e4\",\r\n secondary: \"#f4f5f7\",\r\n info: \"#11cdef\",\r\n success: \"#2dce89\",\r\n danger: \"#f5365c\",\r\n warning: \"#fb6340\",\r\n },\r\n black: \"#12263F\",\r\n white: \"#FFFFFF\",\r\n transparent: \"transparent\",\r\n};\r\n\r\n// Methods\r\n\r\n// Chart.js global options\r\nfunction chartOptions() {\r\n // Options\r\n var options = {\r\n defaults: {\r\n global: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n defaultColor: mode === \"dark\" ? colors.gray[700] : colors.gray[600],\r\n defaultFontColor: mode === \"dark\" ? colors.gray[700] : colors.gray[600],\r\n defaultFontFamily: fonts.base,\r\n defaultFontSize: 13,\r\n layout: {\r\n padding: 0,\r\n },\r\n legend: {\r\n display: false,\r\n position: \"bottom\",\r\n labels: {\r\n usePointStyle: true,\r\n padding: 16,\r\n },\r\n },\r\n elements: {\r\n point: {\r\n radius: 0,\r\n backgroundColor: colors.theme[\"primary\"],\r\n },\r\n line: {\r\n tension: 0.4,\r\n borderWidth: 4,\r\n borderColor: colors.theme[\"primary\"],\r\n backgroundColor: colors.transparent,\r\n borderCapStyle: \"rounded\",\r\n },\r\n rectangle: {\r\n backgroundColor: colors.theme[\"warning\"],\r\n },\r\n arc: {\r\n backgroundColor: colors.theme[\"primary\"],\r\n borderColor: mode === \"dark\" ? colors.gray[800] : colors.white,\r\n borderWidth: 4,\r\n },\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: \"index\",\r\n intersect: false,\r\n },\r\n },\r\n doughnut: {\r\n cutoutPercentage: 83,\r\n legendCallback: function (chart) {\r\n var data = chart.data;\r\n var content = \"\";\r\n\r\n data.labels.forEach(function (label, index) {\r\n var bgColor = data.datasets[0].backgroundColor[index];\r\n\r\n content += '';\r\n content +=\r\n '';\r\n content += label;\r\n content += \"\";\r\n });\r\n\r\n return content;\r\n },\r\n },\r\n },\r\n };\r\n\r\n // yAxes\r\n Chart.scaleService.updateScaleDefaults(\"linear\", {\r\n gridLines: {\r\n borderDash: [2],\r\n borderDashOffset: [2],\r\n color: mode === \"dark\" ? colors.gray[900] : colors.gray[300],\r\n drawBorder: false,\r\n drawTicks: false,\r\n lineWidth: 0,\r\n zeroLineWidth: 0,\r\n zeroLineColor: mode === \"dark\" ? colors.gray[900] : colors.gray[300],\r\n zeroLineBorderDash: [2],\r\n zeroLineBorderDashOffset: [2],\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n padding: 10,\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n return value;\r\n }\r\n },\r\n },\r\n });\r\n\r\n // xAxes\r\n Chart.scaleService.updateScaleDefaults(\"category\", {\r\n gridLines: {\r\n drawBorder: false,\r\n drawOnChartArea: false,\r\n drawTicks: false,\r\n },\r\n ticks: {\r\n padding: 20,\r\n },\r\n });\r\n\r\n return options;\r\n}\r\n\r\n// Parse global options\r\nfunction parseOptions(parent, options) {\r\n for (var item in options) {\r\n if (typeof options[item] !== \"object\") {\r\n parent[item] = options[item];\r\n } else {\r\n parseOptions(parent[item], options[item]);\r\n }\r\n }\r\n}\r\n\r\n// Example 1 of Chart inside src/views/Index.js (Sales value - Card)\r\nlet chartExample1 = {\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n gridLines: {\r\n color: colors.gray[900],\r\n zeroLineColor: colors.gray[900],\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n return \"$\" + value + \"k\";\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = item.yLabel;\r\n var content = \"\";\r\n\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n\r\n content += \"$\" + yLabel + \"k\";\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data1: (canvas) => {\r\n return {\r\n labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: \"Performance\",\r\n data: [0, 20, 10, 30, 15, 40, 20, 60, 60],\r\n },\r\n ],\r\n };\r\n },\r\n data2: (canvas) => {\r\n return {\r\n labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: \"Performance\",\r\n data: [0, 20, 5, 25, 10, 30, 15, 40, 40],\r\n },\r\n ],\r\n };\r\n },\r\n};\r\n\r\n// Example 2 of Chart inside src/views/Index.js (Total orders - Card)\r\nlet chartExample2 = {\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return value;\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = item.yLabel;\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: [\"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: \"Sales\",\r\n data: [25, 20, 30, 22, 17, 29],\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n};\r\n\r\nconst PendingChartData = () => {\r\n let pendingChart = {\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return value;\r\n }\r\n },\r\n },\r\n gridLines: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = item.yLabel;\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: [\"Merchat\", \"Bank\", \"MMO\"],\r\n datasets: [\r\n {\r\n label: \"Commission\",\r\n data: [],\r\n maxBarThickness: 10,\r\n backgroundColor: \"Yellow\",\r\n },\r\n ],\r\n },\r\n };\r\n return pendingChart;\r\n};\r\n\r\nconst PendingChartData2 = (ob) => {\r\n const data = {\r\n labels: [\r\n \"Merchant : \" + getAmt(ob.merchantCommission),\r\n \"Bank : \" + getAmt(ob.bankCommission),\r\n \"MMO : \" + 100,\r\n ],\r\n datasets: [\r\n {\r\n label: \"# of Votes\",\r\n data: [ob.merchantCommission, ob.bankCommission, 100],\r\n backgroundColor: [\r\n \"rgba(221, 160, 221, 0.2)\",\r\n \"rgba(54, 162, 235, 0.2)\",\r\n \"rgba(255, 206, 86, 0.2)\",\r\n ],\r\n borderColor: [\r\n \"rgba(221, 160, 221, 1)\",\r\n \"rgba(54, 162, 235, 1)\",\r\n \"rgba(255, 206, 86, 1)\",\r\n ],\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n return data;\r\n};\r\n\r\nconst CollectedChartData2 = (ob) => {\r\n const data = {\r\n labels: [\r\n \"Merchant : \" + getAmt(ob.merchantCommission),\r\n \"Bank : \" + getAmt(ob.bankCommission),\r\n \"MMO : \" + getAmt(ob.mmoCommission),\r\n ],\r\n datasets: [\r\n {\r\n label: \"# of Votes\",\r\n data: [],\r\n backgroundColor: [\r\n \"rgba(75, 192, 192, 0.2)\",\r\n \"rgba(153, 102, 255, 0.2)\",\r\n \"rgba(189, 183, 107, 0.2)\",\r\n ],\r\n borderColor: [\r\n \"rgba(75, 192, 192, 1)\",\r\n \"rgba(153, 102, 255, 1)\",\r\n \"rgba(189, 183, 107, 1)\",\r\n ],\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n return data;\r\n};\r\n\r\nconst CollectedChartData = () => {\r\n let pendingChart = {\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 100)) {\r\n //return '$' + value + 'k'\r\n return value;\r\n }\r\n },\r\n },\r\n gridLines: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = item.yLabel;\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: [\"Merchat\", \"Bank\", \"MMO\"],\r\n datasets: [\r\n {\r\n label: \"Commission\",\r\n data: [],\r\n maxBarThickness: 10,\r\n backgroundColor: \"Green\",\r\n },\r\n ],\r\n },\r\n };\r\n return pendingChart;\r\n};\r\n\r\nconst merchantMTDChartData = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Sales\",\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst merchantYTDChartData = (ob) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: ob.monthArr,\r\n datasets: [\r\n {\r\n label: \"Sales\",\r\n data: ob.dataArr,\r\n backgroundColor: \"#9e067c \",\r\n borderColor: \"#9e067c \",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst SubscriberChartData = () => {\r\n const data = {\r\n labels: [\"Merchant\", \"Bank\", \"MMO\"],\r\n datasets: [\r\n {\r\n label: \"# of Votes\",\r\n data: [],\r\n backgroundColor: [\r\n \"rgba(255, 99, 132, 0.2)\",\r\n \"rgba(54, 162, 235, 0.2)\",\r\n \"rgba(255, 206, 86, 0.2)\",\r\n ],\r\n borderColor: [\r\n \"rgba(255, 99, 132, 1)\",\r\n \"rgba(54, 162, 235, 1)\",\r\n \"rgba(255, 206, 86, 1)\",\r\n ],\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n return data;\r\n};\r\n\r\nconst subsMTDWithDrawal = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n barPercentage: 2,\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Bank \",\r\n data: obj.bankArr,\r\n backgroundColor: \"#FFF00A\",\r\n borderColor: \"#FFF00A\",\r\n maxBarThickness: 10,\r\n },\r\n {\r\n label: \"MMO \",\r\n data: obj.mmoArr,\r\n backgroundColor: \"#FF0AF4\",\r\n borderColor: \"#FF0AF4\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst subsMTDPayment = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n barPercentage: 2,\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Payment using bank \",\r\n data: obj.bankArr,\r\n backgroundColor: \"#0A2BFF\",\r\n borderColor: \"#0A2BFF\",\r\n maxBarThickness: 10,\r\n },\r\n {\r\n label: \"Payment using wallet \",\r\n data: obj.walletArr,\r\n backgroundColor: \"#0AFFF8\",\r\n borderColor: \"#0AFFF8\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst subsMTDWalletTrans = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n barPercentage: 2,\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Transfer \",\r\n data: obj.getArr,\r\n backgroundColor: \"#52D416\",\r\n borderColor: \"#52D416\",\r\n maxBarThickness: 10,\r\n },\r\n {\r\n label: \"Receipt \",\r\n data: obj.sendArr,\r\n backgroundColor: \"#314D24\",\r\n borderColor: \"#314D24\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst bankCommMTDChartData = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Commissions : \" + getAmt(obj.totalComm),\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst bankCT_MTD = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n barPercentage: 2,\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n label = label.split(\":\")[0];\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Top-Up : \" + getAmt(obj.totalTopUp),\r\n data: obj.topUpArr,\r\n backgroundColor: \"#52D416\",\r\n borderColor: \"#52D416\",\r\n maxBarThickness: 10,\r\n },\r\n {\r\n label: \"Direct Payment : \" + getAmt(obj.totalPayment),\r\n data: obj.paymentArr,\r\n backgroundColor: \"#314D24\",\r\n borderColor: \"#314D24\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst FinancePieChart = (obj) => {\r\n const data = {\r\n labels: [\r\n \"Collection : \" + getAmt(obj.collectionAmt),\r\n \"Bank Settlement : \" + getAmt(obj.settlementAmt),\r\n \"Total Commission : \" + getAmt(obj.walletComm),\r\n \"Merchant Transfers : \" + getAmt(obj.transfer),\r\n ],\r\n datasets: [\r\n {\r\n label: \"# of Votes\",\r\n data: [\r\n obj.collectionAmt,\r\n obj.settlementAmt,\r\n obj.walletComm,\r\n obj.transfer,\r\n ],\r\n backgroundColor: [\r\n \"rgba(255, 99, 132, 0.2)\",\r\n \"rgba(54, 162, 235, 0.2)\",\r\n \"rgba(255, 206, 86, 0.2)\",\r\n \"rgba(128, 0, 128, 0.2)\",\r\n ],\r\n borderColor: [\r\n \"rgba(255, 99, 132, 1)\",\r\n \"rgba(54, 162, 235, 1)\",\r\n \"rgba(255, 206, 86, 1)\",\r\n \"rgba(128, 0, 128, 1)\",\r\n ],\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n return data;\r\n};\r\n\r\nconst financeMTDCollection = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n // ticks: {\r\n // // autoSkip: false\r\n // beginAtZero: true,\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Collections : \" + getAmt(obj.totalComm),\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n // minBarLength: 3\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst financeMTDCollectionLC = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n // return \"$\" + value + \"k\";\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = item.yLabel;\r\n var content = \"\";\r\n\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: (canvas) => {\r\n return {\r\n // labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n // datasets: [\r\n // {\r\n // label: \"Performance\",\r\n // data: [0, 20, 10, 30, 15, 40, 20, 60, 60],\r\n // },\r\n // ],\r\n\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Settlements : \" + getAmt(obj.totalComm),\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n };\r\n },\r\n data2: (canvas) => {\r\n return {\r\n labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: \"Performance\",\r\n data: [0, 20, 5, 25, 10, 30, 15, 40, 40],\r\n },\r\n ],\r\n };\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst financeMTDCommission = (obj) => {\r\n console.log({obj})\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Commissions : \" + getAmt(obj.totalComm),\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst settlementMTDMerchant = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Settlements : \" + getAmt(obj.totalComm),\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst SettlementPieChart = (obj) => {\r\n const data = {\r\n labels: [\r\n \"Settlement Bank Balance : \" + getAmt(obj.settlementAmt),\r\n \"Merchant Settlement : \" + getAmt(obj.transfer),\r\n ],\r\n datasets: [\r\n {\r\n label: \"# of Votes\",\r\n data: [obj.settlementAmt, obj.transfer],\r\n backgroundColor: [\r\n \"rgba(255, 99, 132, 0.2)\",\r\n \"rgba(54, 162, 235, 0.2)\",\r\n // 'rgba(255, 206, 86, 0.2)',\r\n // 'rgba(128, 0, 128, 0.2)'\r\n ],\r\n borderColor: [\r\n \"rgba(255, 99, 132, 1)\",\r\n \"rgba(54, 162, 235, 1)\",\r\n // 'rgba(255, 206, 86, 1)',\r\n // 'rgba(128, 0, 128, 1)'\r\n ],\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n return data;\r\n};\r\n\r\nconst settlementMTDTransfer = (obj) => {\r\n let chart = {\r\n options: {\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n // ticks: {\r\n // autoSkip: false\r\n // }\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n },\r\n ticks: {\r\n callback: function (value) {\r\n if (!(value % 10)) {\r\n //return '$' + value + 'k'\r\n return getAmt(value);\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.datasets[item.datasetIndex].label || \"\";\r\n var yLabel = getAmt(item.yLabel);\r\n var content = \"\";\r\n if (data.datasets.length > 1) {\r\n content += label;\r\n }\r\n content += yLabel;\r\n return content;\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels: obj.daysArr,\r\n datasets: [\r\n {\r\n label: \"Transfers : \" + getAmt(obj.totalComm),\r\n data: obj.dataArr,\r\n backgroundColor: \"#fb6340\",\r\n borderColor: \"#fb6340\",\r\n maxBarThickness: 10,\r\n },\r\n ],\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst doughnutCollectionChart = (ob) => {\r\n // ob.mmoCommission = 1;\r\n let seriesData = [\r\n ob.merchantCommission,\r\n ob.bankCommission,\r\n ob.mmoCommission,\r\n ob?.subAgentCommissionCumulative,\r\n ];\r\n var total = seriesData.reduce((a, v) => a + v);\r\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\r\n // var inPercent = seriesData.map(v => (v / total * 100));\r\n var labelsData = [\r\n \"Merchant : \" + getAmt(ob.merchantCommission),\r\n \"Bank : \" + getAmt(ob.bankCommission),\r\n \"MMO : \" + getAmt(ob.mmoCommission),\r\n \"Sub Agent :\" + getAmt(ob.subAgentCommissionCumulative),\r\n ];\r\n let chart = {\r\n data: {\r\n labels: labelsData,\r\n datasets: [\r\n {\r\n data: inPercent,\r\n backgroundColor: [\"#FF6384\", \"#36A2EB\", \"#FFCE56\", \"#2dce89\"],\r\n hoverBackgroundColor: [\"#FF6384\", \"#36A2EB\", \"#FFCE56\", \"#2dce89\"],\r\n },\r\n ],\r\n text: \"23%\",\r\n },\r\n options: {\r\n cutoutPercentage: 65,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: false,\r\n },\r\n plugins: {\r\n datalabels: {\r\n display: false,\r\n },\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: \"nearest\",\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n var label = labelsData[tooltipItem.index];\r\n return `${label}`;\r\n },\r\n },\r\n },\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst doughnutTransferredChartChart = (ob) => {\r\n // ob.mmoCommission = 1;\r\n let seriesData = [ob.merchantCommission, ob.bankCommission, ob.mmoCommission];\r\n var total = seriesData.reduce((a, v) => a + v);\r\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\r\n var labelsData = [\r\n \"Merchant : \" + getAmt(ob.merchantCommission),\r\n \"Bank : \" + getAmt(ob.bankCommission),\r\n \"MMO : \" + getAmt(ob.mmoCommission),\r\n ];\r\n let chart = {\r\n data: {\r\n labels: labelsData,\r\n datasets: [\r\n {\r\n data: inPercent,\r\n backgroundColor: [\"#314D24\", \"#A3EC2A\", \"#E92AEC\"],\r\n hoverBackgroundColor: [\"#314D24\", \"#A3EC2A\", \"#E92AEC\"],\r\n },\r\n ],\r\n text: \"23%\",\r\n },\r\n options: {\r\n cutoutPercentage: 65,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: false,\r\n },\r\n plugins: {\r\n datalabels: {\r\n display: false,\r\n },\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: \"nearest\",\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n var label = labelsData[tooltipItem.index];\r\n return `${label}`;\r\n },\r\n },\r\n },\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst FinanceDoughnutChart = (ob) => {\r\n // ob.mmoCommission = 1;\r\n let seriesData = [\r\n ob.totalCollection,\r\n ob.totalCommission,\r\n // ob.walletComm,\r\n // ob.transfer\r\n ].map((i) => parseFloat(i.replace(/,/g, \"\")));\r\n var total = seriesData.reduce((a, v) => a + v);\r\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\r\n var labelsData = [\r\n \"Total Collection : \" + ob.totalCollection,\r\n // 'Bank Settlement : ' + getAmt(ob.settlementAmt),\r\n \"Total Commission : \" + ob.totalCommission,\r\n // 'Merchant Transfers : ' + getAmt(ob.transfer)\r\n ];\r\n let chart = {\r\n data: {\r\n labels: labelsData,\r\n datasets: [\r\n {\r\n data: inPercent,\r\n backgroundColor: [\r\n \"#314D24\",\r\n \"#A3EC2A\",\r\n \"#E92AEC\",\r\n // '#764E9E'\r\n ],\r\n hoverBackgroundColor: [\r\n \"#314D24\",\r\n \"#A3EC2A\",\r\n \"#E92AEC\",\r\n // '#764E9E'\r\n ],\r\n },\r\n ],\r\n text: \"23%\",\r\n },\r\n options: {\r\n cutoutPercentage: 65,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: false,\r\n },\r\n plugins: {\r\n datalabels: {\r\n display: false,\r\n },\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: \"nearest\",\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n var label = labelsData[tooltipItem.index];\r\n return `${label}`;\r\n },\r\n },\r\n },\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nconst SettlementDoughnutChart = (ob) => {\r\n // ob.mmoCommission = 1;\r\n let seriesData = [ob.settlementAmt, ob.transfer];\r\n var total = seriesData.reduce((a, v) => a + v);\r\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\r\n var labelsData = [\r\n \"Settlement Bank Balance : \" + getAmt(ob.settlementAmt),\r\n \"Merchant Settlement : \" + getAmt(ob.transfer),\r\n ];\r\n let chart = {\r\n data: {\r\n labels: labelsData,\r\n datasets: [\r\n {\r\n data: inPercent,\r\n backgroundColor: [\"#FF6384\", \"#36A2EB\"],\r\n hoverBackgroundColor: [\"#FF6384\", \"#36A2EB\"],\r\n },\r\n ],\r\n text: \"23%\",\r\n },\r\n options: {\r\n cutoutPercentage: 65,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: false,\r\n },\r\n plugins: {\r\n datalabels: {\r\n display: false,\r\n },\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: \"nearest\",\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n var label = labelsData[tooltipItem.index];\r\n return `${label}`;\r\n },\r\n },\r\n },\r\n },\r\n };\r\n return chart;\r\n};\r\n\r\nmodule.exports = {\r\n chartOptions, // used inside src/views/Index.js\r\n parseOptions, // used inside src/views/Index.js\r\n chartExample1, // used inside src/views/Index.js\r\n chartExample2, // used inside src/views/Index.js\r\n PendingChartData,\r\n CollectedChartData,\r\n PendingChartData2,\r\n CollectedChartData2,\r\n merchantMTDChartData,\r\n merchantYTDChartData,\r\n SubscriberChartData,\r\n subsMTDPayment,\r\n subsMTDWithDrawal,\r\n subsMTDWalletTrans,\r\n bankCommMTDChartData,\r\n bankCT_MTD,\r\n FinancePieChart,\r\n financeMTDCollection,\r\n financeMTDCommission,\r\n settlementMTDMerchant,\r\n SettlementPieChart,\r\n settlementMTDTransfer,\r\n doughnutCollectionChart,\r\n doughnutTransferredChartChart,\r\n FinanceDoughnutChart,\r\n SettlementDoughnutChart,\r\n financeMTDCollectionLC,\r\n};\r\n","// export const API_ENDPOINTS = \"https://smartpayapi.smartsystemsserver.xyz\";\r\n// export const LOGIN_API_ENDPOINTS = \"https://smartpayapi.smartsystemsserver.xyz\";\r\nexport const API_ENDPOINTS = \"https://api.smartpaysl.com\"; // prod\r\nexport const LOGIN_API_ENDPOINTS = \"https://api.smartpaysl.com\"; // prod\r\n// export const TOKEN = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyUm9sZSI6IkFkbWluIiwiVXNl\r\n// clR5cGUiOiJBZG1pbiIsImp0aSI6ImU5NDhkMzJkLTM4NzktNDU4Ny1hOTM5LTI1NmRhODUwZWU3ZSIsIm5iZiI6MTYxO\r\n// DMwMDk0NSwiZXhwIjoxNjQ5ODM2OTQ1LCJpc3MiOiJodHRwOi8vdGVzdC5jb20iLCJhdWQiOiJKVXRjZE1oZTZ4WDVtd0l\r\n// 3MXZiMnNCaVpaYjUzUm9ZUiJ9.XsnsHTEEsu03LMvVao-3BentRRWlDUVRHnJrYqm1Eik`;\r\n// export const API_ENDPOINTS = 'http://localhost:4800'; // Production Api url\r\nexport const TOKEN =\r\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyUm9sZSI6IkFkbWluIiwiVXNlclR5cGUiOiJBZG1pbiIsImp0aSI6ImU5NDhkMzJkLTM4NzktNDU4Ny1hOTM5LTI1NmRhODUwZWU3ZSIsIm5iZiI6MTYxODMwMDk0NSwiZXhwIjoxNjQ5ODM2OTQ1LCJpc3MiOiJodHRwOi8vdGVzdC5jb20iLCJhdWQiOiJKVXRjZE1oZTZ4WDVtd0l3MXZiMnNCaVpaYjUzUm9ZUiJ9.XsnsHTEEsu03LMvVao-3BentRRWlDUVRHnJrYqm1Eik\";\r\nexport const iconCss = {\r\n color: \"#6490CA\",\r\n};\r\n\r\nexport const btnCss = {\r\n cursor: \"pointer\",\r\n backgroundColor: \"transparent\",\r\n boxShadow: \"none\",\r\n border: \"none\",\r\n};\r\n\r\nexport const roles = [{ key: \"Finance\", value: \"Finance\" }];\r\n\r\nexport const bankType = [\r\n { key: \"Collection\", value: \"Collection Account\" },\r\n { key: \"Settlement\", value: \"Settlement Account\" },\r\n];\r\n\r\nexport const subsStatus = [\r\n { key: \"\", value: \"All\", className: \"bg-yellow\" },\r\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\r\n // {key: 'SendForApproval', value: 'Send for approval', className: 'bg-blue'},\r\n { key: \"Approved\", value: \"Approved\", className: \"bg-cyan\" },\r\n { key: \"Rejected\", value: \"Rejected\", className: \"bg-danger\" },\r\n // {key: 'Paid', value: 'Paid', className: 'bg-success'}\r\n];\r\n\r\nexport const collBankStatus = [\r\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\r\n // {key: 'SendForApproval', value: 'Send for approval', className: 'bg-blue'},\r\n { key: \"Approved\", value: \"Approved\", className: \"bg-cyan\" },\r\n { key: \"Rejected\", value: \"Rejected\", className: \"bg-danger\" },\r\n // {key: 'Paid', value: 'Paid', className: 'bg-success'}\r\n];\r\n\r\nexport const ReportStatus = [\r\n { key: \"Collected\", value: \"Collected\", className: \"bg-yellow\" },\r\n { key: \"InProcess\", value: \"In Process\", className: \"bg-orange\" },\r\n { key: \"Transferred\", value: \"Transferred\", className: \"bg-cyan\" },\r\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\r\n {\r\n key: \"CashTopUpSetteled\",\r\n value: \"Cash Topup Settled\",\r\n className: \"bg-success\",\r\n },\r\n {\r\n key: \"CashTopUpApproved\",\r\n value: \"Cash Topup Approved\",\r\n className: \"bg-blue\",\r\n },\r\n];\r\n\r\nexport const FinanceUserStatus = [\r\n { key: \"Collected\", value: \"Collected\", className: \"bg-yellow\" },\r\n { key: \"InProcess\", value: \"In Process\", className: \"bg-orange\" },\r\n // {key: 'SendForApproval', value: 'Send for approval', className: 'bg-blue'},\r\n { key: \"Transferred\", value: \"Transferred\", className: \"bg-cyan\" },\r\n // {key: 'Rejected', value: 'Rejected', className: 'bg-danger'},\r\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\r\n];\r\n\r\nexport const SettleBankUserStatus = [\r\n { key: \"\", value: \"All\", className: \"bg-yellow\" },\r\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\r\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\r\n];\r\n\r\nexport const DayEndReportStatus = [\r\n { key: \"\", value: \"All\", className: \"bg-yellow\" },\r\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\r\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\r\n {\r\n key: \"CashTopUpSetteled\",\r\n value: \"Cash Topup Settled\",\r\n className: \"bg-success\",\r\n },\r\n {\r\n key: \"CashTopUpApproved\",\r\n value: \"Cash Topup Approved\",\r\n className: \"bg-blue\",\r\n },\r\n];\r\n\r\nexport const AUTH_MODE = [\r\n { key: \"1FA\", value: \"1FA\" },\r\n { key: \"2FA\", value: \"2FA\" },\r\n];\r\n\r\nexport const MERCHANT_TYPE = [\r\n { key: \"Online\", value: \"Online\" },\r\n { key: \"POS\", value: \"POS\" },\r\n];\r\n\r\nexport const getFspCategories = () => {\r\n const arr = [\r\n ,\r\n ];\r\n [\r\n { key: \"Bank\", value: \"Bank\" },\r\n { key: \"MMO\", value: \"MMO\" },\r\n { key: \"EWO\", value: \"EWO\" },\r\n ].forEach((i) => {\r\n arr.push(\r\n \r\n );\r\n });\r\n\r\n return arr;\r\n};\r\n\r\nexport const NFC_OPTION = [\r\n { key: true, value: \"Enable\" },\r\n { key: false, value: \"Disable\" },\r\n];\r\n\r\nexport const getConfirmOptions = () => {\r\n const arr = [\r\n ,\r\n ];\r\n [\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].forEach((i) => {\r\n arr.push(\r\n \r\n );\r\n });\r\n\r\n return arr;\r\n};\r\n\r\nexport const GET_YEAR_LIST = () => {\r\n const year = new Date().getFullYear();\r\n const arr = [\r\n ,\r\n ];\r\n const max = 50;\r\n for (let i = 0; i < max; i++) {\r\n arr.push(\r\n \r\n );\r\n }\r\n return arr;\r\n};\r\n\r\nexport const AMOUNT_HINT = `While making payment of less than or equal this\r\namount your PIN is required, more than this amount PIN and OTP is required.`;\r\n\r\nexport const PIN_HINT = \"Used for making payment\";\r\n\r\nexport const PASSWORD_HINT = \"Used for login\";\r\n\r\nexport const SECRET_KEY = \"NICHEVOUCHERENCRYPTION\";\r\n\r\nexport const MOBILE_ONLY_COUNTRY = [\"sl\"];\r\n\r\nexport const CASH_TOPUP_HINT =\r\n \"* This commission will be applicable while doing top-up to the subscriber\";\r\n\r\nexport const knowledgeBaseItems = [\r\n {\r\n label: \"Overview\",\r\n },\r\n {\r\n label: \"Technical Background\",\r\n },\r\n {\r\n label: \"Subscriber Journey\",\r\n },\r\n {\r\n label: \"Master Agent Journey\",\r\n },\r\n {\r\n label: \"Super Agent Journey\",\r\n },\r\n {\r\n label: \"Sub Agent Journey\",\r\n },\r\n {\r\n label: \"Merchant Journey\",\r\n },\r\n {\r\n label: \"Bank User Journey\",\r\n },\r\n // {\r\n // label: \"API Informations\",\r\n // },\r\n {\r\n label: \"Legal Information\",\r\n },\r\n {\r\n label: \"Contact Us\",\r\n },\r\n];\r\n","export default __webpack_public_path__ + \"static/media/branchGif.e1f6aa54.gif\";","export default \"data:image/png;base64,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\"","import React, { useEffect } from \"react\";\r\nimport {\r\n DropdownMenu,\r\n DropdownItem,\r\n UncontrolledDropdown,\r\n DropdownToggle,\r\n Navbar,\r\n Nav,\r\n Container,\r\n Media,\r\n} from \"reactstrap\";\r\nimport { useHistory } from \"react-router\";\r\nimport {\r\n getLoginType,\r\n getUserB64,\r\n getUserEmail,\r\n getUserName,\r\n postMethod,\r\n setUserB64,\r\n} from \"../../services/httpServices\";\r\nimport { connect } from \"react-redux\";\r\nimport swal from \"sweetalert2\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nconst AdminNavbar = (props) => {\r\n const history = useHistory();\r\n const profileImage = getUserB64();\r\n const userName = getUserName();\r\n const userEmail = getUserEmail();\r\n const loginType = getLoginType();\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const logout = (e) => {\r\n e.preventDefault();\r\n // window.localStorage.clear();\r\n // setUserB64(null);\r\n // history.push('/auth/login');\r\n // postMethod('/api/auth/LogOff', {}, 'post')\r\n // .then(()=> {\r\n // }).catch(e => {\r\n // console.log('Error', e);\r\n // })\r\n openModal(\"Please wait system is logging out...\");\r\n };\r\n\r\n const openModal = (msg) => {\r\n swal.fire({\r\n // title: 'Uploading...',\r\n html: msg,\r\n customClass: \"logout-modal\",\r\n allowEscapeKey: false,\r\n allowOutsideClick: false,\r\n didOpen: () => {\r\n swal.showLoading();\r\n },\r\n });\r\n postMethod(\"/api/auth/LogOff\", {}, \"post\")\r\n .then((res) => {\r\n let errorMsg = \"\";\r\n swal.close();\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n window.localStorage.clear();\r\n setUserB64(null);\r\n history.push(\"/auth/login\");\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in log out\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in log out\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((e) => {\r\n swal.close();\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const changepswd = (e) => {\r\n e.preventDefault();\r\n history.push(\"/change-password\");\r\n };\r\n\r\n const changepin = (e) => {\r\n e.preventDefault();\r\n history.push(\"/change-pin\");\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {props.brandText}\r\n \r\n {/* \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state };\r\n};\r\n// const mapDispatchToProps = (dispatch) => {\r\n// return {\r\n// setImg: (data) => dispatch(setUserImage(data)),\r\n// };\r\n// };\r\n\r\nexport default connect(mapStateToProps)(AdminNavbar);","/*!\r\n\r\n=========================================================\r\n* Argon Dashboard React - v1.2.0\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/argon-dashboard-react\r\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\r\n* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard-react/blob/master/LICENSE.md)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { NavLink as NavLinkRRD, Link } from \"react-router-dom\";\r\n// nodejs library to set properties for components\r\nimport { PropTypes } from \"prop-types\";\r\n\r\n// reactstrap components\r\nimport {\r\n Collapse,\r\n Form,\r\n NavbarBrand,\r\n Navbar,\r\n NavItem,\r\n NavLink,\r\n Nav,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport { getLoginType, getUserName } from \"../../services/httpServices\";\r\nimport { routePermissions } from \"services/util\";\r\n\r\nconst COLOR = \"#6490CA\";\r\nconst Sidebar = (props) => {\r\n const [collapseOpen, setCollapseOpen] = useState();\r\n const navbarRef = useRef(null);\r\n // verifies if routeName is the one active (in browser input)\r\n // const activeRoute = (routeName) => {\r\n // return props.location.pathname.indexOf(routeName) > -1 ? \"active\" : \"\";\r\n // };\r\n // toggles collapse between opened and closed (true/false)\r\n\r\n useEffect(() => {\r\n let scrollPosition = localStorage.getItem(\"scrollPosition\");\r\n if (scrollPosition) {\r\n document.getElementById(\"sidenav-main\").scrollTop = scrollPosition;\r\n }\r\n }, []);\r\n\r\n const handleScroll = (e) => {\r\n if (navbarRef.current) {\r\n localStorage.setItem(\"scrollPosition\", e?.target?.scrollTop);\r\n }\r\n };\r\n const toggleCollapse = () => {\r\n setCollapseOpen((data) => !data);\r\n };\r\n // closes the collapse\r\n const closeCollapse = () => {\r\n setCollapseOpen(false);\r\n };\r\n // creates the links that appear in the left menu / Sidebar\r\n const createLinks = (routes) => {\r\n return routes.map((prop, key) => {\r\n let navItem = (\r\n \r\n \r\n \r\n {prop.name}\r\n \r\n \r\n );\r\n let item = null;\r\n let route = routePermissions.find((i) => i.name === getLoginType());\r\n\r\n if (prop.hideFromMenu === true) {\r\n item = null;\r\n } else if (prop.common === true) {\r\n item = navItem;\r\n } else if (\r\n getUserName().trim() !== \"EDSA\" &&\r\n prop.path === \"/EDSATransactionsMerchant\"\r\n ) {\r\n item = null;\r\n } else if (route?.name) {\r\n if (\r\n prop.layout === route.layout ||\r\n (prop.allow &&\r\n prop.allow.length &&\r\n prop.allow.indexOf(route.name) > -1)\r\n ) {\r\n item = navItem;\r\n } else {\r\n item = null;\r\n }\r\n }\r\n return item;\r\n });\r\n };\r\n\r\n const { routes, logo } = props;\r\n // let navbarBrandProps;\r\n if (logo && logo.innerLink) {\r\n // navbarBrandProps = {\r\n // to: logo.innerLink,\r\n // tag: Link,\r\n // };\r\n } else if (logo && logo.outterLink) {\r\n // navbarBrandProps = {\r\n // href: logo.outterLink,\r\n // target: \"_blank\",\r\n // };\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {/* Toggler */}\r\n \r\n \r\n \r\n {/* Brand */}\r\n {logo ? (\r\n \r\n \r\n

SmartPay

\r\n
\r\n ) : null}\r\n {/* User */}\r\n {/* */}\r\n {/* Collapse */}\r\n \r\n {/* Collapse header */}\r\n
\r\n \r\n {logo ? (\r\n \r\n {logo.imgAlt}\r\n {logo.innerLink ? (\r\n \r\n {logo.imgAlt}\r\n \r\n ) : (\r\n \r\n {logo.imgAlt}\r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/* Form */}\r\n
\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n
\r\n {/* Navigation */}\r\n \r\n {/* Divider */}\r\n {/*
*/}\r\n {/* Heading */}\r\n {/*
Documentation
*/}\r\n {/* Navigation */}\r\n {/* \r\n \r\n */}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nSidebar.defaultProps = {\r\n routes: [{}],\r\n};\r\n\r\nSidebar.propTypes = {\r\n // links that will be displayed inside the component\r\n routes: PropTypes.arrayOf(PropTypes.object),\r\n logo: PropTypes.shape({\r\n // innerLink is for links that will direct the user within the app\r\n // it will be rendered as ... tag\r\n innerLink: PropTypes.string,\r\n // outterLink is for links that will direct the user outside the app\r\n // it will be rendered as simple ... tag\r\n outterLink: PropTypes.string,\r\n // the image src of the logo\r\n imgSrc: PropTypes.string.isRequired,\r\n // the alt for the img\r\n imgAlt: PropTypes.string.isRequired,\r\n }),\r\n};\r\n\r\nexport default Sidebar;","/*!\r\n\r\n=========================================================\r\n* Argon Dashboard React - v1.2.0\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/argon-dashboard-react\r\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\r\n* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard-react/blob/master/LICENSE.md)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport { Container } from \"reactstrap\";\r\n\r\nconst Header = () => {\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\n\r\nconst loaderContainer = {\r\n position: 'fixed',\r\n top: '290px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst loader = {\r\n left: '55%',\r\n top: '50%',\r\n zIndex: '1000',\r\n position: 'absolute'\r\n};\r\n\r\nconst FullPageLoader = (props) => {\r\n\r\n const outerDiv = props && props.loaderContainer ? props.loaderContainer : loaderContainer;\r\n const innerDiv = props && props.loader ? props.loader : loader;\r\n return (\r\n
\r\n
\r\n {/* \r\n */}\r\n {/* {props.label ? props.label : 'Loading.....'} */}\r\n
\r\n \r\n
\r\n  \r\n Loading...\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default FullPageLoader;","import React, { useEffect } from \"react\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Container,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\n\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\nconst VoucherWallet = (props) => {\r\n const [loading, setLoading] = React.useState(true);\r\n const [amount, setAmount] = React.useState(10000);\r\n const [success, setSuccess] = React.useState(2);\r\n const { addToast } = useToasts();\r\n\r\n const getAmt = (val) => {\r\n let amt = Number(val);\r\n return amt.toLocaleString();\r\n }\r\n\r\n // setTimeout(() => {\r\n // setLoading(false);\r\n // }, 5000);\r\n\r\n useEffect(()=> {\r\n fetchBalance();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n setLoading(true);\r\n postMethod('/api/Subscriber/GetByUserId/' + id, {}, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setSuccess(1);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n setSuccess(0);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n setSuccess(0);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setSuccess(0);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n setSuccess(0);\r\n });\r\n }\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Voucher Wallet

\r\n \r\n
\r\n
\r\n \r\n {loading && }\r\n {!loading &&
\r\n \r\n \r\n {success == 1 && }\r\n\r\n {success == 0 && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {success == 1 && }\r\n \r\n \r\n \r\n
}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default VoucherWallet;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { merchantMTDChartData, merchantYTDChartData } from \"variables/charts\";\r\nimport { daysInMonth, daysInArray, MonthArraySM } from \"services/util\";\r\nimport { getLoginType } from \"services/httpServices\";\r\n\r\nconst MerchantHeader = (props) => {\r\n const [totalAmt, setAmount] = React.useState(\"\");\r\n const [totalPayable, setTotalPayable] = React.useState(\"\");\r\n const [currentMonthAmt, setCurrentMonthAmt] = React.useState(\"\");\r\n const [todayAmt, setTodayAmt] = React.useState(\"\");\r\n const [totalCashTopUp, setTotalCashTopUp] = React.useState(\"\");\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const [showTopupList, setShowTopupList] = React.useState(false);\r\n const [topupList, setTopupList] = React.useState([]);\r\n const [totalTopupAmount, setTotalTopupAmout] = React.useState(0);\r\n const [dashboardInfo, setDashboardInfo] = useState({\r\n todaySales: 0,\r\n todayCommissions: 0,\r\n totalTodaySales: 0,\r\n mtdSales: 0,\r\n mtdCommissions: 0,\r\n totalMTDSales: 0,\r\n ytdSales: 0,\r\n ytdCommissions: 0,\r\n totalYTDSales: 0,\r\n aspt: 0,\r\n asptAmount: 0,\r\n asptCommission: 0,\r\n asptStatus: \"RED\",\r\n dailySales: [],\r\n monthlySales: [],\r\n });\r\n const { addToast } = useToasts();\r\n const loginUser = getLoginType()\r\nconsole.log({loginUser})\r\n\r\n useEffect(() => {\r\n fetchBalance();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const getGraphData = (input) => {\r\n return Object.values(\r\n input.reduce((acc, item) => {\r\n const date = new Date(item.Key);\r\n const month = date.getMonth() + 1; // Adding 1 because getMonth() returns zero-based month index\r\n if (!acc[month]) {\r\n acc[month] = {\r\n month: month,\r\n amount: item.Value,\r\n };\r\n } else {\r\n acc[month].amount += item.Value;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n };\r\n\r\n const getDayData = (input) => {\r\n return Object.values(\r\n input.reduce((acc, item) => {\r\n const date = new Date(item.Key);\r\n const day = date.getDate(); // Extracting the day number\r\n if (!acc[day]) {\r\n acc[day] = {\r\n day: day,\r\n amount: item.Value,\r\n };\r\n } else {\r\n acc[day].amount += item.Value;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n };\r\n const fetchBalance = () => {\r\n let errorMsg = \"\";\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod(\r\n \"/api/MerchantProfile/DashboardData?MerchantId=\" + id,\r\n {},\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setBalLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let monthArr = MonthArraySM;\r\n let dataArr = [];\r\n for (let i = 1; i <= 12; i++) {\r\n let val = getGraphData(res.data.result?.monthlySales).find(\r\n (l) => l.month == i\r\n );\r\n if (val && val.hasOwnProperty(\"amount\")) {\r\n dataArr.push(Number(val.amount));\r\n } else {\r\n dataArr.push(0);\r\n }\r\n }\r\n let ytdChart = merchantYTDChartData({\r\n monthArr: monthArr,\r\n dataArr: dataArr,\r\n });\r\n\r\n props.showMerchantYTD(ytdChart);\r\n props.showMerchantYTDLoader();\r\n\r\n setData(res.data.result);\r\n setDashboardInfo(res.data.result);\r\n\r\n let month = Number(props.merchantMTDMonth);\r\n let year = Number(props.merchantMTDYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = getDayData(res.data.result?.dailySales).find(\r\n (l) => l.day == arr[i]\r\n );\r\n if (val && val.hasOwnProperty(\"amount\")) {\r\n valArr.push(Number(val.amount));\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = merchantMTDChartData({\r\n daysArr: arr,\r\n dataArr: valArr,\r\n });\r\n props.showMerchantMTD(mtdChart);\r\n props.showMerchantMTDLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setBalLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const setData = (resp) => {\r\n let paid = resp.totalReceived ? Number(resp.totalReceived) : 0;\r\n let pending = resp.totalPending ? Number(resp.totalPending) : 0;\r\n let monthAmt = resp.monthlyReceived ? Number(resp.monthlyReceived) : 0;\r\n let todayAmt = resp.todayReceived ? Number(resp.todayReceived) : 0;\r\n let cashTopUp = resp.totalTopUp ? Number(resp.totalTopUp) : 0;\r\n setAmount(paid);\r\n setTotalPayable(pending);\r\n setCurrentMonthAmt(monthAmt);\r\n setTodayAmt(todayAmt);\r\n setTotalCashTopUp(cashTopUp);\r\n setTopupList(resp?.topupToPlatform);\r\n let total = 0;\r\n if (resp?.topupToPlatform?.length) {\r\n resp?.topupToPlatform?.forEach((item) => {\r\n total += item?.totalAmount;\r\n }, 0);\r\n }\r\n setTotalTopupAmout(total);\r\n };\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n ASPT\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.aspt)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n ASPT Amount\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.asptAmount)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n ASPT Commission\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.asptCommission)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n ASPT Status\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n
\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Today Commissions\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.todayCommissions)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n setShowTopupList(!showTopupList)}\r\n >\r\n \r\n \r\n
\r\n \r\n MTD Commissions\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.mtdCommissions)}\r\n \r\n )}\r\n

\r\n
\r\n \r\n \r\n \r\n setShowTopupList(!showTopupList)}\r\n >\r\n \r\n \r\n
\r\n \r\n YTD Commissions\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.ytdCommissions)}\r\n \r\n )}\r\n

\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Today Sales\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.todaySales)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n MTD Sales\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.mtdSales)}\r\n \r\n )}\r\n

\r\n
\r\n \r\n \r\n \r\n setShowTopupList(!showTopupList)}\r\n >\r\n \r\n \r\n
\r\n \r\n YTD Sales\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.ytdSales)}\r\n \r\n )}\r\n

\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total today's Sales\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.totalTodaySales)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total MTD sales\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.totalMTDSales)}\r\n \r\n )}\r\n

\r\n
\r\n \r\n \r\n \r\n setShowTopupList(!showTopupList)}\r\n >\r\n \r\n \r\n
\r\n \r\n Total YTD Sales\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(dashboardInfo.totalYTDSales)}\r\n \r\n )}\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MerchantHeader;\r\n","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport {\r\n PendingChartData,\r\n CollectedChartData,\r\n PendingChartData2,\r\n CollectedChartData2,\r\n doughnutCollectionChart,\r\n doughnutTransferredChartChart,\r\n subsMTDWalletTrans,\r\n} from \"variables/charts\";\r\nimport { daysInMonth, daysInArray, MonthArraySM } from \"services/util\";\r\nimport { financeMTDCommission } from \"variables/charts\";\r\n\r\nconst AdminHeader = (props) => {\r\n const [totalMasterAgentBalance, setTotalMasterAgentBalance] =\r\n React.useState(0);\r\n const [totalSuperAgentBalance, setTotalSuperAgentBalance] = React.useState(0);\r\n const [totalSubAgentBalance, setTotalSubAgentBalance] = React.useState(0);\r\n const [customerTopupCumulative, setCustomerTopupCumulative] =\r\n React.useState(0);\r\n const [totalWalletAmt, setWalletAmt] = React.useState(0);\r\n const [totalPayable, setTotalPayable] = React.useState(0);\r\n const [totalCommission, setTotalCommission] = React.useState(0);\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const [subagentList, setSubagentList] = React.useState([]);\r\n const [superagentList, setSuperagentList] = React.useState([]);\r\n const [masteragentList, setMasteragentList] = React.useState([]);\r\n const [showSuperAgentsList, setShowSuperAgentsList] = React.useState(false);\r\n const [showSubAgentsList, setShowSubAgentsList] = React.useState(false);\r\n const [showMasterAgentsList, setShowMasterAgentsList] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchBalance();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = \"\";\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod(\"/api/Admin/AdminDashboard\", {}, \"post\")\r\n .then((res) => {\r\n setBalLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty(\"totalWalletBalance\")) {\r\n setWalletAmt(res.data.result.totalWalletBalance);\r\n }\r\n if (res.data.result.hasOwnProperty(\"totalPayable\")) {\r\n setTotalPayable(res.data.result.totalPayable);\r\n }\r\n if (res.data.result.hasOwnProperty(\"totalMasterAgentBalance\")) {\r\n setTotalMasterAgentBalance(\r\n res.data.result.totalMasterAgentBalance\r\n );\r\n }\r\n if (res.data.result.hasOwnProperty(\"totalSuperAgentBalance\")) {\r\n setTotalSuperAgentBalance(res.data.result.totalSuperAgentBalance);\r\n }\r\n if (res.data.result.hasOwnProperty(\"totalSubAgentBalance\")) {\r\n setTotalSubAgentBalance(res.data.result.totalSubAgentBalance);\r\n }\r\n if (res.data.result.hasOwnProperty(\"totalCommission\")) {\r\n setTotalCommission(res.data.result.totalCommission);\r\n }\r\n if (res.data.result.hasOwnProperty(\"customerTopupCumulative\")) {\r\n setCustomerTopupCumulative(\r\n res.data.result.customerTopupCumulative\r\n );\r\n }\r\n if (res.data.result.hasOwnProperty(\"subagentList\")) {\r\n setSubagentList(res.data.result.subagentList);\r\n } else {\r\n setSubagentList([]);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"superagentList\")) {\r\n setSuperagentList(res.data.result.superagentList);\r\n } else {\r\n setSuperagentList([]);\r\n }\r\n if (res.data.result.hasOwnProperty(\"masteragentList\")) {\r\n setMasteragentList(res.data.result.masteragentList);\r\n } else {\r\n setMasteragentList([]);\r\n }\r\n setCharts(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setBalLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const setCharts = (result) => {\r\n setChartData(result);\r\n setCollectedChartData(result);\r\n };\r\n\r\n const setChartData = (result) => {\r\n // let pendingChart = PendingChartData();\r\n let ob = {\r\n bankCommission: 0,\r\n mmoCommission: 0,\r\n merchantCommission: 0,\r\n subAgentCommissionCumulative: 0,\r\n };\r\n if (\r\n result.hasOwnProperty(\"bankCommission\") &&\r\n result.bankCommission.length\r\n ) {\r\n let obj = result.bankCommission.find((ob) => ob.status == \"Collected\");\r\n if (obj && obj.commissionAmount) {\r\n ob.bankCommission = obj.commissionAmount;\r\n }\r\n }\r\n\r\n if (result.hasOwnProperty(\"mmoCommission\") && result.mmoCommission.length) {\r\n let obj = result.mmoCommission.find((ob) => ob.status == \"Collected\");\r\n if (obj && obj.commissionAmount) {\r\n ob.mmoCommission = obj.commissionAmount;\r\n }\r\n }\r\n\r\n if (\r\n result.hasOwnProperty(\"merchantCommission\") &&\r\n result.merchantCommission.length\r\n ) {\r\n let obj = result.merchantCommission.find(\r\n (ob) => ob.status == \"Collected\"\r\n );\r\n if (obj && obj.commissionAmount) {\r\n ob.merchantCommission = obj.commissionAmount;\r\n }\r\n }\r\n\r\n if (\r\n result.hasOwnProperty(\"subAgentCommissionCumulative\") &&\r\n result.subAgentCommissionCumulative.length\r\n ) {\r\n let obj = result.subAgentCommissionCumulative.find(\r\n (ob) => ob.status == \"Collected\"\r\n );\r\n if (obj && obj.commissionAmount) {\r\n ob.subAgentCommissionCumulative = obj.commissionAmount;\r\n }\r\n }\r\n\r\n // ob.merchantCommission = 6282243.26;\r\n\r\n // let pendingChart = PendingChartData2(ob);\r\n let pendingChart = doughnutCollectionChart(ob);\r\n console.log(pendingChart, ob);\r\n props.showPendingChart(pendingChart);\r\n };\r\n\r\n const fetchMTDCommission = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n Year: Number(props.financeMTDCommYear),\r\n Month: Number(props.financeMTDCommMonth) + 1,\r\n };\r\n postMethod(\r\n \"/api/Dashboard/V2/FinanceUser/MonthlyBarChartCommissionCollection\",\r\n data,\r\n \"post\"\r\n )\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res.data.result &&\r\n res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.financeMTDColltnMonth);\r\n let year = Number(props.financeMTDColltnYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n let totalComm = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find((l) => l.day == arr[i]);\r\n if (val && val.hasOwnProperty(\"amount\")) {\r\n valArr.push(Number(val.amount));\r\n totalComm = totalComm + Number(val.amount);\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = financeMTDCommission({\r\n daysArr: arr,\r\n dataArr: valArr,\r\n totalComm: totalComm,\r\n });\r\n console.log(({mtdChart}))\r\n props.showFinanceMTDComm(mtdChart);\r\n props.showFinanceMTDCommLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDCommLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDCommLoader(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDCommLoader(false);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.showFinanceMTDCommLoader(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n props.showFinanceMTDCommLoader(true);\r\n fetchMTDCommission();\r\n }, [props.financeMTDCommMonth]);\r\n\r\n useEffect(()=> {\r\n props.showFinanceMTDCommLoader(true);\r\n fetchMTDCommission();\r\n }, [props.financeMTDCommYear]);\r\n\r\n const setCollectedChartData = (result) => {\r\n // For Bar Chart\r\n // let pendingChart = CollectedChartData();\r\n\r\n // For Pie Chart\r\n let ob = {\r\n bankCommission: 0,\r\n mmoCommission: 0,\r\n merchantCommission: 0,\r\n };\r\n\r\n if (\r\n result.hasOwnProperty(\"bankCommission\") &&\r\n result.bankCommission.length\r\n ) {\r\n let obj = result.bankCommission.find((ob) => ob.status == \"Transferred\");\r\n if (obj && obj.commissionAmount) {\r\n ob.bankCommission = obj.commissionAmount;\r\n }\r\n }\r\n\r\n if (result.hasOwnProperty(\"mmoCommission\") && result.mmoCommission.length) {\r\n let obj = result.mmoCommission.find((ob) => ob.status == \"Transferred\");\r\n if (obj && obj.commissionAmount) {\r\n ob.mmoCommission = obj.commissionAmount;\r\n }\r\n }\r\n\r\n if (\r\n result.hasOwnProperty(\"merchantCommission\") &&\r\n result.merchantCommission.length\r\n ) {\r\n let obj = result.merchantCommission.find(\r\n (ob) => ob.status == \"Transferred\"\r\n );\r\n if (obj && obj.commissionAmount) {\r\n ob.merchantCommission = obj.commissionAmount;\r\n }\r\n }\r\n let pendingChart = doughnutTransferredChartChart(ob);\r\n props.showCollectedChart(pendingChart);\r\n };\r\n\r\n const setData = (resp) => {\r\n let paid = 0;\r\n let pending = 0;\r\n let monthAmt = 0;\r\n for (let i = 0; i < resp.length; i++) {\r\n if (resp[i].status === \"Pending\") {\r\n pending = pending + resp[i].amount;\r\n } else if (resp[i].status === \"Paid\") {\r\n paid = paid + resp[i].amount;\r\n } else if (resp[i].status === \"Monthly\") {\r\n monthAmt = monthAmt + resp[i].amount;\r\n }\r\n }\r\n setWalletAmt(paid);\r\n setTotalPayable(pending);\r\n };\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n };\r\n\r\n /**========================= MTD Wallet Transfer ===================================== */\r\n\r\n useEffect(() => {\r\n props.showAdminMTDWalletTransLoader(true);\r\n setAdminMTDWalletTrans();\r\n }, [props.adminMTDWalletTransMonth]);\r\n\r\n useEffect(() => {\r\n props.showAdminMTDWalletTransLoader(true);\r\n setAdminMTDWalletTrans();\r\n }, [props.adminMTDWalletTransYear]);\r\n\r\n useEffect(() => {\r\n props.showSubAgentMTDWalletTransLoader(true);\r\n setSubAgentMTDWalletTrans();\r\n }, [props.subAgentMTDWalletTransMonth]);\r\n\r\n useEffect(() => {\r\n props.showSubAgentMTDWalletTransLoader(true);\r\n setSubAgentMTDWalletTrans();\r\n }, [props.subAgentMTDWalletTransYear]);\r\n\r\n const setAdminMTDWalletTrans = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n Year: Number(props.adminMTDWalletTransYear),\r\n Month: Number(props.adminMTDWalletTransMonth) + 1,\r\n Status: \"Paid\",\r\n };\r\n if (!data.Month || !data.Year) {\r\n return;\r\n }\r\n postMethod(\"/api/dashboard/MonthlyCustomerCashTopup\", data, \"post\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res.data.result &&\r\n res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.adminMTDWalletTransMonth);\r\n let year = Number(props.adminMTDWalletTransYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let sendArr = [];\r\n let getArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find((l) => l.day == arr[i]);\r\n if (val && val.hasOwnProperty(\"transferFrom\")) {\r\n getArr.push(Number(val.transferFrom));\r\n } else {\r\n getArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty(\"transferTo\")) {\r\n sendArr.push(Number(val.transferTo));\r\n } else {\r\n sendArr.push(0);\r\n }\r\n }\r\n let mtdChart = subsMTDWalletTrans({\r\n daysArr: arr,\r\n getArr: getArr,\r\n sendArr: sendArr,\r\n });\r\n props.showAdminMTDWalletTrans(mtdChart);\r\n props.showAdminMTDWalletTransLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showAdminMTDWalletTransLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showAdminMTDWalletTransLoader(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.showAdminMTDWalletTransLoader(false);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.showAdminMTDWalletTransLoader(false);\r\n });\r\n };\r\n\r\n const setSubAgentMTDWalletTrans = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n Year: Number(props.subAgentMTDWalletTransYear),\r\n Month: Number(props.subAgentMTDWalletTransMonth) + 1,\r\n Status: \"Paid\",\r\n };\r\n if (!data.Month || !data.Year) {\r\n return;\r\n }\r\n postMethod(\"/api/dashboard/MonthlySubAgentCommissionMTD\", data, \"post\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res.data.result &&\r\n res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.subAgentMTDWalletTransMonth);\r\n let year = Number(props.subAgentMTDWalletTransYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let sendArr = [];\r\n let getArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find((l) => l.day == arr[i]);\r\n if (val && val.hasOwnProperty(\"transferFrom\")) {\r\n getArr.push(Number(val.transferFrom));\r\n } else {\r\n getArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty(\"transferTo\")) {\r\n sendArr.push(Number(val.transferTo));\r\n } else {\r\n sendArr.push(0);\r\n }\r\n }\r\n let mtdChart = subsMTDWalletTrans({\r\n daysArr: arr,\r\n getArr: getArr,\r\n sendArr: sendArr,\r\n });\r\n props.showSubAgentMTDWalletTrans(mtdChart);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n });\r\n };\r\n\r\n const showAgentsList = (list) => {\r\n return list.map((item, idx) => (\r\n
\r\n
\r\n {item?.firstName} {item?.lastName}\r\n
\r\n
{getAmt(item?.balance)}
\r\n
\r\n ));\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n\r\n \r\n {/* \r\n \r\n \r\n \r\n
\r\n \r\n Total Wallet Amount\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalWalletAmt)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n */}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Payable\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalPayable)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Commission Amount\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalCommission)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n setShowMasterAgentsList(!showMasterAgentsList)}\r\n >\r\n \r\n \r\n
\r\n \r\n Master Agent Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalMasterAgentBalance)}\r\n \r\n )}\r\n

\r\n {showMasterAgentsList && (\r\n \r\n {showAgentsList(masteragentList)}\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n setShowSuperAgentsList(!showSuperAgentsList)}\r\n >\r\n \r\n \r\n
\r\n \r\n Super Agent Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalSuperAgentBalance)}\r\n \r\n )}\r\n

\r\n {showSuperAgentsList && (\r\n \r\n {showAgentsList(superagentList)}\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n setShowSubAgentsList(!showSubAgentsList)}\r\n >\r\n \r\n \r\n
\r\n \r\n Sub Agent Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalSubAgentBalance)}\r\n \r\n )}\r\n

\r\n {showSubAgentsList && (\r\n \r\n {showAgentsList(subagentList)}\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Customer Topup Cumulative\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(customerTopupCumulative)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AdminHeader;\r\n","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { subsMTDWithDrawal, subsMTDPayment, subsMTDWalletTrans } from \"variables/charts\";\r\nimport { daysInMonth, daysInArray, MonthArraySM } from \"services/util\";\r\n\r\n\r\nconst SubscriberHeader = (props) => {\r\n const [totalAmt, setAmount] = React.useState('');\r\n const [bankWithDraw, setBankWithDraw] = React.useState('');\r\n const [mmoWithDraw, setMMOWithDraw] = React.useState('');\r\n const [merchantPayment, setMerchantPayment] = React.useState('');\r\n const [receivedAmt, setReceivedAmt] = React.useState('');\r\n const [transferAmt, setTransferAmt] = React.useState('');\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(()=> {\r\n fetchBalance();\r\n }, []);\r\n\r\n /**===================== MTD Withdrawals ======================== */\r\n\r\n useEffect(()=> {\r\n props.showSubsMTDWithDrawLoader(true);\r\n setMTDWithDrawChart();\r\n }, [props.subsMTDWithDrawMonth]);\r\n\r\n useEffect(()=> {\r\n props.showSubsMTDWithDrawLoader(true);\r\n setMTDWithDrawChart();\r\n }, [props.subsMTDWithDrawYear]);\r\n\r\n\r\n\r\n /**========================= MTD Payment ===================================== */\r\n\r\n useEffect(()=> {\r\n props.showSubsMTDPaymentLoader(true);\r\n setMTDPaymentChart();\r\n }, [props.subsMTDPaymentMonth]);\r\n\r\n useEffect(()=> {\r\n props.showSubsMTDPaymentLoader(true);\r\n setMTDPaymentChart();\r\n }, [props.subsMTDPaymentYear]);\r\n\r\n /**========================= MTD Wallet Transfer ===================================== */\r\n\r\n useEffect(()=> {\r\n props.showSubsMTDWalletTransLoader(true);\r\n setMTDWalletTrans();\r\n }, [props.subsMTDWalletTransMonth]);\r\n\r\n useEffect(()=> {\r\n props.showSubsMTDWalletTransLoader(true);\r\n setMTDWalletTrans();\r\n }, [props.subsMTDWalletTransYear]);\r\n\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod('/api/dashboard/subscriber/', {}, 'post')\r\n .then(res => {\r\n setBalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('totalWalletBalance')) {\r\n setAmount(res.data.result.totalWalletBalance);\r\n } else {\r\n setAmount(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalBankWithdrawals')) {\r\n setBankWithDraw(res.data.result.totalBankWithdrawals);\r\n } else {\r\n setBankWithDraw(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalMMOWithdrawals')) {\r\n setMMOWithDraw(res.data.result.totalMMOWithdrawals);\r\n } else {\r\n setMMOWithDraw(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalMerchantPayments')) {\r\n setMerchantPayment(res.data.result.totalMerchantPayments);\r\n } else {\r\n setMerchantPayment(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalReceived')) {\r\n setReceivedAmt(res.data.result.totalReceived);\r\n } else {\r\n setReceivedAmt(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalTransfers')) {\r\n setTransferAmt(res.data.result.totalTransfers);\r\n } else {\r\n setTransferAmt(0);\r\n }\r\n\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setBalLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n\r\n const setMTDWithDrawChart = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.subsMTDWithDrawYear),\r\n 'Month': Number(props.subsMTDWithDrawMonth) + 1,\r\n 'Status': 'Paid'\r\n };\r\n postMethod('/api/dashboard/subscriber/monthlywithdrawals/', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n\r\n let month = Number(props.subsMTDWithDrawMonth);\r\n let year = Number(props.subsMTDWithDrawYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let bankArr = [];\r\n let mmoArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('bankWithdrawal')) {\r\n bankArr.push(Number(val.bankWithdrawal));\r\n } else {\r\n bankArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty('mmoWithdrawal')) {\r\n mmoArr.push(Number(val.mmoWithdrawal));\r\n } else {\r\n mmoArr.push(0);\r\n }\r\n }\r\n \r\n let mtdChart = subsMTDWithDrawal({\r\n daysArr: arr, \r\n bankArr: bankArr,\r\n mmoArr: mmoArr\r\n });\r\n props.showSubsMTDWithDraw(mtdChart);\r\n props.showSubsMTDWithDrawLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDWithDrawLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDWithDrawLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDWithDrawLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showSubsMTDWithDrawLoader(false);\r\n });\r\n }\r\n\r\n const setMTDPaymentChart = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.subsMTDPaymentYear),\r\n 'Month': Number(props.subsMTDPaymentMonth) + 1,\r\n 'Status': 'Paid'\r\n };\r\n postMethod('/api/dashboard/subscriber/MonthlyMerchantPayment/', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.subsMTDPaymentMonth);\r\n let year = Number(props.subsMTDPaymentYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let bankArr = [];\r\n let walletArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('bankPayment')) {\r\n bankArr.push(Number(val.bankPayment));\r\n } else {\r\n bankArr.push(0);\r\n }\r\n\r\n if (val && val.hasOwnProperty('walletPayment')) {\r\n walletArr.push(Number(val.walletPayment));\r\n } else {\r\n walletArr.push(0);\r\n }\r\n }\r\n let mtdChart = subsMTDPayment({daysArr: arr, bankArr: bankArr, walletArr: walletArr});\r\n props.showSubsMTDPayment(mtdChart);\r\n props.showSubsMTDPaymentLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDPaymentLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDPaymentLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDPaymentLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showSubsMTDPaymentLoader(false);\r\n });\r\n }\r\n\r\n const setMTDWalletTrans = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.subsMTDWalletTransYear),\r\n 'Month': Number(props.subsMTDWalletTransMonth) + 1,\r\n 'Status': 'Paid'\r\n };\r\n postMethod('/api/dashboard/subscriber/MonthlyBalanceTransfer/', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.subsMTDWalletTransMonth);\r\n let year = Number(props.subsMTDWalletTransYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let sendArr = [];\r\n let getArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('transferFrom')) {\r\n getArr.push(Number(val.transferFrom));\r\n } else {\r\n getArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty('transferTo')) {\r\n sendArr.push(Number(val.transferTo));\r\n } else {\r\n sendArr.push(0);\r\n }\r\n }\r\n let mtdChart = subsMTDWalletTrans({\r\n daysArr: arr, \r\n getArr: getArr,\r\n sendArr: sendArr\r\n });\r\n props.showSubsMTDWalletTrans(mtdChart);\r\n props.showSubsMTDWalletTransLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDWalletTransLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDWalletTransLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showSubsMTDWalletTransLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showSubsMTDWalletTransLoader(false);\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Available Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(totalAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank WithDrawals\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(bankWithDraw)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n MMO WithDrawals\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(mmoWithDraw)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Payments\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(merchantPayment)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Wallet Transfer\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(transferAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Wallet Received\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(receivedAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SubscriberHeader;","\r\nimport React, { useEffect } from \"react\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { getAmt } from \"services/util\";\r\nimport { bankCommMTDChartData, bankCT_MTD } from \"variables/charts\";\r\nimport { daysInMonth, daysInArray } from \"services/util\";\r\n\r\nconst BankHeader = (props) => {\r\n\r\n const [totalSubs, setSubs] = React.useState(0);\r\n const [verifiedSubs, setVerifiedSubs] = React.useState(0);\r\n const [unVerifiedSubs, setUnverifiedSubs] = React.useState(0);\r\n const [totalCollectn, setCollectn] = React.useState(0);\r\n const [cardLoading, setCardLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetch();\r\n }, []);\r\n\r\n useEffect(()=> {\r\n props.showBankCommLoader(true);\r\n setBankCommMonth();\r\n }, [props.bankCommMonth]);\r\n\r\n useEffect(()=> {\r\n props.showBankCommLoader(true);\r\n setBankCommMonth();\r\n }, [props.bankCommYear]);\r\n\r\n useEffect(()=> {\r\n props.showBankCTLoader(true);\r\n setBankMTDCt();\r\n }, [props.bankCTMonth]);\r\n\r\n useEffect(()=> {\r\n props.showBankCTLoader(true);\r\n setBankMTDCt();\r\n }, [props.bankCTYear]);\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n const fetch = () => {\r\n let errorMsg = '';\r\n setCardLoading(true);\r\n postMethod('/api/dashboard/Bank', {}, 'post')\r\n .then(res => {\r\n setCardLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('totalSubscriber')) {\r\n setSubs(res.data.result.totalSubscriber);\r\n }\r\n if (res.data.result.hasOwnProperty('totalCollection')) {\r\n setCollectn(res.data.result.totalCollection);\r\n }\r\n if (res.data.result.hasOwnProperty('verifiedSubscriber')) {\r\n setVerifiedSubs(res.data.result.verifiedSubscriber);\r\n }\r\n if (res.data.result.hasOwnProperty('unVerifiedSubscriber')) {\r\n setUnverifiedSubs(res.data.result.unVerifiedSubscriber);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching dashboard items';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setCardLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const setBankCommMonth = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.bankCommYear),\r\n 'Month': Number(props.bankCommMonth) + 1\r\n };\r\n postMethod('/api/dashboard/bank/MonthlyCommission/', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.bankCommMonth);\r\n let year = Number(props.bankCommYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n let totalComm = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('commissionAmount')) {\r\n valArr.push(Number(val.commissionAmount));\r\n totalComm = totalComm + Number(val.commissionAmount);\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = bankCommMTDChartData({\r\n daysArr: arr, \r\n dataArr: valArr,\r\n totalComm: totalComm\r\n });\r\n props.showBankCommMTD(mtdChart);\r\n props.showBankCommLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showBankCommLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showBankCommLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showBankCommLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showBankCommLoader(false);\r\n });\r\n }\r\n\r\n\r\n const setBankMTDCt = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.bankCTYear),\r\n 'Month': Number(props.bankCTMonth) + 1\r\n };\r\n postMethod('/api/dashboard/bank/MonthlyCustomerTransfers/', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.bankCTMonth);\r\n let year = Number(props.bankCTYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let topUpArr = []; let totalTopUp = 0;\r\n let paymentArr = []; let totalPayment = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('topUp')) {\r\n topUpArr.push(Number(val.topUp));\r\n totalTopUp = totalTopUp + Number(val.topUp)\r\n } else {\r\n topUpArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty('payment')) {\r\n paymentArr.push(Number(val.payment));\r\n totalPayment = totalPayment + Number(val.payment);\r\n } else {\r\n paymentArr.push(0);\r\n }\r\n }\r\n let mtdChart = bankCT_MTD({\r\n daysArr: arr, \r\n topUpArr: topUpArr,\r\n paymentArr: paymentArr,\r\n totalTopUp,\r\n totalPayment\r\n });\r\n props.showBankCTMTD(mtdChart);\r\n props.showBankCTLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showBankCTLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showBankCTLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showBankCTLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showBankCTLoader(false);\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Collection\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(totalCollectn)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Subscriber\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(totalSubs)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Verified Subscriber\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(verifiedSubs)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n UnVerified Subscriber\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(unVerifiedSubs)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BankHeader;\r\n","\r\nimport React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { getAmt, daysInMonth, daysInArray } from \"services/util\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { FinancePieChart, financeMTDCollection, financeMTDCommission,\r\n FinanceDoughnutChart, financeMTDCollectionLC } from \"variables/charts\";\r\n\r\n\r\nconst FinanceUserHeader = (props) => {\r\n\r\n const [settleBal, setSettleBal] = React.useState(0);\r\n const [collBal, setCollBal] = React.useState(0);\r\n const [walletComm, setWalletComm] = React.useState(0);\r\n const [cardLoading, setCardLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetch();\r\n }, []);\r\n\r\n useEffect(()=> {\r\n props.showFinancePieLoader(true);\r\n fetchPieChart();\r\n }, [props.financePieMonth]);\r\n\r\n useEffect(()=> {\r\n props.showFinancePieLoader(true);\r\n fetchPieChart();\r\n }, [props.financePieYear]);\r\n\r\n useEffect(()=> {\r\n props.showFinanceMTDColltnLoader(true);\r\n fetchMTDCollection();\r\n }, [props.financeMTDColltnMonth]);\r\n\r\n useEffect(()=> {\r\n props.showFinanceMTDColltnLoader(true);\r\n fetchMTDCollection();\r\n }, [props.financeMTDColltnYear]);\r\n\r\n useEffect(()=> {\r\n props.showFinanceMTDCommLoader(true);\r\n fetchMTDCommission();\r\n }, [props.financeMTDCommMonth]);\r\n\r\n useEffect(()=> {\r\n props.showFinanceMTDCommLoader(true);\r\n fetchMTDCommission();\r\n }, [props.financeMTDCommYear]);\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n const fetch = () => {\r\n let errorMsg = '';\r\n setCardLoading(true);\r\n postMethod('/api/dashboard/financeuser', {}, 'post')\r\n .then(res => {\r\n setCardLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('totalPayable')) {\r\n setCollBal(res.data.result.totalPayable);\r\n }\r\n if (res.data.result.hasOwnProperty('totalCommission')) {\r\n setWalletComm(res.data.result.totalCommission);\r\n }\r\n if (res.data.result.hasOwnProperty('totalCollection')) {\r\n setSettleBal(res.data.result.totalCollection);\r\n }\r\n // if (res.data.result.hasOwnProperty('unVerifiedSubscriber')) {\r\n // setUnverifiedSubs(res.data.result.unVerifiedSubscriber);\r\n // }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching dashboard items';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setCardLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchPieChart = () => {\r\n\r\n let obj = {\r\n collectionAmt: 0,\r\n settlementAmt: 0,\r\n walletComm: 0,\r\n transfer: 0\r\n };\r\n\r\n let errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.financePieYear),\r\n 'Month': Number(props.financePieMonth) + 1\r\n };\r\n postMethod('/api/dashboard/v2/FinanceUser/MonthlyPiChart', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('totalCollection')) {\r\n obj.totalCollection = res.data.result.totalCollection;\r\n }\r\n if (res.data.result.hasOwnProperty('totalBankSettlement')) {\r\n obj.settlementAmt = res.data.result.totalBankSettlement;\r\n }\r\n if (res.data.result.hasOwnProperty('totalCommission')) {\r\n obj.totalCommission = res.data.result.totalCommission;\r\n }\r\n if (res.data.result.hasOwnProperty('totalMerchantSettlement')) {\r\n obj.transfer = res.data.result.totalMerchantSettlement;\r\n }\r\n // testng\r\n // if (res.data.result.hasOwnProperty('totalBankCollection')) {\r\n // obj.collectionAmt = 10;\r\n // }\r\n // if (res.data.result.hasOwnProperty('totalBankSettlement')) {\r\n // obj.settlementAmt = 20;\r\n // }\r\n // if (res.data.result.hasOwnProperty('totalCommission')) {\r\n // obj.walletComm = 30;\r\n // }\r\n // if (res.data.result.hasOwnProperty('totalMerchantSettlement')) {\r\n // obj.transfer = 40;\r\n // }\r\n let chart = FinanceDoughnutChart(obj);\r\n props.showFinancePieChart(chart);\r\n props.showFinancePieLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n props.showFinancePieLoader(false);\r\n errorMsg = res.data.responseMessage || 'Error in fetching dashboard items';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n props.showFinancePieLoader(false);\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n props.showFinancePieLoader(false);\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n props.showFinancePieLoader(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchMTDCollection = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.financeMTDColltnYear),\r\n 'Month': Number(props.financeMTDColltnMonth) + 1\r\n };\r\n postMethod('/api/Dashboard/V2/FinanceUser/MonthlyBarChartCollection', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.financeMTDColltnMonth);\r\n let year = Number(props.financeMTDColltnYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n let totalComm = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('amount')) {\r\n valArr.push(Number(val.amount));\r\n totalComm = totalComm + Number(val.amount);\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = financeMTDCollection({\r\n daysArr: arr, \r\n dataArr: valArr,\r\n totalComm: totalComm\r\n });\r\n props.showFinanceMTDColltn(mtdChart);\r\n props.showFinanceMTDColltnLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDColltnLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDColltnLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDColltnLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showFinanceMTDColltnLoader(false);\r\n });\r\n }\r\n\r\n const fetchMTDCommission = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.financeMTDCommYear),\r\n 'Month': Number(props.financeMTDCommMonth) + 1\r\n };\r\n postMethod('/api/Dashboard/V2/FinanceUser/MonthlyBarChartCommissionCollection', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.financeMTDColltnMonth);\r\n let year = Number(props.financeMTDColltnYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n let totalComm = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('amount')) {\r\n valArr.push(Number(val.amount));\r\n totalComm = totalComm + Number(val.amount);\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = financeMTDCommission({\r\n daysArr: arr, \r\n dataArr: valArr,\r\n totalComm: totalComm\r\n });\r\n props.showFinanceMTDComm(mtdChart);\r\n props.showFinanceMTDCommLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDCommLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDCommLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showFinanceMTDCommLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showFinanceMTDCommLoader(false);\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Collection\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(settleBal)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Payable\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(collBal)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Commission\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(walletComm)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FinanceUserHeader;\r\n","\r\nimport React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { getAmt, daysInMonth, daysInArray } from \"services/util\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { SettlementPieChart, financeMTDCommission, settlementMTDMerchant,\r\n SettlementDoughnutChart } from \"variables/charts\";\r\nimport { settlementMTDTransfer } from \"variables/charts\";\r\n\r\n\r\nconst SettlementBankHeader = (props) => {\r\n\r\n const [settleBal, setSettleBal] = React.useState(0);\r\n const [collBal, setCollBal] = React.useState(0);\r\n const [merchantPayable, setMerchantPayable] = React.useState(0);\r\n const [cardLoading, setCardLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetch();\r\n }, []);\r\n\r\n useEffect(()=> {\r\n props.showSettlementMTDMerchantLoader(true);\r\n fetchMerchantSettlement();\r\n }, [props.settlementMTDMerchantMonth]);\r\n\r\n useEffect(()=> {\r\n props.showSettlementMTDMerchantLoader(true);\r\n fetchMerchantSettlement();\r\n }, [props.settlementMTDMerchantYear]);\r\n\r\n useEffect(()=> {\r\n props.showSettlementPieLoader(true);\r\n fetchPieChart();\r\n }, [props.settlementPieMonth]);\r\n\r\n useEffect(()=> {\r\n props.showSettlementPieLoader(true);\r\n fetchPieChart();\r\n }, [props.settlementPieYear]);\r\n\r\n\r\n useEffect(()=> {\r\n props.showSettlementMTDTransferLoader(true);\r\n fetchMTDTransfer();\r\n }, [props.settlementMTDTransferMonth]);\r\n\r\n useEffect(()=> {\r\n props.showSettlementMTDTransferLoader(true);\r\n fetchMTDTransfer();\r\n }, [props.settlementMTDTransferYear]);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n const fetch = () => {\r\n let errorMsg = '';\r\n setCardLoading(true);\r\n postMethod('/api/dashboard/settlementbankuser', {}, 'post')\r\n .then(res => {\r\n setCardLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('totalCollection')) {\r\n setCollBal(res.data.result.totalCollection);\r\n }\r\n if (res.data.result.hasOwnProperty('totalSettlement')) {\r\n setSettleBal(res.data.result.totalSettlement);\r\n }\r\n if (res.data.result.hasOwnProperty('totalMerchantPayable')) {\r\n setMerchantPayable(res.data.result.totalMerchantPayable);\r\n }\r\n\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching dashboard items';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setCardLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchMerchantSettlement = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.settlementMTDMerchantYear),\r\n 'Month': Number(props.settlementMTDMerchantMonth) + 1\r\n };\r\n postMethod('/api/dashboard/SettlementBankUser/MonthlyBarChartMerchantSettlement', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.settlementMTDMerchantMonth);\r\n let year = Number(props.settlementMTDMerchantYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n let totalComm = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('amount')) {\r\n valArr.push(Number(val.amount));\r\n totalComm = totalComm + Number(val.amount);\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = settlementMTDMerchant({\r\n daysArr: arr, \r\n dataArr: valArr,\r\n totalComm: totalComm\r\n });\r\n props.showSettlementMTDMerchant(mtdChart);\r\n props.showSettlementMTDMerchantLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSettlementMTDMerchantLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSettlementMTDMerchantLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showSettlementMTDMerchantLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showSettlementMTDMerchantLoader(false);\r\n });\r\n }\r\n\r\n const fetchPieChart = () => {\r\n\r\n let obj = {\r\n settlementAmt: 0,\r\n transfer: 0\r\n };\r\n\r\n let errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.settlementPieYear),\r\n 'Month': Number(props.settlementPieMonth) + 1\r\n };\r\n postMethod('/api/dashboard/settlementbankuser/MonthlyPiChart', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('totalBankSettlement')) {\r\n obj.settlementAmt = res.data.result.totalBankSettlement;\r\n }\r\n if (res.data.result.hasOwnProperty('totalMerchantSettlement')) {\r\n obj.transfer = res.data.result.totalMerchantSettlement;\r\n }\r\n let chart = SettlementDoughnutChart(obj);\r\n props.showSettlementPieChart(chart);\r\n props.showSettlementPieLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n props.showSettlementPieLoader(false);\r\n errorMsg = res.data.responseMessage || 'Error in fetching dashboard items';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n props.showSettlementPieLoader(false);\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n props.showSettlementPieLoader(false);\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n props.showSettlementPieLoader(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchMTDTransfer = () => {\r\n var errorMsg = '';\r\n var data = {\r\n 'Year': Number(props.settlementMTDTransferYear),\r\n 'Month': Number(props.settlementMTDTransferMonth) + 1\r\n };\r\n postMethod('/api/dashboard/SettlementBankUser/MonthlyBarChartBankSettlement', data, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" && \r\n res.data.result && res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.settlementMTDTransferMonth);\r\n let year = Number(props.settlementMTDTransferYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let valArr = [];\r\n let totalComm = 0;\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find(l => l.day == arr[i]);\r\n if (val && val.hasOwnProperty('amount')) {\r\n valArr.push(Number(val.amount));\r\n totalComm = totalComm + Number(val.amount);\r\n } else {\r\n valArr.push(0);\r\n }\r\n }\r\n let mtdChart = settlementMTDTransfer({\r\n daysArr: arr, \r\n dataArr: valArr,\r\n totalComm: totalComm\r\n });\r\n props.showSettlementMTDTransfer(mtdChart);\r\n props.showSettlementMTDTransferLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSettlementMTDTransferLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching charts';\r\n notifyFailed(errorMsg);\r\n props.showSettlementMTDTransferLoader(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.showSettlementMTDTransferLoader(false);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.showSettlementMTDTransferLoader(false);\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Settlement Account Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(settleBal)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Collection Accounts Balance \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(collBal)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Merchant Payables\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {cardLoading ?\r\n

\r\n
\r\n
:\r\n \r\n {getAmt(merchantPayable)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SettlementBankHeader;\r\n","\r\nimport React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\n\r\nconst SuperAgentHeader = (props) => {\r\n const [totalAmt, setAmount] = React.useState('');\r\n const [receivedAmt, setReceivedAmt] = React.useState('');\r\n const [transferAmt, setTransferAmt] = React.useState('');\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const [subAgentCommissionCumulative, setSubAgentCommissionCumulative] = React.useState(0);\r\n const [subAgentBalance, setSubAgentBalance] = React.useState(0);\r\n const [subagentList, setSubagentList] = React.useState([])\r\n const [showSubAgentsList, setShowSubAgentsList] = React.useState(false)\r\n const [reverseBalance, setReverseBalance] = React.useState(0)\r\n const { addToast } = useToasts();\r\n\r\n useEffect(()=> {\r\n fetchBalance();\r\n }, [])\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod('/api/dashboard/SuperAgent/', {}, 'post')\r\n .then(res => {\r\n setBalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('balance')) {\r\n setAmount(res.data.result.balance);\r\n } else {\r\n setAmount(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalReceived')) {\r\n setReceivedAmt(res.data.result.totalReceived || 0);\r\n } else {\r\n setReceivedAmt(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('totalSubAgentBalance')) {\r\n setSubAgentBalance(res.data.result.totalSubAgentBalance || 0);\r\n } else {\r\n setSubAgentBalance(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty('transferAmount')) {\r\n setTransferAmt(res.data.result.transferAmount);\r\n } else {\r\n setTransferAmt(0);\r\n }\r\n if (\r\n res.data.result.hasOwnProperty(\"subAgentCommissionCumulative\")\r\n ) {\r\n setSubAgentCommissionCumulative( res.data.result?.subAgentCommissionCumulative?.length ? \r\n res.data.result?.subAgentCommissionCumulative[0]\r\n ?.commissionAmount : 0\r\n );\r\n } else {\r\n setSubAgentCommissionCumulative(0);\r\n }\r\n if (res.data.result.hasOwnProperty(\"subagentList\")) {\r\n setSubagentList(res.data.result.subagentList);\r\n } else {\r\n setSubagentList([]);\r\n }\r\n if (res.data.result.hasOwnProperty(\"reverseBalance\")) {\r\n setReverseBalance(res.data.result.reverseBalance);\r\n } else {\r\n setReverseBalance(0);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setBalLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n\r\n const getAmt = (amt) => {\r\n return amt?.toLocaleString();\r\n }\r\n\r\n const showAgentsList = (list) => {\r\n return list.map((item, idx) => (\r\n
\r\n
{item?.firstName} {item?.lastName}
\r\n
{getAmt(item?.balance)}
\r\n
\r\n ))\r\n }\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Available Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(totalAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Wallet Transfer\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(transferAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Wallet Received\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(receivedAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Sub Agent Commission Cumulative\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(subAgentCommissionCumulative)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n setShowSubAgentsList(!showSubAgentsList)}>\r\n \r\n \r\n
\r\n \r\n Sub Agent Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(subAgentBalance)}\r\n \r\n )}\r\n

\r\n {\r\n showSubAgentsList && \r\n {showAgentsList(subagentList)}\r\n \r\n }\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Reverse Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(reverseBalance)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SuperAgentHeader;","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { setSuperAgentId } from \"services/httpServices\";\r\n\r\nconst AgentHeader = (props) => {\r\n const [totalAmt, setAmount] = React.useState(\"\");\r\n const [receivedAmt, setReceivedAmt] = React.useState(\"\");\r\n const [transferAmt, setTransferAmt] = React.useState(\"\");\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const [mothlyReceived, setMonthlyReceived] = React.useState(\"\");\r\n const [totalCashTopup, setCashTopup] = React.useState(\"\");\r\n const [earnedCashCommission, setEarnedCashCommission] = React.useState(\"\");\r\n const [monthlyCashTopup, setMonthlyCashTopup] = React.useState(\"\");\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchBalance();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = \"\";\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod(\"/api/dashboard/SubAgent/\", {}, \"post\")\r\n .then((res) => {\r\n setBalLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty(\"totalWalletBalance\")) {\r\n setAmount(res.data.result.totalWalletBalance);\r\n } else {\r\n setAmount(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"superAgentId\")) {\r\n setSuperAgentId(res.data.result.superAgentId);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"totalCashTopup\")) {\r\n setCashTopup(res.data.result.totalCashTopup);\r\n } else {\r\n setCashTopup(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"monthlyReceived\")) {\r\n setMonthlyReceived(res.data.result.monthlyReceived);\r\n } else {\r\n setMonthlyReceived(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"monthlyCashTopup\")) {\r\n setMonthlyCashTopup(res.data.result.monthlyCashTopup);\r\n } else {\r\n setMonthlyCashTopup(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"totalReceivedBalance\")) {\r\n setReceivedAmt(res.data.result.totalReceivedBalance);\r\n } else {\r\n setReceivedAmt(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"earnedCashCommission\")) {\r\n setEarnedCashCommission(res.data.result.earnedCashCommission);\r\n } else {\r\n setEarnedCashCommission(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"totalTransfers\")) {\r\n setTransferAmt(res.data.result.totalTransfers);\r\n } else {\r\n setTransferAmt(0);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setBalLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Available Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalAmt)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Monthly Received\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(mothlyReceived)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Received\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(receivedAmt)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Monthly Topup\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(monthlyCashTopup)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Topup\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalCashTopup)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Earned Cash Commission\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(earnedCashCommission)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AgentHeader;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardBody, CardTitle, Container, Row, Col } from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { daysInMonth } from \"services/util\";\r\nimport { daysInArray } from \"services/util\";\r\nimport { subsMTDWalletTrans } from \"variables/charts\";\r\n\r\nconst MasterAgentHeader = (props) => {\r\n const [totalAmt, setAmount] = React.useState(\"\");\r\n const [balanceTransferred, setBalanceTransferred] = React.useState(\"\");\r\n const [monthlyCashTopup, setMonthlyCashTopup] = React.useState(\"\");\r\n const [monthlyReceived, setMonthlyReceived] = React.useState(\"\");\r\n const [totalCashTopup, setTotalCashTopup] = React.useState(\"\");\r\n const [transferAmt, setTransferAmt] = React.useState(\"\");\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const [totalSuperAgentBalance, setTotalSuperAgentBalance] = React.useState(0);\r\n const [totalSubAgentBalance, setTotalSubAgentBalance] = React.useState(0);\r\n const [subAgentCommissionCumulative, setSubAgentCommissionCumulative] = React.useState(0);\r\n const [subagentList, setSubagentList] = useState([])\r\n const [superagentList, setSuperagentList] = useState([])\r\n const [showSuperAgentsList, setShowSuperAgentsList] = useState(false)\r\n const [showSubAgentsList, setShowSubAgentsList] = useState(false)\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchBalance();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = \"\";\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod(\"/api/Dashboard/MasterAgent\", {}, \"post\")\r\n .then((res) => {\r\n setBalLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty(\"totalWalletBalance\")) {\r\n setAmount(res.data.result.totalWalletBalance);\r\n } else {\r\n setAmount(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"balanceTransferred\")) {\r\n setBalanceTransferred(res.data.result.balanceTransferred);\r\n } else {\r\n setBalanceTransferred(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"monthlyCashTopup\")) {\r\n setMonthlyCashTopup(res.data.result.monthlyCashTopup);\r\n } else {\r\n setMonthlyCashTopup(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"totalSuperAgentBalance\")) {\r\n setTotalSuperAgentBalance(res.data.result.totalSuperAgentBalance);\r\n }\r\n if (res.data.result.hasOwnProperty(\"totalSubAgentBalance\")) {\r\n setTotalSubAgentBalance(res.data.result.totalSubAgentBalance);\r\n }\r\n if (res.data.result.hasOwnProperty(\"monthlyReceived\")) {\r\n setMonthlyReceived(res.data.result.monthlyReceived);\r\n } else {\r\n setMonthlyReceived(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"totalCashTopup\")) {\r\n setTotalCashTopup(res.data.result.totalCashTopup);\r\n } else {\r\n setTotalCashTopup(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"totalTransfers\")) {\r\n setTransferAmt(res.data.result.totalTransfers);\r\n } else {\r\n setTransferAmt(0);\r\n }\r\n\r\n if (\r\n res.data.result.hasOwnProperty(\"subAgentCommissionCumulative\")\r\n ) {\r\n setSubAgentCommissionCumulative(\r\n res.data.result?.subAgentCommissionCumulative[0]\r\n ?.commissionAmount\r\n );\r\n } else {\r\n setSubAgentCommissionCumulative(0);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"subagentList\")) {\r\n setSubagentList(res.data.result.subagentList);\r\n } else {\r\n setSubagentList([]);\r\n }\r\n\r\n if (res.data.result.hasOwnProperty(\"superagentList\")) {\r\n setSuperagentList(res.data.result.superagentList);\r\n } else {\r\n setSuperagentList([]);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setBalLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const getAmt = (amt) => {\r\n return amt?.toLocaleString();\r\n };\r\n\r\n /**========================= MTD Wallet Transfer ===================================== */\r\n\r\n useEffect(() => {\r\n props.showAdminMTDWalletTransLoader(true);\r\n setAdminMTDWalletTrans();\r\n }, [props.adminMTDWalletTransMonth]);\r\n\r\n useEffect(() => {\r\n props.showAdminMTDWalletTransLoader(true);\r\n setAdminMTDWalletTrans();\r\n }, [props.adminMTDWalletTransYear]);\r\n\r\n useEffect(() => {\r\n props.showSubAgentMTDWalletTransLoader(true);\r\n setSubAgentMTDWalletTrans();\r\n }, [props.subAgentMTDWalletTransMonth]);\r\n\r\n useEffect(() => {\r\n props.showSubAgentMTDWalletTransLoader(true);\r\n setSubAgentMTDWalletTrans();\r\n }, [props.subAgentMTDWalletTransYear]);\r\n\r\n const setAdminMTDWalletTrans = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n Year: Number(props.adminMTDWalletTransYear),\r\n Month: Number(props.adminMTDWalletTransMonth) + 1,\r\n Status: \"Paid\",\r\n };\r\n if (!data.Month || !data.Year) {\r\n return;\r\n }\r\n postMethod(\"/api/dashboard/MonthlyCustomerCashTopup\", data, \"post\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res.data.result &&\r\n res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.adminMTDWalletTransMonth);\r\n let year = Number(props.adminMTDWalletTransYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let sendArr = [];\r\n let getArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find((l) => l.day == arr[i]);\r\n if (val && val.hasOwnProperty(\"transferFrom\")) {\r\n getArr.push(Number(val.transferFrom));\r\n } else {\r\n getArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty(\"transferTo\")) {\r\n sendArr.push(Number(val.transferTo));\r\n } else {\r\n sendArr.push(0);\r\n }\r\n }\r\n let mtdChart = subsMTDWalletTrans({\r\n daysArr: arr,\r\n getArr: getArr,\r\n sendArr: sendArr,\r\n });\r\n props.showAdminMTDWalletTrans(mtdChart);\r\n props.showAdminMTDWalletTransLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showAdminMTDWalletTransLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showAdminMTDWalletTransLoader(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.showAdminMTDWalletTransLoader(false);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.showAdminMTDWalletTransLoader(false);\r\n });\r\n };\r\n\r\n const setSubAgentMTDWalletTrans = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n Year: Number(props.subAgentMTDWalletTransYear),\r\n Month: Number(props.subAgentMTDWalletTransMonth) + 1,\r\n Status: \"Paid\",\r\n };\r\n if (!data.Month || !data.Year) {\r\n return;\r\n }\r\n postMethod(\"/api/dashboard/MonthlySubAgentCommissionMTD\", data, \"post\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res.data.result &&\r\n res.data.result.list\r\n ) {\r\n // Success\r\n let month = Number(props.subAgentMTDWalletTransMonth);\r\n let year = Number(props.subAgentMTDWalletTransYear);\r\n let totalDays = daysInMonth(month + 1, year);\r\n let arr = daysInArray(totalDays);\r\n let sendArr = [];\r\n let getArr = [];\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let val = res.data.result.list.find((l) => l.day == arr[i]);\r\n if (val && val.hasOwnProperty(\"transferFrom\")) {\r\n getArr.push(Number(val.transferFrom));\r\n } else {\r\n getArr.push(0);\r\n }\r\n if (val && val.hasOwnProperty(\"transferTo\")) {\r\n sendArr.push(Number(val.transferTo));\r\n } else {\r\n sendArr.push(0);\r\n }\r\n }\r\n let mtdChart = subsMTDWalletTrans({\r\n daysArr: arr,\r\n getArr: getArr,\r\n sendArr: sendArr,\r\n });\r\n props.showSubAgentMTDWalletTrans(mtdChart);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching charts\";\r\n notifyFailed(errorMsg);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.showSubAgentMTDWalletTransLoader(false);\r\n });\r\n };\r\n\r\n const showAgentsList = (list) => {\r\n return list.map((item, idx) => (\r\n
\r\n
{item?.firstName} {item?.lastName}
\r\n
{getAmt(item?.balance)}
\r\n
\r\n ))\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {/* Card stats */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Available Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalAmt)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Balance Transferred\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(balanceTransferred)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Monthly Cash Topup\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(monthlyCashTopup)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Monthly Received\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(monthlyReceived)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n
\r\n \r\n Wallet Transfer\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? \r\n

\r\n
\r\n
: \r\n \r\n {getAmt(transferAmt)}\r\n \r\n }\r\n

\r\n
\r\n
\r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Total Cash Topup\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalCashTopup)}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Sub Agent Commission Cumulative\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(subAgentCommissionCumulative) ?? 0}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n setShowSuperAgentsList(!showSuperAgentsList)}>\r\n \r\n \r\n
\r\n \r\n Super Agent Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalSuperAgentBalance)}\r\n \r\n )}\r\n

\r\n {\r\n showSuperAgentsList && \r\n {showAgentsList(superagentList)}\r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n setShowSubAgentsList(!showSubAgentsList)}>\r\n \r\n \r\n
\r\n \r\n Sub Agent Balance\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n {balanceLoading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {getAmt(totalSubAgentBalance)}\r\n \r\n )}\r\n

\r\n {\r\n showSubAgentsList && \r\n {showAgentsList(subagentList)}\r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MasterAgentHeader;\r\n","import React from \"react\";\r\n// import classnames from \"classnames\";\r\nimport Chart from \"chart.js\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Label,\r\n} from \"reactstrap\";\r\n\r\nimport {\r\n chartOptions,\r\n parseOptions,\r\n chartExample1,\r\n chartExample2,\r\n} from \"variables/charts.js\";\r\n\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { getLoginType } from \"services/httpServices\";\r\nimport VoucherWallet from \"./subscriber/voucher-wallet\";\r\nimport MerchantHeader from \"components/Headers/MerchantHeader\";\r\nimport AdminHeader from \"components/Headers/AdminHeader\";\r\nimport { Bar, Pie, Doughnut, Line } from \"react-chartjs-2\";\r\nimport SubscriberHeader from \"components/Headers/subscriberHeader\";\r\nimport { MonthArrayCAP, YearArray } from \"services/util\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport BankHeader from \"components/Headers/BankHeader\";\r\nimport FinanceUserHeader from \"components/Headers/FinanceUserHeader\";\r\nimport SettlementBankHeader from \"components/Headers/settlementBankHeader\";\r\nimport SuperAgentHeader from \"components/Headers/SuperAgentHeader\";\r\nimport AgentHeader from \"components/Headers/AgentHeader\";\r\nimport MasterAgentHeader from \"components/Headers/MasterAgentHeader\";\r\n\r\nconst BAR_CHART_MAX_HEIGHT = \"420px\";\r\n\r\nconst mmtdloaderContainer = {\r\n position: \"absolute\",\r\n top: \"100px\",\r\n left: 0,\r\n width: \"100%\",\r\n heigth: \"100%\",\r\n backgroundColor: \"#F8F8F8AD\",\r\n // display: 'none'\r\n};\r\n\r\nconst mmtdloader = {\r\n left: \"35%\",\r\n top: \"50%\",\r\n zIndex: \"1000\",\r\n position: \"absolute\",\r\n};\r\n\r\nconst YEARS = YearArray();\r\n\r\nconst Home = (props) => {\r\n const logintype = getLoginType();\r\n const currentMonth = new Date().getMonth();\r\n const currentYear = new Date().getFullYear();\r\n const [pendingChart, setPendingChart] = React.useState(false);\r\n const [pendingChartData, setPendingChartData] = React.useState({});\r\n const [collectedChart, setCollectedChart] = React.useState(false);\r\n const [collectedChartData, setCollectedChartData] = React.useState({});\r\n const [merchantChart, setMerchantChart] = React.useState(false);\r\n const [merchantMTD, setMerchantMTD] = React.useState({});\r\n const [merchantMTDMonth, setMerchantMTDMonth] = React.useState(currentMonth);\r\n const [merchantMTDYear, setMerchantMTDYear] = React.useState(currentYear);\r\n const [merchantMTDLoading, setMerchantMTDLoading] = React.useState(false);\r\n const [merchantYTD, setMerchantYTD] = React.useState({});\r\n const [merchantYTDYear, setMerchantYTDYear] = React.useState(currentYear);\r\n const [merchantYTDLoading, setMerchantYTDLoading] = React.useState(false);\r\n\r\n const [adminChart, setAdminChart] = React.useState(\r\n logintype == \"Admin\" ? true : logintype === \"Master Agent\" ? true : false\r\n );\r\n const [adminMTDWalletTrans, setAdminMTDWalletTrans] = React.useState({});\r\n const [adminMTDWalletTransLoading, setAdminMTDWalletTransLoading] =\r\n React.useState(false);\r\n const [adminMTDWalletTransMonth, setAdminMTDWalletTransMonth] =\r\n React.useState(currentMonth);\r\n const [adminMTDWalletTransYear, setAdminMTDWalletTransYear] =\r\n React.useState(currentYear);\r\n\r\n const [subAgentMTDWalletTrans, setSubAgentMTDWalletTrans] = React.useState(\r\n {}\r\n );\r\n const [subAgentMTDWalletTransLoading, setSubAgentMTDWalletTransLoading] =\r\n React.useState(false);\r\n const [subAgentMTDWalletTransMonth, setSubAgentMTDWalletTransMonth] =\r\n React.useState(currentMonth);\r\n const [subAgentMTDWalletTransYear, setSubAgentMTDWalletTransYear] =\r\n React.useState(currentYear);\r\n\r\n const [subscriberChart, setSubscriberChart] = React.useState(\r\n logintype == \"Subscriber\" ? true : false\r\n );\r\n const [subsMTDWithDraw, setSubsMTDWithDraw] = React.useState({});\r\n const [subsMTDWithDrawLoading, setSubsMTDWithDrawLoading] =\r\n React.useState(false);\r\n const [subsMTDWithDrawMonth, setSubsMTDWithDrawMonth] =\r\n React.useState(currentMonth);\r\n const [subsMTDWithDrawYear, setSubsMTDWithDrawYear] =\r\n React.useState(currentYear);\r\n const [subsMTDPayment, setSubsMTDPayment] = React.useState({});\r\n const [subsMTDPaymentLoading, setSubsMTDPaymentLoading] =\r\n React.useState(false);\r\n const [subsMTDPaymentMonth, setSubsMTDPaymentMonth] =\r\n React.useState(currentMonth);\r\n const [subsMTDPaymentYear, setSubsMTDPaymentYear] =\r\n React.useState(currentYear);\r\n const [subsMTDWalletTrans, setSubsMTDWalletTrans] = React.useState({});\r\n const [subsMTDWalletTransLoading, setSubsMTDWalletTransLoading] =\r\n React.useState(false);\r\n const [subsMTDWalletTransMonth, setSubsMTDWalletTransMonth] =\r\n React.useState(currentMonth);\r\n const [subsMTDWalletTransYear, setSubsMTDWalletTransYear] =\r\n React.useState(currentYear);\r\n\r\n const [bankChart, setBankChart] = React.useState(\r\n logintype == \"Bank\" ? true : false\r\n );\r\n const [bankCommMonth, setBankCommMonth] = React.useState(currentMonth);\r\n const [bankCommYear, setBankCommYear] = React.useState(currentYear);\r\n const [bankCommLoading, setBankCommLoading] = React.useState(false);\r\n const [bankCommission, setBankCommission] = React.useState({});\r\n const [bankCTMonth, setBankCTMonth] = React.useState(currentMonth);\r\n const [bankCTYear, setBankCTYear] = React.useState(currentYear);\r\n const [bankCTloading, setBankCTLoading] = React.useState(false);\r\n const [bankCT, setBankCT] = React.useState({});\r\n\r\n const [financeChart, setFinanceChart] = React.useState(\r\n logintype == \"Finance\" ? true : false\r\n );\r\n const [financePieChart, setFinancePieChart] = React.useState({});\r\n const [financePieMonth, setFinancePieMonth] = React.useState(currentMonth);\r\n const [financePieYear, setFinancePieYear] = React.useState(currentYear);\r\n const [financePieLoading, setFinancePieLoading] = React.useState(false);\r\n\r\n const [financeMTDColltn, setFinanceMTDColltn] = React.useState({});\r\n const [financeMTDColltnMonth, setFinanceMTDColltnMonth] =\r\n React.useState(currentMonth);\r\n const [financeMTDColltnYear, setFinanceMTDColltnYear] =\r\n React.useState(currentYear);\r\n const [financeMTDColltnLoading, setFinanceMTDColltnLoading] =\r\n React.useState(false);\r\n\r\n const [financeMTDComm, setFinanceMTDComm] = React.useState({});\r\n const [financeMTDCommMonth, setFinanceMTDCommMonth] =\r\n React.useState(currentMonth);\r\n const [financeMTDCommYear, setFinanceMTDCommYear] =\r\n React.useState(currentYear);\r\n const [financeMTDCommLoading, setFinanceMTDCommLoading] =\r\n React.useState(false);\r\n\r\n const [settlementPieChart, setSettlementPieChart] = React.useState({});\r\n const [settlementPieMonth, setSettlementPieMonth] =\r\n React.useState(currentMonth);\r\n const [settlementPieYear, setSettlementPieYear] = React.useState(currentYear);\r\n const [settlementPieLoading, setSettlementPieLoading] = React.useState(false);\r\n\r\n const [settlementChart, setSettlementChart] = React.useState(\r\n logintype == \"SettlementBank\" ? true : false\r\n );\r\n const [settlementMTDMerchant, setSettlementMTDMerchant] = React.useState({});\r\n const [settlementMTDMerchantMonth, setSettlementMTDMerchantMonth] =\r\n React.useState(currentMonth);\r\n const [settlementMTDMerchantYear, setSettlementMTDMerchantYear] =\r\n React.useState(currentYear);\r\n const [settlementMTDMerchantLoading, setSettlementMTDMerchantLoading] =\r\n React.useState(false);\r\n\r\n const [settlementMTDTransfer, setSettlementMTDTransfer] = React.useState({});\r\n const [settlementMTDTransferMonth, setSettlementMTDTransferMonth] =\r\n React.useState(currentMonth);\r\n const [settlementMTDTransferYear, setSettlementMTDTransferYear] =\r\n React.useState(currentYear);\r\n const [settlementMTDTransferLoading, setSettlementMTDTransferLoading] =\r\n React.useState(false);\r\n\r\n const [chartExample1Data, setChartExample1Data] = React.useState(\"data1\");\r\n\r\n const getHeader = () => {\r\n if (logintype === \"Merchant\") {\r\n return (\r\n \r\n );\r\n } else if (logintype === \"Admin\") {\r\n return (\r\n \r\n );\r\n } else if (logintype === \"Subscriber\") {\r\n return (\r\n \r\n );\r\n } else if (logintype == \"Bank\") {\r\n return (\r\n \r\n );\r\n } else if (logintype == \"Finance\") {\r\n return (\r\n \r\n );\r\n } else if (logintype == \"SettlementBank\") {\r\n return (\r\n \r\n );\r\n } else if (logintype == \"Super Agent\") {\r\n return ;\r\n } else if (logintype == \"Agent\") {\r\n return ;\r\n } else if (logintype == \"Master Agent\") {\r\n return (\r\n \r\n );\r\n } else {\r\n return
;\r\n }\r\n };\r\n\r\n const getMonths = (year) => {\r\n let monthArr = MonthArrayCAP;\r\n if (year == currentYear) {\r\n monthArr = MonthArrayCAP.slice(0, currentMonth + 1);\r\n }\r\n return monthArr.map((c) => (\r\n \r\n ));\r\n };\r\n\r\n /**======================== Admin Dashboard Items ========================= */\r\n\r\n const showPendingChart = (chart) => {\r\n setPendingChart(true);\r\n setPendingChartData(chart);\r\n };\r\n\r\n const showCollectedChart = (chart) => {\r\n setCollectedChart(true);\r\n setCollectedChartData(chart);\r\n };\r\n\r\n const showAdminMTDWalletTransLoader = (loader) => {\r\n setAdminMTDWalletTransLoading(loader);\r\n };\r\n\r\n const showAdminMTDWalletTrans = (chart) => {\r\n setAdminMTDWalletTrans(chart);\r\n };\r\n\r\n const changeAdminMTDWalletTransMonth = (value) => {\r\n setAdminMTDWalletTransMonth(value);\r\n };\r\n\r\n const changeAdminMTDWalletTransYear = (value) => {\r\n setAdminMTDWalletTransYear(value);\r\n };\r\n\r\n const showSubAgentMTDWalletTransLoader = (loader) => {\r\n setSubAgentMTDWalletTransLoading(loader);\r\n };\r\n\r\n const showSubAgentMTDWalletTrans = (chart) => {\r\n setSubAgentMTDWalletTrans(chart);\r\n };\r\n\r\n const changeSubAgentMTDWalletTransMonth = (value) => {\r\n setSubAgentMTDWalletTransMonth(value);\r\n };\r\n\r\n const changeSubAgentMTDWalletTransYear = (value) => {\r\n setSubAgentMTDWalletTransYear(value);\r\n };\r\n\r\n const options = {\r\n maintainAspectRatio: false,\r\n responsive: false,\r\n legend: {\r\n position: \"bottom\",\r\n display: true,\r\n align: \"center\",\r\n // labels: {\r\n // boxWidth: 15\r\n // },\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.labels[item.index] || \"\";\r\n return label;\r\n },\r\n },\r\n },\r\n };\r\n\r\n const doughnutOptions = {\r\n maintainAspectRatio: false,\r\n responsive: false,\r\n legend: {\r\n // position: 'top',\r\n display: true,\r\n // align: 'center'\r\n labels: {\r\n boxWidth: 15,\r\n },\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (item, data) {\r\n var label = data.labels[item.index] || \"\";\r\n return label;\r\n },\r\n },\r\n },\r\n };\r\n\r\n /**======================== Merchant Dashboard Items ========================= */\r\n\r\n const showMerchantMTD = (chart) => {\r\n setMerchantChart(true);\r\n setMerchantMTD(chart);\r\n };\r\n\r\n const showMerchantYTD = (chart) => {\r\n setMerchantChart(true);\r\n setMerchantYTD(chart);\r\n };\r\n\r\n const changeMerchantMDTMonth = (value) => {\r\n setMerchantMTDMonth(value);\r\n };\r\n\r\n const changeMerchantYTD = (value) => {\r\n setMerchantYTDYear(value);\r\n };\r\n\r\n const changeMerchantMTDYear = (value) => {\r\n setMerchantMTDYear(value);\r\n };\r\n\r\n const showMerchantMTDLoader = (loader) => {\r\n setMerchantMTDLoading(loader);\r\n };\r\n\r\n const showMerchantYTDLoader = (loader) => {\r\n setMerchantYTDLoading(loader);\r\n };\r\n\r\n /**======================== Subscriber Dashboard Items ========================= */\r\n\r\n // WithDrawals functions\r\n const changeSubsMTDWithDrawMonth = (value) => {\r\n setSubsMTDWithDrawMonth(value);\r\n };\r\n\r\n const changeSubsMTDWithDrawYear = (value) => {\r\n setSubsMTDWithDrawYear(value);\r\n };\r\n\r\n const showSubsMTDWithDrawLoader = (loader) => {\r\n setSubsMTDWithDrawLoading(loader);\r\n };\r\n\r\n const showSubsMTDWithDraw = (chart) => {\r\n setSubsMTDWithDraw(chart);\r\n };\r\n\r\n // Payments functions\r\n\r\n const changeSubsMTDPaymentMonth = (value) => {\r\n setSubsMTDPaymentMonth(value);\r\n };\r\n\r\n const changeSubsMTDPaymentYear = (value) => {\r\n setSubsMTDPaymentYear(value);\r\n };\r\n\r\n const showSubsMTDPaymentLoader = (loader) => {\r\n setSubsMTDPaymentLoading(loader);\r\n };\r\n\r\n const showSubsMTDPayment = (chart) => {\r\n setSubsMTDPayment(chart);\r\n };\r\n\r\n // WalletTrans functions\r\n\r\n const changeSubsMTDWalletTransMonth = (value) => {\r\n setSubsMTDWalletTransMonth(value);\r\n };\r\n\r\n const changeSubsMTDWalletTransYear = (value) => {\r\n setSubsMTDWalletTransYear(value);\r\n };\r\n\r\n const showSubsMTDWalletTransLoader = (loader) => {\r\n setSubsMTDWalletTransLoading(loader);\r\n };\r\n\r\n const showSubsMTDWalletTrans = (chart) => {\r\n setSubsMTDWalletTrans(chart);\r\n };\r\n\r\n /**======================== Bank Dashboard Items ========================= */\r\n\r\n const showBankCommMTD = (chart) => {\r\n setBankChart(true);\r\n setBankCommission(chart);\r\n };\r\n\r\n const changeBankCommMonth = (value) => {\r\n setBankCommMonth(value);\r\n };\r\n\r\n const changeBankCommYear = (value) => {\r\n setBankCommYear(value);\r\n };\r\n\r\n const showBankCommLoader = (loader) => {\r\n setBankCommLoading(loader);\r\n };\r\n\r\n const showBankCTMTD = (chart) => {\r\n setBankChart(true);\r\n setBankCT(chart);\r\n };\r\n\r\n const changeBankCTMonth = (value) => {\r\n setBankCTMonth(value);\r\n };\r\n\r\n const changeBankCTYear = (value) => {\r\n setBankCTYear(value);\r\n };\r\n\r\n const showBankCTLoader = (loader) => {\r\n setBankCTLoading(loader);\r\n };\r\n\r\n /**======================== Bank Dashboard Items ========================= */\r\n\r\n //PIE Chart\r\n\r\n const showFinancePieChart = (chart) => {\r\n setFinancePieChart(chart);\r\n };\r\n\r\n const changeFinancePieMonth = (value) => {\r\n setFinancePieMonth(value);\r\n };\r\n\r\n const changeFinancePieYear = (value) => {\r\n setFinancePieYear(value);\r\n };\r\n\r\n const showFinancePieLoader = (loader) => {\r\n setFinancePieLoading(loader);\r\n };\r\n\r\n // MTD Collection\r\n\r\n const showFinanceMTDColltn = (chart) => {\r\n setFinanceMTDColltn(chart);\r\n };\r\n\r\n const changeFinanceMTDColltnMonth = (value) => {\r\n setFinanceMTDColltnMonth(value);\r\n };\r\n\r\n const changeFinanceMTDColltnYear = (value) => {\r\n setFinanceMTDColltnYear(value);\r\n };\r\n\r\n const showFinanceMTDColltnLoader = (loader) => {\r\n setFinanceMTDColltnLoading(loader);\r\n };\r\n\r\n // MTD Commission\r\n\r\n const showFinanceMTDComm = (chart) => {\r\n setFinanceMTDComm(chart);\r\n };\r\n\r\n const changeFinanceMTDCommMonth = (value) => {\r\n setFinanceMTDCommMonth(value);\r\n };\r\n\r\n const changeFinanceMTDCommYear = (value) => {\r\n setFinanceMTDCommYear(value);\r\n };\r\n\r\n const showFinanceMTDCommLoader = (loader) => {\r\n setFinanceMTDCommLoading(loader);\r\n };\r\n\r\n /**======================== Bank Dashboard Items ========================= */\r\n\r\n // Settlement Pie Chart\r\n\r\n const showSettlementPieChart = (chart) => {\r\n setSettlementPieChart(chart);\r\n };\r\n\r\n const changeSettlementPieMonth = (value) => {\r\n setSettlementPieMonth(value);\r\n };\r\n\r\n const changeSettlementPieYear = (value) => {\r\n setSettlementPieYear(value);\r\n };\r\n\r\n const showSettlementPieLoader = (loader) => {\r\n setSettlementPieLoading(loader);\r\n };\r\n\r\n // MTD Merchant Settlements\r\n\r\n const showSettlementMTDMerchant = (chart) => {\r\n setSettlementMTDMerchant(chart);\r\n };\r\n\r\n const changeSettlementMTDMerchantMonth = (value) => {\r\n setSettlementMTDMerchantMonth(value);\r\n };\r\n\r\n const changeSettlementMTDMerchantYear = (value) => {\r\n setSettlementMTDMerchantYear(value);\r\n };\r\n\r\n const showSettlementMTDMerchantLoader = (loader) => {\r\n setSettlementMTDMerchantLoading(loader);\r\n };\r\n\r\n // MTD Transfers\r\n\r\n const showSettlementMTDTransfer = (chart) => {\r\n setSettlementMTDTransfer(chart);\r\n };\r\n\r\n const changeSettlementMTDTransferMonth = (value) => {\r\n setSettlementMTDTransferMonth(value);\r\n };\r\n\r\n const changeSettlementMTDTransferYear = (value) => {\r\n setSettlementMTDTransferYear(value);\r\n };\r\n\r\n const showSettlementMTDTransferLoader = (loader) => {\r\n setSettlementMTDTransferLoading(loader);\r\n };\r\n\r\n return (\r\n <>\r\n {getHeader()}\r\n \r\n \r\n {logintype === \"Admin\" && (\r\n \r\n \r\n \r\n \r\n
\r\n

\r\n Collected Commission\r\n

\r\n
\r\n
\r\n \r\n changeFinanceMTDCommMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(financeMTDCommYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeFinanceMTDCommYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {financeMTDComm &&\r\n financeMTDComm.data &&\r\n financeMTDComm.options &&\r\n !financeMTDCommLoading && (\r\n \r\n )}\r\n\r\n {financeMTDCommLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {adminChart && (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n

Customer Topup MTD (Other platforms)

\r\n
\r\n
\r\n \r\n changeAdminMTDWalletTransMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(adminMTDWalletTransYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeAdminMTDWalletTransYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {adminMTDWalletTrans &&\r\n adminMTDWalletTrans.data &&\r\n adminMTDWalletTrans.options &&\r\n !adminMTDWalletTransLoading && (\r\n \r\n )}\r\n\r\n {adminMTDWalletTransLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n )}\r\n
\r\n\r\n {/**===========================Merchant Dashboard ========================== */}\r\n\r\n \r\n {merchantChart && (\r\n \r\n \r\n \r\n \r\n
\r\n

Daily Sales

\r\n
\r\n {/*
\r\n changeMerchantMDTMonth(e.target.value)}\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {/* {getMonths(merchantMTDYear)}\r\n \r\n
*/}{\" \"}\r\n {/*
\r\n changeMerchantMTDYear(e.target.value)}\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n {merchantMTD &&\r\n merchantMTD.data &&\r\n merchantMTD.options &&\r\n !merchantMTDLoading && (\r\n \r\n )}\r\n\r\n {merchantMTDLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {merchantChart && (\r\n \r\n \r\n \r\n \r\n
\r\n

Monthly Sales

\r\n
\r\n
\r\n {/*
\r\n changeMerchantYTD(e.target.value)}\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n {merchantYTD &&\r\n merchantYTD.data &&\r\n merchantYTD.options &&\r\n !merchantYTDLoading && (\r\n \r\n )}\r\n\r\n {merchantYTDLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n\r\n {/* ==================Subscriber Dashboard======================== */}\r\n\r\n {subscriberChart && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

MTD Withdrawals

\r\n
\r\n
\r\n \r\n changeSubsMTDWithDrawMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(subsMTDWithDrawYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeSubsMTDWithDrawYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {subsMTDWithDraw &&\r\n subsMTDWithDraw.data &&\r\n subsMTDWithDraw.options &&\r\n !subsMTDWithDrawLoading && (\r\n \r\n )}\r\n\r\n {subsMTDWithDrawLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n

MTD Payment

\r\n
\r\n
\r\n \r\n changeSubsMTDPaymentMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(subsMTDPaymentYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeSubsMTDPaymentYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {subsMTDPayment &&\r\n subsMTDPayment.data &&\r\n subsMTDPayment.options &&\r\n !subsMTDPaymentLoading && (\r\n \r\n )}\r\n\r\n {subsMTDPaymentLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

MTD Wallet Transfer

\r\n
\r\n
\r\n \r\n changeSubsMTDWalletTransMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(subsMTDWalletTransYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeSubsMTDWalletTransYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {subsMTDWalletTrans &&\r\n subsMTDWalletTrans.data &&\r\n subsMTDWalletTrans.options &&\r\n !subsMTDWalletTransLoading && (\r\n \r\n )}\r\n\r\n {subsMTDWalletTransLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n {/* ================== Bank Dashboard ======================== */}\r\n\r\n {bankChart && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n MTD Commissions\r\n

\r\n
\r\n
\r\n changeBankCommMonth(e.target.value)}\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(bankCommYear)}\r\n \r\n
\r\n\r\n
\r\n changeBankCommYear(e.target.value)}\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {bankCommission &&\r\n bankCommission.data &&\r\n bankCommission.options &&\r\n !bankCommLoading && (\r\n \r\n )}\r\n\r\n {bankCommLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n

\r\n MTD Customer Transfers\r\n

\r\n
\r\n
\r\n changeBankCTMonth(e.target.value)}\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(bankCTYear)}\r\n \r\n
\r\n\r\n
\r\n changeBankCTYear(e.target.value)}\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {bankCT &&\r\n bankCT.data &&\r\n bankCT.options &&\r\n !bankCTloading && (\r\n \r\n )}\r\n\r\n {bankCTloading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n {/* ================== Finance User Dashboard ======================== */}\r\n {financeChart && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n MTD Collection\r\n

\r\n
\r\n
\r\n \r\n changeFinanceMTDColltnMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(financeMTDColltnYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeFinanceMTDColltnYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {\r\n financeMTDColltn &&\r\n financeMTDColltn.data &&\r\n financeMTDColltn.options &&\r\n !financeMTDColltnLoading && (\r\n \r\n )\r\n // \r\n // \r\n }\r\n\r\n {financeMTDColltnLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n

\r\n MTD Commissions\r\n

\r\n
\r\n
\r\n \r\n changeFinanceMTDCommMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(financeMTDCommYear)}\r\n \r\n
\r\n
\r\n \r\n changeFinanceMTDCommYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {financeMTDComm &&\r\n financeMTDComm.data &&\r\n financeMTDComm.options &&\r\n !financeMTDCommLoading && (\r\n \r\n )}\r\n {financeMTDCommLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n Collection and Commissions\r\n

\r\n
\r\n
\r\n \r\n changeFinancePieMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(financePieYear)}\r\n \r\n
\r\n\r\n
\r\n changeFinancePieYear(e.target.value)}\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {/* {!financePieLoading &&\r\n \r\n } */}\r\n\r\n {!financePieLoading && (\r\n \r\n )}\r\n\r\n {financePieLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n {/* ================== Settlement Bank Dashboard ======================== */}\r\n {settlementChart && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n MTD Merchant Settlements\r\n

\r\n
\r\n
\r\n \r\n changeSettlementMTDMerchantMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(settlementMTDMerchantYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeSettlementMTDMerchantYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {settlementMTDMerchant &&\r\n settlementMTDMerchant.data &&\r\n settlementMTDMerchant.options &&\r\n !settlementMTDMerchantLoading && (\r\n \r\n )}\r\n\r\n {settlementMTDMerchantLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n

\r\n MTD Transfers\r\n

\r\n
\r\n
\r\n \r\n changeSettlementMTDTransferMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(settlementMTDTransferYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeSettlementMTDTransferYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {settlementMTDTransfer &&\r\n settlementMTDTransfer.data &&\r\n settlementMTDTransfer.options &&\r\n !settlementMTDTransferLoading && (\r\n \r\n )}\r\n\r\n {settlementMTDTransferLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Funds

\r\n
\r\n
\r\n \r\n changeSettlementPieMonth(e.target.value)\r\n }\r\n >\r\n {/* {MonthArrayCAP.map(c =>\r\n \r\n )} */}\r\n {getMonths(settlementPieYear)}\r\n \r\n
\r\n\r\n
\r\n \r\n changeSettlementPieYear(e.target.value)\r\n }\r\n >\r\n {YEARS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {/* {!settlementPieLoading &&\r\n \r\n } */}\r\n\r\n {!settlementPieLoading && (\r\n \r\n )}\r\n\r\n {settlementPieLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Home;\r\n","import FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Doughnut, Line, Pie } from \"react-chartjs-2\";\r\nimport { Card, CardBody, CardTitle, Col, Container, Row } from \"reactstrap\";\r\nimport { postMethod } from \"services/httpServices\";\r\n\r\nconst options = {\r\n plugins: {\r\n datalabels: {\r\n formatter: (value) => `${value}%`,\r\n color: \"#fff\",\r\n font: {\r\n weight: \"bold\",\r\n size: 14,\r\n },\r\n },\r\n },\r\n};\r\n\r\nconst chartOptions = {\r\n scales: {\r\n x: {\r\n type: \"time\",\r\n time: {\r\n unit: \"day\",\r\n tooltipFormat: \"ll\",\r\n },\r\n title: {\r\n display: true,\r\n text: \"Date\",\r\n },\r\n },\r\n y: {\r\n beginAtZero: true,\r\n max: 100,\r\n ticks: {\r\n stepSize: 10,\r\n },\r\n title: {\r\n display: true,\r\n text: \"Success Rate (%)\",\r\n },\r\n },\r\n },\r\n plugins: {\r\n legend: {\r\n display: true,\r\n position: \"top\",\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label: function (context) {\r\n return `${context.dataset.label}: ${context.raw}%`;\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nconst Insights = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [data, setData] = useState({\r\n fspCategoryData: [],\r\n fspCustomerVerificationRate: [],\r\n customerRegistrationCount: {},\r\n });\r\n\r\n const [pieData, setPieData] = useState();\r\n const [chartData, setChartData] = useState();\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n postMethod(\"/api/Dashboard/AdminDataInsight\", {}, \"post\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setData(res.data.result);\r\n }\r\n })\r\n .catch((err) => {})\r\n .finally(() => setLoading(false));\r\n }, []);\r\n\r\n useEffect(() => {\r\n setPieData({\r\n labels: data.fspCategoryData.map((i) => i.fspCategory),\r\n datasets: [\r\n {\r\n data: data.fspCategoryData.map((i) => i.percentage),\r\n backgroundColor: [\"#FFD700\", \"#FFA500\"],\r\n hoverBackgroundColor: [\"#FFD700\", \"#FFA500\"],\r\n },\r\n ],\r\n });\r\n }, [data.fspCategoryData, data.fspCategoryData.length]);\r\n\r\n useEffect(() => {\r\n setChartData({\r\n labels: data.fspCustomerVerificationRate?.map((item) =>\r\n new Date(item.date).toLocaleDateString()\r\n ),\r\n datasets: [\r\n {\r\n label: \"Success Rate\",\r\n data: data.fspCustomerVerificationRate?.map(\r\n (item) => item.successRate\r\n ),\r\n fill: false,\r\n backgroundColor: \"#FFD700\",\r\n borderColor: \"#FFD700\",\r\n },\r\n ],\r\n });\r\n }, [\r\n data.fspCustomerVerificationRate,\r\n data.fspCustomerVerificationRate.length,\r\n ]);\r\n\r\n const getChangeDirection = (type) => {\r\n if (type === \"up\") {\r\n return ;\r\n } else if (type === \"down\") {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Customer Whitelist\r\n \r\n
\r\n \r\n
\r\n {\" \"}\r\n
\r\n \r\n
\r\n

\r\n {loading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {data.customerRegistrationCount?.totalRegistrations ?? 0}{\" \"}\r\n {getChangeDirection(\r\n data.customerRegistrationCount?.changeDirection\r\n )}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Customer Whitelisting Process Avg Time\r\n \r\n
\r\n \r\n
\r\n {\" \"}\r\n
\r\n \r\n
\r\n

\r\n {loading ? (\r\n

\r\n
\r\n
\r\n ) : (\r\n \r\n {data.customerWhitelistingProcessAvgTime?.averageTime ?? 0}\r\n \r\n )}\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

FSP Category Distribution

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

Customer Registration and Verification Success Rate

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Insights;\r\n","import classnames from \"classnames\";\r\nimport React, { useState } from \"react\";\r\nimport {\r\n Button,\r\n Container,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n TabContent,\r\n TabPane,\r\n} from \"reactstrap\";\r\nimport Home from \"./Home\";\r\nimport Insights from \"./Insights\";\r\nimport { getLoginType } from \"services/httpServices\";\r\n\r\nfunction Index() {\r\n const [activeTab, setActiveTab] = useState(\"1\");\r\n\r\n const loginType = getLoginType();\r\n\r\n const toggle = (tab) => {\r\n setActiveTab(tab);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {loginType === \"Admin\" && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Index;\r\n","\r\nexport const DEFAULT_ACTION = 'app/PaymentList/DEFAULT_ACTION';\r\n// payment list constant\r\nexport const PAYMENT_FECTH_LIST = 'app/PaymentList/PAYMENT_FECTH_LIST';\r\nexport const PAYMENT_SET_LIST = 'app/PaymentList/PAYMENT_SET_LIST';\r\nexport const PAYMENT_FETCH_ERROR = 'app/PaymentList/PAYMENT_FETCH_ERROR';\r\nexport const RESET_PAYMENT_LIST = 'app/PaymentList/RESET_PAYMENT_LIST';\r\nexport const COLLECTION_BANK_LIST = 'app/Bank/COLLECTION_BANK_LIST';\r\nexport const COLLECTION_BANK_SET_LIST = 'app/Bank/COLLECTION_BANK_SET_LIST';\r\nexport const COLLECTION_BANK_ERROR = 'app/Bank/COLLECTION_BANK_ERROR';\r\nexport const RESET_COLLECTION_BANK_LIST = 'app/Bank/RESET_COLLECTION_BANK_LIST';\r\n\r\n\r\n","export const FETCH_SUBSCRIBER_INFO = 'app/TopUp/FETCH_SUBSCRIBER_INFO';\r\nexport const SET_SUBSCRIBER_INFO = 'app/TopUp/SET_SUBSCRIBER_INFO';\r\nexport const SET_ERROR = 'app/TopUp/SET_ERROR';\r\nexport const ADD_VOUCHER = 'app/TopUp/ADD_VOUCHER';\r\nexport const ADD_VOUCHER_SUCCESS = 'app/TopUp/ADD_VOUCHER_SUCCESS';\r\nexport const ADD_VOUCHER_FAILED = 'app/TopUp/ADD_VOUCHER_FAILED';\r\nexport const RESET_VOUCHER = 'app/TopUp/RESET_VOUCHER';\r\nexport const FETCH_MERCHANT = 'app/MakePayment/FETCH_MERCHANT';\r\nexport const FETCH_MERCHANT_ERROR = 'app/MakePayment/FETCH_MERCHANT_ERROR';\r\nexport const SET_MERCHANT = 'app/MakePayment/SET_MERCHANT';\r\nexport const RESET_MERCHANT = 'app/MakePayment/RESET_MERCHANT';\r\nexport const FETCH_PAYABLE_AMT = 'app/MakePayment/FETCH_PAYABLE_AMT';\r\nexport const SET_PAYABLE_AMT = 'app/MakePayment/SET_PAYABLE_AMT';\r\nexport const PAYABLE_AMT_ERROR = 'app/MakePayment/PAYABLE_AMT_ERROR';\r\nexport const RESET_PAYABLE_AMT = 'app/MakePayment/RESET_PAYABLE_AMT';","import { PAYMENT_FETCH_ERROR } from 'views/bank/constant';\r\nimport { \r\n FETCH_SUBSCRIBER_INFO,\r\n SET_SUBSCRIBER_INFO,\r\n SET_ERROR,\r\n ADD_VOUCHER,\r\n ADD_VOUCHER_SUCCESS,\r\n ADD_VOUCHER_FAILED,\r\n RESET_VOUCHER,\r\n FETCH_MERCHANT,\r\n SET_MERCHANT,\r\n FETCH_MERCHANT_ERROR,\r\n RESET_MERCHANT,\r\n FETCH_PAYABLE_AMT,\r\n SET_PAYABLE_AMT,\r\n PAYABLE_AMT_ERROR,\r\n RESET_PAYABLE_AMT\r\n} from './constant';\r\n\r\nexport function fetchSubs() {\r\n return {\r\n type: FETCH_SUBSCRIBER_INFO\r\n };\r\n}\r\n\r\nexport function setSubs(data) {\r\n return {\r\n type: SET_SUBSCRIBER_INFO,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function setError(data) {\r\n return {\r\n type: SET_ERROR,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function addVoucher(data) {\r\n return {\r\n type: ADD_VOUCHER,\r\n data\r\n }\r\n}\r\n\r\nexport function addVoucherFailed(data) {\r\n return {\r\n type: ADD_VOUCHER_FAILED,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function addVoucherSuccess(data) {\r\n return {\r\n type: ADD_VOUCHER_SUCCESS,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function resetVoucher() {\r\n return {\r\n type: RESET_VOUCHER\r\n };\r\n}\r\n\r\nexport function fetchMerchant() {\r\n return {\r\n type: FETCH_MERCHANT\r\n }\r\n}\r\n\r\nexport function setMerchant(data) {\r\n return {\r\n type: SET_MERCHANT,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function fetchMerchantError(data) {\r\n return {\r\n type: FETCH_MERCHANT_ERROR,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function resetMerchant() {\r\n return {\r\n type: RESET_MERCHANT\r\n }\r\n}\r\n\r\n\r\nexport function fetchPayableAmt(data) {\r\n return {\r\n type: FETCH_PAYABLE_AMT,\r\n data: data\r\n }\r\n}\r\n\r\nexport function setPayableAmt(data) {\r\n return {\r\n type: SET_PAYABLE_AMT,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function fetchPayableAmtErro(data) {\r\n return {\r\n type: PAYABLE_AMT_ERROR,\r\n payload: data\r\n }\r\n}\r\n\r\nexport function resetPayableAmt() {\r\n return {\r\n type: RESET_PAYABLE_AMT\r\n }\r\n}","export const SET_LOGIN_USER_IMAGE = 'app/Login/SET_LOGIN_USER_IMAGE';","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Row,\r\n Col,\r\n NavbarBrand,\r\n} from \"reactstrap\";\r\n\r\nimport {\r\n loginMethod,\r\n setLoggedIn,\r\n setLoginType,\r\n setUserEmail,\r\n setUserName,\r\n setUserB64,\r\n setUserId,\r\n setPswd,\r\n} from \"../../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { useHistory } from \"react-router\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { fetchSubs } from \"../subscriber/action\";\r\nimport { connect } from \"react-redux\";\r\nimport { setUserImage } from \"./action\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\n\r\nconst Login = (props) => {\r\n const initialValue = {\r\n email: null,\r\n pswd: null,\r\n };\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState(initialValue);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [loginOption, setLoginOption] = React.useState(\"\"); // Initial option: 'mobile'\r\n\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n const handleLoginOptionChange = (e) => {\r\n setValues({ ...values, email: \"\" });\r\n setLoginOption(e.target.value);\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n setValues({\r\n ...values,\r\n [name]: value,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let digiRegex = /^[0-9]*$/;\r\n if (!inputs.email) {\r\n errors.email = \"Email address / mobile number is required\";\r\n } else if (\r\n isNaN(inputs.email) &&\r\n !/\\S+@\\S+\\.\\S+/.test(inputs.email) &&\r\n !digiRegex.test(inputs.email)\r\n ) {\r\n errors.email = \"* Email address / mobile number is invalid\";\r\n }\r\n // else if (digiRegex.test(inputs.email) && inputs.email.length !== 11) {\r\n // errors.email = ' * Mobile number should contain 11 digits';\r\n // }\r\n if (!inputs.pswd) {\r\n errors.pswd = \"* Password is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const notify = (text, type) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n if (!type) {\r\n type = \"success\";\r\n }\r\n addToast(text, {\r\n appearance: type,\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const forgotPswd = (e) => {\r\n e.preventDefault();\r\n history.push(\"/forgot-password\");\r\n };\r\n\r\n const privacyPolicy = (e) => {\r\n e.preventDefault();\r\n history.push(\"/privacy-policy\");\r\n };\r\n\r\n const signUp = (e) => {\r\n e.preventDefault();\r\n history.push(\"/sign-up\");\r\n };\r\n\r\n useEffect(() => {\r\n window.localStorage.setItem(\"validUser\", false);\r\n }, []);\r\n\r\n const handleSubmit = (event) => {\r\n let errorMsg = \"\";\r\n event.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const noErrors = Object.values(validationErrors).every((x) => x === \"\");\r\n setErrors(validationErrors);\r\n const noDashboardUsers = [\r\n \"Sales Supervisor\",\r\n \"Sales Representative\",\r\n \"Operation supervisor\",\r\n \"Operations Officer\",\r\n \"Audits and Compliance\",\r\n \"Customer Support Supervisor\",\r\n \"Customer Support Representative\",\r\n ];\r\n if (noErrors) {\r\n setLoggedIn(false);\r\n let url = \"/api/Auth/Login\";\r\n if (loginOption === \"\") {\r\n notify(\"Please select the login option Mobile/Email\", \"error\");\r\n return;\r\n }\r\n\r\n let data = {\r\n Email: values.email.trim(),\r\n Password: values.pswd,\r\n };\r\n setLoading(true);\r\n loginMethod(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n if (res.data.result) {\r\n window.localStorage.setItem(\"token\", res.data.result);\r\n window.localStorage.setItem(\"validUser\", true);\r\n // setPswd(values.pswd);\r\n var decoded = jwt_decode(res.data.result);\r\n if (decoded && decoded.UserProfile) {\r\n var userProfile = JSON.parse(decoded.UserProfile);\r\n if (userProfile.hasOwnProperty(\"UserRole\")) {\r\n setLoginType(userProfile.UserRole);\r\n // if (userProfile.UserRole === \"Subscriber\") {\r\n // fetchSubs();\r\n // }\r\n }\r\n\r\n if (\r\n userProfile.hasOwnProperty(\"UserName\") &&\r\n userProfile.UserName.length\r\n ) {\r\n setUserName(userProfile.UserName);\r\n }\r\n\r\n // if (\r\n // userProfile.hasOwnProperty('UserProfileImage') &&\r\n // userProfile.UserProfileImage &&\r\n // userProfile.UserProfileImage.length\r\n // ) {\r\n // setUserB64(userProfile.UserProfileImage);\r\n // } else {\r\n // setUserB64(null);\r\n // }\r\n\r\n if (\r\n userProfile.hasOwnProperty(\"UserID\") &&\r\n userProfile.UserID.length\r\n ) {\r\n setUserId(userProfile.UserID);\r\n }\r\n }\r\n setUserEmail(values.email);\r\n setLoggedIn(true);\r\n fetchUserInfo(userProfile.UserID);\r\n if (noDashboardUsers.includes(userProfile.UserRole)) {\r\n history.push(\"/user-list\");\r\n } else {\r\n history.push(\"/index\");\r\n }\r\n } else {\r\n errorMsg = \"Token not found\";\r\n notify(errorMsg, \"error\");\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n if (\r\n res.data.responseMessage ===\r\n \"first time login found so check email/SMS and use OTP to set your PIN\"\r\n ) {\r\n history.push(\"/forgot-password\", {\r\n otpSent: true,\r\n data,\r\n });\r\n }\r\n errorMsg = res.data.responseMessage || \"Invalid credentials\";\r\n notify(errorMsg, \"error\");\r\n } else {\r\n errorMsg = \"Error in login\";\r\n notify(errorMsg, \"error\");\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notify(errorMsg, \"error\");\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notify(errorMsg, \"error\");\r\n });\r\n } else {\r\n }\r\n };\r\n\r\n const fetchSubs = () => {\r\n props.fetchSubsInfo();\r\n };\r\n\r\n const fetchUserInfo = (id) => {\r\n let errorMsg = \"\";\r\n // var id = 'c8a24293-7b55-4f6c-a930-5431947c25cd';\r\n loginMethod(\"/api/User/profileImage/\" + id, {}, \"get\")\r\n .then((res) => {\r\n if (res && res.data && res.data.length) {\r\n setUserB64(res.data);\r\n props.setImg(true);\r\n } else {\r\n setUserB64(null);\r\n props.setImg(false);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n email: value,\r\n });\r\n }\r\n return;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {/*
\r\n Sign in with credentials\r\n
*/}{\" \"}\r\n {/* */}\r\n \r\n
\r\n
\r\n {/*
\r\n Sign in with credentials\r\n
*/}\r\n
\r\n
\r\n

Login  

\r\n\r\n \r\n

\r\n Login using\r\n

\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n {loginOption === \"mobile\" ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {errors.email && (\r\n
\r\n {errors.email}\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.pswd && (\r\n
\r\n {errors.pswd}\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n Sign In {loading && }\r\n \r\n
\r\n\r\n \r\n {/* */}\r\n {/* \r\n signUp(e)}\r\n id=\"tag\"\r\n href=\"#\"\r\n >\r\n Sign up\r\n */}\r\n {/* */}\r\n {/* */}\r\n\r\n \r\n {/* forgotPswd(e)}\r\n id=\"tag\"\r\n href=\"#\"\r\n >\r\n Forgot Password ?\r\n */}\r\n \r\n forgotPswd(e)}\r\n id=\"tag\"\r\n href=\"#\"\r\n style={{\r\n textWrap: \"nowrap\",\r\n }}\r\n >\r\n Forgot Password ? |\r\n \r\n
\r\n privacyPolicy(e)}\r\n id=\"tag\"\r\n href=\"#\"\r\n style={{\r\n textWrap: \"nowrap\",\r\n }}\r\n >\r\n Privacy Policy\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchSubsInfo: () => dispatch(fetchSubs()),\r\n setImg: (data) => dispatch(setUserImage(data)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\r\n","import { SET_LOGIN_USER_IMAGE } from \"./constant\";\r\n\r\nexport function setUserImage(data) {\r\n return {\r\n type: SET_LOGIN_USER_IMAGE,\r\n payload: data\r\n }\r\n}","import React, { Fragment, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n FormText,\r\n Alert,\r\n UncontrolledAlert,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod, getMethod } from \"../../services/httpServices\";\r\nimport {\r\n checkDigitOnly,\r\n checkBankAccNo,\r\n checkName,\r\n checkBbanValidation,\r\n} from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY, CASH_TOPUP_HINT } from \"../../appConfig\";\r\n\r\nconst codes = [\r\n 23225, 23230, 23231, 23232, 23233, 23234, 23244, 23275, 23276, 23277, 23278,\r\n 23279, 23280, 23288, 23299,\r\n];\r\n\r\nconst merchantAccountInitialState = {\r\n merchantName: \"\",\r\n fspId: \"\",\r\n fspName: \"\",\r\n accountId: \"\",\r\n id: 1,\r\n};\r\n\r\nconst initialValue = {\r\n name: \"\",\r\n address: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n phoneWithCC: \"\",\r\n email: \"\",\r\n bankName: \"\",\r\n bban: \"\",\r\n attachFile: \"\",\r\n apiUrl: \"\",\r\n uniqueLabel: \"\",\r\n commissionId: \"\",\r\n authType: \"Basic\",\r\n basicAuthUName: \"\",\r\n basicAuthPswd: \"\",\r\n validateUrl: \"api/ValidateProduct/validate\",\r\n updateStatusUrl: \"api/ValidateProduct/updatePaymentStatus\",\r\n bankAccNo: \"\",\r\n bankProfileId: \"\",\r\n cashTopupCommId: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n district: \"\",\r\n chiefdomOrArea: \"\",\r\n receivablesUse: \"\",\r\n onlineGateway: false,\r\n smartBill: false,\r\n fspCategory: \"\",\r\n};\r\n\r\nconst Merchant = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const [file, setFile] = React.useState(null);\r\n const [commissions, setCommission] = React.useState([]);\r\n const [cashTopUpComm, setCashTopUpComm] = React.useState([]);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [merchantBankAccounts, setMerchantBankAccounts] = React.useState([\r\n merchantAccountInitialState,\r\n ]);\r\n const [fsps, setFsps] = React.useState([]);\r\n const [verifyErrros, setVerifyErrors] = useState([]);\r\n\r\n React.useEffect(() => {\r\n fetchCommission();\r\n fetchCashTopUpCommission();\r\n fetchAllFsps();\r\n }, []);\r\n\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const verifyAccount = async (accountNumber, fspId) => {\r\n const payload = {\r\n accountNumber,\r\n fspId,\r\n };\r\n return postMethod(\"/api/FSP/Account/verify\", payload, \"post\");\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"name\") {\r\n if (checkName(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n phoneWithCC: value,\r\n mobileCode: data.dialCode,\r\n phone: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n let urlRegEx =\r\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n if (!inputs.name) {\r\n errors.name = \"Merchant Name is Required\";\r\n }\r\n if (!inputs.email) {\r\n errors.email = \"Email is Required\";\r\n } else if (!emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n // if (!inputs.bban) {\r\n // errors.bban = \"BBAN is Required\";\r\n // } else if (inputs.bban.length < 8 || inputs.bban.length > 18) {\r\n // errors.bban = \"BBAN should have 8 to 18 digits\";\r\n // }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = \"Phone Number is Required\";\r\n }\r\n // else if (inputs.phone.length !== 6) {\r\n // errors.phone = 'Phone Number should have 6 digits';\r\n // }\r\n // if (!inputs.bankName) {\r\n // errors.bankName = \"Bank Name is Required\";\r\n // }\r\n // if (!inputs.bankProfileId) {\r\n // errors.bankProfileId = \"Bank Name is Required\";\r\n // }\r\n // if (!inputs.address) {\r\n // errors.address = 'Address is Required';\r\n // }\r\n if (!inputs.address1) {\r\n errors.address1 = \"Address Line 1 is Required\";\r\n }\r\n // if (!inputs.address2) {\r\n // errors.address2 = 'Address2 is Required';\r\n // }\r\n // if (!inputs.chiefdomOrArea) {\r\n // errors.chiefdomOrArea = 'chiefdomOrArea is Required';\r\n // }\r\n // if (!inputs.receivablesUse) {\r\n // errors.receivablesUse = 'chiefdomOrArea is Required';\r\n // }\r\n if (!file) {\r\n errors.attachFile = \"Attach file is required\";\r\n }\r\n if (!inputs.apiUrl) {\r\n errors.apiUrl = \"Api url is required\";\r\n } else if (!urlRegEx.test(inputs.apiUrl)) {\r\n errors.apiUrl = \"Please enter valid api url\";\r\n }\r\n if (!inputs.uniqueLabel) {\r\n errors.uniqueLabel = \"Unique reference label is required\";\r\n }\r\n if (!inputs.commissionId) {\r\n errors.commissionId = \"Please select commission\";\r\n }\r\n if (!inputs.validateUrl) {\r\n errors.validateUrl = \"Please enter validate product url\";\r\n }\r\n if (!inputs.updateStatusUrl) {\r\n errors.updateStatusUrl = \"Please enter update payment status url\";\r\n }\r\n if (!inputs.basicAuthPswd) {\r\n errors.basicAuthPswd = \"Please enter basic authentication password\";\r\n }\r\n if (!inputs.basicAuthUName) {\r\n errors.basicAuthUName = \"Please enter basic authentication user name\";\r\n }\r\n // if (!inputs.bankAccNo) {\r\n // errors.bankAccNo = \"Please enter bank account number\";\r\n // } else if (inputs.bankAccNo.length < 8 || inputs.bankAccNo.length > 18) {\r\n // errors.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n // }\r\n return errors;\r\n };\r\n\r\n const fileChanger = (event) => {\r\n setFile(event.target.files[0]);\r\n // setErrors({ ...errors, attachFile: \"\" });\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n const verifyAll = merchantBankAccounts.map((item) =>\r\n verifyAccount(item.accountId, item.fspId)\r\n );\r\n setLoading(true);\r\n\r\n const allProms = await Promise.all(verifyAll);\r\n setLoading(false);\r\n const promResults = allProms.map((i) => i.data?.responseCode);\r\n setVerifyErrors(promResults);\r\n if (promResults.includes(\"400\")) {\r\n notifyFailed(\r\n \"Error while verifying bank accounts. Please check bank account id.\"\r\n );\r\n return;\r\n }\r\n var data = new FormData();\r\n data.append(\"Name\", values.name.trim());\r\n data.append(\"Address\", values.address);\r\n data.append(\"PhoneNumber\", values.phone);\r\n data.append(\"MobileCode\", values.mobileCode);\r\n data.append(\"Email\", values.email);\r\n data.append(\"BankName\", values.bankName);\r\n data.append(\"BBAN\", values.bban);\r\n // data.append('Status', values.itPhone);\r\n data.append(\"Attachment\", file);\r\n data.append(\"WebSiteURL\", values.apiUrl);\r\n data.append(\"LabelKey\", values.uniqueLabel);\r\n data.append(\"MerchantType\", \"Online\");\r\n data.append(\"CommissionId\", values.commissionId);\r\n data.append(\"WebSiteAuthenticationType\", \"basic\");\r\n data.append(\"WebSitePassword\", values.basicAuthPswd);\r\n data.append(\"WebSiteUser\", values.basicAuthUName);\r\n data.append(\"MerchantAPIConfig[0].MethodName\", \"Validate\");\r\n data.append(\"MerchantAPIConfig[0].MethodURL\", values.validateUrl);\r\n data.append(\"MerchantAPIConfig[1].MethodName\", \"Payment\");\r\n data.append(\"MerchantAPIConfig[1].MethodURL\", values.updateStatusUrl);\r\n data.append(\"BankAccountNumber\", values.bankAccNo);\r\n data.append(\"BankProfileId\", 0);\r\n data.append(\r\n \"TopUpCommissionId\",\r\n values.cashTopupCommId ? values.cashTopupCommId : 0\r\n );\r\n data.append(\"AddressLine1\", values.address1);\r\n data.append(\"AddressLine2\", values.address2);\r\n data.append(\"ChiefdomOrArea\", values.chiefdomOrArea);\r\n data.append(\"District\", values.district);\r\n data.append(\"ReceivablesUse\", values.receivablesUse);\r\n data.append(\"OnlineGateway\", values.onlineGateway === \"Yes\");\r\n data.append(\"SmartBill\", values.smartBill === \"Yes\");\r\n\r\n merchantBankAccounts.forEach((i, idx) => {\r\n data.append(\r\n `MerchantBankAccounts[${idx}].MerchantName`,\r\n values.name.trim()\r\n );\r\n data.append(`MerchantBankAccounts[${idx}].FSPId`, i.fspId);\r\n data.append(`MerchantBankAccounts[${idx}].FSPName`, i.fspName);\r\n data.append(`MerchantBankAccounts[${idx}].AccountId`, i.accountId);\r\n });\r\n\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/MerchantProfile/save\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const fetchCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=Merchant\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCommission(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchCashTopUpCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=CashTopUp\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCashTopUpComm(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const onAccChange = (e, idx) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n const updated = structuredClone(merchantBankAccounts);\r\n updated[idx][name] = value;\r\n if (name === \"fspId\") {\r\n updated[idx].fspName = fsps.find((i) => i.id == value)?.fspName;\r\n }\r\n setMerchantBankAccounts(updated);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Merchant Name *\r\n \r\n \r\n {errors.name && (\r\n
\r\n * {errors.name}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email *\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Phone Number *\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Address Line 1 *\r\n \r\n \r\n {errors.address1 && (\r\n
\r\n * {errors.address1}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Address Line 2\r\n \r\n \r\n {errors.address2 && (\r\n
\r\n * {errors.address2}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Chiefdom Or Area\r\n \r\n \r\n {errors.chiefdomOrArea && (\r\n
\r\n * {errors.chiefdomOrArea}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n District\r\n \r\n \r\n {errors.district && (\r\n
\r\n * {errors.district}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Receivables Use\r\n \r\n \r\n {errors.receivablesUse && (\r\n
\r\n * {errors.receivablesUse}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Online Gateway\r\n \r\n \r\n \r\n {[\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].map((c) => (\r\n \r\n ))}\r\n \r\n {errors.onlineGateway && (\r\n
\r\n * {errors.onlineGateway}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n SmartBill\r\n \r\n \r\n \r\n {[\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].map((c) => (\r\n \r\n ))}\r\n \r\n {errors.SmartBill && (\r\n
\r\n * {errors.SmartBill}\r\n
\r\n )}\r\n
\r\n \r\n {/* \r\n \r\n Address\r\n \r\n \r\n {errors.address &&
\r\n * {errors.address}\r\n
}\r\n */}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Authentication Configuration\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Api Integration Url *\r\n \r\n \r\n {errors.apiUrl && (\r\n
\r\n * {errors.apiUrl}\r\n
\r\n )}\r\n \r\n\r\n \r\n \r\n Unique Identification Label *\r\n \r\n \r\n {errors.uniqueLabel && (\r\n
\r\n * {errors.uniqueLabel}\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n Validate Product Url\r\n \r\n \r\n {errors.validateUrl && (\r\n
\r\n * {errors.validateUrl}\r\n
\r\n )}\r\n \r\n\r\n \r\n \r\n Update Payment Status Url\r\n \r\n \r\n {errors.updateStatusUrl && (\r\n
\r\n * {errors.updateStatusUrl}\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Basic Auth Username *\r\n \r\n \r\n {errors.basicAuthUName && (\r\n
\r\n * {errors.basicAuthUName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Basic Auth Password *\r\n \r\n \r\n \r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.basicAuthPswd && (\r\n
\r\n * {errors.basicAuthPswd}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Commission Information\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Commission\r\n \r\n \r\n \r\n {commissions.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.commissionId && (\r\n
\r\n * {errors.commissionId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {/* \r\n \r\n \r\n Cash Topup Commission\r\n \r\n \r\n \r\n {cashTopUpComm.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n {CASH_TOPUP_HINT}\r\n
\r\n
\r\n */}\r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Merchant Bank Account Details (settlement)\r\n
\r\n\r\n
\r\n \r\n \r\n {verifyErrros.includes(\"400\") && (\r\n \r\n If merchants accounts are not verified then it will\r\n be difficult to do the settlement.\r\n \r\n )}\r\n \r\n {merchantBankAccounts.map((acc, idx) => (\r\n \r\n {merchantBankAccounts.length > 1 && (\r\n \r\n {\" \"}\r\n
\r\n Account {idx + 1}\r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n FSP *\r\n \r\n {\r\n onAccChange(e, idx, acc.id);\r\n }}\r\n >\r\n \r\n {fsps &&\r\n fsps.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Merchant bank account number *\r\n {verifyErrros[idx] === \"400\" && (\r\n
\r\n Enter valid account number\r\n
\r\n )}\r\n {verifyErrros[idx] === \"200\" && (\r\n
\r\n Verified!\r\n
\r\n )}\r\n \r\n \r\n onAccChange(e, idx)}\r\n />\r\n {verifyErrros[idx] === \"200\" ? (\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n ) : verifyErrros[idx] === \"400\" ? (\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n {merchantBankAccounts.length > 1 && (\r\n {\r\n const filtered =\r\n merchantBankAccounts.filter(\r\n (_, j) => j !== idx\r\n );\r\n setMerchantBankAccounts(filtered);\r\n }}\r\n >\r\n {\" \"}\r\n \r\n )}\r\n
\r\n \r\n
\r\n ))}\r\n \r\n \r\n {\" \"}\r\n {\r\n setMerchantBankAccounts([\r\n ...merchantBankAccounts,\r\n {\r\n ...merchantAccountInitialState,\r\n id: merchantBankAccounts.length + 1,\r\n },\r\n ]);\r\n }}\r\n >\r\n \r\n Add More\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Merchant Document\r\n
\r\n\r\n \r\n \r\n \r\n \r\n * pdf only\r\n {errors.attachFile && (\r\n
\r\n * {errors.attachFile}\r\n
\r\n )}\r\n {/* \r\n This is some placeholder block-level help text for the above input.\r\n It's a bit lighter and easily wraps to a new line.\r\n */}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Merchant;\r\n","import React from \"react\";\r\n\r\nconst loaderContainer = {\r\n position: 'fixed',\r\n top: '290px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst loader = {\r\n left: '55%',\r\n top: '50%',\r\n zIndex: '1000',\r\n position: 'absolute'\r\n};\r\n\r\nconst NoRecordFound = (props) => {\r\n const outerDiv = props && props.loaderContainer ? props.loaderContainer : loaderContainer;\r\n const innerDiv = props && props.loader ? props.loader : loader;\r\n return (\r\n
\r\n
\r\n No Record Found\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default NoRecordFound;","import React, { Fragment, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n// core components\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getMethod } from \"../../services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY, CASH_TOPUP_HINT } from \"../../appConfig\";\r\nimport { checkBbanValidation } from \"services/util\";\r\n\r\nconst initialValue = {\r\n name: \"\",\r\n address: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n phoneWithCC: \"\",\r\n email: \"\",\r\n bankName: \"\",\r\n bban: \"\",\r\n attachFile: \"\",\r\n apiUrl: \"\",\r\n uniqueLabel: \"\",\r\n commissionId: \"\",\r\n authType: \"Basic\",\r\n basicAuthUName: \"\",\r\n basicAuthPswd: \"\",\r\n validateUrl: \"\",\r\n updateStatusUrl: \"\",\r\n bankAccNo: \"\",\r\n userProfileId: \"\",\r\n bankProfileId: \"\",\r\n cashTopupCommId: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n district: \"\",\r\n chiefdomOrArea: \"\",\r\n receivablesUse: \"\",\r\n onlineGateway: false,\r\n smartBill: false,\r\n};\r\n\r\nconst codes = [\r\n 23225, 23230, 23231, 23232, 23233, 23234, 23244, 23275, 23276, 23277, 23278,\r\n 23279, 23280, 23288, 23299,\r\n];\r\n\r\nconst ViewMerchant = (props) => {\r\n initialValue.name = props.name;\r\n initialValue.address = props.address;\r\n initialValue.mobileCode = props.mobileCode;\r\n initialValue.phone = props.phoneNumber;\r\n initialValue.email = props.email;\r\n initialValue.bankName = props.bankName;\r\n initialValue.bban = props.bban;\r\n initialValue.apiUrl = props.webSiteURL;\r\n initialValue.uniqueLabel = props.labelKey;\r\n initialValue.commissionId = props.commissionId;\r\n initialValue.basicAuthUName = props.webSiteUser;\r\n initialValue.basicAuthPswd = props.webSitePassword;\r\n initialValue.bankAccNo = props.bankAccountNumber;\r\n initialValue.userProfileId = props.userProfileId;\r\n initialValue.bankProfileId = props.bankProfileId;\r\n initialValue.address1 = props.addressLine1;\r\n initialValue.address2 = props.addressLine2;\r\n initialValue.chiefdomOrArea = props.chiefdomOrArea;\r\n initialValue.district = props.district;\r\n initialValue.receivablesUse = props.receivablesUse;\r\n initialValue.onlineGateway = props.onlineGateway === true ? \"Yes\" : \"No\";\r\n initialValue.smartBill = props.smartBill === true ? \"Yes\" : \"No\";\r\n initialValue.merchantBankAccounts = props.merchantBankAccounts\r\n\r\n initialValue.phoneWithCC = props.mobileCode + props.phoneNumber;\r\n initialValue.cashTopupCommId = props.topUpCommissionId\r\n ? props.topUpCommissionId\r\n : 0;\r\n if (props.merchantAPIConfig && props.merchantAPIConfig.length) {\r\n for (let i = 0; i < props.merchantAPIConfig.length; i++) {\r\n if (props.merchantAPIConfig[i].methodName == \"Validate\") {\r\n initialValue.validateUrl = props.merchantAPIConfig[i].methodURL;\r\n } else if (props.merchantAPIConfig[i].methodName == \"Payment\") {\r\n initialValue.updateStatusUrl = props.merchantAPIConfig[i].methodURL;\r\n }\r\n }\r\n }\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [commissions, setCommission] = React.useState([]);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [cashTopUpComm, setCashTopUpComm] = React.useState([]);\r\n const [fsps, setFsps] = useState([]);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchCommission();\r\n fetchCashTopUpCommission();\r\n fetchAllFsps();\r\n }, []);\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n // const validationErrors = validate(values);\r\n // setErrors(validationErrors);\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 5) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n if (!inputs.name) {\r\n errors.name = \"Merchant Name is Required\";\r\n }\r\n if (!inputs.email) {\r\n errors.email = \"Email is Required\";\r\n } else if (!emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (!inputs.bban) {\r\n errors.bban = \"BBAN is Required\";\r\n } else if (inputs.bban.length < 8 || inputs.bban.length > 18) {\r\n errors.bban = \"BBAN should have 8 to 18 digits\";\r\n }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = \"Phone Number is Required\";\r\n } else if (inputs.phone.length !== 5) {\r\n errors.phone = \"Phone Number should have 5 digits\";\r\n }\r\n if (!inputs.bankName) {\r\n errors.bankName = \"Bank Name is Required\";\r\n }\r\n if (!inputs.address) {\r\n errors.address = \"Address is Required\";\r\n }\r\n if (!inputs.attachFile) {\r\n errors.attachFile = \"Attach file is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=Merchant\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCommission(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchCashTopUpCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=CashTopUp\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCashTopUpComm(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Merchant Name\r\n \r\n \r\n {errors.name && (\r\n
\r\n * {errors.name}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n */}\r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n {/* \r\n \r\n Address\r\n \r\n \r\n {errors.address &&
\r\n * {errors.address}\r\n
}\r\n */}\r\n \r\n \r\n \r\n Address Line 1\r\n \r\n \r\n {errors.address1 && (\r\n
\r\n * {errors.address1}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Address Line 2\r\n \r\n \r\n {errors.address2 && (\r\n
\r\n * {errors.address2}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ChiefdomOrArea\r\n \r\n \r\n {errors.chiefdomOrArea && (\r\n
\r\n * {errors.chiefdomOrArea}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n District\r\n \r\n \r\n {errors.district && (\r\n
\r\n * {errors.district}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ReceivablesUse\r\n \r\n \r\n {errors.receivablesUse && (\r\n
\r\n * {errors.receivablesUse}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Online Gateway\r\n \r\n \r\n \r\n {[\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].map((c) => (\r\n \r\n ))}\r\n \r\n {errors.onlineGateway && (\r\n
\r\n * {errors.onlineGateway}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n SmartBill\r\n \r\n \r\n \r\n {[\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].map((c) => (\r\n \r\n ))}\r\n \r\n {errors.SmartBill && (\r\n
\r\n * {errors.SmartBill}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Authentication Configuration\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Api Integration Url\r\n \r\n \r\n {errors.apiUrl && (\r\n
\r\n * {errors.apiUrl}\r\n
\r\n )}\r\n \r\n\r\n \r\n \r\n Unique Identification Label\r\n \r\n \r\n {errors.uniqueLabel && (\r\n
\r\n * {errors.uniqueLabel}\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n Validate Product Url\r\n \r\n \r\n {errors.validateUrl && (\r\n
\r\n * {errors.validateUrl}\r\n
\r\n )}\r\n \r\n\r\n \r\n \r\n Update Payment Status Url\r\n \r\n \r\n {errors.updateStatusUrl && (\r\n
\r\n * {errors.updateStatusUrl}\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Basic Auth Username\r\n \r\n \r\n {errors.basicAuthUName && (\r\n
\r\n * {errors.basicAuthUName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Basic Auth Password\r\n \r\n \r\n \r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.basicAuthPswd && (\r\n
\r\n * {errors.basicAuthPswd}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Merchant User Id\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Commission Information\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Commission\r\n \r\n \r\n \r\n {commissions.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.commissionId && (\r\n
\r\n * {errors.commissionId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Cash Topup Commission\r\n \r\n \r\n \r\n {cashTopUpComm.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n {CASH_TOPUP_HINT}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Settlement Account Details\r\n
\r\n
\r\n \r\n {/* \r\n \r\n \r\n Bank Name\r\n \r\n \r\n {errors.bankName &&
\r\n * {errors.bankName}\r\n
}\r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n {fsps &&\r\n fsps.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bankProfileId && (\r\n
\r\n * {errors.bankProfileId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n BBAN Number\r\n \r\n \r\n {errors.bban && (\r\n
\r\n * {errors.bban}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Merchant Bank Account Details\r\n
\r\n
\r\n \r\n {values?.merchantBankAccounts.map((acc, idx) => (\r\n \r\n {values?.merchantBankAccounts.length > 1 && (\r\n \r\n {\" \"}\r\n
\r\n Account {idx + 1}\r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n {fsps &&\r\n fsps.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Account ID\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n ))}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ViewMerchant;\r\n","import React, { Fragment } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, getMethod, postMethod } from \"../../services/httpServices\";\r\nimport {\r\n checkDigitOnly,\r\n checkBankAccNo,\r\n checkName,\r\n checkBbanValidation,\r\n} from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY, CASH_TOPUP_HINT } from \"../../appConfig\";\r\n\r\nconst initialValue = {\r\n name: \"\",\r\n address: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n phoneWithCC: \"\",\r\n email: \"\",\r\n bankName: \"\",\r\n bban: \"\",\r\n attachFile: \"\",\r\n id: null,\r\n commissionId: \"\",\r\n authType: \"Basic\",\r\n basicAuthUName: \"\",\r\n basicAuthPswd: \"\",\r\n validateUrl: \"\",\r\n validateUrlId: 0,\r\n updateStatusUrl: \"\",\r\n updateStatusUrlId: 0,\r\n bankAccNo: \"\",\r\n bankProfileId: \"\",\r\n cashTopupCommId: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n district: \"\",\r\n chiefdomOrArea: \"\",\r\n receivablesUse: \"\",\r\n onlineGateway: false,\r\n smartBill: false,\r\n};\r\n\r\nconst codes = [\r\n 23225, 23230, 23231, 23232, 23233, 23234, 23244, 23275, 23276, 23277, 23278,\r\n 23279, 23280, 23288, 23299,\r\n];\r\nconst merchantAccountInitialState = {\r\n merchantName: \"\",\r\n fspId: \"\",\r\n fspName: \"\",\r\n accountId: \"\",\r\n id: 1,\r\n};\r\n\r\nconst EditMerchant = (props) => {\r\n initialValue.name = props.name;\r\n initialValue.address = props.address ?? \"\";\r\n initialValue.mobileCode = props.mobileCode;\r\n initialValue.phone = props.phoneNumber;\r\n initialValue.phoneWithCC = props.mobileCode + props.phoneNumber;\r\n initialValue.bankName = props.bankName;\r\n initialValue.bankProfileId = props.bankProfileId;\r\n initialValue.bban = props.bban;\r\n initialValue.id = props.id;\r\n initialValue.email = props.email;\r\n initialValue.apiUrl = props.webSiteURL;\r\n initialValue.uniqueLabel = props.labelKey;\r\n initialValue.commissionId = props.commissionId;\r\n initialValue.basicAuthUName = props.webSiteUser;\r\n initialValue.basicAuthPswd = props.webSitePassword;\r\n initialValue.bankAccNo = props.bankAccountNumber;\r\n\r\n initialValue.address1 = props.addressLine1;\r\n initialValue.address2 = props.addressLine2;\r\n initialValue.chiefdomOrArea = props.chiefdomOrArea;\r\n initialValue.district = props.district;\r\n initialValue.receivablesUse = props.receivablesUse;\r\n initialValue.onlineGateway = props.onlineGateway === true ? \"Yes\" : \"No\";\r\n initialValue.smartBill = props.smartBill === true ? \"Yes\" : \"No\";\r\n\r\n initialValue.cashTopupCommId = props.topUpCommissionId\r\n ? props.topUpCommissionId\r\n : 0;\r\n if (props.merchantAPIConfig && props.merchantAPIConfig.length) {\r\n for (let i = 0; i < props.merchantAPIConfig.length; i++) {\r\n if (props.merchantAPIConfig[i].methodName == \"Validate\") {\r\n initialValue.validateUrl = props.merchantAPIConfig[i].methodURL;\r\n initialValue.validateUrlId = props.merchantAPIConfig[i].id\r\n ? props.merchantAPIConfig[i].id\r\n : 0;\r\n } else if (props.merchantAPIConfig[i].methodName == \"Payment\") {\r\n initialValue.updateStatusUrl = props.merchantAPIConfig[i].methodURL;\r\n initialValue.updateStatusUrlId = props.merchantAPIConfig[i].id\r\n ? props.merchantAPIConfig[i].id\r\n : 0;\r\n }\r\n }\r\n }\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const [file, setFile] = React.useState(null);\r\n const [commissions, setCommission] = React.useState([]);\r\n const [cashTopUpComm, setCashTopUpComm] = React.useState([]);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [merchantBankAccounts, setMerchantBankAccounts] = React.useState(\r\n props?.merchantBankAccounts ?? []\r\n );\r\n const [fsps, setFsps] = React.useState([]);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchCommission();\r\n fetchCashTopUpCommission();\r\n if (!fsps.length) {\r\n fetchAllFsps();\r\n }\r\n }, []);\r\n\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === \"bankProfileId\") {\r\n const bank = fsps.find((i) => i.id === Number(value));\r\n if (bank) {\r\n setValues({ ...values, bankName: bank.fspName });\r\n }\r\n }\r\n if (checkSpace(value)) {\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"name\") {\r\n if (checkName(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n // const validationErrors = validate(values);\r\n // setErrors(validationErrors);\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n phoneWithCC: value,\r\n mobileCode: data.dialCode,\r\n phone: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const changeBank = (e) => {\r\n const { name, value } = e.target;\r\n const v = getBankName(value);\r\n changeState({\r\n ...values,\r\n bankName: v && v.value ? v.value : \"\",\r\n [name]: value ? value : \"\",\r\n });\r\n };\r\n\r\n const getBankName = (id) => {\r\n let bank = props.cBanks.find((m) => m.key == id);\r\n if (bank) {\r\n return bank;\r\n } else {\r\n return {};\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n let urlRegEx =\r\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n if (inputs.phone) {\r\n inputs.phone = inputs.phone.toString();\r\n }\r\n if (!inputs.name) {\r\n errors.name = \"Merchant Name is Required\";\r\n }\r\n if (!inputs.email) {\r\n errors.email = \"Email is Required\";\r\n } else if (!emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (!inputs.bban) {\r\n errors.bban = \"BBAN is Required\";\r\n } else if (inputs.bban.length < 8 || inputs.bban.length > 18) {\r\n errors.bban = \"BBAN should have 8 to 18 digits\";\r\n }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = \"Phone Number is Required\";\r\n }\r\n // else if (inputs.phone.length !== 6) {\r\n // errors.phone = 'Phone Number should have 6 digits';\r\n // }\r\n if (!inputs.bankName) {\r\n errors.bankName = \"Bank Name is Required\";\r\n }\r\n // if (!inputs.address) {\r\n // errors.address = 'Address is Required';\r\n // }\r\n if (!inputs.address1) {\r\n errors.address1 = \"Address Line 1 is Required\";\r\n }\r\n if (!inputs.apiUrl) {\r\n errors.apiUrl = \"Api url is required\";\r\n } else if (!urlRegEx.test(inputs.apiUrl)) {\r\n errors.apiUrl = \"Please enter valid api url\";\r\n }\r\n if (!inputs.uniqueLabel) {\r\n errors.uniqueLabel = \"Unique reference label is required\";\r\n }\r\n if (!inputs.commissionId) {\r\n errors.commissionId = \"Please select commission\";\r\n }\r\n if (!inputs.validateUrl) {\r\n errors.validateUrl = \"Please enter validate product url\";\r\n }\r\n if (!inputs.updateStatusUrl) {\r\n errors.updateStatusUrl = \"Please enter update payment status url\";\r\n }\r\n if (!inputs.basicAuthPswd) {\r\n errors.basicAuthPswd = \"Please enter basic authentication password\";\r\n }\r\n if (!inputs.basicAuthUName) {\r\n errors.basicAuthUName = \"Please enter basic authentication user name\";\r\n }\r\n if (!inputs.bankAccNo) {\r\n errors.bankAccNo = \"Please enter bank account number\";\r\n } else if (inputs.bankAccNo.length < 8 || inputs.bankAccNo.length > 18) {\r\n errors.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n }\r\n // if (!file) {\r\n // errors.attachFile = 'Attach file is required';\r\n // }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = new FormData();\r\n data.append(\"Name\", values.name.trim());\r\n data.append(\"Address\", values.address);\r\n data.append(\"PhoneNumber\", values.phone);\r\n data.append(\"MobileCode\", values.mobileCode);\r\n data.append(\"Email\", values.email);\r\n data.append(\"BankName\", values.bankName);\r\n data.append(\"BBAN\", values.bban);\r\n // data.append('Status', values.itPhone);\r\n // data.append('Attachment', file);\r\n data.append(\"Id\", values.id);\r\n data.append(\"WebSiteURL\", values.apiUrl);\r\n data.append(\"LabelKey\", values.uniqueLabel);\r\n data.append(\"MerchantType\", \"Online\");\r\n data.append(\"CommissionId\", values.commissionId);\r\n data.append(\"WebSiteAuthenticationType\", \"basic\");\r\n data.append(\"WebSitePassword\", values.basicAuthPswd);\r\n data.append(\"WebSiteUser\", values.basicAuthUName);\r\n\r\n data.append(\"MerchantAPIConfig[0].MethodName\", \"Validate\");\r\n data.append(\"MerchantAPIConfig[0].MethodURL\", values.validateUrl);\r\n data.append(\"MerchantAPIConfig[0].Id\", values.validateUrlId);\r\n data.append(\"MerchantAPIConfig[1].MethodName\", \"Payment\");\r\n data.append(\"MerchantAPIConfig[1].MethodURL\", values.updateStatusUrl);\r\n data.append(\"MerchantAPIConfig[1].Id\", values.updateStatusUrlId);\r\n data.append(\"BankAccountNumber\", values.bankAccNo);\r\n data.append(\"BankProfileId\", values.bankProfileId);\r\n data.append(\r\n \"TopUpCommissionId\",\r\n values.cashTopupCommId ? values.cashTopupCommId : 0\r\n );\r\n\r\n data.append(\"AddressLine1\", values.address1);\r\n data.append(\"AddressLine2\", values.address2);\r\n data.append(\"ChiefdomOrArea\", values.chiefdomOrArea);\r\n data.append(\"District\", values.district);\r\n data.append(\"ReceivablesUse\", values.receivablesUse);\r\n data.append(\"OnlineGateway\", values.onlineGateway === \"Yes\");\r\n data.append(\"SmartBill\", values.smartBill === \"Yes\");\r\n\r\n merchantBankAccounts.forEach((i, idx) => {\r\n data.append(\r\n `MerchantBankAccounts[${idx}].MerchantName`,\r\n values.name.trim()\r\n );\r\n data.append(`MerchantBankAccounts[${idx}].FSPId`, i.fspId);\r\n data.append(`MerchantBankAccounts[${idx}].FSPName`, i.fspName);\r\n data.append(`MerchantBankAccounts[${idx}].AccountId`, i.accountId);\r\n });\r\n if (file) {\r\n data.append(\"attachment\", file);\r\n }\r\n\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/MerchantProfile/update\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Updated Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const downloadFile = () => {\r\n let url = \"/api/MerchantProfile/downloadFile/\" + values.id;\r\n setSpinner(true);\r\n getMethod(url, \"get\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res && res.config && res.config.url) {\r\n window.location.href = res.config.url;\r\n } else {\r\n notifyFailed(\"Error in fetching file from server\");\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fileChanger = (event) => {\r\n setFile(event.target.files[0]);\r\n // setIsSelected(true);\r\n };\r\n\r\n const onAccChange = (e, idx) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n const updated = structuredClone(merchantBankAccounts);\r\n updated[idx][name] = value;\r\n if (name === \"fspId\") {\r\n updated[idx].fspName = fsps.find((i) => i.id == value)?.fspName;\r\n }\r\n setMerchantBankAccounts(updated);\r\n }\r\n };\r\n\r\n const fetchCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=Merchant\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCommission(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchCashTopUpCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=CashTopUp\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCashTopUpComm(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Merchant Name\r\n \r\n \r\n {errors.name && (\r\n
\r\n * {errors.name}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n */}\r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n {/* \r\n \r\n Address\r\n \r\n \r\n {errors.address &&
\r\n * {errors.address}\r\n
}\r\n */}\r\n \r\n \r\n \r\n Address Line 1\r\n \r\n \r\n {errors.address1 && (\r\n
\r\n * {errors.address1}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Address Line 2\r\n \r\n \r\n {errors.address2 && (\r\n
\r\n * {errors.address2}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ChiefdomOrArea\r\n \r\n \r\n {errors.chiefdomOrArea && (\r\n
\r\n * {errors.chiefdomOrArea}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n District\r\n \r\n \r\n {errors.district && (\r\n
\r\n * {errors.district}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ReceivablesUse\r\n \r\n \r\n {errors.receivablesUse && (\r\n
\r\n * {errors.receivablesUse}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Online Gateway\r\n \r\n \r\n \r\n {[\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].map((c) => (\r\n \r\n ))}\r\n \r\n {errors.onlineGateway && (\r\n
\r\n * {errors.onlineGateway}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n SmartBill\r\n \r\n \r\n \r\n {[\r\n { key: \"Yes\", value: \"Yes\" },\r\n { key: \"No\", value: \"No\" },\r\n ].map((c) => (\r\n \r\n ))}\r\n \r\n {errors.SmartBill && (\r\n
\r\n * {errors.SmartBill}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Authentication Configuration\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Api Integration Url\r\n \r\n \r\n {errors.apiUrl && (\r\n
\r\n * {errors.apiUrl}\r\n
\r\n )}\r\n \r\n\r\n \r\n \r\n Unique Identification Label\r\n \r\n \r\n {errors.uniqueLabel && (\r\n
\r\n * {errors.uniqueLabel}\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n Validate Product Url\r\n \r\n \r\n {errors.validateUrl && (\r\n
\r\n * {errors.validateUrl}\r\n
\r\n )}\r\n \r\n\r\n \r\n \r\n Update Payment Status Url\r\n \r\n \r\n {errors.updateStatusUrl && (\r\n
\r\n * {errors.updateStatusUrl}\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Basic Auth Username\r\n \r\n \r\n {errors.basicAuthUName && (\r\n
\r\n * {errors.basicAuthUName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Basic Auth Password\r\n \r\n \r\n \r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.basicAuthPswd && (\r\n
\r\n * {errors.basicAuthPswd}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Commission Information\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Commission\r\n \r\n \r\n \r\n {commissions.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.commissionId && (\r\n
\r\n * {errors.commissionId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Cash Topup Commission\r\n \r\n \r\n \r\n {cashTopUpComm.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n {CASH_TOPUP_HINT}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Settlement Account Details\r\n
\r\n
\r\n \r\n {/* \r\n \r\n \r\n Bank Name\r\n \r\n \r\n {errors.bankName &&
\r\n * {errors.bankName}\r\n
}\r\n
\r\n \r\n */}\r\n\r\n {/* \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n {props.cBanks && props.cBanks.map(c => )}\r\n \r\n {errors.bankProfileId &&
\r\n * {errors.bankProfileId}\r\n
}\r\n
\r\n */}\r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n {fsps &&\r\n fsps.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.fspCategory && (\r\n
\r\n * {errors.fspCategory}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n BBAN Number\r\n \r\n \r\n {errors.bban && (\r\n
\r\n * {errors.bban}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n * pdf only\r\n {errors.attachFile && (\r\n
\r\n * {errors.attachFile}\r\n
\r\n )}\r\n {/* \r\n This is some placeholder block-level help text for the above input.\r\n It's a bit lighter and easily wraps to a new line.\r\n */}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Download Attached Document\r\n \r\n    \r\n {spinner && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Address */}\r\n
\r\n Merchant Bank Account Details\r\n
\r\n
\r\n \r\n {merchantBankAccounts.map((acc, idx) => (\r\n \r\n {merchantBankAccounts.length > 1 && (\r\n \r\n {\" \"}\r\n
\r\n Account {idx + 1}\r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n FSP\r\n \r\n {\r\n onAccChange(e, idx, acc.id);\r\n }}\r\n >\r\n \r\n {fsps &&\r\n fsps.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Account ID\r\n \r\n onAccChange(e, idx)}\r\n />\r\n \r\n {merchantBankAccounts.length > 1 && (\r\n {\r\n const filtered =\r\n merchantBankAccounts.filter(\r\n (_, j) => j !== idx\r\n );\r\n setMerchantBankAccounts(filtered);\r\n }}\r\n >\r\n {\" \"}\r\n \r\n )}\r\n
\r\n \r\n
\r\n ))}\r\n \r\n \r\n {\" \"}\r\n {\r\n setMerchantBankAccounts([\r\n ...merchantBankAccounts,\r\n {\r\n ...merchantAccountInitialState,\r\n id: merchantBankAccounts.length + 1,\r\n },\r\n ]);\r\n }}\r\n >\r\n \r\n Add More\r\n {loading && }\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditMerchant;\r\n","export const DEFAULT_ACTION = 'app/CollectionList/DEFAULT_ACTION';\r\nexport const FETCH_SETTLEMENT_BANK = 'app/CollectionList/FETCH_SETTLEMENT_BANK';\r\nexport const SET_SETTLEMENT_BANK = 'app/CollectionList/SET_SETTLEMENT_BANK';\r\nexport const SETTLEMENT_BANK_ERROR = 'app/CollectionList/SETTLEMENT_BANK_ERROR';\r\nexport const RESET_SETTLEMENT_BANK = 'app/CollectionList/RESET_SETTLEMENT_BANK';\r\n","import { \r\n FETCH_SETTLEMENT_BANK, RESET_SETTLEMENT_BANK,\r\n SETTLEMENT_BANK_ERROR, SET_SETTLEMENT_BANK,\r\n} from \"./constant\";\r\n\r\nexport function fetchSettlementBank() {\r\n return {\r\n type: FETCH_SETTLEMENT_BANK\r\n }; \r\n}\r\n\r\nexport function setSettlementBank(data) {\r\n return {\r\n type: SET_SETTLEMENT_BANK,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function settlementBankError(data) {\r\n return {\r\n type: SETTLEMENT_BANK_ERROR,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function resetSettleError() {\r\n return {\r\n type: RESET_SETTLEMENT_BANK\r\n };\r\n}","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Progress,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader,\r\n Col\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\nimport Merchant from \"./add-merchant\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport { getMethod, postMethod, handleError } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport ViewMerchant from \"./view-merchant\";\r\nimport EditMerchant from \"./edit-merchant\";\r\nimport { fetchSettlementBank } from \"views/finance-user/action\";\r\nimport { connect } from \"react-redux\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\nimport { getPrivileges } from \"services/util\";\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortEmail: 0,\r\n sortPhone: 0,\r\n sortBban: 0\r\n};\r\n\r\nconst MerchantList = (props) => {\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [view, setView] = React.useState(false);\r\n const [merchantObj, setMerchantObj] = React.useState(null);\r\n const [openEdit, setOpenEditModal] = React.useState(false);\r\n const [editObj, setEditObj] = React.useState(null);\r\n const [loading, setLoading] = React.useState(false);\r\n const [merchantlist, setMerchantList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [cBanks, setCbanks] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const privileges = getPrivileges('merchant');\r\n\r\n React.useEffect(() => {\r\n // fetch mobilemoney operator\r\n // fetchMerchant();\r\n props.fetchSettlementBankInfo();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (\r\n props?.finance?.settlementBankInfo &&\r\n props?.finance?.settlementBankInfo.list &&\r\n props?.finance?.settlementBankInfo.list.length\r\n ) {\r\n setCbanks(props?.finance?.settlementBankInfo.list);\r\n }\r\n }, [props?.finance?.settlementBankInfo.list]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n fetchMerchant();\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchMerchant();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchMerchant();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchMerchant();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n }\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchMerchant();\r\n }\r\n\r\n const showMerchant = (obj) => {\r\n setMerchantObj(obj);\r\n setView(true);\r\n }\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n // setMerchantObj(null);\r\n }\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n // setEditObj(null);\r\n fetchMerchant();\r\n }\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n }\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const fetchMerchant = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data['SortingOn'] = 'Name';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'Name';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortEmail == \"1\") {\r\n data['SortingOn'] = 'Email';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortEmail == \"2\") {\r\n data['SortingOn'] = 'Email';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPhone == \"1\") {\r\n data['SortingOn'] = 'MobNumber';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPhone == \"2\") {\r\n data['SortingOn'] = 'MobNumber';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortBban == \"1\") {\r\n data['SortingOn'] = 'Bban';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortBban == \"2\") {\r\n data['SortingOn'] = 'Bban';\r\n data['IsDescending'] = true;\r\n }\r\n postMethod('/api/MerchantProfile/AllMerchant', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setMerchantList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const fetchMerchantById = (id, type) => {\r\n let errorMsg = '';\r\n postMethod('/api/MerchantProfile/Edit/' + id, {}, 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (type == 'edit') {\r\n setEditObj(res.data.result);\r\n setOpenEditModal(true);\r\n } else if (type == 'view') {\r\n showMerchant(res.data.result);\r\n }\r\n\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n // setSError();\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n\r\n const deleteMerchant = () => {\r\n let errorMsg = '';\r\n setModalLoading(true);\r\n let url = '/api/User/block/' + deleteObj.userProfileId;\r\n postMethod(url, {}, 'post')\r\n .then(res => {\r\n setModalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked ? 'Merchant unblocked successfully' :\r\n 'Merchant blocked succsessfully';\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n fetchMerchant();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setModalLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n\r\n const handleClick = (e, index) => {\r\n\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n // fetchSubs();\r\n }\r\n\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n // if (searchText.length == 0) {\r\n // fetchMerchant()\r\n // }\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const getBlockText = () => {\r\n let str = 'block';\r\n if (deleteObj.isBlocked) {\r\n str = 'unblock';\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj.name} merchant ?`;\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n\r\n {privileges.add &&\r\n }\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked ? 'Unblock Merchant' : 'Block Merchant'}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.bankName ?\r\n
\r\n

\r\n {getBlockText()}\r\n

\r\n
\r\n {' '}\r\n \r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortName, 'sortName')}\r\n >\r\n Merchant Name\r\n \r\n sortHandle(sort.sortEmail, 'sortEmail')}>\r\n Email\r\n \r\n sortHandle(sort.sortPhone, 'sortPhone')}>\r\n Phone\r\n \r\n Actions
\r\n {mmo.name}\r\n {mmo.email}({mmo.mobileCode}) - {mmo.phoneNumber}\r\n {privileges.view && fetchMerchantById(mmo.id, 'view')} size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n }\r\n\r\n {privileges.edit && fetchMerchantById(mmo.id, 'edit')}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\">\r\n \r\n }\r\n\r\n {!mmo.isBlocked && privileges.block &&\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\">\r\n \r\n }\r\n {mmo.isBlocked && privileges.unblock &&\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\">\r\n \r\n \r\n }\r\n\r\n {/* {!mmo.isBlocked ?\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\">\r\n \r\n \r\n :\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\">\r\n \r\n \r\n } */}\r\n\r\n
\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state }\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchSettlementBankInfo: () => dispatch(fetchSettlementBank()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MerchantList);\r\n","/* eslint-disable eqeqeq */\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Alert,\r\n} from \"reactstrap\";\r\n// core components\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod, getMethod } from \"../../services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\n\r\nconst initialValue = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n gender: \"\",\r\n email: \"\",\r\n MobileCodeId: 232,\r\n MobileNumber: \"\",\r\n roleId: null,\r\n merchantId: null,\r\n merchantUserID: null,\r\n userCategory: null,\r\n id: 1,\r\n};\r\n\r\nconst Merchant = (props) => {\r\n const [merchantUsers, setMerchantUsers] = useState([initialValue]);\r\n const [errors, setErrors] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const { addToast } = useToasts();\r\n const [allMerchants, setAllMerchants] = useState([]);\r\n const [roles, setRoles] = useState([]);\r\n const [selectedMerchant, setSelectedMerchant] = useState(null);\r\n\r\n useEffect(() => {\r\n fetchAllMerchant();\r\n fetchRoles();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fetchAllMerchant = () => {\r\n if (allMerchants.length !== 0) return;\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setAllMerchants(res.data.result);\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const fetchRoles = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/User/roles\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setRoles(\r\n res.data.result.filter((i) => i.normalizedName === \"POSAgent\")\r\n );\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching roles\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const handleInputChange = (e, idx) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n const updated = structuredClone(merchantUsers);\r\n updated[idx][name] = value;\r\n if (name === \"roleId\") {\r\n const role = roles.find((i) => i.id == value);\r\n updated[idx][\"userCategory\"] = role?.normalizedName;\r\n }\r\n setMerchantUsers(updated);\r\n }\r\n };\r\n\r\n const phoneChange = (e, idx) => {\r\n const updated = structuredClone(merchantUsers);\r\n updated[idx][\"MobileNumber\"] = e;\r\n setMerchantUsers(updated);\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n const allErrors = [];\r\n if (inputs.length === 0) {\r\n inputs = structuredClone(merchantUsers);\r\n }\r\n inputs?.forEach((input) => {\r\n let obj = {};\r\n if (!input?.firstName?.trim()) {\r\n obj[\"firstName\"] = \"First name is required\";\r\n }\r\n if (!input?.lastName?.trim()) {\r\n obj[\"lastName\"] = \"Last name is required\";\r\n }\r\n if (!input?.MobileNumber?.trim()) {\r\n obj[\"MobileNumber\"] = \"Mobile number is required\";\r\n }\r\n if (!input?.email?.trim()) {\r\n obj[\"email\"] = \"Email is required\";\r\n }\r\n if (!input?.roleId?.trim()) {\r\n obj[\"roleId\"] = \"User Category is required\";\r\n }\r\n allErrors.push(obj);\r\n });\r\n return allErrors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(merchantUsers)?.filter(\r\n (i) => Object.values(i).length > 0 && i\r\n );\r\n setErrors(validationErrors);\r\n if (validationErrors?.length) {\r\n return;\r\n }\r\n const currentMerchant = allMerchants.find((i) => i.id == selectedMerchant);\r\n const payload = merchantUsers.map((i) => ({\r\n ...i,\r\n merchantId: currentMerchant.id,\r\n merchantUserID: currentMerchant.userProfileId,\r\n MobileNumber: i.MobileNumber.slice(\r\n String(i.MobileCodeId).length,\r\n String(i.MobileNumber).length\r\n ),\r\n }));\r\n setLoading(true);\r\n postMethod(\"/api/MerchantProfile/SaveUsers\", payload, \"post\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(res.data.responseMessage);\r\n props.closeModal();\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant User Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n \r\n setSelectedMerchant(e.target.value)\r\n }\r\n >\r\n {/* {roles.map(c => )} */}\r\n \r\n {allMerchants?.map((item) => (\r\n \r\n ))}\r\n \r\n {errors.roleId && (\r\n
\r\n * {errors.roleId}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n {selectedMerchant &&\r\n merchantUsers.map((user, idx) => (\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n handleInputChange(e, idx)}\r\n />\r\n {errors[idx]?.firstName && (\r\n
\r\n * {errors[idx]?.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n handleInputChange(e, idx)}\r\n />\r\n {errors[idx]?.lastName && (\r\n
\r\n * {errors[idx]?.lastName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n User Category\r\n \r\n handleInputChange(e, idx)}\r\n >\r\n {/* {roles.map(c => )} */}\r\n \r\n {roles.map((c) => (\r\n \r\n ))}\r\n \r\n {errors[idx]?.roleId && (\r\n
\r\n * {errors[idx]?.roleId}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n handleInputChange(e, idx)}\r\n />\r\n {errors[idx]?.email && (\r\n
\r\n * {errors[idx]?.email}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n phoneChange(e, idx)}\r\n />\r\n {errors[idx]?.MobileNumber && (\r\n
\r\n * {errors[idx]?.MobileNumber}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {merchantUsers.length - 1 === idx && (\r\n \r\n \r\n setMerchantUsers([\r\n ...merchantUsers,\r\n {\r\n ...initialValue,\r\n id: merchantUsers.length + 1,\r\n },\r\n ])\r\n }\r\n >\r\n Add More\r\n \r\n \r\n )}\r\n {merchantUsers.length !== 1 && (\r\n \r\n \r\n setMerchantUsers(\r\n merchantUsers.filter(\r\n (_, index) => index !== idx\r\n )\r\n )\r\n }\r\n >\r\n Delete\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n {selectedMerchant && (\r\n \r\n \r\n Merchant users, also known as POS agents, will use their\r\n 8-digit mobile or phone number as their Agent ID when\r\n logging into the POS device, machine, or terminal. Upon\r\n their first login, they will be required to enter a\r\n One-Time Password (OTP), which will be sent to their\r\n registered mobile number. The default password for\r\n first-time login is 00000000. After OTP verification,\r\n they will be prompted to set their own PIN or password\r\n for future logins.\r\n \r\n \r\n )}\r\n\r\n {selectedMerchant && (\r\n
\r\n \r\n Submit\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Merchant;\r\n","/* eslint-disable no-mixed-operators */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable eqeqeq */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader,\r\n Col,\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\nimport AddMerchantUser from \"./add-merchant-user\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport { getSortCls } from \"services/util\";\r\nimport { getPrivileges } from \"services/util\";\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortEmail: 0,\r\n sortPhone: 0,\r\n sortBban: 0,\r\n};\r\n\r\nconst MerchantUsersList = (props) => {\r\n const [open, setOpen] = useState(false);\r\n // const [view, setView] = useState(false);\r\n // const [merchantObj, setMerchantObj] = useState(null);\r\n // const [openEdit, setOpenEditModal] = useState(false);\r\n // const [editObj, setEditObj] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredList, setFilteredList] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [pageSize] = useState(10);\r\n const [pagesCount, setPageCount] = useState(0);\r\n const [deleteObj, setDeleteObj] = useState(null);\r\n const [openDelModal, setOpenDelModal] = useState(false);\r\n const [modalLoading, setModalLoading] = useState(false);\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [totalRec, setTotalRec] = useState(0);\r\n const [sort, setSort] = useState(sortIS);\r\n const [refresh, setRefresh] = useState(false);\r\n const [isMounted, setIsMounted] = useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const privileges = getPrivileges(\"merchant\");\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if ((searchText && searchText.length >= 3) || searchText.length == 0) {\r\n fetchMerchant();\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n fetchMerchant();\r\n }, [currentPage]);\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchMerchant();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText(\"\");\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchMerchant();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchMerchant();\r\n };\r\n\r\n // const showMerchant = (obj) => {\r\n // // setMerchantObj(obj);\r\n // setView(true);\r\n // };\r\n\r\n // const closeViewModal = () => {\r\n // setView(false);\r\n // // setMerchantObj(null);\r\n // };\r\n\r\n // const closeEditModal = () => {\r\n // setOpenEditModal(false);\r\n // // setEditObj(null);\r\n // fetchMerchant();\r\n // };\r\n\r\n // const openDelete = (mmo) => {\r\n // setDeleteObj(mmo);\r\n // setOpenDelModal(true);\r\n // };\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchMerchant = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let data = {\r\n PageNumber: Number(currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data[\"SearchText\"] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data[\"SortingOn\"] = \"merchantName\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data[\"SortingOn\"] = \"merchantName\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.sortEmail == \"1\") {\r\n data[\"SortingOn\"] = \"email\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.sortEmail == \"2\") {\r\n data[\"SortingOn\"] = \"email\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.sortPhone == \"1\") {\r\n data[\"SortingOn\"] = \"userPhoneNumber\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.sortPhone == \"2\") {\r\n data[\"SortingOn\"] = \"userPhoneNumber\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.sortBban == \"1\") {\r\n data[\"SortingOn\"] = \"userCategory\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.sortBban == \"2\") {\r\n data[\"SortingOn\"] = \"userCategory\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n postMethod(\"/api/MerchantProfile/MerchantUsers/Search\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n setFilteredList(res.data.result.list);\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n // const fetchMerchantById = (id, type) => {\r\n // let errorMsg = \"\";\r\n // postMethod(\"/api/MerchantProfile/Edit/\" + id, {}, \"get\")\r\n // .then((res) => {\r\n // if (res && res.data) {\r\n // if (res.data.responseCode === \"200\") {\r\n // // Success\r\n // if (type == \"edit\") {\r\n // // setEditObj(res.data.result);\r\n // setOpenEditModal(true);\r\n // } else if (type == \"view\") {\r\n // showMerchant(res.data.result);\r\n // }\r\n // } else if (res.data.responseCode === \"400\") {\r\n // // Error\r\n // errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n // // setSError(errorMsg);\r\n // notifyFailed(errorMsg);\r\n // } else {\r\n // // Unknown Error\r\n // errorMsg = \"Unknown Error in fetching\";\r\n // // setSError(errorMsg);\r\n // notifyFailed(errorMsg);\r\n // }\r\n // } else {\r\n // errorMsg = \"Unknown Error\";\r\n // // setSError(errorMsg);\r\n // notifyFailed(errorMsg);\r\n // }\r\n // })\r\n // .catch((err) => {\r\n // // setSError();\r\n // notifyFailed(\"Something went wrong!, Please call 3737\");\r\n // });\r\n // };\r\n\r\n const deleteMerchant = () => {\r\n let errorMsg = \"\";\r\n setModalLoading(true);\r\n let url = \"/api/User/block/\" + deleteObj.userProfileId;\r\n postMethod(url, {}, \"post\")\r\n .then((res) => {\r\n setModalLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked\r\n ? \"Merchant unblocked successfully\"\r\n : \"Merchant blocked succsessfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n fetchMerchant();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setModalLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n // const handleClick = (e, index) => {\r\n // e.preventDefault();\r\n // setCurrentPage(index);\r\n // };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n // fetchSubs();\r\n };\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n // if (searchText.length == 0) {\r\n // fetchMerchant()\r\n // }\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText(\"\");\r\n setRefresh(true);\r\n };\r\n\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj.isBlocked) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj.name} merchant ?`;\r\n };\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n {privileges.add && (\r\n \r\n Add Merchant User\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked\r\n ? \"Unblock Merchant\"\r\n : \"Block Merchant\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.bankName ? (\r\n
\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && (\r\n \r\n )}\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n sortHandle(sort.sortName, \"sortName\")}\r\n >\r\n Merchant Name\r\n \r\n \r\n sortHandle(sort.sortEmail, \"sortEmail\")}\r\n >\r\n Email\r\n \r\n \r\n sortHandle(sort.sortPhone, \"sortPhone\")}\r\n >\r\n Phone\r\n \r\n \r\n sortHandle(sort.sortBban, \"sortBban\")}\r\n >\r\n Category\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
Actions
{mmo.merchantName}{mmo.email}{mmo.userPhoneNumber}{mmo.userCategory} */}\r\n {/* {privileges.view && (\r\n \r\n fetchMerchantById(mmo.id, \"view\")\r\n }\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n \r\n )} */}\r\n\r\n {/* {privileges.edit && (\r\n \r\n fetchMerchantById(mmo.id, \"edit\")\r\n }\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n )} */}\r\n\r\n {/* {!mmo.isBlocked && privileges.block && (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n )}\r\n {mmo.isBlocked && privileges.unblock && (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )} */}\r\n\r\n {/* {!mmo.isBlocked ?\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\">\r\n \r\n \r\n :\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\">\r\n \r\n \r\n } */}\r\n {/*
\r\n \r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MerchantUsersList;\r\n","import React, { useState } from \"react\";\r\nimport { GoogleMap, Marker, useJsApiLoader } from \"@react-google-maps/api\";\r\n\r\nconst center = {\r\n lat: 8.484444,\r\n lng: -13.234444,\r\n};\r\n\r\nfunction GoogleMaps({ setCoords, position: pos, disable = false }) {\r\n const { isLoaded } = useJsApiLoader({\r\n id: \"https://maps.googleapis.com/maps/api/js?key=IzaSyDbGY99IbLobnd_xUoRwSb-H6-I_Ac9Two&loading=async&libraries=geometry&callback=initMap\",\r\n googleMapsApiKey: \"AIzaSyCjntjBHx5oy1MA5omilwNQFnkWpA__9JA\",\r\n });\r\n\r\n const coords =\r\n pos !== undefined && pos?.split(\",\").map((i) => Number(i.trim()));\r\n const [position, setPosition] = useState(\r\n pos !== undefined ? { lat: coords[0], lng: coords[1] } : center\r\n );\r\n\r\n return (\r\n
\r\n {isLoaded ? (\r\n {\r\n if (disable) {\r\n return;\r\n }\r\n setPosition({ lat: e.latLng.lat(), lng: e.latLng.lng() });\r\n setCoords({ lat: e.latLng.lat(), lng: e.latLng.lng() });\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(GoogleMaps);\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Modal,\r\n ModalBody,\r\n} from \"reactstrap\";\r\n// core components\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n postMethod,\r\n getMethod,\r\n getUserName,\r\n} from \"../../services/httpServices\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkName } from \"services/util\";\r\nimport GoogleMaps from \"components/GoogleMaps\";\r\n\r\nconst initialValue = {\r\n locationId: 0,\r\n merchantId: 0,\r\n district: \"\",\r\n chiefdomOrZone: \"\",\r\n gpsCoordinate: \"\",\r\n};\r\n\r\nconst AddMerchantLocation = (props) => {\r\n const [value, setValue] = useState(initialValue);\r\n const [errors, setErrors] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [allMerchants, setAllMerchants] = useState([]);\r\n const [selectedMerchant, setSelectedMerchant] = useState(null);\r\n const [showMap, setShowMap] = useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchAllMerchant();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fetchAllMerchant = () => {\r\n if (allMerchants.length !== 0) return;\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setAllMerchants(res.data.result);\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const handleInputChange = (e, idx) => {\r\n const { name, value: currentValue } = e.target;\r\n if (checkName(value)) {\r\n setValue({ ...value, [name]: currentValue });\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.gpsCoordinate?.trim()) {\r\n errors.gpsCoordinate = \"GPS Coordinates is required\";\r\n }\r\n if (!inputs.district?.trim()) {\r\n errors.district = \"district is required\";\r\n }\r\n if (!inputs?.chiefdomOrZone?.trim()) {\r\n errors.chiefdomOrZone = \"Chief dom Or Zone is required\";\r\n }\r\n if (!selectedMerchant?.trim()) {\r\n errors.selectedMerchant = \"Merchant is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(value);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n const payload = {\r\n ...value,\r\n merchantId: Number(selectedMerchant),\r\n createdBy: getUserName(),\r\n createdDate: new Date().toISOString(),\r\n updatedBy: getUserName(),\r\n updatedDate: new Date().toISOString(),\r\n };\r\n // handle errors\r\n setLoading(true);\r\n postMethod(\"/api/MerchantProfile/Location/Save\", payload, \"post\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(res.data.responseMessage);\r\n props.closeModal();\r\n } else {\r\n notifyFailed(\"Something went wrong!\");\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => {\r\n props.closeModal();\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant Location Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n \r\n setSelectedMerchant(e.target.value)\r\n }\r\n >\r\n {/* {roles.map(c => )} */}\r\n \r\n {allMerchants?.map((item) => (\r\n \r\n ))}\r\n \r\n {errors.selectedMerchant && (\r\n
\r\n * {errors.selectedMerchant}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n {selectedMerchant && (\r\n
\r\n \r\n \r\n \r\n \r\n District\r\n \r\n \r\n {errors?.district && (\r\n
\r\n * {errors?.district}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Chief dom Or Zone\r\n \r\n \r\n {errors?.chiefdomOrZone && (\r\n
\r\n * {errors?.chiefdomOrZone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n GPS Coordinates\r\n \r\n \r\n {errors?.gpsCoordinate && (\r\n
\r\n * {errors?.gpsCoordinate}\r\n
\r\n )}\r\n setShowMap(!showMap)}\r\n disabled={loading}\r\n >\r\n Open Map\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n )}\r\n
\r\n {selectedMerchant && (\r\n
\r\n \r\n Submit\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {\" \"}\r\n \r\n setValue({ ...value, gpsCoordinate: Object.values(e).join() })\r\n }\r\n />\r\n setShowMap(false)}\r\n >\r\n Close\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AddMerchantLocation;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Input,\r\n Row,\r\n Col,\r\n Modal,\r\n ModalBody,\r\n} from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getMethod } from \"../../services/httpServices\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkName } from \"services/util\";\r\nimport GoogleMaps from \"components/GoogleMaps\";\r\n\r\nconst initialValue = {\r\n locationId: 0,\r\n merchantId: 0,\r\n district: \"\",\r\n chiefdomOrZone: \"\",\r\n gpsCoordinate: \"\",\r\n};\r\n\r\nconst ViewMerchantLocation = (props) => {\r\n const [value, setValue] = useState(props?.values ?? initialValue);\r\n const [loading, setLoading] = useState(false);\r\n const [allMerchants, setAllMerchants] = useState([]);\r\n const [selectedMerchant, setSelectedMerchant] = useState(1);\r\n const [showMap, setShowMap] = useState(false);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchAllMerchant();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fetchAllMerchant = () => {\r\n if (allMerchants.length !== 0) return;\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setAllMerchants(res.data.result);\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const handleInputChange = (e, idx) => {\r\n const { name, value: currentValue } = e.target;\r\n if (checkName(value)) {\r\n setValue({ ...value, [name]: currentValue });\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant Location Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n setSelectedMerchant(e.target.value)}\r\n value={value.merchantId}\r\n >\r\n {/* {roles.map(c => )} */}\r\n \r\n {allMerchants?.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n {selectedMerchant && (\r\n
\r\n \r\n \r\n \r\n \r\n District\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Chief dom Or Zone\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n GPS Coordinates\r\n \r\n \r\n setShowMap(!showMap)}\r\n disabled={loading}\r\n >\r\n Open Map\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n setShowMap(false)}\r\n >\r\n Close\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ViewMerchantLocation;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Modal,\r\n ModalBody,\r\n} from \"reactstrap\";\r\n// core components\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n postMethod,\r\n getMethod,\r\n getUserName,\r\n} from \"../../services/httpServices\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkName } from \"services/util\";\r\nimport GoogleMaps from \"components/GoogleMaps\";\r\n\r\nconst initialValue = {\r\n locationId: 0,\r\n merchantId: 0,\r\n district: \"\",\r\n chiefdomOrZone: \"\",\r\n gpsCoordinate: \"\",\r\n};\r\n\r\nconst ViewMerchantLocation = (props) => {\r\n const [value, setValue] = useState(props?.values ?? initialValue);\r\n const [errors, setErrors] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [allMerchants, setAllMerchants] = useState([]);\r\n const [selectedMerchant, setSelectedMerchant] = useState(1);\r\n const [showMap, setShowMap] = useState(false);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchAllMerchant();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fetchAllMerchant = () => {\r\n if (allMerchants.length !== 0) return;\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setAllMerchants(res.data.result);\r\n }\r\n })\r\n .catch(console.log)\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const handleInputChange = (e, idx) => {\r\n const { name, value: currentValue } = e.target;\r\n if (checkName(value)) {\r\n setValue({ ...value, [name]: currentValue });\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.gpsCoordinate?.trim()) {\r\n errors.gpsCoordinate = \"GPS Coordinates is required\";\r\n }\r\n if (!inputs.district?.trim()) {\r\n errors.district = \"district is required\";\r\n }\r\n if (!inputs?.chiefdomOrZone?.trim()) {\r\n errors.chiefdomOrZone = \"Chief dom Or Zone is required\";\r\n }\r\n if (!String(selectedMerchant)?.trim()) {\r\n errors.selectedMerchant = \"Merchant is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(value);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n const payload = {\r\n ...value,\r\n merchantId: Number(selectedMerchant),\r\n createdBy: getUserName(),\r\n createdDate: new Date().toISOString(),\r\n updatedBy: getUserName(),\r\n updatedDate: new Date().toISOString(),\r\n };\r\n setLoading(true);\r\n postMethod(\"/api/MerchantProfile/Location/Update\", payload, \"post\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(res.data.responseMessage);\r\n props.closeModal();\r\n } else {\r\n notifyFailed(\"Something went wrong!\");\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n props.closeModal();\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Merchant Location Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n setSelectedMerchant(e.target.value)}\r\n value={value.merchantId}\r\n >\r\n {/* {roles.map(c => )} */}\r\n \r\n {allMerchants?.map((item) => (\r\n \r\n ))}\r\n \r\n {errors?.selectedMerchant && (\r\n
\r\n * {errors?.selectedMerchant}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n {selectedMerchant && (\r\n
\r\n \r\n \r\n \r\n \r\n District\r\n \r\n \r\n {errors?.district && (\r\n
\r\n * {errors?.district}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Chief dom Or Zone\r\n \r\n \r\n {errors?.chiefdomOrZone && (\r\n
\r\n * {errors?.chiefdomOrZone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n GPS Coordinates\r\n \r\n \r\n {errors?.gpsCoordinate && (\r\n
\r\n * {errors?.gpsCoordinate}\r\n
\r\n )}\r\n setShowMap(!showMap)}\r\n disabled={loading}\r\n >\r\n Open Map\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n )}\r\n
\r\n {selectedMerchant && (\r\n
\r\n \r\n Submit\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {\" \"}\r\n \r\n setValue({ ...value, gpsCoordinate: Object.values(e).join() })\r\n }\r\n position={value?.gpsCoordinate}\r\n />\r\n setShowMap(false)}\r\n >\r\n Close\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ViewMerchantLocation;\r\n","/* eslint-disable eqeqeq */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader,\r\n Col,\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\nimport AddMerchantLocation from \"./add-merchant-location\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport { getSortCls } from \"services/util\";\r\nimport { getPrivileges } from \"services/util\";\r\nimport ViewMerchantLocation from \"./view-merchant-location\";\r\nimport EditMerchantLocation from \"./edit-merchant-location\";\r\n\r\nconst sortIS = {\r\n merchantName: 0,\r\n district: 0,\r\n chiefdomOrZone: 0,\r\n gpsCoordinate: 0,\r\n};\r\n\r\nconst MerchantLocationsList = (props) => {\r\n const [open, setOpen] = useState(false);\r\n const [view, setView] = useState(false);\r\n const [merchantObj, setMerchantObj] = useState(null);\r\n const [openEdit, setOpenEditModal] = useState(false);\r\n const [editObj, setEditObj] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredList, setFilteredList] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [pageSize] = useState(10);\r\n const [pagesCount, setPageCount] = useState(0);\r\n const [deleteObj, setDeleteObj] = useState(null);\r\n const [openDelModal, setOpenDelModal] = useState(false);\r\n const [modalLoading, setModalLoading] = useState(false);\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [totalRec, setTotalRec] = useState(0);\r\n const [sort, setSort] = useState(sortIS);\r\n const [refresh, setRefresh] = useState(false);\r\n const [isMounted, setIsMounted] = useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const privileges = getPrivileges(\"merchant\");\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if ((searchText && searchText.length >= 3) || searchText.length === 0) {\r\n fetchMerchant();\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n fetchMerchant();\r\n }, [currentPage]);\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage !== 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchMerchant();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText(\"\");\r\n setSort(sortIS);\r\n if (currentPage === 0) {\r\n fetchMerchant();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchMerchant();\r\n };\r\n\r\n const showMerchant = (obj) => {\r\n setMerchantObj(obj);\r\n setView(true);\r\n };\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n };\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n fetchMerchant();\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchMerchant = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let data = {\r\n PageNumber: Number(currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data[\"SearchText\"] = searchText;\r\n }\r\n\r\n if (sort.merchantName == \"1\") {\r\n data[\"SortingOn\"] = \"merchantName\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.merchantName == \"2\") {\r\n data[\"SortingOn\"] = \"merchantName\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.district == \"1\") {\r\n data[\"SortingOn\"] = \"district\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.district == \"2\") {\r\n data[\"SortingOn\"] = \"district\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.chiefdomOrZone == \"1\") {\r\n data[\"SortingOn\"] = \"chiefdomOrZone\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.chiefdomOrZone == \"2\") {\r\n data[\"SortingOn\"] = \"chiefdomOrZone\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.gpsCoordinate == \"1\") {\r\n data[\"SortingOn\"] = \"gpsCoordinate\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.gpsCoordinate == \"2\") {\r\n data[\"SortingOn\"] = \"gpsCoordinate\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n\r\n postMethod(\"/api/MerchantProfile/Location/Search\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n setFilteredList(res.data.result.list);\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchMerchantById = (id, type) => {\r\n let errorMsg = \"\";\r\n postMethod(\r\n \"/api/MerchantProfile/Location/GetByMerchantId?merchantId=\" + id,\r\n {},\r\n \"get\"\r\n )\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n if (type == \"edit\") {\r\n setEditObj(res.data.result[0]);\r\n setOpenEditModal(true);\r\n } else if (type == \"view\") {\r\n showMerchant(res.data.result[0]);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const deleteMerchant = () => {\r\n let errorMsg = \"\";\r\n setModalLoading(true);\r\n let url = `/api/MerchantProfile/Location/BlockUnblock?locationId=${\r\n deleteObj.merchantLocationsid\r\n }&blocked=${!deleteObj.isBlocked}`;\r\n postMethod(url, {}, \"post\")\r\n .then((res) => {\r\n setModalLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked\r\n ? \"Merchant location unblocked successfully\"\r\n : \"Merchant location blocked succsessfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n fetchMerchant();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setModalLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n })\r\n .finally(() => {\r\n closeDeleteModal();\r\n });\r\n };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText(\"\");\r\n setRefresh(true);\r\n };\r\n\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj?.isBlocked) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj?.merchantName} merchant location?`;\r\n };\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n {privileges.add && (\r\n \r\n Add Merchant Location\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked\r\n ? \"Unblock Merchant Location\"\r\n : \"Block Merchant Location\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.merchantName ? (\r\n
\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && (\r\n \r\n )}\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n sortHandle(sort.merchantName, \"merchantName\")\r\n }\r\n >\r\n Merchant Name\r\n \r\n \r\n sortHandle(sort.district, \"district\")}\r\n >\r\n District\r\n \r\n \r\n \r\n sortHandle(sort.chiefdomOrZone, \"chiefdomOrZone\")\r\n }\r\n >\r\n Chief dom Or Zone\r\n \r\n \r\n \r\n sortHandle(sort.gpsCoordinate, \"gpsCoordinate\")\r\n }\r\n >\r\n GPS Coordinates\r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
Actions
{mmo.merchantName}{mmo.district}{mmo.chiefdomOrZone}{mmo.gpsCoordinate}\r\n {privileges.view && (\r\n \r\n fetchMerchantById(mmo.merchantId, \"view\")\r\n }\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n \r\n )}\r\n\r\n {privileges.edit && (\r\n \r\n fetchMerchantById(mmo.merchantId, \"edit\")\r\n }\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n )}\r\n\r\n {!mmo.isBlocked && privileges.block && (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n )}\r\n {mmo.isBlocked && privileges.unblock && (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MerchantLocationsList;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Input,\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n} from \"reactstrap\";\r\n\r\nconst SearchableSelect = ({\r\n options,\r\n onSelect,\r\n defaultValue,\r\n dropdownVersion = 1,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [searchValue, setSearchValue] = useState(\"\");\r\n const [selectedOption, setSelectedOption] = useState(defaultValue);\r\n\r\n useEffect(() => {\r\n if (defaultValue) {\r\n setSelectedOption(defaultValue);\r\n }\r\n }, [defaultValue]);\r\n\r\n const toggle = () => setIsOpen(!isOpen);\r\n\r\n const handleSearchInputChange = (event) => setSearchValue(event.target.value);\r\n\r\n const handleOptionSelect = (option) => {\r\n setSelectedOption(option);\r\n onSelect(option);\r\n setIsOpen(false);\r\n setSearchValue(\"\");\r\n };\r\n\r\n const filteredOptions = options.filter((option) =>\r\n option.value.toLowerCase().includes(searchValue.toLowerCase())\r\n );\r\n\r\n return (\r\n \r\n \r\n {selectedOption ? selectedOption.value : \"Select an option\"}\r\n \r\n \r\n \r\n {filteredOptions.map((option) => (\r\n handleOptionSelect(option)}\r\n >\r\n {option.value}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SearchableSelect;\r\n","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\nconst initialValue = {\r\n customerId: 0,\r\n nfcCardName: \"\",\r\n nfcCardID: \"\",\r\n nfcCardClientID: \"\",\r\n createdBy: \"\",\r\n updatedBy: \"\",\r\n isBlock: false,\r\n isDelete: false,\r\n};\r\n\r\nconst AddNFC = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [customers, setCustomers] = React.useState([]);\r\n const [allCards, setAllCards] = React.useState([]);\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchNFC();\r\n fetchCardNames();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const fetchNFC = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Profile/Customers\", {}, \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCustomers(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchCardNames = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/POS/GetAllNFCCardNames\", {}, \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setAllCards(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const {\r\n nfcCardName,\r\n customerId,\r\n nfcCardID,\r\n nfcCardClientID,\r\n isBlock,\r\n isDelete,\r\n } = values;\r\n const payload = {\r\n nfcCardID,\r\n nfcCardName,\r\n customerId: Number(customerId),\r\n createdBy: getUserName(),\r\n updatedBy: getUserName(),\r\n nfcCardClientID,\r\n isBlock,\r\n isDelete,\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/POS/SmartPayCard/Register\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add NFC

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n NFC card name\r\n \r\n ({\r\n key: i?.cardName,\r\n value: i?.cardName,\r\n }))}\r\n onSelect={(e) =>\r\n setValues({ ...values, nfcCardName: e.key })\r\n }\r\n dropdownVersion={2}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Customer\r\n {\" \"}\r\n \r\n !i.isDeleted &&\r\n !i.isBlocked &&\r\n i.verificationStatus === \"Verified\"\r\n )\r\n ?.map((i) => ({\r\n key: i?.id,\r\n value: i?.fullName,\r\n }))}\r\n onSelect={(e) =>\r\n setValues({ ...values, customerId: e.key })\r\n }\r\n dropdownVersion={2}\r\n />\r\n {/* \r\n \r\n {customers\r\n .filter(\r\n (i) =>\r\n !i.isDeleted &&\r\n !i.isBlocked &&\r\n i.verificationStatus === \"Verified\"\r\n )?.map((item) => (\r\n \r\n ))}\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n NFC card ID *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n NFC card serial number *\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddNFC;\r\n","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\nconst initialValue = {\r\n customerId: 0,\r\n nfcCardName: \"\",\r\n nfcCardID: \"\",\r\n createdBy: \"\",\r\n nfcCardClientID: \"\",\r\n updatedBy: \"\",\r\n isBlock: false,\r\n isDelete: false,\r\n};\r\n\r\nconst EditNFC = (props) => {\r\n const [values, setValues] = React.useState(props?.values ?? initialValue);\r\n const [loading, setLoading] = React.useState(false);\r\n const [customers, setCustomers] = React.useState([]);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchNFC();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fetchNFC = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Profile/Customers\", {}, \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCustomers(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const {\r\n nfcCardName,\r\n nfcCardID,\r\n isBlock,\r\n isDelete,\r\n customerId,\r\n nfcCardClientID,\r\n createdBy,\r\n ...rest\r\n } = values;\r\n const payload = {\r\n nfcCardID,\r\n nfcCardName,\r\n nfcCardClientID,\r\n updatedBy: getUserName(),\r\n isBlock,\r\n isDelete,\r\n createdBy,\r\n customerId: Number(customerId),\r\n ...rest,\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/POS/SmartPayCard/Update\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Updated Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Edit NFC

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n NFC card name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n NFC card ID\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n NFC card client ID\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n !i.isDeleted &&\r\n !i.isBlocked &&\r\n i.verificationStatus === \"Verified\"\r\n )\r\n ?.map((i) => ({\r\n key: i?.id,\r\n value: i?.fullName,\r\n }))}\r\n dropdownVersion={2}\r\n defaultValue={\r\n customers\r\n .filter((i) => i.id == values.customerId)\r\n ?.map((i) => ({\r\n key: i?.id,\r\n value: i?.fullName,\r\n }))?.[0]\r\n }\r\n onSelect={(e) =>\r\n setValues({ ...values, customerId: e.key })\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EditNFC;\r\n","/* eslint-disable no-mixed-operators */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable eqeqeq */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col,\r\n ModalHeader,\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\nimport AddNFC from \"./add-nfc\";\r\nimport EditNFC from \"./edit-nfc\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { getUserName, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { getPrivileges } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortEmail: 0,\r\n sortPhone: 0,\r\n sortBban: 0,\r\n};\r\n\r\nconst NFCList = (props) => {\r\n const [open, setOpen] = useState(false);\r\n const [openEdit, setOpenEditModal] = useState(false);\r\n const [editObj, setEditObj] = useState(null);\r\n\r\n // const [view, setView] = useState(false);\r\n // const [merchantObj, setMerchantObj] = useState(null);\r\n // const [editObj, setEditObj] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredList, setFilteredList] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [pageSize] = useState(10);\r\n const [pagesCount, setPageCount] = useState(0);\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [totalRec, setTotalRec] = useState(0);\r\n const [sort, setSort] = useState(sortIS);\r\n const [refresh, setRefresh] = useState(false);\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const privileges = getPrivileges(\"merchant\");\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if ((searchText && searchText.length >= 3) || searchText.length == 0) {\r\n fetchNFC();\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n fetchNFC();\r\n }, [currentPage]);\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchNFC();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText(\"\");\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchNFC();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n setOpenEditModal(false);\r\n fetchNFC();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n const fetchNFC = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let data = {\r\n PageNumber: Number(currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data[\"SearchText\"] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n postMethod(\"/api/POS/Search/SmartPayCard\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n setFilteredList(res.data.result.list);\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n // fetchSubs();\r\n };\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText(\"\");\r\n setRefresh(true);\r\n };\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj.isBlock) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj?.nfcCardName}?`;\r\n };\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n const deleteNFC = () => {\r\n const {\r\n nfcCardName,\r\n nfcCardID,\r\n isBlock,\r\n isDelete,\r\n customerId,\r\n createdBy,\r\n ...rest\r\n } = deleteObj;\r\n const payload = {\r\n nfcCardID,\r\n nfcCardName,\r\n updatedBy: getUserName(),\r\n isBlock: !deleteObj.isBlock,\r\n isDelete,\r\n createdBy,\r\n customerId: Number(customerId),\r\n ...rest,\r\n };\r\n let errorMsg = \"\";\r\n setModalLoading(true);\r\n setLoading(true);\r\n postMethod(\"/api/POS/SmartPayCard/Update\", payload, \"post\")\r\n .then((res) => {\r\n setModalLoading(false);\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let text = deleteObj.isBlock\r\n ? \"NFC unblocked successfully\"\r\n : \"NFC blocked successfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n {privileges.add && (\r\n \r\n Add NFC\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlock\r\n ? \"Unblock NFC\"\r\n : \"Block NFC\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.nfcCardName ? (\r\n
\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && (\r\n \r\n )}\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
Customer NameCard NameIDSerial NumberStatuscreatedBycreatedDateActions
{mmo.customerName ?? \"NA\"}{mmo.nfcCardName ?? \"-\"}{mmo.nfcCardID}{mmo.nfcCardClientID}\r\n \r\n {mmo.createdBy}\r\n {new Date(mmo.createdDate).toLocaleDateString()}\r\n \r\n {privileges.edit && (\r\n {\r\n setEditObj(mmo);\r\n setOpenEditModal(true);\r\n }}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n )}\r\n {!mmo.isBlock ? (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n ) : (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default NFCList;\r\n","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Col,\r\n Container,\r\n Row,\r\n CardHeader\r\n} from \"reactstrap\";\r\n\r\nimport Header from \"../components/Headers/Header\";\r\nimport { getUserEmail, loginMethod } from \"../services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useHistory } from \"react-router\";\r\n\r\nconst ChangePassword = () => {\r\n\r\n const initialValue = {\r\n oldpswd: \"\",\r\n newpswd: \"\",\r\n confirmpswd: \"\"\r\n };\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState(initialValue);\r\n const [showOldPswd, setOldPswd] = React.useState(false);\r\n const [showNewPswd, setNewPswd] = React.useState(false);\r\n const [showConfirmPswd, setComfirmPswd] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n const handleInputChange = (e) => {\r\n let { name, value } = e.target;\r\n value = value.trim();\r\n let error = {};\r\n if (name === \"confirmpswd\") {\r\n validateConfirmPswd(value);\r\n }\r\n if (name === \"confirmpswd\") {\r\n // validateConfirmPswd(value);\r\n if (value !== values.newpswd) {\r\n error.confirmpswd = 'Confirm password should match New Password';\r\n }\r\n }\r\n setValues({\r\n ...values,\r\n [name]: value,\r\n });\r\n };\r\n\r\n const validateConfirmPswd = (value) => {\r\n let error = {};\r\n if (value !== values.newpswd) {\r\n error.confirmpswd = 'Confirm password should match New Password';\r\n }\r\n setErrors(error);\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.oldpswd) {\r\n errors.oldpswd = 'Old Password is Required';\r\n }\r\n if (!inputs.newpswd) {\r\n errors.newpswd = 'New Password is Required';\r\n } else if (inputs.newpswd.length < 6) {\r\n errors.newpswd = 'Password should have atleast 6 characters';\r\n }\r\n if (!inputs.confirmpswd) {\r\n errors.confirmpswd = 'Confirm Password is Required';\r\n } else if (inputs.confirmpswd !== inputs.newpswd) {\r\n errors.confirmpswd = 'Confirm password should match New Password';\r\n }\r\n return errors;\r\n }\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const resetValues = () => {\r\n setValues({\r\n oldpswd: \"\",\r\n newpswd: \"\",\r\n confirmpswd: \"\"\r\n });\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const noErrors = Object.keys(validationErrors).length === 0;\r\n setErrors(validationErrors);\r\n const email = getUserEmail();\r\n if (!email) {\r\n notifyFailed('Login User Email is not found');\r\n } else if (noErrors) {\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n var data = new FormData();\r\n\r\n data.append('Email', email);\r\n data.append('oldPassword', values.oldpswd);\r\n data.append('newPassword', values.newpswd);\r\n data.append('confirmPassword', values.confirmpswd);\r\n\r\n let errorMsg = '';\r\n setLoading(true);\r\n loginMethod('/api/Auth/changepassword', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess('Password has been changed successfully');\r\n // resetValues();\r\n window.localStorage.clear();\r\n history.push('/auth/login');\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || 'Error while saving';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in saving';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n } else {\r\n }\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Change Password

\r\n \r\n
\r\n
\r\n \r\n {/*
\r\n Change Password\r\n
*/}\r\n
\r\n \r\n \r\n Old Password\r\n \r\n \r\n \r\n {!showOldPswd && \r\n \r\n setOldPswd(true)} />\r\n \r\n }\r\n\r\n {showOldPswd && \r\n \r\n setOldPswd(false)} />\r\n \r\n }\r\n\r\n \r\n {errors.oldpswd &&
\r\n {errors.oldpswd}\r\n
}\r\n
\r\n\r\n \r\n \r\n New Password\r\n \r\n \r\n \r\n {!showNewPswd && \r\n \r\n setNewPswd(true)} />\r\n \r\n }\r\n\r\n {showNewPswd && \r\n \r\n setNewPswd(false)} />\r\n \r\n }\r\n\r\n \r\n {errors.newpswd &&
\r\n {errors.newpswd}\r\n
}\r\n
\r\n\r\n \r\n \r\n Confirm Password\r\n \r\n \r\n \r\n {!showConfirmPswd && \r\n \r\n setComfirmPswd(true)} />\r\n \r\n }\r\n\r\n {showConfirmPswd && \r\n \r\n setComfirmPswd(false)} />\r\n \r\n }\r\n\r\n \r\n {errors.confirmpswd &&
\r\n {errors.confirmpswd}\r\n
}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n );\r\n };\r\n\r\n export default ChangePassword;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n Button,\r\n Card,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Col,\r\n Row,\r\n} from \"reactstrap\";\r\n\r\nimport { loginMethod } from \"../../services/httpServices\";\r\nimport { useHistory } from \"react-router\";\r\nimport { useLocation } from \"react-router-dom/cjs/react-router-dom.min\";\r\n\r\nvar FormData = require(\"form-data\");\r\n\r\nconst ForgotPassword = (props) => {\r\n const initialValue = {\r\n email: null,\r\n pswd: null,\r\n otp: null,\r\n newpswd: null,\r\n confirmpswd: null,\r\n };\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState(initialValue);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [showOtp, setOtpCard] = React.useState(location?.state?.otpSent);\r\n const [showPswdCard, setPswdCard] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [showNewPswd, setShowNewPswd] = React.useState(false);\r\n const [showConfirmPswd, setShowConfirmPswd] = React.useState(false);\r\n const [showEmailCard, setEmailCard] = React.useState(\r\n !location?.state?.otpSent\r\n );\r\n const { addToast } = useToasts();\r\n\r\n const [minutes, setMinutes] = useState(10);\r\n const [seconds, setSeconds] = useState(0);\r\n const [isTimerStart, setIsTimerStart] = useState(location?.state?.otpSent);\r\n const timerRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (location?.state?.otpSent) {\r\n setValues({ ...values, email: location.state.data.Email });\r\n }\r\n }, [location?.state?.otpSent]);\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === \"otp\") {\r\n if (checkOtp(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"email\") {\r\n setValues({ ...values, [name]: value.trim() });\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.email) {\r\n errors.email = \"Email or Mobile Number is Required\";\r\n }\r\n // else if (!/\\S+@\\S+\\.\\S+/.test(inputs.email)) {\r\n // errors.email = 'Email address is invalid';\r\n // }\r\n return errors;\r\n };\r\n\r\n const notify = (text, type) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n if (!type) {\r\n type = \"success\";\r\n }\r\n addToast(text, {\r\n appearance: type,\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isTimerStart) {\r\n timerRef.current = setInterval(() => {\r\n if (minutes === 0 && seconds === 0) {\r\n setIsTimerStart(false);\r\n setMinutes(0);\r\n setSeconds(0);\r\n } else if (seconds === 0) {\r\n setSeconds(59);\r\n setMinutes((mins) => mins - 1);\r\n } else {\r\n setSeconds((s) => s - 1);\r\n }\r\n }, 1000);\r\n }\r\n\r\n return () => {\r\n clearTimeout(timerRef.current);\r\n };\r\n }, [isTimerStart, seconds, minutes]);\r\n\r\n const handleSubmit = (event) => {\r\n let errorMsg = \"\";\r\n event.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const noErrors = Object.values(validationErrors).every((x) => x === \"\");\r\n setErrors(validationErrors);\r\n if (noErrors) {\r\n let email = values.email.trim();\r\n let url = \"/api/auth/sendotp/\" + email;\r\n let data = {};\r\n setLoading(true);\r\n loginMethod(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n setOtpCard(true);\r\n setIsTimerStart(true);\r\n setEmailCard(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Invalid credentials\";\r\n notify(errorMsg, \"error\");\r\n } else {\r\n errorMsg = \"Error in login\";\r\n notify(errorMsg, \"error\");\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notify(errorMsg, \"error\");\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notify(errorMsg, \"error\");\r\n });\r\n } else {\r\n }\r\n };\r\n\r\n const otpValidate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.email) {\r\n errors.email = \"Email or Mobile Number is required\";\r\n }\r\n // else if (!/\\S+@\\S+\\.\\S+/.test(inputs.email)) {\r\n // errors.email = 'Email address is invalid';\r\n // }\r\n if (!inputs.otp) {\r\n errors.otp = \"Otp is required\";\r\n } else if (inputs.otp.length !== 6) {\r\n errors.otp = \"Otp should have 6 digits\";\r\n }\r\n return errors;\r\n };\r\n\r\n const checkOtp = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const otpSubmit = (event) => {\r\n let errorMsg = \"\";\r\n event.preventDefault();\r\n const validationErrors = otpValidate(values);\r\n setErrors(validationErrors);\r\n const noErrors = Object.values(validationErrors).every((x) => x === \"\");\r\n setErrors(validationErrors);\r\n if (noErrors) {\r\n let url = \"/api/auth/VerifyOtp/\";\r\n let data = new FormData();\r\n data.append(\"Email\", values.email.trim());\r\n data.append(\"Otp\", values.otp);\r\n setLoading(true);\r\n loginMethod(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n setOtpCard(false);\r\n setPswdCard(true);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Invalid Otp\";\r\n notify(errorMsg, \"error\");\r\n } else {\r\n errorMsg = \"Error in verifying otp\";\r\n notify(errorMsg, \"error\");\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notify(errorMsg, \"error\");\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notify(errorMsg, \"error\");\r\n });\r\n } else {\r\n }\r\n };\r\n\r\n const pswdValidate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.email) {\r\n errors.email = \"Email or Mobile Number is Required\";\r\n }\r\n // else if (!/\\S+@\\S+\\.\\S+/.test(inputs.email)) {\r\n // errors.email = 'Email address is invalid';\r\n // }\r\n if (!inputs.newpswd) {\r\n errors.newpswd = \"Password is required\";\r\n } else if (!inputs.confirmpswd) {\r\n errors.confirmpswd = \"Confirm Password is required\";\r\n } else if (inputs.newpswd !== inputs.confirmpswd) {\r\n errors.confirmpswd = \"Confirm Password is not matched\";\r\n }\r\n return errors;\r\n };\r\n\r\n const resetPswdSubmit = (event) => {\r\n let errorMsg = \"\";\r\n event.preventDefault();\r\n const validationErrors = pswdValidate(values);\r\n setErrors(validationErrors);\r\n const noErrors = Object.values(validationErrors).every((x) => x === \"\");\r\n setErrors(validationErrors);\r\n if (noErrors) {\r\n let url = \"/api/auth/resetpassword\";\r\n let data = new FormData();\r\n data.append(\"Email\", values.email);\r\n data.append(\"Password\", values.newpswd);\r\n data.append(\"ConfirmPassword\", values.confirmpswd);\r\n setLoading(true);\r\n loginMethod(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notify(\"Password reset successfuly\", \"success\");\r\n history.push(\"/login\");\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in reseting password\";\r\n notify(errorMsg, \"error\");\r\n } else {\r\n errorMsg = \"Error while reseting otp\";\r\n notify(errorMsg, \"error\");\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notify(errorMsg, \"error\");\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notify(errorMsg, \"error\");\r\n });\r\n } else {\r\n }\r\n };\r\n\r\n function getDigits(num) {\r\n if (num >= 0 && num <= 9) {\r\n return 0;\r\n }\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {showEmailCard && (\r\n \r\n \r\n \r\n
\r\n

Forgot Password  

\r\n
\r\n
\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n\r\n {showOtp && (\r\n \r\n \r\n \r\n
\r\n

Verify Otp

\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {getDigits(minutes)}\r\n {minutes}:{getDigits(seconds)}\r\n {seconds}\r\n \r\n \r\n \r\n \r\n {errors.otp && (\r\n
\r\n * {errors.otp}\r\n
\r\n )}\r\n {seconds === 0 && minutes === 0 && (\r\n \r\n OTP Expired\r\n

\r\n )}\r\n
\r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n\r\n {showPswdCard && (\r\n \r\n \r\n \r\n
\r\n

Reset Password

\r\n
\r\n
\r\n \r\n \r\n \r\n {!showNewPswd && (\r\n \r\n \r\n setShowNewPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showNewPswd && (\r\n \r\n \r\n setShowNewPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.newpswd && (\r\n
\r\n * {errors.newpswd}\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n {!showConfirmPswd && (\r\n \r\n \r\n setShowConfirmPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showConfirmPswd && (\r\n \r\n \r\n setShowConfirmPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.confirmpswd && (\r\n
\r\n * {errors.confirmpswd}\r\n
\r\n )}\r\n
\r\n\r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ForgotPassword;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Label,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Table,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport { getFspCategories } from \"appConfig\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport { getConfirmOptions } from \"appConfig\";\r\n\r\nconst initialValue = {\r\n id: 0,\r\n fspCategory: \"\",\r\n fspName: \"\",\r\n regulatoryLicenseNo: \"\",\r\n officialEmail: \"\",\r\n officialMobileNo: \"\",\r\n adminContactEmail: \"\",\r\n adminContactMobileNo: \"\",\r\n ictContactEmail: \"\",\r\n ictContactMobileNo: \"\",\r\n posGateway: false,\r\n onlineGateway: false,\r\n agentOperations: false,\r\n apiurl: \"\",\r\n userName: \"\",\r\n password: \"\",\r\n privateKey: \"\",\r\n token: \"\",\r\n maxSingleTransactionValue: 0,\r\n extraSecurityDetails: \"\",\r\n inboundTransfersFeeTable: \"\",\r\n inboundTransfersFSPPays: false,\r\n inboundTransfersSmartPayPays: false,\r\n outboundTransfersFeeTable: \"\",\r\n outboundTransfersFSPPays: false,\r\n outboundTransfersSmartPayPays: false,\r\n agencyServicesFeeTable: \"\",\r\n agencyServicesFSPPays: false,\r\n agencyServicesSmartPayPays: false,\r\n createBy: \"\",\r\n createdDate: \"\",\r\n updatedBy: \"\",\r\n updatedDate: \"\",\r\n isDeleted: false,\r\n isBlocked: false,\r\n};\r\n\r\nconst AddPOS = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const [showPin, setShowPin] = React.useState(false);\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const validate = (inputs) => {\r\n let urlRegEx =\r\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n let errors = {};\r\n if (!inputs.fspCategory) {\r\n errors.fspCategory = \"Fsp Category is required\";\r\n }\r\n if (!inputs.regulatoryLicenseNo) {\r\n errors.regulatoryLicenseNo = \"Regulatory License No is required\";\r\n }\r\n if (!inputs.officialEmail) {\r\n errors.officialEmail = \"Official Email is required\";\r\n }\r\n if (!inputs.officialMobileNo) {\r\n errors.officialMobileNo = \"Official Mobile No year is required\";\r\n }\r\n if (!inputs.adminContactEmail) {\r\n errors.adminContactEmail = \"Admin Contact Email No is required\";\r\n }\r\n if (!inputs.adminContactMobileNo) {\r\n errors.adminContactMobileNo = \"Admin Contact Mobile No is required\";\r\n }\r\n if (!inputs.ictContactEmail) {\r\n errors.ictContactEmail = \"Ict Contact Email is required\";\r\n }\r\n if (!inputs.ictContactMobileNo) {\r\n errors.ictContactMobileNo = \"Ict Contact Mobile No is required\";\r\n }\r\n if (!inputs.apiurl) {\r\n errors.apiurl = \"Api url is required\";\r\n } else if (!urlRegEx.test(inputs.apiurl)) {\r\n errors.apiurl = \"Please enter valid api url\";\r\n }\r\n if (!inputs.userName) {\r\n errors.userName = \"Username is required\";\r\n }\r\n if (!inputs.password) {\r\n errors.password = \"Password is required\";\r\n }\r\n if (!inputs.privateKey) {\r\n errors.privateKey = \"Private Key is required\";\r\n }\r\n if (!inputs.token) {\r\n errors.token = \"Token is required\";\r\n }\r\n if (!inputs.maxSingleTransactionValue) {\r\n errors.maxSingleTransactionValue =\r\n \"maxSingleTransactionValue is required\";\r\n }\r\n if (!inputs.extraSecurityDetails) {\r\n errors.extraSecurityDetails = \"extraSecurityDetails is required\";\r\n }\r\n if (!inputs.inboundTransfersFeeTable) {\r\n errors.inboundTransfersFeeTable = \"inboundTransfersFeeTable is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = {};\r\n Object.entries(values).forEach(([key, value]) => {\r\n if (value === \"Yes\" || value === \"No\") {\r\n data[key] = value === \"Yes\";\r\n } else if (key === \"maxSingleTransactionValue\") {\r\n data[key] = Number(value);\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n const payload = {\r\n ...data,\r\n createBy: getUserName(),\r\n createdDate: new Date().toISOString(),\r\n updatedBy: getUserName(),\r\n updatedDate: new Date().toISOString(),\r\n isDeleted: false,\r\n isBlocked: false,\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Prfile/Save\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add FSP

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

Profile Information

\r\n
\r\n \r\n \r\n \r\n \r\n FSP Category\r\n \r\n \r\n {getFspCategories()}\r\n \r\n {errors.fspCategory && (\r\n
\r\n * {errors.fspCategory}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n FSP Name\r\n \r\n \r\n {errors.fspName && (\r\n
\r\n * {errors.fspName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Regulatory License No\r\n \r\n \r\n {errors.regulatoryLicenseNo && (\r\n
\r\n * {errors.regulatoryLicenseNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Official Email\r\n \r\n {\r\n setValues({\r\n ...values,\r\n officialEmail: e.target.value,\r\n userName: e.target.value,\r\n });\r\n }}\r\n />\r\n {errors.officialEmail && (\r\n
\r\n * {errors.officialEmail}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Official Mobile No\r\n \r\n {\r\n setValues({ ...values, officialMobileNo: e });\r\n }}\r\n />\r\n {errors.officialMobileNo && (\r\n
\r\n * {errors.officialMobileNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Admin Contact Email\r\n \r\n \r\n {errors.adminContactEmail && (\r\n
\r\n * {errors.adminContactEmail}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Admin Contact Mobile No\r\n \r\n {\r\n setValues({ ...values, adminContactMobileNo: e });\r\n }}\r\n />\r\n {errors.adminContactMobileNo && (\r\n
\r\n * {errors.adminContactMobileNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ICT Contact Email\r\n \r\n \r\n {errors.ictContactEmail && (\r\n
\r\n * {errors.ictContactEmail}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ICT Contact Mobile No\r\n \r\n {\r\n setValues({ ...values, ictContactMobileNo: e });\r\n }}\r\n required\r\n />\r\n {errors.ictContactMobileNo && (\r\n
\r\n * {errors.ictContactMobileNo}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n Services Information (Select As Applicable)\r\n

\r\n \r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n posGateway: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n onlineGateway: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n \r\n {/* \r\n \r\n setValues({\r\n ...values,\r\n agentOperations: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n */}\r\n \r\n \r\n
\r\n
\r\n
\r\n

Integration and Security Parameters

\r\n
\r\n \r\n \r\n \r\n \r\n Api Url\r\n \r\n \r\n setValues({ ...values, apiurl: e.target.value })\r\n }\r\n />\r\n {errors.apiUrl && (\r\n
\r\n * {errors.apiUrl}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Private Key\r\n \r\n \r\n setValues({\r\n ...values,\r\n privateKey: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.privateKey && (\r\n
\r\n * {errors.privateKey}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Token\r\n \r\n \r\n setValues({ ...values, token: e.target.value })\r\n }\r\n />\r\n {errors.token && (\r\n
\r\n * {errors.token}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Maximum Single Transaction Value\r\n \r\n \r\n setValues({\r\n ...values,\r\n maxSingleTransactionValue: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.maxSingleTransactionValue && (\r\n
\r\n \r\n * {errors.maxSingleTransactionValue}\r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Anything else to add here for extra security?\r\n \r\n \r\n setValues({\r\n ...values,\r\n extraSecurityDetails: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.extraSecurityDetails && (\r\n
\r\n * {errors.extraSecurityDetails}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n User Name\r\n \r\n \r\n setValues({\r\n ...values,\r\n userName: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.userName && (\r\n
\r\n * {errors.userName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n password: e.target.value,\r\n })\r\n }\r\n autoComplete=\"off\"\r\n />\r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Commercials

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Transaction TypeApplicable Fees TableFSP Pays (Y/N)Smart Pay Pays (Y/N)
Inbound Transfers\r\n \r\n setValues({\r\n ...values,\r\n inboundTransfersFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.inboundTransfersFeeTable && (\r\n
\r\n * {errors.inboundTransfersFeeTable}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.inboundTransfersFSPPays && (\r\n
\r\n * {errors.inboundTransfersFSPPays}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.inboundTransfersSmartPayPays && (\r\n
\r\n \r\n * {errors.inboundTransfersSmartPayPays}\r\n \r\n
\r\n )}\r\n
Outbound Transfers\r\n {\" \"}\r\n \r\n setValues({\r\n ...values,\r\n outboundTransfersFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.outboundTransfersFeeTable && (\r\n
\r\n \r\n * {errors.outboundTransfersFeeTable}\r\n \r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.outboundTransfersFSPPays && (\r\n
\r\n * {errors.outboundTransfersFSPPays}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.outboundTransfersSmartPayPays && (\r\n
\r\n \r\n * {errors.outboundTransfersSmartPayPays}\r\n \r\n
\r\n )}\r\n
Agency Services\r\n {\" \"}\r\n \r\n setValues({\r\n ...values,\r\n agencyServicesFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.agencyServicesFeeTable && (\r\n
\r\n * {errors.agencyServicesFeeTable}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.agencyServicesFSPPays && (\r\n
\r\n * {errors.agencyServicesFSPPays}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.agencyServicesSmartPayPays && (\r\n
\r\n \r\n * {errors.agencyServicesSmartPayPays}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n {loading ? \"Loading...\": \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddPOS;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Input,\r\n Row,\r\n Col,\r\n Label,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Table,\r\n} from \"reactstrap\";\r\n\r\nimport { getFspCategories } from \"appConfig\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport { getConfirmOptions } from \"appConfig\";\r\n\r\nconst initialValue = {\r\n id: 0,\r\n fspCategory: \"\",\r\n fspName: \"\",\r\n regulatoryLicenseNo: \"\",\r\n officialEmail: \"\",\r\n officialMobileNo: \"\",\r\n adminContactEmail: \"\",\r\n adminContactMobileNo: \"\",\r\n ictContactEmail: \"\",\r\n ictContactMobileNo: \"\",\r\n posGateway: false,\r\n onlineGateway: false,\r\n agentOperations: false,\r\n apiurl: \"\",\r\n userName: \"\",\r\n password: \"\",\r\n privateKey: \"\",\r\n token: \"\",\r\n maxSingleTransactionValue: 0,\r\n extraSecurityDetails: \"\",\r\n inboundTransfersFeeTable: \"\",\r\n inboundTransfersFSPPays: false,\r\n inboundTransfersSmartPayPays: false,\r\n outboundTransfersFeeTable: \"\",\r\n outboundTransfersFSPPays: false,\r\n outboundTransfersSmartPayPays: false,\r\n agencyServicesFeeTable: \"\",\r\n agencyServicesFSPPays: false,\r\n agencyServicesSmartPayPays: false,\r\n createBy: \"\",\r\n createdDate: \"\",\r\n updatedBy: \"\",\r\n updatedDate: \"\",\r\n isDeleted: false,\r\n isBlocked: false,\r\n};\r\n\r\nconst AddPOS = (props) => {\r\n const [values, setValues] = React.useState(props.values || initialValue);\r\n const [showPin, setShowPin] = React.useState(false);\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add FSP

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

Profile Information

\r\n
\r\n \r\n \r\n \r\n \r\n FSP Category\r\n \r\n \r\n {getFspCategories()}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n FSP Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Regulatory License No\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Official Email\r\n \r\n {\r\n setValues({\r\n ...values,\r\n officialEmail: e.target.value,\r\n userName: e.target.value,\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Official Mobile No\r\n \r\n {\r\n setValues({ ...values, officialMobileNo: e });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Admin Contact Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Admin Contact Mobile No\r\n \r\n {\r\n setValues({ ...values, adminContactMobileNo: e });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n ICT Contact Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ICT Contact Mobile No\r\n \r\n {\r\n setValues({ ...values, ictContactMobileNo: e });\r\n }}\r\n disabled\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Services Information (Select As Applicable)\r\n

\r\n \r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n posGateway: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n onlineGateway: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n \r\n {/* \r\n \r\n setValues({\r\n ...values,\r\n agentOperations: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n */}\r\n \r\n \r\n
\r\n
\r\n
\r\n

Integration and Security Parameters

\r\n
\r\n \r\n \r\n \r\n \r\n Api Url\r\n \r\n \r\n setValues({ ...values, apiurl: e.target.value })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Private Key\r\n \r\n \r\n setValues({\r\n ...values,\r\n privateKey: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Token\r\n \r\n \r\n setValues({ ...values, token: e.target.value })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Maximum Single Transaction Value\r\n \r\n \r\n setValues({\r\n ...values,\r\n maxSingleTransactionValue: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Anything else to add here for extra security?\r\n \r\n \r\n setValues({\r\n ...values,\r\n extraSecurityDetails: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n User Name\r\n \r\n \r\n setValues({\r\n ...values,\r\n userName: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n password: e.target.value,\r\n })\r\n }\r\n autoComplete=\"off\"\r\n />\r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Commercials

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Transaction TypeApplicable Fees TableFSP Pays (Y/N)Smart Pay Pays (Y/N)
Inbound Transfers\r\n \r\n setValues({\r\n ...values,\r\n inboundTransfersFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n {getConfirmOptions()}\r\n \r\n \r\n \r\n {getConfirmOptions()}\r\n \r\n
Outbound Transfers\r\n {\" \"}\r\n \r\n setValues({\r\n ...values,\r\n outboundTransfersFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n {getConfirmOptions()}\r\n \r\n \r\n \r\n {getConfirmOptions()}\r\n \r\n
Agency Services\r\n {\" \"}\r\n \r\n setValues({\r\n ...values,\r\n agencyServicesFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n {getConfirmOptions()}\r\n \r\n \r\n \r\n {getConfirmOptions()}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddPOS;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Label,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Table,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport { getFspCategories } from \"appConfig\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport { getConfirmOptions } from \"appConfig\";\r\n\r\nconst initialValue = {\r\n id: 0,\r\n fspCategory: \"\",\r\n fspName: \"\",\r\n regulatoryLicenseNo: \"\",\r\n officialEmail: \"\",\r\n officialMobileNo: \"\",\r\n adminContactEmail: \"\",\r\n adminContactMobileNo: \"\",\r\n ictContactEmail: \"\",\r\n ictContactMobileNo: \"\",\r\n posGateway: false,\r\n onlineGateway: false,\r\n agentOperations: false,\r\n apiurl: \"\",\r\n userName: \"\",\r\n password: \"\",\r\n privateKey: \"\",\r\n token: \"\",\r\n maxSingleTransactionValue: 0,\r\n extraSecurityDetails: \"\",\r\n inboundTransfersFeeTable: \"\",\r\n inboundTransfersFSPPays: false,\r\n inboundTransfersSmartPayPays: false,\r\n outboundTransfersFeeTable: \"\",\r\n outboundTransfersFSPPays: false,\r\n outboundTransfersSmartPayPays: false,\r\n agencyServicesFeeTable: \"\",\r\n agencyServicesFSPPays: false,\r\n agencyServicesSmartPayPays: false,\r\n createBy: \"\",\r\n createdDate: \"\",\r\n updatedBy: \"\",\r\n updatedDate: \"\",\r\n isDeleted: false,\r\n isBlocked: false,\r\n};\r\n\r\nconst EditFSP = (props) => {\r\n const [values, setValues] = React.useState(props?.values || initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const [showPin, setShowPin] = React.useState(false);\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const validate = (inputs) => {\r\n let urlRegEx =\r\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n let errors = {};\r\n if (!inputs.fspCategory) {\r\n errors.fspCategory = \"Fsp Category is required\";\r\n }\r\n if (!inputs.regulatoryLicenseNo) {\r\n errors.regulatoryLicenseNo = \"Regulatory License No is required\";\r\n }\r\n if (!inputs.officialEmail) {\r\n errors.officialEmail = \"Official Email is required\";\r\n }\r\n if (!inputs.officialMobileNo) {\r\n errors.officialMobileNo = \"Official Mobile No year is required\";\r\n }\r\n if (!inputs.adminContactEmail) {\r\n errors.adminContactEmail = \"Admin Contact Email No is required\";\r\n }\r\n if (!inputs.adminContactMobileNo) {\r\n errors.adminContactMobileNo = \"Admin Contact Mobile No is required\";\r\n }\r\n if (!inputs.ictContactEmail) {\r\n errors.ictContactEmail = \"Ict Contact Email is required\";\r\n }\r\n if (!inputs.ictContactMobileNo) {\r\n errors.ictContactMobileNo = \"Ict Contact Mobile No is required\";\r\n }\r\n if (!inputs.apiurl) {\r\n errors.apiurl = \"Api url is required\";\r\n } else if (!urlRegEx.test(inputs.apiurl)) {\r\n errors.apiurl = \"Please enter valid api url\";\r\n }\r\n if (!inputs.userName) {\r\n errors.userName = \"Username is required\";\r\n }\r\n if (!inputs.password) {\r\n errors.password = \"Password is required\";\r\n }\r\n if (!inputs.privateKey) {\r\n errors.privateKey = \"Private Key is required\";\r\n }\r\n if (!inputs.token) {\r\n errors.token = \"Token is required\";\r\n }\r\n if (!inputs.maxSingleTransactionValue) {\r\n errors.maxSingleTransactionValue =\r\n \"maxSingleTransactionValue is required\";\r\n }\r\n if (!inputs.extraSecurityDetails) {\r\n errors.extraSecurityDetails = \"extraSecurityDetails is required\";\r\n }\r\n if (!inputs.inboundTransfersFeeTable) {\r\n errors.inboundTransfersFeeTable = \"inboundTransfersFeeTable is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = {};\r\n Object.entries(values).forEach(([key, value]) => {\r\n if (value === \"Yes\" || value === \"No\") {\r\n data[key] = value === \"Yes\";\r\n } else if (key === \"maxSingleTransactionValue\") {\r\n data[key] = Number(value);\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n const payload = {\r\n ...data,\r\n createBy: getUserName(),\r\n createdDate: new Date().toISOString(),\r\n updatedBy: getUserName(),\r\n updatedDate: new Date().toISOString(),\r\n isDeleted: false,\r\n isBlocked: false,\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Update\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (typeof res.data === \"string\") {\r\n notifySuccess(res.data || \"Saved Successfully\");\r\n closeModal();\r\n return;\r\n }\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add FSP

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

Profile Information

\r\n
\r\n \r\n \r\n \r\n \r\n FSP Category\r\n \r\n \r\n {getFspCategories()}\r\n \r\n {errors.fspCategory && (\r\n
\r\n * {errors.fspCategory}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n FSP Name\r\n \r\n \r\n {errors.fspName && (\r\n
\r\n * {errors.fspName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Regulatory License No\r\n \r\n \r\n {errors.regulatoryLicenseNo && (\r\n
\r\n * {errors.regulatoryLicenseNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Official Email\r\n \r\n {\r\n setValues({\r\n ...values,\r\n officialEmail: e.target.value,\r\n userName: e.target.value,\r\n });\r\n }}\r\n />\r\n {errors.officialEmail && (\r\n
\r\n * {errors.officialEmail}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Official Mobile No\r\n \r\n {\r\n setValues({ ...values, officialMobileNo: e });\r\n }}\r\n />\r\n {errors.officialMobileNo && (\r\n
\r\n * {errors.officialMobileNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Admin Contact Email\r\n \r\n \r\n {errors.adminContactEmail && (\r\n
\r\n * {errors.adminContactEmail}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Admin Contact Mobile No\r\n \r\n {\r\n setValues({ ...values, adminContactMobileNo: e });\r\n }}\r\n />\r\n {errors.adminContactMobileNo && (\r\n
\r\n * {errors.adminContactMobileNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ICT Contact Email\r\n \r\n \r\n {errors.ictContactEmail && (\r\n
\r\n * {errors.ictContactEmail}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n ICT Contact Mobile No\r\n \r\n {\r\n setValues({ ...values, ictContactMobileNo: e });\r\n }}\r\n required\r\n />\r\n {errors.ictContactMobileNo && (\r\n
\r\n * {errors.ictContactMobileNo}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n Services Information (Select As Applicable)\r\n

\r\n \r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n posGateway: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n onlineGateway: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n \r\n {/* \r\n \r\n setValues({\r\n ...values,\r\n agentOperations: e.target.checked,\r\n })\r\n }\r\n />\r\n \r\n */}\r\n \r\n \r\n
\r\n
\r\n
\r\n

Integration and Security Parameters

\r\n
\r\n \r\n \r\n \r\n \r\n Api Url\r\n \r\n \r\n setValues({ ...values, apiurl: e.target.value })\r\n }\r\n />\r\n {errors.apiUrl && (\r\n
\r\n * {errors.apiUrl}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Private Key\r\n \r\n \r\n setValues({\r\n ...values,\r\n privateKey: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.privateKey && (\r\n
\r\n * {errors.privateKey}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Token\r\n \r\n \r\n setValues({ ...values, token: e.target.value })\r\n }\r\n />\r\n {errors.token && (\r\n
\r\n * {errors.token}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Maximum Single Transaction Value\r\n \r\n \r\n setValues({\r\n ...values,\r\n maxSingleTransactionValue: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.maxSingleTransactionValue && (\r\n
\r\n \r\n * {errors.maxSingleTransactionValue}\r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Anything else to add here for extra security?\r\n \r\n \r\n setValues({\r\n ...values,\r\n extraSecurityDetails: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.extraSecurityDetails && (\r\n
\r\n * {errors.extraSecurityDetails}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n User Name\r\n \r\n \r\n setValues({\r\n ...values,\r\n userName: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.userName && (\r\n
\r\n * {errors.userName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n setValues({\r\n ...values,\r\n password: e.target.value,\r\n })\r\n }\r\n autoComplete=\"off\"\r\n />\r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Commercials

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Transaction TypeApplicable Fees TableFSP Pays (Y/N)Smart Pay Pays (Y/N)
Inbound Transfers\r\n \r\n setValues({\r\n ...values,\r\n inboundTransfersFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.inboundTransfersFeeTable && (\r\n
\r\n * {errors.inboundTransfersFeeTable}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.inboundTransfersFSPPays && (\r\n
\r\n * {errors.inboundTransfersFSPPays}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.inboundTransfersSmartPayPays && (\r\n
\r\n \r\n * {errors.inboundTransfersSmartPayPays}\r\n \r\n
\r\n )}\r\n
Outbound Transfers\r\n {\" \"}\r\n \r\n setValues({\r\n ...values,\r\n outboundTransfersFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.outboundTransfersFeeTable && (\r\n
\r\n \r\n * {errors.outboundTransfersFeeTable}\r\n \r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.outboundTransfersFSPPays && (\r\n
\r\n * {errors.outboundTransfersFSPPays}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.outboundTransfersSmartPayPays && (\r\n
\r\n \r\n * {errors.outboundTransfersSmartPayPays}\r\n \r\n
\r\n )}\r\n
Agency Services\r\n {\" \"}\r\n \r\n setValues({\r\n ...values,\r\n agencyServicesFeeTable: e.target.value,\r\n })\r\n }\r\n />\r\n {errors.agencyServicesFeeTable && (\r\n
\r\n * {errors.agencyServicesFeeTable}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.agencyServicesFSPPays && (\r\n
\r\n * {errors.agencyServicesFSPPays}\r\n
\r\n )}\r\n
\r\n \r\n {getConfirmOptions()}\r\n \r\n {errors.agencyServicesSmartPayPays && (\r\n
\r\n \r\n * {errors.agencyServicesSmartPayPays}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EditFSP;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col,\r\n ModalHeader,\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { getMethod, postMethod } from \"../../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport AddPOS from \"./add-fsp\";\r\nimport ViewFSP from \"./view-fsp\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport EditFSP from \"./edit-fsp\";\r\n// import AssignPOS from \"./assign-pos-terminal\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst FSPList = () => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [postlist, setPosList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [view, setView] = React.useState(false);\r\n const [openEdit, setOpenEditModal] = React.useState(false);\r\n const [POSObj, setPOSObj] = React.useState(null);\r\n const [editObj, setEditObj] = React.useState(null);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchFSP();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n if (timeout) clearTimeout(timeout);\r\n const timeout1 = setTimeout(() => {\r\n let filteredList = [];\r\n for (let i = 0; i < postlist.length; i++) {\r\n if (\r\n postlist[i].bban\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].email\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].mobileCode\r\n .toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].phoneNumber\r\n .toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].name\r\n .toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase())\r\n ) {\r\n filteredList.push(postlist[i]);\r\n }\r\n }\r\n setFilteredList(filteredList);\r\n setCurrentPage(0);\r\n let pc = Math.ceil(filteredList.length / pageSize);\r\n setPageCount(pc);\r\n }, 750);\r\n setTimeoutNew(timeout1);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText(\"\");\r\n setCurrentPage(0);\r\n fetchFSP();\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchFSP();\r\n };\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n const showPOS = (obj) => {\r\n setPOSObj(obj);\r\n setView(true);\r\n };\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n setPOSObj(null);\r\n };\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n setEditObj(null);\r\n fetchFSP();\r\n };\r\n\r\n const fetchFSP = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\r\n \"/api/FSP/Search\",\r\n {\r\n searchText: \"\",\r\n isDescending: false,\r\n sortingOn: \"\",\r\n perPage: 10,\r\n pageNumber: 1,\r\n },\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result?.result?.list ||\r\n !res.data.result?.result?.list.length\r\n ) {\r\n setPosList([]);\r\n }\r\n setPosList(res.data.result?.result?.list);\r\n setFilteredList(res.data.result?.result?.list);\r\n let pc = Math.ceil(res.data.result?.result?.list.length / pageSize);\r\n setTotalRec(res.data.result.result.totalRecords);\r\n\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n const fetchFSPById = (id) => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/FSP/\" + id, \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setEditObj(res.data.result);\r\n setOpenEditModal(true);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n // setSError();\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const deleteFsp = () => {\r\n let errorMsg = \"\";\r\n setModalLoading(true);\r\n let url = \"/api/FSP/SoftDelete/\" + deleteObj.id;\r\n postMethod(url, {}, \"post\")\r\n .then((res) => {\r\n setModalLoading(false);\r\n if (typeof res.data === \"string\") {\r\n let text = deleteObj.isBlocked\r\n ? \"FSP unblocked successfully\"\r\n : \"FSP blocked successfully\";\r\n notifySuccess(text);\r\n closeModal();\r\n closeDeleteModal();\r\n return;\r\n }\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked\r\n ? \"FSP unblocked successfully\"\r\n : \"FSP blocked successfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n fetchFSP();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setModalLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj.isBlocked) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj?.fspName} FSP ?`;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked\r\n ? \"Unblock FSP\"\r\n : \"Block FSP\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.fspName ? (\r\n
\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && (\r\n \r\n )}\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {filteredList\r\n .slice(currentPage * pageSize, (currentPage + 1) * pageSize)\r\n .map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
FSP NameFSP CategoryOfficial EmailOfficial Mobile NoMax Single Transaction ValueActions
{mmo.fspName}{mmo.fspCategory}{mmo.officialEmail}{mmo.officialMobileNo}{mmo.maxSingleTransactionValue}\r\n showPOS(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n \r\n\r\n fetchFSPById(mmo.id)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n\r\n {/* openAssign(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n */}\r\n\r\n {!mmo.isBlocked ? (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n ) : (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n {!loading && !filteredList.length && }\r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FSPList;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getMethod,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\n\r\nconst initialValue = {\r\n id: 0,\r\n fspCategory: \"\",\r\n fspName: \"\",\r\n firstName: \"\",\r\n middleName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n mobileCodeId: \"\",\r\n mobileNumber: \"\",\r\n userId: \"\",\r\n userStatus: \"Pending\",\r\n createBy: \"\",\r\n createdDate: \"\",\r\n updatedBy: \"\",\r\n updatedDate: \"\",\r\n isDeleted: false,\r\n isBlocked: false,\r\n};\r\n\r\nconst AddFspUser = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const [fsps, setFsps] = useState([]);\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n mobileCodeId: data.dialCode,\r\n mobileNumber: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n useEffect(() => {\r\n fetchAllFsps();\r\n }, []);\r\n\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.fspCategory) {\r\n errors.fspCategory = \"Fsp Category is required\";\r\n }\r\n if (!inputs.fspName) {\r\n errors.fspName = \"Fsp Name is required\";\r\n }\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is required\";\r\n }\r\n if (!inputs.email) {\r\n errors.email = \"Email is required\";\r\n }\r\n if (!inputs.mobileCodeId) {\r\n errors.mobileCodeId = \"Mobile Code Id is required\";\r\n }\r\n if (!inputs.mobileNumber) {\r\n errors.mobileNumber = \"Mobile No is required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n const payload = {\r\n ...values,\r\n createBy: getUserName(),\r\n createdDate: new Date().toISOString(),\r\n updatedBy: getUserName(),\r\n updatedDate: new Date().toISOString(),\r\n isDeleted: false,\r\n isBlocked: false,\r\n mobileCodeId: Number(values.mobileCodeId)\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Profile/User/Save\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add FSP User

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n FSP Name\r\n \r\n {\r\n setValues({\r\n ...values,\r\n fspName: e.target.value,\r\n fspCategory: fsps.find(\r\n (i) => i.fspName == e.target.value\r\n )?.fspCategory,\r\n });\r\n }}\r\n >\r\n \r\n {fsps?.map((item) => (\r\n \r\n ))}\r\n \r\n {errors.fspName && (\r\n
\r\n * {errors.fspName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.fspName !== \"\" && (\r\n <>\r\n \r\n \r\n \r\n FSP Category\r\n \r\n \r\n {errors.fspCategory && (\r\n
\r\n * {errors.fspCategory}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Middle Name\r\n \r\n \r\n {errors.middleName && (\r\n
\r\n * {errors.middleName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Mobile No\r\n \r\n \r\n {errors.mobileNumber && (\r\n
\r\n * {errors.mobileNumber}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddFspUser;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getMethod } from \"../../services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\n\r\nconst initialValue = {\r\n id: 0,\r\n fspCategory: \"\",\r\n fspName: \"\",\r\n firstName: \"\",\r\n middleName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n mobileCodeId: 0,\r\n mobileNumber: \"\",\r\n userId: \"\",\r\n userStatus: \"Pending\",\r\n createBy: \"\",\r\n createdDate: \"\",\r\n updatedBy: \"\",\r\n updatedDate: \"\",\r\n isDeleted: false,\r\n isBlocked: false,\r\n};\r\n\r\nconst ViewFspUser = (props) => {\r\n const [values, setValues] = React.useState(props.values || initialValue);\r\n const [loading, setLoading] = React.useState(false);\r\n const [fsps, setFsps] = useState([]);\r\n const { addToast } = useToasts();\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n useEffect(() => {\r\n fetchAllFsps();\r\n }, []);\r\n\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add FSP User

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n FSP Name\r\n \r\n {\r\n setValues({\r\n ...values,\r\n fspName: e.target.value,\r\n fspCategory: fsps.find(\r\n (i) => i.id == e.target.value\r\n )?.fspCategory,\r\n });\r\n }}\r\n >\r\n {/* {roles.map(c => )} */}\r\n \r\n {fsps?.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {values.fspName !== \"\" && (\r\n <>\r\n \r\n \r\n \r\n FSP Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Middle Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Mobile No\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ViewFspUser;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getMethod,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\n\r\nconst initialValue = {\r\n id: 0,\r\n fspCategory: \"\",\r\n fspName: \"\",\r\n firstName: \"\",\r\n middleName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n mobileCodeId: \"\",\r\n mobileNumber: \"\",\r\n userId: \"\",\r\n userStatus: \"Pending\",\r\n createBy: \"\",\r\n createdDate: \"\",\r\n updatedBy: \"\",\r\n updatedDate: \"\",\r\n isDeleted: false,\r\n isBlocked: false,\r\n};\r\n\r\nconst EditFspUser = (props) => {\r\n const [values, setValues] = React.useState(props?.values || initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const [fsps, setFsps] = useState([]);\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n mobileCodeId: data.dialCode,\r\n mobileNumber: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n useEffect(() => {\r\n fetchAllFsps();\r\n }, []);\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.fspCategory) {\r\n errors.fspCategory = \"Fsp Category is required\";\r\n }\r\n if (!inputs.fspName) {\r\n errors.fspName = \"Fsp Name is required\";\r\n }\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is required\";\r\n }\r\n if (!inputs.email) {\r\n errors.email = \"Email is required\";\r\n }\r\n if (!inputs.mobileCodeId) {\r\n errors.mobileCodeId = \"Mobile Code Id is required\";\r\n }\r\n if (!inputs.mobileNumber) {\r\n errors.mobileNumber = \"Mobile No is required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n const payload = {\r\n ...values,\r\n updatedBy: getUserName(),\r\n updatedDate: new Date().toISOString(),\r\n mobileCodeId: Number(values.mobileCodeId)\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Profile/User/Update\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" || typeof res.data === \"string\") {\r\n notifySuccess(res.data || \"Updated Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Edit FSP User

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n FSP Name\r\n \r\n {\r\n setValues({\r\n ...values,\r\n fspName: e.target.value,\r\n fspCategory: fsps.find(\r\n (i) => i.fspName == e.target.value\r\n )?.fspCategory,\r\n });\r\n }}\r\n >\r\n \r\n {fsps?.map((item) => (\r\n \r\n ))}\r\n \r\n {errors.fspName && (\r\n
\r\n * {errors.fspName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.fspName !== \"\" && (\r\n <>\r\n \r\n \r\n \r\n FSP Category\r\n \r\n \r\n {errors.fspCategory && (\r\n
\r\n * {errors.fspCategory}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Middle Name\r\n \r\n \r\n {errors.middleName && (\r\n
\r\n * {errors.middleName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Mobile No\r\n \r\n \r\n {errors.mobileNumber && (\r\n
\r\n * {errors.mobileNumber}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EditFspUser;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col,\r\n ModalHeader,\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { postMethod } from \"../../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport AddPOS from \"./add-fsp-user\";\r\nimport ViewFSP from \"./view-fsp-user\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport EditFSP from \"./edit-fsp-user\";\r\n// import AssignPOS from \"./assign-pos-terminal\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst FspUsersList = () => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [postlist, setPosList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [view, setView] = React.useState(false);\r\n const [openEdit, setOpenEditModal] = React.useState(false);\r\n const [POSObj, setPOSObj] = React.useState(null);\r\n const [editObj, setEditObj] = React.useState(null);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchFSPUsers();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n if (timeout) clearTimeout(timeout);\r\n const timeout1 = setTimeout(() => {\r\n let filteredList = [];\r\n for (let i = 0; i < postlist.length; i++) {\r\n if (\r\n postlist[i].bban\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].email\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].mobileCode\r\n .toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].phoneNumber\r\n .toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n postlist[i].name\r\n .toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase())\r\n ) {\r\n filteredList.push(postlist[i]);\r\n }\r\n }\r\n setFilteredList(filteredList);\r\n setCurrentPage(0);\r\n let pc = Math.ceil(filteredList.length / pageSize);\r\n setPageCount(pc);\r\n }, 750);\r\n setTimeoutNew(timeout1);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText(\"\");\r\n setCurrentPage(0);\r\n fetchFSPUsers();\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchFSPUsers();\r\n };\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n const showPOS = (obj) => {\r\n setPOSObj(obj);\r\n setView(true);\r\n };\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n setPOSObj(null);\r\n };\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n setEditObj(null);\r\n fetchFSPUsers();\r\n };\r\n\r\n const fetchFSPUsers = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\r\n \"/api/FSP/Profile/User/Search\",\r\n {\r\n searchText: \"\",\r\n isDescending: false,\r\n sortingOn: \"\",\r\n perPage: 10,\r\n pageNumber: 1,\r\n },\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data?.result?.list || !res.data?.result?.list.length) {\r\n setPosList([]);\r\n }\r\n setPosList(res.data?.result?.list);\r\n setFilteredList(res.data?.result?.list);\r\n let pc = Math.ceil(res.data?.result?.list.length / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n const fetchFSPUsersById = (mmo) => {\r\n setEditObj(mmo);\r\n setOpenEditModal(true);\r\n };\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const deleteFsp = () => {\r\n let errorMsg = \"\";\r\n setModalLoading(true);\r\n let url =\r\n \"/api/FSP/Profile/Delete/User/\" +\r\n deleteObj.id +\r\n \"?blocked=\" +\r\n !deleteObj.isBlocked;\r\n postMethod(url, {}, \"post\")\r\n .then((res) => {\r\n setModalLoading(false);\r\n if (typeof res.data === \"string\") {\r\n let text = deleteObj.isBlocked\r\n ? \"FSP unblocked successfully\"\r\n : \"FSP blocked successfully\";\r\n notifySuccess(text);\r\n closeModal();\r\n closeDeleteModal();\r\n return;\r\n }\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked\r\n ? \"FSP unblocked successfully\"\r\n : \"FSP blocked successfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n fetchFSPUsers();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setModalLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj.isBlocked) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj?.firstName} ${deleteObj?.lastName} FSP User ?`;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked\r\n ? \"Unblock FSP User\"\r\n : \"Block FSP User\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.fspName ? (\r\n
\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && (\r\n \r\n )}\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList\r\n .slice(currentPage * pageSize, (currentPage + 1) * pageSize)\r\n .map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
firstNamelastNamefspNamefspCategoryemailActions
{mmo.firstName}{mmo.lastName}{mmo.fspName}{mmo.fspCategory}{mmo.email}\r\n showPOS(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n \r\n\r\n fetchFSPUsersById(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n\r\n {/* openAssign(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n */}\r\n\r\n {!mmo.isBlocked ? (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n ) : (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n {!loading && !filteredList.length && }\r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FspUsersList;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n Col,\r\n ModalHeader,\r\n Label,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Tooltip,\r\n UncontrolledTooltip,\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport {\r\n getMethod,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport jsPDF from \"jspdf\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst sortIS = {\r\n sortMerchantUID: 0,\r\n sortMerchantName: 0,\r\n sortFspName: 0,\r\n sortMerchantAccountNumber: 0,\r\n sortPendingBalance: 0,\r\n};\r\n\r\nconst SettlementProcessList = () => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [merchantBanks, setMerchantBanks] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize] = React.useState(10);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [openBalModal, setOpenBalModal] = React.useState(false);\r\n const [totalInfo, setTotalInfo] = React.useState(null);\r\n const [errors, setErrors] = useState({});\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [totalRec, setTotalRec] = useState(0);\r\n const [pagesCount, setPageCount] = useState(0);\r\n const [selectedMerchantAcc, setSelectedMerchantAcc] = useState({});\r\n const [values, setValues] = React.useState({\r\n paymentType: \"\",\r\n settlementType: \"\",\r\n amount: 0,\r\n refNum: \"\",\r\n description: \"\",\r\n bankAccountId: \"\",\r\n });\r\n const [refresh, setRefresh] = useState(false);\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [balanceInfo, setBalanceInfo] = useState({});\r\n\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchTotalInfo();\r\n fetchBalanceInfo();\r\n fetchSettlementsList();\r\n }, []);\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj({ ...mmo, totalAmount: mmo.pendingBalance });\r\n setOpenDelModal(true);\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n if (name === \"paymentType\" && value === \"Offline\") {\r\n setSelectedMerchantAcc({});\r\n }\r\n if (name === \"paymentType\" && value === \"Online\") {\r\n fetchMerchantBanks();\r\n }\r\n\r\n if (name === \"settlementType\" && value === \"Full\") {\r\n setValues({\r\n ...values,\r\n amount: deleteObj.pendingBalance,\r\n settlementType: value,\r\n });\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const reloadList = () => {\r\n setCurrentPage(0);\r\n fetchSettlementsList();\r\n fetchTotalInfo();\r\n fetchBalanceInfo()\r\n setSearchText(\"\");\r\n setRefresh(true);\r\n };\r\n\r\n const exportPDF = (reportData) => {\r\n const unit = \"pt\";\r\n const size = \"A4\"; // Use A1, A2, A3 or A4\r\n const orientation = \"portrait\"; // portrait or landscape\r\n\r\n const marginLeft = 10;\r\n const doc = new jsPDF(orientation, unit, size);\r\n\r\n doc.setFontSize(15);\r\n\r\n const title = \"Settlements List\";\r\n const headers = [\r\n [\r\n \"MERCHANT UID\",\r\n \"MERCHANT NAME\",\r\n \"FSP NAME\",\r\n \"ACCOUNT NUMBER\",\r\n \"PENDING BALANCE\",\r\n ],\r\n ];\r\n const data = filteredList?.map((mmo) => [\r\n mmo.merchantUID,\r\n mmo.merchantName,\r\n mmo.fspName,\r\n mmo.merchantAccountNumber,\r\n mmo.pendingBalance,\r\n ]);\r\n\r\n let content = {\r\n startY: 50,\r\n head: headers,\r\n margin: { left: 10, right: 10 },\r\n body: true\r\n ? [\r\n ...data,\r\n [\r\n {\r\n content: ``,\r\n colSpan: 12,\r\n styles: { fillColor: \"#ffffff\" },\r\n },\r\n ],\r\n [\r\n {\r\n content: `Total Pending Settlement Account(TPSA): ${totalInfo?.settlementPendingAmount}`,\r\n colSpan: 12,\r\n styles: { fillColor: \"#ffffff\" },\r\n },\r\n ],\r\n [\r\n {\r\n content: `Gross Collection Account Balance(GCAB): ${totalInfo?.collectionAccountBalance}`,\r\n colSpan: 12,\r\n styles: { fillColor: \"#ffffff\" },\r\n },\r\n ],\r\n ]\r\n : data,\r\n };\r\n\r\n doc.text(title, marginLeft, 40);\r\n doc.autoTable(content);\r\n doc.save(\"report.pdf\");\r\n };\r\n\r\n const validate = (inputs) => {\r\n const err = {};\r\n if (inputs.paymentType === \"Online\" && !inputs.bankAccountId) {\r\n err.bankAccountId = \"This field is required\";\r\n }\r\n if (inputs.paymentType === \"Offline\" && !inputs.refNum?.trim().length) {\r\n err.refNum = \"This field is required\";\r\n }\r\n if (!inputs.settlementType) {\r\n err.settlementType = \"This field is required\";\r\n }\r\n if (!inputs.amount) {\r\n err.amount = \"This field is required\";\r\n }\r\n\r\n if (inputs.amount > inputs.totalAmount) {\r\n err.totalAmount = \"Amount must be less than total amount.\";\r\n }\r\n return err;\r\n };\r\n\r\n const submitSettleMentData = async (payload) => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\r\n \"/api/Transactions/V2/SettelementProcess\",\r\n {\r\n ...payload,\r\n },\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Success\");\r\n fetchSettlementsList();\r\n fetchTotalInfo();\r\n fetchBalanceInfo()\r\n closeDeleteModal();\r\n // Success\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setTotalInfo(null);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n const fetchTotalInfo = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\r\n \"/api/Transactions/V2/CollectedAndSettlementAmountList\",\r\n {},\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setTotalInfo(res.data?.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n setTotalInfo(null);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setTotalInfo(null);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setTotalInfo(null);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchBalanceInfo = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/Transactions/V2/GetCollectionBankAccountBalance\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setBalanceInfo(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n setBalanceInfo({});\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setBalanceInfo({});\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setTotalInfo(null);\r\n setBalanceInfo({});\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if ((searchText && searchText.length >= 3) || searchText.length == 0) {\r\n fetchSettlementsList();\r\n }\r\n }\r\n }, [searchText]);\r\n const fetchSettlementsList = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let data = {\r\n PageNumber: Number(currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n if (searchText && searchText.length >= 3) {\r\n data[\"SearchText\"] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n if (sort.sortMerchantUID === \"1\") {\r\n data[\"SortingOn\"] = \"merchantUID\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.sortMerchantName === \"2\") {\r\n data[\"SortingOn\"] = \"merchantName\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.sortFspName === \"1\") {\r\n data[\"SortingOn\"] = \"fspName\";\r\n data[\"IsDescending\"] = false;\r\n } else if (sort.sortMerchantAccountNumber === \"2\") {\r\n data[\"SortingOn\"] = \"merchantAccountNumber\";\r\n data[\"IsDescending\"] = true;\r\n } else if (sort.sortPendingBalance === \"1\") {\r\n data[\"SortingOn\"] = \"pendingBalance\";\r\n data[\"IsDescending\"] = false;\r\n }\r\n postMethod(\"/api/Transactions/V2/GetSettlementList\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setFilteredList(res.data?.result?.list);\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setRefresh(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchMerchantBanks = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\r\n \"/api/MerchantProfile/GetBankAccount/\" + deleteObj?.merchantId,\r\n \"get\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n const filtered = [];\r\n res.data?.result.forEach((i) => {\r\n if (!filtered.find((j) => j.fspId === i.fspId)) {\r\n filtered.push(i);\r\n }\r\n });\r\n\r\n setMerchantBanks(filtered);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage !== 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSettlementsList();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n setValues({ paymentType: \"\", settlementType: \"\" });\r\n setMerchantBanks([]);\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Saved successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n const submitSettleMent = (e) => {\r\n e.preventDefault();\r\n const payload = {\r\n merchantId: Number(deleteObj?.merchantId),\r\n merchantUserId: deleteObj?.merchantUserId, //merchantUserId\r\n fspId: Number(\r\n selectedMerchantAcc?.fspId\r\n ? selectedMerchantAcc?.fspId\r\n : deleteObj?.fspId\r\n ), //FSPid\r\n MerchantAccountId: selectedMerchantAcc?.accountId ?? null, //acc\r\n toId: Number(deleteObj?.merchantId),\r\n toName: deleteObj?.merchantName, //merchantname\r\n settlementType: values.paymentType,\r\n type: values?.paymentType,\r\n referance: values?.paymentType === \"Offline\" ? values?.refNum : \"Online\",\r\n settledAmount:\r\n values?.paymentType === \"Full\"\r\n ? Number(deleteObj?.pendingBalance)\r\n : Number(values.amount),\r\n remainingAmount:\r\n values?.paymentType === \"Full\"\r\n ? 0\r\n : Number(deleteObj?.pendingBalance) - Number(values.amount),\r\n settledBy: getUserName(), //login user name\r\n createdBy: getUserName(), //login user name\r\n createdDate: new Date().toISOString(),\r\n toBeSettledAmount: Number(deleteObj?.pendingBalance),\r\n };\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n submitSettleMentData(payload);\r\n }\r\n };\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n const getSortCls = (fieldName) => {\r\n if (fieldName == \"0\") {\r\n return \"fas fa-sort fa-lg\";\r\n } else if (fieldName == \"1\") {\r\n return \"fas fa-sort-up fa-lg\";\r\n } else if (fieldName == \"2\") {\r\n return \"fas fa-sort-down fa-lg\";\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n

Account Balance

\r\n setOpenBalModal(false)}\r\n className=\"position-absolute right-4 top-4\"\r\n >\r\n
\r\n \r\n \r\n \r\n
\r\n {Object.entries(balanceInfo)?.length > 0 && (\r\n
\r\n {Object.entries(balanceInfo).map(([key, val]) => (\r\n
\r\n
\r\n {String(key).charAt(0).toUpperCase() +\r\n String(key).slice(1)}\r\n : {val}\r\n
\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n {filteredList.length !== 0 && (\r\n exportPDF(filteredList)}\r\n >\r\n \r\n Download list\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n

Settlement Process

\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n

\r\n Settlement Amount: Le {deleteObj?.pendingBalance}\r\n

\r\n \r\n Payment Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {values?.paymentType === \"Online\" && (\r\n \r\n \r\n \r\n \r\n Bank Account\r\n \r\n {\r\n handleInputChange(e);\r\n setSelectedMerchantAcc(\r\n merchantBanks.find(\r\n (k) => k.accountId == e.target.value\r\n )\r\n );\r\n }}\r\n >\r\n \r\n {merchantBanks &&\r\n merchantBanks.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bankAccountId && (\r\n
\r\n * {errors.bankAccountId}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n {values?.paymentType !== \"\" && (\r\n \r\n Settlement Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.settlementType && (\r\n
\r\n * {errors.settlementType}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values?.paymentType === \"Offline\" && (\r\n <>\r\n \r\n \r\n \r\n Reference Number\r\n \r\n \r\n {errors.refNum && (\r\n
\r\n * {errors.refNum}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n
\r\n )}\r\n {values.paymentType && (\r\n
\r\n \r\n Cancel\r\n \r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {totalInfo && !loading && (\r\n
\r\n
\r\n Total Pending Settlement Account(TPSA):   \r\n Le {totalInfo?.settlementPendingAmount}\r\n
\r\n
\r\n Gross Collection Account Balance(GCAB):   \r\n Le {totalInfo?.collectionAccountBalance}{\" \"}\r\n setOpenBalModal(true)}\r\n class=\"fas text-blue text-primary fa-info-circle pl-2 text-body\"\r\n >{\" \"}\r\n
\r\n
\r\n )}\r\n {loading &&
Loading balance...
}\r\n \r\n \r\n \r\n \r\n sortHandle(sort.sortMerchantUID, \"sortMerchantUID\")\r\n }\r\n >\r\n Merchant UID{\" \"}\r\n \r\n \r\n \r\n sortHandle(sort.sortMerchantName, \"sortMerchantName\")\r\n }\r\n >\r\n Merchant name{\" \"}\r\n \r\n \r\n\r\n \r\n sortHandle(\r\n sort.sortMerchantAccountNumber,\r\n \"sortMerchantAccountNumber\"\r\n )\r\n }\r\n >\r\n Account Number{\" \"}\r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortPendingBalance,\r\n \"sortPendingBalance\"\r\n )\r\n }\r\n >\r\n Pending Balance{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList\r\n // .slice(currentPage * pageSize, (currentPage + 1) * pageSize)\r\n .map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
Actions
{mmo.merchantUID}{mmo.merchantName}{mmo.merchantAccountNumber}{mmo.pendingBalance}\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n disabled={mmo.pendingBalance <= 0}\r\n title=\"Initiate Settlement\"\r\n >\r\n X{\" \"}\r\n \r\n
\r\n \r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SettlementProcessList;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n Col,\r\n ModalHeader,\r\n Label,\r\n Input,\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport {\r\n getMethod,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport jsPDF from \"jspdf\";\r\nimport { getAmt } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\nconst MerchantSettlementTransactionHistoryList = () => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize] = React.useState(10);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [totalInfo, setTotalInfo] = React.useState(null);\r\n const [values, setValues] = React.useState({\r\n paymentType: \"\",\r\n totalAmount: \"\",\r\n });\r\n const [errors, setErrors] = React.useState([]);\r\n const [allMerchants, setAllMerchants] = React.useState([]);\r\n const [selectedMerchant, setSelectedMerchant] = React.useState(null);\r\n const [metaInfo, setMetaInfo] = React.useState(null);\r\n\r\n useEffect(() => {\r\n fetchAllMerchant();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n const fetchAllMerchant = () => {\r\n if (allMerchants.length !== 0) return;\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setAllMerchants(res.data.result);\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n\r\n const fetchSettlementsList = async () => {\r\n let errorMsg = \"\";\r\n console.log(selectedMerchant)\r\n if(selectedMerchant === null) {\r\n setErrors({selectedMerchant: \"Please select\"})\r\n return\r\n } else {\r\n setErrors({})\r\n }\r\n setLoading(true);\r\n postMethod(\r\n \"/api/Transactions/V2/CollectedAndSettlementAmountListMerchantWise?merchantId=\" +\r\n selectedMerchant,\r\n {},\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setMetaInfo(res.data?.result);\r\n setFilteredList(res.data?.result?.serttlementList);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Saved successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ({\r\n key: i?.id,\r\n value: i?.name\r\n }))}\r\n onSelect={(e) => setSelectedMerchant(e.key)}\r\n />\r\n {errors.selectedMerchant && (\r\n
\r\n * {errors.selectedMerchant}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n
\r\n
\r\n {totalInfo && (\r\n
\r\n
\r\n Total Pending Settlement Account(TPSA):   \r\n Le {totalInfo?.settlementPendingAmount}\r\n
\r\n
\r\n Gross Collection Account Balance(GCAB):   \r\n Le {totalInfo?.collectionAccountBalance}\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList\r\n .slice(currentPage * 10, (currentPage + 1) * 10)\r\n\r\n // .slice(currentPage * pageSize, (currentPage + 1) * pageSize)\r\n .map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {/* {loading && } */}\r\n {!loading && !filteredList.length && }\r\n
DateFromToSettled BySettled TypeSettled AmountRemaining AmountSettlement Status
\r\n {new Date(mmo.createdDate).toLocaleString() ?? \"-\"}\r\n {mmo.fromName ?? \"-\"}{mmo.toName ?? \"-\"}{mmo.settledBy ?? \"-\"}{mmo.settlementType ?? \"-\"}{mmo.settledAmount ?? \"-\"}{mmo.remainingAmount ?? \"-\"}{mmo.settlementStatus ?? \"-\"}
\r\n \r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {filteredList.length}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
{\" \"}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MerchantSettlementTransactionHistoryList;\r\n","export default __webpack_public_path__ + \"static/media/shield.7c8a1fed.gif\";","import React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Alert,\r\n Button,\r\n Card,\r\n CardBody,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Container,\r\n Form,\r\n FormGroup,\r\n Input,\r\n Label,\r\n Row,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport Header from \"components/Headers/Header\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport ShieldGif from \"../../assets/gif/shield.gif\";\r\n\r\nconst initialValue = {\r\n type: \"\",\r\n fspid: null,\r\n phone: null,\r\n customerId: null,\r\n accountNo: null,\r\n email: null,\r\n};\r\n\r\nconst CustomerWhitelist = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [errors, setErrors] = useState({});\r\n const [fsps, setFsps] = useState([]);\r\n const [loading, setLoading] = React.useState(false);\r\n const [accounts, setAccounts] = useState([]);\r\n const [isLinkSent, setIsLinkSent] = useState(false);\r\n const [selectedAcc, setSelectedAcc] = useState(null);\r\n const [fspCategory, setFspCategory] = useState(null);\r\n const [isDirectDone, setIsDirectDone] = useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fetchAllFsps();\r\n }, []);\r\n\r\n const fetchAllFsps = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data?.result?.length) {\r\n setFsps([]);\r\n } else {\r\n setFsps(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n mobileCodeId: data.dialCode,\r\n phone: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n function hasAnyField(inputs) {\r\n return inputs.phone || inputs.email || inputs.customerId || inputs.accountNo\r\n ? true\r\n : false;\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.fspid) {\r\n errors.fspName = \"Fsp is required\";\r\n }\r\n if (!hasAnyField(inputs)) {\r\n errors.phone =\r\n \"Email, either Mobile No. or Account No, Customer ID any one filed is required\";\r\n } else if (inputs.customerId && !inputs.phone) {\r\n errors.phone = \"Mobile No. is required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e?.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n const { type, fspName, mobileCodeId, ...rest } = values;\r\n setLoading(true);\r\n const genLinkURL = \"/api/FSP/Profile/Customer/GenerateLink\";\r\n const directWhiteList = \"/api/FSP/Profile/Customer/Whitelist\";\r\n const url = type === \"direct\" ? directWhiteList : genLinkURL;\r\n postMethod(\r\n url,\r\n {\r\n ...rest,\r\n fspid: String(values.fspid),\r\n ...(accounts?.length > 1 && {\r\n accountNo: accounts.find((i) => i.accountNo === selectedAcc)\r\n ?.accountNo,\r\n }),\r\n },\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data.responseCode === \"200\" && type !== \"direct\") {\r\n setIsLinkSent(true);\r\n return;\r\n } else {\r\n setIsLinkSent(false);\r\n }\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res?.data?.result?.customerAcct\r\n ) {\r\n setAccounts(res?.data?.result?.customerAcct);\r\n if (res?.data?.result?.customerAcct?.length === 1) {\r\n setIsDirectDone(true);\r\n }\r\n } else if (res.data?.result?.accountNo) {\r\n const message = res?.data?.result?.errMsg || \"Success\";\r\n setIsDirectDone(true);\r\n if (accounts?.length) {\r\n let findAcc = accounts?.find(\r\n (i) => i.accountNo === res.data?.result?.accountNo\r\n );\r\n if (findAcc) {\r\n setAccounts([findAcc]);\r\n }\r\n } else {\r\n setAccounts([res.data?.result]);\r\n }\r\n notifySuccess(message);\r\n } else {\r\n if (res.data.responseCode === \"200\" && res?.data?.result) {\r\n const errorMsg = \"Link sent successfully\";\r\n setIsLinkSent(true);\r\n notifySuccess(errorMsg);\r\n } else {\r\n const errorMsg = \"Data does not exists!\";\r\n notifyFailed(errorMsg);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Whitelist

\r\n \r\n
\r\n
\r\n \r\n
\r\n {accounts.length === 0 && !isLinkSent && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {values.type && accounts.length === 0 && !isLinkSent && (\r\n
\r\n <>\r\n \r\n \r\n \r\n \r\n FSP Name *\r\n \r\n {\r\n setFspCategory(\r\n fsps.find(\r\n (i) => i.fspName === e.target.value\r\n ).fspCategory\r\n );\r\n setValues({\r\n ...values,\r\n fspName: e.target.value,\r\n fspid: fsps.find(\r\n (i) => i.fspName == e.target.value\r\n )?.id,\r\n });\r\n }}\r\n >\r\n \r\n {fsps?.map((item) => (\r\n \r\n ))}\r\n \r\n {errors.fspName && (\r\n
\r\n * {errors.fspName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n {fspCategory &&\r\n fspCategory?.toLowerCase() === \"bank\"\r\n ? \"Mobile No *\"\r\n : \"Wallet Number *\"}\r\n \r\n \r\n \r\n \r\n {fspCategory &&\r\n fspCategory?.toLowerCase() === \"bank\" && (\r\n <>\r\n \r\n \r\n \r\n Customer Id\r\n \r\n \r\n {errors.customerId && (\r\n
\r\n * {errors.customerId}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Account No\r\n \r\n \r\n {errors.accountNo && (\r\n
\r\n * {errors.accountNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n \r\n {values.type === \"link\" && (\r\n \r\n To whitelist a customer, you will need their mobile\r\n number, email, and FSP (Financial Service Provider)\r\n selection. Once these details are provided, a link\r\n will be sent to the customer. The customer must fill\r\n out the required information, which will be verified\r\n in real-time with the FSP system. If the provided\r\n details match, an OTP will be sent to the customer,\r\n and they will be prompted to set a PIN.\r\n \r\n )}\r\n\r\n {values.type === \"direct\" && (\r\n \r\n If the FSP category or type is 'Bank', and the\r\n customer only knows their Customer ID, you as the\r\n admin can select the FSP and input the Customer ID.\r\n The system will retrieve the customer’s information\r\n (mobile and email) from the FSP system based on the\r\n provided Customer ID. An OTP and a PIN setup link\r\n will be sent to the customer using the retrieved\r\n mobile number and email. The same process applies if\r\n you use the Account Number/ID or Mobile Number.\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n \r\n
\r\n )}\r\n\r\n {isLinkSent && (\r\n \r\n
\r\n \r\n

Link sent successfully!

\r\n
\r\n\r\n \r\n {\r\n setValues(initialValue);\r\n setErrors({});\r\n setAccounts([]);\r\n setIsLinkSent(false);\r\n }}\r\n className=\"w-100\"\r\n color=\"primary\"\r\n >\r\n Go Back\r\n \r\n \r\n \r\n )}\r\n\r\n {accounts.length > 1 && (\r\n
\r\n {/*
\r\n \r\n

\r\n Verification has started, and you have received the\r\n OTP to complete the verification on your\r\n bank-registered email and phone.\r\n

\r\n
*/}\r\n
\r\n setAccounts([])}\r\n style={{\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n

\r\n Direct Whitelist\r\n

\r\n
\r\n\r\n

Account Details

\r\n

\r\n Please select one account to Whitelist\r\n

\r\n\r\n {accounts?.map((item, i) => (\r\n setSelectedAcc(item.accountNo)}\r\n >\r\n
\r\n \r\n Account Name\r\n

\r\n

\r\n {item?.accountName ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Account No\r\n

\r\n

\r\n {item?.accountNo ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Email\r\n

\r\n

\r\n {item?.email ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Available Balance\r\n

\r\n

\r\n {item?.avlBal ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Product\r\n

\r\n

\r\n {item?.product ?? \"-\"}\r\n

\r\n
\r\n {/* {\r\n setValues(initialValue);\r\n setErrors({});\r\n setAccounts([]);\r\n }}\r\n color=\"primary\"\r\n >\r\n Go Home\r\n */}\r\n
\r\n ))}\r\n\r\n {selectedAcc && (\r\n \r\n {loading ? \"Loading...\" : \"Whitelist\"}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {(accounts.length === 1 || isDirectDone) && (\r\n
\r\n
\r\n \r\n

\r\n Verification has started, and you have received the\r\n OTP to complete the verification on your\r\n bank-registered email and phone.\r\n

\r\n
\r\n\r\n

Account Details

\r\n
\r\n
\r\n \r\n Account Name\r\n

\r\n

\r\n {accounts[0]?.accountName ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Account No\r\n

\r\n

\r\n {accounts[0]?.accountNo ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Email\r\n

\r\n

\r\n {accounts[0]?.email ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Available Balance\r\n

\r\n

\r\n {accounts[0]?.avlBal ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Product\r\n

\r\n

\r\n {accounts[0]?.product ?? \"-\"}\r\n

\r\n
\r\n {\r\n setValues(initialValue);\r\n setErrors({});\r\n setAccounts([]);\r\n setSelectedAcc(null);\r\n setIsDirectDone(false);\r\n }}\r\n color=\"primary\"\r\n className=\"w-100 float-right\"\r\n >\r\n Go Home\r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CustomerWhitelist;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { postMethod, getMethod } from \"../../services/httpServices\";\r\nimport { MOBILE_ONLY_COUNTRY } from \"../../appConfig\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkName } from \"services/util\";\r\n\r\nconst codes = [\r\n 23225, 23230, 23231, 23232, 23233, 23234, 23244, 23275, 23276, 23277, 23278,\r\n 23279, 23280, 23288, 23299,\r\n];\r\n\r\nconst initialValue = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n mobWithoutCC: \"\",\r\n email: \"\",\r\n userRole: \"\",\r\n gender: \"\",\r\n};\r\n\r\nconst User = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [image, setImage] = React.useState(null);\r\n const [roles, setRoles] = React.useState([]);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchRoles();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (roles && roles.length) {\r\n setValues({ ...values });\r\n }\r\n }, [roles]);\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n const spaceRegex = /^\\s*$/;\r\n if (!spaceRegex.test(value) || !value.length) {\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name == \"firstName\" || name == \"lastName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n phone: value,\r\n mobileCode: data.dialCode,\r\n mobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is Required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is Required\";\r\n }\r\n if (!inputs.email) {\r\n errors.email = \"Email is Required\";\r\n } else if (!emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = \"Phone Number is Required\";\r\n } else if (!inputs.mobWithoutCC) {\r\n errors.phone = \"Phone Number is Required\";\r\n }\r\n if (!inputs.userRole) {\r\n errors.userRole = \"User Role is Required\";\r\n }\r\n if (!inputs.gender) {\r\n errors.gender = \"Gender is Required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = new FormData();\r\n data.append(\"firstName\", values.firstName.trim());\r\n data.append(\"lastName\", values.lastName.trim());\r\n data.append(\"gender\", values.gender);\r\n data.append(\"email\", values.email);\r\n data.append(\"MobileCodeId\", values.mobileCode);\r\n data.append(\"MobileNumber\", values.mobWithoutCC);\r\n data.append(\"roleId\", values.userRole);\r\n if (image) {\r\n data.append(\"ProfileImageAttachment\", image);\r\n }\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/User/Save\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const imageChanger = (event) => {\r\n setImage(event.target.files[0]);\r\n };\r\n\r\n const fetchRoles = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/User/roles\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setRoles(\r\n res.data.result.filter((i) => i.normalizedName !== \"POSAgent\")\r\n );\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching roles\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

User Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n */}\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Role\r\n \r\n \r\n \r\n {roles.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.userRole && (\r\n
\r\n * {errors.userRole}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {/* {roles.map(c => )} */}\r\n \r\n \r\n \r\n \r\n {errors.gender && (\r\n
\r\n * {errors.gender}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors.attachFile && (\r\n
\r\n * {errors.attachFile}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default User;\r\n","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { postMethod, getMethod } from '../../services/httpServices';\r\nimport { MOBILE_ONLY_COUNTRY } from '../../appConfig';\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\n\r\nconst codes = [23225, 23230, 23231, 23232,\r\n 23233, 23234, 23244, 23275, 23276, 23277,\r\n 23278, 23279, 23280, 23288, 23299];\r\n\r\nconst initialValue = {\r\n firstName: '',\r\n lastName: '',\r\n mobileCode: '',\r\n phone: '',\r\n email: '',\r\n usreRole: '',\r\n gender: '',\r\n profileImage: null,\r\n mobWithCC: ''\r\n};\r\n\r\nconst ViewUser = (props) => {\r\n\r\n initialValue.firstName = props.firstName;\r\n initialValue.lastName = props.lastName;\r\n initialValue.mobileCode = props.mobileCodeId;\r\n initialValue.phone = props.mobileNumber;\r\n initialValue.email = props.email;\r\n initialValue.userRole = props.roleId;\r\n initialValue.gender = props.gender;\r\n initialValue.profileImage = props.profileImage && props.profileImage.length ?\r\n props.profileImage : null;\r\n initialValue.mobWithCC = props.mobileCodeId + props.mobileNumber;\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [roles, setRoles] = React.useState([]);\r\n\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchRoles();\r\n }, []);\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === 'phone') {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/\r\n if (!inputs.firstName) {\r\n errors.firstName = 'First Name is Required';\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = 'Last Name is Required';\r\n }\r\n if (!inputs.email) {\r\n errors.email = 'Email is Required';\r\n } else if (!emailRegEx.test(inputs.email)) {\r\n errors.email = 'Enter valid email';\r\n }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = 'Please select mobile code';\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = 'Phone Number is Required';\r\n } else if (inputs.phone.length !== 6) {\r\n errors.phone = 'Phone Number should have 6 digits';\r\n }\r\n if (!inputs.userRole) {\r\n errors.userRole = 'User Role is Required';\r\n }\r\n return errors;\r\n }\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n var data = new FormData();\r\n // data.append('Name', values.name);\r\n // data.append('Address', values.address);\r\n // data.append('PhoneNumber', values.phone);\r\n // data.append('MobileCode', values.mobileCode);\r\n // data.append('Email', values.email);\r\n // data.append('BankName', values.bankName);\r\n // data.append('BBAN', values.bban);\r\n // data.append('Status', values.itPhone);\r\n // data.append('Attachment', file);\r\n\r\n let errorMsg = '';\r\n setLoading(true);\r\n postMethod('/api/MerchantProfile/save', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess('Saved Successfuly');\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || 'Error while saving';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in saving';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n }\r\n\r\n const fetchRoles = async () => {\r\n let errorMsg = '';\r\n getMethod('/api/User/roles', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setRoles(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching roles';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

User Information

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName &&
\r\n * {errors.firstName}\r\n
}\r\n
\r\n \r\n \r\n \r\n \r\n {!values.profileImage && \r\n \r\n }\r\n\r\n {values.profileImage && \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName &&
\r\n * {errors.lastName}\r\n
}\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email &&
\r\n * {errors.email}\r\n
}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Role\r\n \r\n \r\n {roles.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {/* {roles.map(c => )} */}\r\n \r\n \r\n \r\n {errors.gender &&
\r\n * {errors.gender}\r\n
}\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ViewUser;\r\n","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { postMethod, getMethod, checkSpace } from '../../services/httpServices';\r\nimport { MOBILE_ONLY_COUNTRY } from '../../appConfig';\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkName } from \"services/util\";\r\n\r\nconst codes = [23225, 23230, 23231, 23232,\r\n 23233, 23234, 23244, 23275, 23276, 23277,\r\n 23278, 23279, 23280, 23288, 23299];\r\n\r\nconst imageRole = [\r\n 'Customer Support Representative',\r\n 'Customer Support Supervisor',\r\n 'Operations Officer',\r\n 'Operation Supervisor',\r\n 'IT Support Officer',\r\n 'IT Support Supervisor',\r\n 'Sales Supervisor',\r\n 'Sales Representative',\r\n 'Audits and Compliance',\r\n 'Administrator',\r\n 'Finance'\r\n];\r\n\r\nconst initialValue = {\r\n firstName: '',\r\n lastName: '',\r\n mobileCode: '',\r\n phone: '',\r\n email: '',\r\n userRole: '',\r\n gender: 'Male',\r\n userId: '',\r\n mobileWithCC: ''\r\n};\r\n\r\nconst EditUser = (props) => {\r\n\r\n initialValue.firstName = props.firstName;\r\n initialValue.lastName = props.lastName;\r\n initialValue.mobileCode = props.mobileCodeId;\r\n initialValue.phone = props.mobileNumber;\r\n initialValue.email = props.email;\r\n initialValue.userRole = props.roleId;\r\n initialValue.userId = props.userId;\r\n initialValue.gender = props.gender;\r\n initialValue.mobileWithCC = props.mobileCodeId + props.mobileNumber;\r\n\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [image, setImage] = React.useState(null);\r\n const [roles, setRoles] = React.useState([]);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchRoles();\r\n }, []);\r\n\r\n // React.useEffect(() => {\r\n // if (roles && roles.length) {\r\n // setValues({ ...values, 'userRole': roles[0].id });\r\n // }\r\n // }, [roles])\r\n\r\n const getUpdateImageValue = () => {\r\n if (imageRole.indexOf(initialValue.userRole) > -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === 'phone') {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name == 'firstName' || name == 'lastName') {\r\n if (checkName(value)) {\r\n setValues({...values, [name]: value});\r\n }\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({...values, mobileWithCC: value, mobileCode: data.dialCode,\r\n phone: value.substring(data.dialCode.length)\r\n });\r\n }\r\n return;\r\n }\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/\r\n if (!inputs.firstName) {\r\n errors.firstName = 'First Name is Required';\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = 'Last Name is Required';\r\n }\r\n if (!inputs.email) {\r\n errors.email = 'Email is Required';\r\n } else if (!emailRegEx.test(inputs.email)) {\r\n errors.email = 'Enter valid email';\r\n }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = 'Please select mobile code';\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = 'Phone Number is Required';\r\n } \r\n // else if (inputs.phone.length !== 6) {\r\n // errors.phone = 'Phone Number should have 6 digits';\r\n // }\r\n if (!inputs.userRole) {\r\n errors.userRole = 'User Role is Required';\r\n }\r\n if (!inputs.gender) {\r\n errors.gender = 'Gender is Required';\r\n }\r\n return errors;\r\n }\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n var data = new FormData();\r\n data.append('firstName', values.firstName.trim());\r\n data.append('lastName', values.lastName.trim());\r\n data.append('gender', values.gender);\r\n data.append('email', values.email);\r\n data.append('MobileCodeId', values.mobileCode);\r\n data.append('MobileNumber', values.phone);\r\n data.append('roleId', values.userRole);\r\n data.append('userId', values.userId);\r\n if (image) {\r\n data.append('ProfileImageAttachment', image);\r\n }\r\n\r\n let errorMsg = '';\r\n setLoading(true);\r\n postMethod('/api/User/update', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess('Updated Successfuly');\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || 'Error while saving';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in saving';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n }\r\n\r\n const imageChanger = (event) => {\r\n setImage(event.target.files[0]);\r\n }\r\n\r\n const fetchRoles = async () => {\r\n let errorMsg = '';\r\n getMethod('/api/User/roles', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setRoles(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching roles';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

User Information

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName &&
\r\n * {errors.firstName}\r\n
}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName &&
\r\n * {errors.lastName}\r\n
}\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email &&
\r\n * {errors.email}\r\n
}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Role\r\n \r\n \r\n {roles.map(c => )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {/* {roles.map(c => )} */}\r\n \r\n \r\n \r\n {errors.gender &&
\r\n * {errors.gender}\r\n
}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors.attachFile &&
\r\n * {errors.attachFile}\r\n
}\r\n
\r\n \r\n \r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditUser;\r\n","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Col,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport { getMethod, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport AddUser from \"./add-user\";\r\nimport ViewUser from \"./view-user\";\r\nimport EditUser from \"./edit-user\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls, getPrivileges } from \"services/util\";\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortEmail: 0,\r\n sortPhone: 0,\r\n sortRole: 0\r\n};\r\n\r\n\r\nconst UserList = () => {\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [view, setView] = React.useState(false);\r\n const [userObj, setUserObj] = React.useState(null);\r\n const [openEdit, setOpenEditModal] = React.useState(false);\r\n const [editObj, setEditObj] = React.useState(null);\r\n const [loading, setLoading] = React.useState(false);\r\n const [userlist, setUserList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const privileges = getPrivileges('user');\r\n\r\n // React.useEffect(() => {\r\n // // fetch mobilemoney operator\r\n // fetchUsers();\r\n // }, []);\r\n\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n fetchUsers();\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchUsers();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchUsers();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchUsers();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n }\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchUsers();\r\n }\r\n\r\n const showUser = (obj) => {\r\n setUserObj(obj);\r\n setView(true);\r\n }\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n // setUserObj(null);\r\n }\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n // setEditObj(null);\r\n fetchUsers();\r\n }\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n }\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const fetchUsers = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data['SortingOn'] = 'FirstName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'FirstName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortEmail == \"1\") {\r\n data['SortingOn'] = 'Email';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortEmail == \"2\") {\r\n data['SortingOn'] = 'Email';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPhone == \"1\") {\r\n data['SortingOn'] = 'MobNumber';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPhone == \"2\") {\r\n data['SortingOn'] = 'MobNumber';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortRole == \"1\") {\r\n data['SortingOn'] = 'RoleName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortRole == \"2\") {\r\n data['SortingOn'] = 'RoleName';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/User/AllUser', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setUserList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const fetchUserByIdV2 = (id) => {\r\n let errorMsg = '';\r\n postMethod('/api/User/Edit/' + id, {}, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setUserObj(res.data.result);\r\n setView(true);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n // setSError();\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchUserById = (id) => {\r\n let errorMsg = '';\r\n postMethod('/api/User/Edit/' + id, {}, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setEditObj(res.data.result);\r\n setOpenEditModal(true);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n // setSError();\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n\r\n const deleteUser = () => {\r\n let errorMsg = '';\r\n let url = '/api/User/block/' + deleteObj.userId;\r\n setModalLoading(true);\r\n postMethod(url, {}, 'post')\r\n .then(res => {\r\n setModalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked ? 'User unblocked successfully' :\r\n 'User blocked succsessfully';\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n fetchUsers();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setModalLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n\r\n const handleClick = (e, index) => {\r\n\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const getBlockText = () => {\r\n let str = 'block';\r\n if (deleteObj.isBlocked) {\r\n str = 'unblock';\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj.firstName} ${deleteObj.lastName} ?`;\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n    \r\n\r\n {privileges.add &&\r\n }\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked ? 'Unblock User' : 'Block User'}\r\n

\r\n
\r\n \r\n
\r\n {deleteObj && deleteObj.firstName ?\r\n
\r\n\r\n

\r\n {getBlockText()}\r\n

\r\n
\r\n {' '}\r\n \r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortName, 'sortName')}>\r\n User Name\r\n \r\n sortHandle(sort.sortEmail, 'sortEmail')}>\r\n Email\r\n \r\n sortHandle(sort.sortPhone, 'sortPhone')}>\r\n Phone\r\n \r\n sortHandle(sort.sortRole, 'sortRole')}>\r\n Role\r\n \r\n Actions
\r\n {mmo.firstName} {mmo.lastName}\r\n {mmo.email}({mmo.mobileCodeId}) - {mmo.mobileNumber}{mmo.roleName}\r\n {privileges.view && fetchUserByIdV2(mmo.userId)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n }\r\n\r\n {privileges.edit && fetchUserById(mmo.userId)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\">\r\n \r\n }\r\n {!mmo.isBlocked && privileges.block &&\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\">\r\n \r\n \r\n }\r\n {mmo.isBlocked && privileges.unblock &&\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\">\r\n \r\n \r\n }\r\n\r\n
\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default UserList;\r\n","import React, { useEffect, useState } from \"react\";\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Label,\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { connect } from \"react-redux\";\r\nimport { fetchSubs } from \"./action\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport { MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nconst initialState = {\r\n walletType: \"own\",\r\n wallet: \"\",\r\n amount: \"\",\r\n walletFrom: \"\",\r\n sessionStartTime: new Date().toISOString(),\r\n smartPayCheckoutSessionId: \"\",\r\n metadata: {\r\n phone: \"0\",\r\n fromphone: \"0\",\r\n },\r\n};\r\n\r\nconst TopUpWallet = (props) => {\r\n const [values, setValues] = useState(initialState);\r\n const [subsInfo, setSubsInfo] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const [errors, setErrors] = useState({});\r\n const { addToast } = useToasts();\r\n\r\n const handleInputChange = (e) => {\r\n const { value, name } = e.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n useEffect(() => {\r\n props.fetchSubsInfo();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSubsInfo(props.subscriber.subsInfo.data);\r\n }, [props.subscriber.subsInfo.data]);\r\n\r\n const validatePhone = async (wallet) => {\r\n try {\r\n setLoading(true);\r\n let res = await postMethod(\r\n `/api/Transactions/validateSubscriber/${wallet}`,\r\n {\r\n LoggedInUserId: localStorage.getItem(\"userId\"),\r\n },\r\n \"post\"\r\n );\r\n setLoading(false);\r\n return res;\r\n } catch (error) {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const initiatePayment = async (data) => {\r\n try {\r\n setLoading(true);\r\n\r\n const res = await postMethod(\r\n \"/api/Transactions/InitiatePayment\",\r\n data,\r\n \"post\"\r\n );\r\n if (res.data.responseCode === \"200\") {\r\n if (!res?.data?.result?.result?.checkoutUrl) {\r\n notifyFailed(\r\n \"Top up services are temporary down for MMO, Kindly try again after some time\"\r\n );\r\n } else {\r\n window.open(res.data.result.result.checkoutUrl, \"_self\");\r\n }\r\n setTimeout(() => {\r\n setLoading(false);\r\n }, 1000);\r\n } else {\r\n notifyFailed(\r\n \"Top up services are temporary down for MMO, Kindly try again after some time\"\r\n );\r\n setLoading(false);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n const { mobileNumber } = subsInfo;\r\n if (values.walletType === \"own\") {\r\n values.wallet = mobileNumber;\r\n values.metadata.phone = values.wallet;\r\n } else {\r\n if (values.wallet === mobileNumber || values.wallet.length < 10) {\r\n setErrors({ phone: \"Phone number required\" });\r\n return;\r\n }\r\n values.metadata.phone = values.wallet;\r\n }\r\n values.walletFrom = mobileNumber;\r\n values.metadata.fromphone = mobileNumber;\r\n\r\n if (values.walletType === \"other\") {\r\n let isPhoneValid = await validatePhone(values.wallet);\r\n if (isPhoneValid?.data?.responseCode !== \"200\") {\r\n notifyFailed(isPhoneValid?.data.responseMessage);\r\n return;\r\n }\r\n }\r\n\r\n const { walletType, ...rest } = values;\r\n rest.amount = Number(rest.amount);\r\n rest.smartPayCheckoutSessionId = uuidv4();\r\n await initiatePayment({\r\n ...rest,\r\n LoggedInUserId: localStorage.getItem(\"userId\"),\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Top Up

\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {values.walletType === \"own\" ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n {\r\n setValues({ ...values, wallet: e });\r\n }}\r\n />\r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Submit\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchSubsInfo: () => dispatch(fetchSubs()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TopUpWallet);\r\n","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Badge,\r\n Col\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getLoginType, getUserId, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport moment from \"moment\";\r\nimport { subsStatus, btnCss, iconCss } from \"../../appConfig\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\n\r\n\r\nconst STATUS = subsStatus;\r\n\r\nconst sortIS = {\r\n sortPaymentTo: 0,\r\n sortPaymentFrom: 0,\r\n sortReferenceId: 0,\r\n sortProductId: 0,\r\n sortCreatedAt: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortStatus: 0,\r\n sortPaymentMethod: 0,\r\n sortPaymentType: 0\r\n};\r\n\r\nconst SubsTransaction = () => {\r\n\r\n const [transList, setTransList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [statusFilter, setStatusFilter] = React.useState(STATUS[0].key);\r\n const [totalList, setTotalList] = React.useState([]);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n // useEffect(() => {\r\n // fetchTrans();\r\n // }, []);\r\n\r\n // React.useEffect(() => {\r\n // setListDataWrapper(totalList);\r\n // }, [statusFilter]);\r\n\r\n // React.useEffect(()=> {\r\n // if (refresh) {\r\n // reloadListHandle();\r\n // }\r\n // }, [refresh])\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchTrans();\r\n }\r\n }\r\n }, [statusFilter]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchTrans();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchTrans();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchTrans();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchTrans();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const handleClick = (e, index) => {\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n }\r\n\r\n const changeStatus = (val) => {\r\n var value = val;\r\n // setCurrentPage(0);\r\n setStatusFilter(value);\r\n }\r\n\r\n // const setListDataWrapper = (resp) => {\r\n // let arr = setListData(resp);\r\n // if (arr && arr.length) {\r\n // setLoading(false);\r\n // }\r\n // if (searchText) {\r\n // arr = getSearchHandle(searchText, arr);\r\n // }\r\n // setTransList(arr);\r\n // setFilteredList(arr);\r\n // let pc = Math.ceil(arr.length / pageSize);\r\n // setPageCount(pc);\r\n // }\r\n\r\n // const setListData = (resp) => {\r\n\r\n // let arr = [];\r\n // if (statusFilter === 'All') {\r\n // return resp;\r\n // }\r\n // for (let i = 0; i < resp.length; i++) {\r\n // if (resp[i].status === statusFilter) {\r\n // arr.push(resp[i]);\r\n // }\r\n // }\r\n\r\n // return arr;\r\n // }\r\n\r\n const fetchTrans = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'Status': statusFilter\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortPaymentTo == \"1\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentTo == \"2\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPaymentFrom == \"1\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentFrom == \"2\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortProductId == \"1\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortProductId == \"2\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPaymentMethod == \"1\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentMethod == \"2\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPaymentType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n }\r\n let url = '/api/Transactions/SubscriberTransaction/'\r\n let loginType = getLoginType()\r\n if(loginType === \"Super Agent\") {\r\n url = '/api/transactions/SuperAgentTransaction'\r\n } else if(loginType === \"Master Agent\") {\r\n url = \"/api/Transactions/MasterTransaction\"\r\n } else if(loginType === \"Agent\") {\r\n url = \"/api/Transactions/SubAgentTransaction\"\r\n } else {\r\n url = '/api/Transactions/SubscriberTransaction/'\r\n }\r\n\r\n postMethod(\r\n url,\r\n data,\r\n 'post'\r\n ).then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setTotalList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const getAmt = (amt) => {\r\n // var amt = '';\r\n // amt = Number(amt).toLocaleString();\r\n // if (mmo.amountType === \"P\") {\r\n // amt = '- ' + amt; \r\n // } else if (mmo.amountType === \"R\") {\r\n // amt = '+ ' + amt;\r\n // }\r\n return Number(amt).toLocaleString();\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s)=> s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n const getPaymentType = (type) => {\r\n let str = type;\r\n if (type == 'topup') {\r\n str = 'Top Up'\r\n } else if (type == 'BalanceTransfer') {\r\n str = 'Balance Transfer';\r\n } else if (type == 'Merchant') {\r\n str = 'Merchant Payment';\r\n } else if (type == 'WalletPayment') {\r\n str = 'Wallet Payment';\r\n } else if (type == 'CashTopUp') {\r\n str = 'Cash Top Up';\r\n }\r\n return str;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n Status\r\n \r\n    \r\n
\r\n changeStatus(e.target.value)}\r\n >\r\n {STATUS.map(c => \r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {/* */}\r\n
sortHandle(sort.sortPaymentTo, 'sortPaymentTo')}>\r\n Payment To\r\n \r\n sortHandle(sort.sortPaymentFrom, 'sortPaymentFrom')}>\r\n Payment From\r\n \r\n sortHandle(sort.sortPaymentMethod, 'sortPaymentMethod')}>\r\n Payment Using\r\n \r\n sortHandle(sort.sortPaymentMethod, 'sortPaymentMethod')}>\r\n Payment Type\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Smart Pay Id\r\n \r\n sortHandle(sort.sortProductId, 'sortProductId')}>\r\n Product Id\r\n \r\n sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\r\n Date\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Fees Amount\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n
\r\n {mmo.paymentTo}\r\n {mmo.paymentFrom}{mmo.paymentMethod}{getPaymentType(mmo.paymentType)}{mmo.referenceId}{mmo.productId ? mmo.productId : '--'}{moment(mmo.createdAt).format('lll')}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{statusFormat(mmo.status)}
\r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n};\r\nexport default SubsTransaction;\r\n","import React from \"react\";\r\nimport {\r\n Button,\r\n CardBody,\r\n Col,\r\n Form,\r\n FormGroup,\r\n Input,\r\n InputGroup,\r\n Row,\r\n InputGroupAddon,\r\n Label,\r\n InputGroupText,\r\n} from \"reactstrap\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst PaySmartBills = ({\r\n handleSubmit,\r\n form,\r\n merchants,\r\n changeLabel,\r\n errors,\r\n values,\r\n handleInputChange,\r\n loading,\r\n checkForm,\r\n checkFees,\r\n validatePin,\r\n getAmt,\r\n fees,\r\n showPswd,\r\n setShowPswd,\r\n goBack,\r\n handleSubmitV2,\r\n use2FA,\r\n resendOtp,\r\n spinner,\r\n subsInfo,\r\n makePaymentInfoLoading, //props.subscriber.makePaymentInfo.loading\r\n}) => {\r\n return (\r\n \r\n {makePaymentInfoLoading && }\r\n {form == 1 && !makePaymentInfoLoading && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {merchants &&\r\n merchants.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.merchantId && (\r\n
\r\n * {errors.merchantId}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {values.merchantId && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {errors.uniqueNo && (\r\n
\r\n * {errors.uniqueNo}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Validate{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {checkForm && (\r\n \r\n \r\n Payment Details\r\n
\r\n
\r\n Payment To - {values.merchantName}\r\n
\r\n
\r\n \r\n {values.label} - {values.uniqueNo}\r\n \r\n
\r\n
\r\n Amount - {getAmt()}\r\n
\r\n\r\n {checkFees() && (\r\n
\r\n Smart Pay Fees - {fees}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n\r\n {form == 2 && (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n Back\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n Validate {loading && }\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {form == 3 && (\r\n
\r\n {use2FA && (\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n Resend\r\n {\" \"}\r\n    \r\n {spinner && (\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n * we have sent you an OTP on your registered mobile\r\n number / email\r\n \r\n \r\n
\r\n {errors.otp && (\r\n
\r\n * {errors.otp}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n\r\n \r\n Make Payment using\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {values.accountType && (\r\n \r\n {values.accountType === \"Bank\" && (\r\n \r\n Bank Details\r\n
\r\n
\r\n Bank Name - {subsInfo.bankName}\r\n
\r\n
\r\n \r\n Account Number - {subsInfo.bban}\r\n \r\n
\r\n
\r\n \r\n )}\r\n {values.accountType === \"MMO\" && (\r\n \r\n MMO Details\r\n
\r\n
\r\n MMO Name - {subsInfo.mmoName}\r\n
\r\n
\r\n \r\n Account Number - {subsInfo.mmoAccountNumber}\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n Back\r\n \r\n
\r\n \r\n {values.accountType && (\r\n \r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PaySmartBills;\r\n","import { MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport React, { useState } from \"react\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport { Button, Col, Form, FormGroup, Input, Row } from \"reactstrap\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { getCurrentDateTime } from \"services/util\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport SuccessImg from \"assets/img/brand/right-checkmark-removebg-preview.png\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getAmt } from \"services/util\";\r\n\r\nconst universities = [\r\n {\r\n name: \"SLOAN\",\r\n },\r\n {\r\n name: \"Other\",\r\n },\r\n];\r\n\r\nconst feeTypes = [\r\n {\r\n name: \"Application processing fee\",\r\n },\r\n];\r\n\r\nconst initialState = {\r\n receiptNumber: `R-${getCurrentDateTime()}-${\r\n Math.floor(Math.random() * 10) + 1\r\n }`,\r\n transactionDate: `${new Date().toLocaleDateString()}`,\r\n pinCost: \"\",\r\n accountNumber: \"\",\r\n applicantName: \"\",\r\n applicantPhone: \"\",\r\n applicantEmail: \"\",\r\n universityName: \"\",\r\n feeType: \"\",\r\n pin: \"\",\r\n studentFeeAmount: \"\",\r\n};\r\n\r\nconst PayUniversityFees = () => {\r\n const [pinTypes, setPinTypes] = useState([]);\r\n const [values, setValues] = useState(initialState);\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const [paymentInfo, setPaymentInfo] = useState({});\r\n const [feeTypes1, setFeeTypes1] = useState([]);\r\n const [studentFeeDetails, setStudentFeeDetails] = useState(null);\r\n const { addToast } = useToasts();\r\n\r\n const getPinTypes = () => {\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/GetPinTypes\", null, \"get\")\r\n .then((res) => {\r\n if (res.status === 200) {\r\n setLoading(false);\r\n\r\n setPinTypes(JSON.parse(res.data.result.result)?.Data);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const getOtherPinTypes = () => {\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/GetPinTypesForOther\", null, \"get\")\r\n .then((res) => {\r\n if (res.status === 200) {\r\n setLoading(false);\r\n setPinTypes(JSON.parse(res.data.result.result)?.Data);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const changeLabel = (e) => {\r\n const { name, value } = e.target;\r\n setValues({ ...values, [name]: value.trim() });\r\n if (name === \"universityName\" && value === \"\") {\r\n setPinTypes([]);\r\n setValues({ ...values, feeType: \"\" });\r\n } else if (name === \"universityName\" && value === \"Other\") {\r\n getFeeTypes();\r\n setValues({\r\n ...initialState,\r\n universityName: value,\r\n receiptNumber: `R-${getCurrentDateTime()}-${\r\n Math.floor(Math.random() * 10) + 1\r\n }`,\r\n });\r\n } else if (name === \"universityName\" && value === \"SLOAN\") {\r\n setValues({\r\n ...initialState,\r\n universityName: value,\r\n receiptNumber: `R-${getCurrentDateTime()}-${\r\n Math.floor(Math.random() * 10) + 1\r\n }`,\r\n });\r\n setPinTypes([]);\r\n }\r\n if (name === \"feeType\" && value === \"Application processing fee\") {\r\n getPinTypes();\r\n } else if (\r\n name === \"feeType\" &&\r\n (value === \"Tuition Fees\" || value === \"Graduation Fees\")\r\n ) {\r\n setStudentFeeDetails(null);\r\n } else if (name === \"feeType\" && value === \"Applicant Fees\") {\r\n setPinTypes([]);\r\n getOtherPinTypes();\r\n setStudentFeeDetails(null);\r\n }\r\n };\r\n\r\n const getFeeTypes = () => {\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/GetFeeTypes\", null, \"post\")\r\n .then((res) => {\r\n if (res.status === 200) {\r\n setLoading(false);\r\n setFeeTypes1(JSON.parse(res.data.result)?.Data);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (inputs?.applicantPhone === \"\" || inputs?.applicantPhone?.length < 10) {\r\n errors.applicantPhone = \"Phone number is required\";\r\n }\r\n if (inputs.pin === \"\" || inputs.pin.length < 4) {\r\n errors.pin = \"Enter valid pin\";\r\n }\r\n return errors;\r\n };\r\n\r\n const notifyFailed = (text, type = \"error\") => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: type,\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n if (\r\n values.universityName === \"Other\" &&\r\n values.feeType !== \"Applicant Fees\"\r\n ) {\r\n onMakeFeePayment();\r\n return;\r\n }\r\n let [pinCost, accountNumber] = values.pinCost.split(\"-\");\r\n let {\r\n applicantEmail,\r\n applicantName,\r\n applicantPhone,\r\n receiptNumber,\r\n transactionDate,\r\n pin,\r\n } = values;\r\n\r\n let body = {\r\n pinCost,\r\n accountNumber,\r\n applicantEmail,\r\n applicantName,\r\n applicantPhone,\r\n receiptNumber,\r\n transactionDate,\r\n pin,\r\n otp: \"\",\r\n };\r\n setLoading(true);\r\n let url =\r\n values.universityName === \"Other\"\r\n ? \"/api/Transactions/SubmitPinSaleForOther\"\r\n : \"/api/Transactions/SubmitPinSale\";\r\n postMethod(url, body, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.status === 200) {\r\n setPaymentInfo(res.data?.value?.result);\r\n setLoading(false);\r\n notifyFailed(\"Success\", \"success\");\r\n if (\r\n res?.data?.value?.responseMessage &&\r\n res?.data?.value?.responseCode === \"400\"\r\n ) {\r\n notifyFailed(\r\n res?.data?.result ||\r\n res?.data?.responseMessage ||\r\n res?.data?.value?.responseMessage ||\r\n \"Something went wrong!\"\r\n );\r\n }\r\n } else {\r\n setLoading(false);\r\n notifyFailed(\r\n res?.data?.result ||\r\n res?.data?.responseMessage ||\r\n res?.data?.value?.responseMessage ||\r\n \"Something went wrong!\"\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(err?.message || \"Something went wrong!\");\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const resetForm = () => {\r\n setValues(initialState);\r\n setErrors({});\r\n setPaymentInfo({});\r\n setPinTypes([]);\r\n };\r\n\r\n const getStudentInfo = () => {\r\n if (values.studentId === studentFeeDetails?.sid) {\r\n notifyFailed(\"Student details already fetched for this Id\");\r\n return;\r\n }\r\n if (!values.studentId || !values.feeType) {\r\n notifyFailed(\"StudentId, FeeType required!\");\r\n return;\r\n }\r\n const body = {\r\n studentID: values.studentId,\r\n feeType: values.feeType,\r\n };\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/GetStudentInfo\", body, \"post\")\r\n .then((res) => {\r\n if (res.status === 200) {\r\n setLoading(false);\r\n setStudentFeeDetails(res.data?.data);\r\n setValues({\r\n ...values,\r\n receiptNumber: `R-${getCurrentDateTime()}-${\r\n Math.floor(Math.random() * 10) + 1\r\n }`,\r\n });\r\n if (res.data?.message && !res.data?.data) {\r\n notifyFailed(res.data?.message);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const onMakeFeePayment = () => {\r\n const body = {\r\n studentID: studentFeeDetails?.sid,\r\n feeType: values.feeType,\r\n amount: Number(values.studentFeeAmount),\r\n reference: values.receiptNumber,\r\n payerName: studentFeeDetails?.sName,\r\n payerPhone: values.applicantPhone,\r\n accountNumber: studentFeeDetails?.accountNumber || values?.accountNumber,\r\n pin: values.pin,\r\n otp: \"\",\r\n };\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/CommitPayment\", body, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.status === 200) {\r\n notifyFailed(\"Success\", \"success\");\r\n setPaymentInfo(res.data?.value?.result);\r\n setValues({\r\n ...initialState,\r\n receiptNumber: `R-${getCurrentDateTime()}-${\r\n Math.floor(Math.random() * 10) + 1\r\n }`,\r\n });\r\n if (\r\n res?.data?.value?.responseMessage &&\r\n res?.data?.value?.responseCode === \"400\"\r\n ) {\r\n notifyFailed(\r\n res?.data?.result ||\r\n res?.data?.responseMessage ||\r\n res?.data?.value?.responseMessage ||\r\n \"Something went wrong!\"\r\n );\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(err.message, \"error\");\r\n });\r\n };\r\n\r\n const checkUniversityType = (name) => {\r\n if (name === \"SLOAN\") {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {feeTypes &&\r\n feeTypes.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.universityName && (\r\n
\r\n * {errors.universityName}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {pinTypes?.length !== 0 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {pinTypes &&\r\n pinTypes?.map((c) => (\r\n \r\n {c.PinCategory}\r\n \r\n ))}\r\n \r\n {errors.pinCost && (\r\n
\r\n * {errors.pinCost}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {values.pinCost && (\r\n <>\r\n \r\n \r\n \r\n \r\n Pin Cost\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Account Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Applicant Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Applicant Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n setValues({ ...values, applicantPhone: e.trim() })\r\n }\r\n required\r\n />\r\n {errors.applicantPhone && (\r\n
\r\n * {errors.applicantPhone}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Receipt Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Transaction date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pin\r\n \r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Validate & Pay{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n } else if (name === \"Other\") {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {feeTypes1?.length !== 0 &&\r\n feeTypes1?.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {pinTypes?.length !== 0 && values.feeType === \"Applicant Fees\" && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {pinTypes &&\r\n pinTypes.map((c) => (\r\n \r\n {c.PinCategory}\r\n \r\n ))}\r\n \r\n {errors.pinCost && (\r\n
\r\n * {errors.pinCost}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {values.pinCost && (\r\n <>\r\n \r\n \r\n \r\n \r\n Pin Cost\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Account Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Applicant Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Applicant Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n setValues({ ...values, applicantPhone: e.trim() })\r\n }\r\n required\r\n />\r\n {errors.applicantPhone && (\r\n
\r\n * {errors.applicantPhone}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Receipt Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Transaction date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pin\r\n \r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Make payment{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n )}\r\n\r\n {values.universityName === \"Other\" &&\r\n values.feeType.length !== 0 &&\r\n values.feeType !== \"Applicant Fees\" && (\r\n <>\r\n \r\n \r\n \r\n \r\n Student Id\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Get Details{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n {studentFeeDetails?.sid ? (\r\n
\r\n

Student Information

\r\n {studentFeeDetails?.sName && (\r\n

\r\n Student Name: {studentFeeDetails?.sName}\r\n

\r\n )}\r\n {studentFeeDetails?.collegeName && (\r\n

\r\n College Name: {studentFeeDetails?.collegeName}\r\n

\r\n )}\r\n {studentFeeDetails?.cName && (\r\n

\r\n Course Name: {studentFeeDetails?.cName}\r\n

\r\n )}\r\n {studentFeeDetails?.sem && (\r\n

\r\n Sem: {studentFeeDetails?.sem}\r\n

\r\n )}\r\n {studentFeeDetails?.feesAmount && (\r\n

\r\n Fee Amount: {getAmt(studentFeeDetails?.feesAmount)}\r\n

\r\n )}\r\n {studentFeeDetails?.accountName && (\r\n

\r\n Account Name: {studentFeeDetails?.accountName}\r\n

\r\n )}\r\n {studentFeeDetails?.accountNumber && (\r\n

\r\n Account Number: {studentFeeDetails?.accountNumber}\r\n

\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n setValues({ ...values, applicantPhone: e.trim() })\r\n }\r\n required\r\n />\r\n {errors.applicantPhone && (\r\n
\r\n * {errors.applicantPhone}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {!studentFeeDetails?.accountNumber && (\r\n \r\n \r\n \r\n \r\n Account Number\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Make payment{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n \r\n )}\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n <>{loading && }\r\n {!loading && !Object.entries(paymentInfo).length && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {universities &&\r\n universities.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.universityName && (\r\n
\r\n * {errors.universityName}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {checkUniversityType(values.universityName)}\r\n
\r\n )}\r\n {!loading && Object.entries(paymentInfo).length !== 0 && (\r\n <>\r\n \r\n
\r\n {Object.entries(paymentInfo).map(([key, value], idx) => (\r\n \r\n \r\n

\r\n \r\n {key?.charAt(0).toLocaleUpperCase() +\r\n key?.substring(1, key.length)}\r\n :\r\n {\" \"}\r\n {value}\r\n

\r\n \r\n
\r\n ))}\r\n \r\n \r\n

\r\n {paymentInfo?.message && (\r\n <>\r\n Message:{\" \"}\r\n {paymentInfo?.message}\r\n \r\n )}\r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PayUniversityFees;\r\n","import React from \"react\";\r\nimport { Button, Col, Form, FormGroup, Input, Row } from \"reactstrap\";\r\n\r\nconst EDSAPayment = ({\r\n values2,\r\n handleSubmit2,\r\n handleInputChange2,\r\n formState2,\r\n errors2,\r\n setValues2,\r\n initialValue2,\r\n loading2,\r\n setFormState2,\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n {formState2 === 1 && (\r\n <>\r\n \r\n \r\n \r\n \r\n Bill Number\r\n \r\n \r\n {errors2.billNumber && (\r\n
\r\n * {errors2.billNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors2.amount && (\r\n
\r\n * {errors2.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors2.pin && (\r\n
\r\n * {errors2.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n {\r\n setValues2(initialValue2);\r\n setFormState2(1);\r\n }}\r\n >\r\n Reset\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Submit {loading2 && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EDSAPayment;\r\n","import React from \"react\";\r\nimport { Button, Col, Form, FormGroup, Input, Row } from \"reactstrap\";\r\n\r\nconst SmartKorporPaymentTab = ({\r\n values1,\r\n handleSubmit1,\r\n handleInputChange1,\r\n formState1,\r\n errors1,\r\n userResponse1,\r\n setValues1,\r\n initialValue1,\r\n loading1,\r\n setFormState1,\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors1.refNo && (\r\n
\r\n * {errors1.refNo}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n\r\n {formState1 === 2 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Currency\r\n \r\n \r\n {errors1.currency && (\r\n
\r\n * {errors1.currency}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Customer name\r\n \r\n \r\n {errors1.customerName && (\r\n
\r\n * {errors1.customerName}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Account number\r\n \r\n \r\n {errors1.customer_account_number && (\r\n
\r\n * {errors1.customer_account_number}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors1.pin && (\r\n
\r\n * {errors1.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n {formState1 === 2 && (\r\n \r\n
\r\n {\r\n setValues1(initialValue1);\r\n setFormState1(1);\r\n }}\r\n >\r\n Reset\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n Submit {loading1 && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SmartKorporPaymentTab;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Container,\r\n Row,\r\n Col,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n TabContent,\r\n TabPane,\r\n CardSubtitle,\r\n CardTitle,\r\n CardText,\r\n Button,\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\r\nimport {\r\n fetchSubs,\r\n fetchMerchant,\r\n setMerchant,\r\n fetchPayableAmt,\r\n} from \"./action\";\r\nimport { connect } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport swal from \"sweetalert\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { getUserEmail } from \"services/httpServices\";\r\nimport PaySmartBills from \"components/makePaymentScreens/pay-smart-bills\";\r\nimport PayUniversityFees from \"components/makePaymentScreens/pay-university-fees\";\r\nimport classNames from \"classnames\";\r\nimport EDSAPayment from \"../sub-agent/EDSAPayment\";\r\nimport SmartKorporPaymentTab from \"../sub-agent/SmartKorporPaymentTab\";\r\nimport { getMethod } from \"services/httpServices\";\r\n\r\nconst merchantDummy = [\r\n { name: \"Meter Online\", uniqueLabel: \"Meter No.\", id: \"1\" },\r\n { name: \"E-Registry\", uniqueLabel: \"File No.\", id: \"2\" },\r\n];\r\n\r\nconst AMT = 6000000;\r\n\r\nconst initialValue = {\r\n merchantId: \"\",\r\n label: \"\",\r\n uniqueNo: \"\",\r\n amount: AMT,\r\n merchantName: \"\",\r\n accountType: \"\",\r\n otp: \"\",\r\n merchantProfileId: \"\",\r\n password: \"\",\r\n};\r\n\r\nconst initialValue1 = {\r\n refNo: \"\",\r\n amount: null,\r\n currency: \"\",\r\n customername: \"\",\r\n customer_account_number: \"\",\r\n pin: \"\",\r\n};\r\n\r\nconst initialValue2 = {\r\n amount: \"\",\r\n billNumber: \"\",\r\n pin: \"\",\r\n};\r\n\r\nconst billTypes = [\r\n {\r\n id: 1,\r\n name: \"Pay Smartbills\",\r\n color: \"#2b3b84\",\r\n },\r\n {\r\n id: 2,\r\n name: \"Pay University fees\",\r\n color: \"#2b3b84\",\r\n },\r\n {\r\n id: 3,\r\n name: \"Pay Other Services\",\r\n color: \"#2b3b84\",\r\n },\r\n];\r\n\r\nconst billSubTypes = [\r\n {\r\n id: 1,\r\n name: \"EDSA\",\r\n color: \"#566e8e\",\r\n },\r\n {\r\n id: 2,\r\n name: \"NRA\",\r\n color: \"#566e8e\",\r\n },\r\n {\r\n id: 3,\r\n name: \"ITS\",\r\n color: \"#566e8e\",\r\n },\r\n {\r\n id: 4,\r\n name: \"Any other service\",\r\n color: \"#566e8e\",\r\n },\r\n];\r\n\r\nconst MakePayment = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [merchants, setMerchants] = useState([]);\r\n const [subsInfo, setSubsInfo] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [form2, setForrm2] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const [use1FA, set1FA] = React.useState(false);\r\n const [use2FA, set2FA] = React.useState(false);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [form3, setForm3] = React.useState(false);\r\n const [currentScreenName, setcurrentScreenName] = React.useState(\"\");\r\n const [currentSubScreenName, setcurrentSubScreenName] = React.useState(\"\");\r\n\r\n const [form, setForm] = React.useState(1);\r\n const [fees, setFees] = React.useState(0);\r\n const [currentBillScreen, setCurrentBillScreen] = useState(0);\r\n\r\n const [currentSubBillScreen, setCurrentSubBillScreen] = useState(0);\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n //SmartKorpor\r\n const [values1, setValues1] = useState(initialValue1);\r\n const [errors1, setErrors1] = useState({});\r\n const [loading1, setLoading1] = useState(false);\r\n const [formState1, setFormState1] = useState(1);\r\n const [userResponse1, setUserResponse1] = useState({});\r\n\r\n //EDSA\r\n const [values2, setValues2] = useState(initialValue2);\r\n const [errors2, setErrors2] = useState({});\r\n const [loading2, setLoading2] = useState(false);\r\n const [formState2, setFormState2] = useState(1);\r\n\r\n const handleInputChange2 = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n setValues2({ ...values2, [name]: value });\r\n }\r\n };\r\n\r\n const validateEDSA = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.billNumber) {\r\n errors.billNumber = \"This field is required\";\r\n }\r\n if (!inputs.amount) {\r\n errors.amount = \"This field is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validateEDSA(values2);\r\n setErrors2(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState2 === 1) {\r\n initiatePaymentEDSA();\r\n }\r\n };\r\n const initiatePaymentEDSA = () => {\r\n var errorMsg = \"\";\r\n const { amount, billNumber, pin } = values2;\r\n var data = {\r\n amount: Number(amount),\r\n billNumber,\r\n pin,\r\n };\r\n\r\n setLoading2(true);\r\n let url = \"/api/Transactions/InitiatePaymentSubscriberEDSA\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading2(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(res?.data?.responseMessage);\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(String(res.data));\r\n setValues2(initialValue2);\r\n setFormState2(1);\r\n setLoading2(false);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading2(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading2(false);\r\n });\r\n };\r\n\r\n const handleSubmit1 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate1(values1);\r\n setErrors1(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState1 === 1) {\r\n validateSmartKorpor();\r\n } else if (isNoError && formState1 === 2) {\r\n initiatePaymentSmartKorpor();\r\n }\r\n };\r\n const initiatePaymentSmartKorpor = () => {\r\n var errorMsg = \"\";\r\n const {\r\n amount,\r\n refNo,\r\n currency,\r\n customername,\r\n customer_account_number,\r\n pin,\r\n } = values1;\r\n var data = {\r\n amount: Number(amount),\r\n refno: refNo,\r\n currency,\r\n customername,\r\n customer_account_number,\r\n pin,\r\n };\r\n\r\n setLoading1(true);\r\n let url = \"/api/Transactions/InitiatePaymentSmartKorporSubscriber\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading1(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(res?.data?.responseMessage);\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(String(res.data));\r\n setValues1(initialValue);\r\n setFormState1(1);\r\n setLoading1(false);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n });\r\n };\r\n\r\n const validateSmartKorpor = () => {\r\n var errorMsg = \"\";\r\n const { refNo } = values1;\r\n\r\n setLoading1(true);\r\n let url = \"/api/Transactions/SmartKorporFetchInvoice/?invoiceNo=\" + refNo;\r\n getMethod(url, \"get\")\r\n .then((res) => {\r\n setLoading1(false);\r\n\r\n if (res.data?.status === \"error\") {\r\n notifyFailed(res.data?.message);\r\n }\r\n if (res.data) {\r\n if (res?.data?.data.payment_status === \"settled\") {\r\n notifyFailed(\"Bill/Invoice already paid\");\r\n setLoading1(false);\r\n setValues1(initialValue1);\r\n setFormState1(1);\r\n } else {\r\n setUserResponse1(res?.data?.data);\r\n setValues1({\r\n ...values1,\r\n currency: res.data?.data?.currency,\r\n customername: res.data?.data?.name,\r\n amount: res.data?.data?.amount,\r\n });\r\n setFormState1(2);\r\n if (res.data?.desc) notifySuccess(res.data?.desc);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Check you referance/Bill/Invoice number\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n });\r\n };\r\n\r\n const validate1 = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.refNo) {\r\n errors.refNo = \"This field is required\";\r\n }\r\n\r\n if (formState1 === 2) {\r\n if (!inputs.customer_account_number) {\r\n errors.customer_account_number = \"This field is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"This field is required\";\r\n }\r\n if (!inputs.currency) {\r\n errors.currency = \"This field is required\";\r\n }\r\n }\r\n return errors;\r\n };\r\n\r\n const handleInputChange1 = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n setValues1({ ...values1, [name]: value });\r\n }\r\n };\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n useEffect(() => {\r\n // props.fetchSubsInfo();\r\n props.fetchMerchantInfo();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.subscriber.makePaymentInfo.error) {\r\n notifyFailed(props.subscriber.makePaymentInfo.errorMsg);\r\n }\r\n }, [props.subscriber.makePaymentInfo.error]);\r\n\r\n useEffect(() => {\r\n if (\r\n props.subscriber.makePaymentInfo.list &&\r\n props.subscriber.makePaymentInfo.list.length > 0\r\n ) {\r\n const list = props.subscriber.makePaymentInfo.list;\r\n setMerchants(list);\r\n setValues({\r\n ...values,\r\n // merchantName: list && list[0] ? list[0].name : '',\r\n // merchantId: list && list[0] ? list[0].id : '',\r\n // label: list && list[0] ? list[0].labelKey : '',\r\n // merchantProfileId: list && list[0] ? list[0].userProfileId : ''\r\n\r\n merchantName: \"\",\r\n merchantId: \"\",\r\n label: \"\",\r\n merchantProfileId: \"\",\r\n });\r\n }\r\n }, [props.subscriber.makePaymentInfo.list]);\r\n\r\n /** Fetch Amount states */\r\n\r\n useEffect(() => {\r\n if (props.subscriber.amountInfo.error) {\r\n notifyFailed(props.subscriber.amountInfo.errorMsg);\r\n setLoading(false);\r\n }\r\n }, [props.subscriber.amountInfo.error]);\r\n\r\n useEffect(() => {\r\n if (props.subscriber.amountInfo.success) {\r\n setValues({ ...values, amount: props.subscriber.amountInfo.data.amount });\r\n\r\n setLoading(false);\r\n setForm(2);\r\n }\r\n }, [props.subscriber.amountInfo.success]);\r\n\r\n useEffect(() => {\r\n if (use2FA) {\r\n genOtp();\r\n }\r\n }, [use2FA]);\r\n\r\n useEffect(() => {\r\n if (props.subscriber.amountInfo.loading) {\r\n setLoading(props.subscriber.amountInfo.loading);\r\n }\r\n }, [props.subscriber.amountInfo.loading]);\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const getLabel = (id) => {\r\n let merchant = merchants.find((m) => m.id == id);\r\n if (merchant) {\r\n return {\r\n label: merchant.labelKey,\r\n name: merchant.name,\r\n userProfileId: merchant.userProfileId,\r\n };\r\n } else {\r\n return {};\r\n }\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const changeLabel = (e) => {\r\n const { name, value } = e.target;\r\n const v = getLabel(value);\r\n if (name === \"merchantId\") {\r\n setValues({\r\n ...values,\r\n [name]: value,\r\n label: v.label,\r\n merchantName: v.name,\r\n uniqueNo: \"\",\r\n merchantProfileId: v.userProfileId,\r\n });\r\n }\r\n };\r\n\r\n const goBack = () => {\r\n set1FA(false);\r\n set2FA(false);\r\n setForm(1);\r\n setValues({ ...values, accountType: \"\", otp: \"\", password: \"\" });\r\n };\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons: {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: \"sweet-btn\",\r\n },\r\n },\r\n }).then((confirm) => {\r\n if (confirm) {\r\n setForm(3);\r\n } else {\r\n setForm(3);\r\n }\r\n });\r\n };\r\n\r\n const getAmt = () => {\r\n let amt = Number(values.amount);\r\n return amt.toLocaleString();\r\n };\r\n\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setValues({ ...values, otp: \"\" });\r\n setSpinner(true);\r\n genOtp();\r\n };\r\n\r\n const checkForm = () => {\r\n if (form == 2 || form == 3) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkFees = () => {\r\n if (values.accountType == \"Bank\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"password\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.merchantId) {\r\n errors.merchantId = \"This field is required\";\r\n }\r\n if (!inputs.uniqueNo) {\r\n errors.uniqueNo = \"This field is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n const data = {\r\n MerchantUserId: values.merchantProfileId,\r\n ProductId: values.uniqueNo.trim(),\r\n };\r\n props.fetchAmt(data);\r\n } else {\r\n setForrm2(false);\r\n }\r\n };\r\n\r\n const validate2 = function (inputs) {\r\n var errors = {};\r\n if (!inputs.accountType) {\r\n errors.accountType = \"Please select one account\";\r\n }\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n if (!subsInfo.id) {\r\n errors.id = \"Subscriber is required\";\r\n }\r\n if (use2FA && !inputs.otp) {\r\n errors.otp = \"Please enter OTP\";\r\n }\r\n\r\n if (!inputs.password) {\r\n errors.password = \"Please enter password\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmitV2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n // verifyOtp();\r\n saveTrans();\r\n }\r\n };\r\n\r\n const validate3 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n // if (!subsInfo.id) {\r\n // errors.id = 'Subscriber is required';\r\n // }\r\n if (!inputs.password) {\r\n errors.password = \"Please enter pin\";\r\n } else if (inputs.password.length != 4) {\r\n errors.password = \"PIN should contain 4-digits\";\r\n }\r\n return errors;\r\n };\r\n\r\n const validatePin = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate3(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n // call an api to verify pin\r\n verifyPin();\r\n\r\n //for testing\r\n // setForm(3);\r\n }\r\n };\r\n\r\n const proceed = (e) => {\r\n e.preventDefault();\r\n if (use2FA) {\r\n // call genOtp()\r\n setLoading(true);\r\n genOtp();\r\n } else {\r\n setForm(3);\r\n }\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const verifyOtp = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n UserId: getUserId(),\r\n OtpType: \"TransactionOTP\",\r\n Password: values.password,\r\n };\r\n\r\n if (use2FA) {\r\n data[\"Otp\"] = values.otp;\r\n }\r\n setLoading(true);\r\n let url = \"/api/Transactions/CheckOTPorPin\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n saveTrans();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in generating otp\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = \"Unknown error in generating otp\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const saveTrans = () => {\r\n setLoading(true);\r\n if (values.accountType === \"Wallet\") {\r\n walletPayment();\r\n } else {\r\n var data = new FormData();\r\n data.append(\"SubscriberUserId\", getUserId());\r\n data.append(\"Amount\", values.amount);\r\n data.append(\"PaymentMethod\", values.accountType);\r\n data.append(\"PaymentType\", \"Merchant\");\r\n data.append(\"PaymentTo\", values.merchantName);\r\n data.append(\"AmountType\", \"P\");\r\n data.append(\"MerchantUserId\", values.merchantProfileId);\r\n data.append(\"ProductId\", values.uniqueNo.trim());\r\n data.append(\"PIN\", values.password);\r\n data.append(\"CollectionType\", \"BankPayment\");\r\n if (use2FA) {\r\n data.append(\"Otp\", values.otp);\r\n }\r\n if (values.accountType === \"Bank\") {\r\n data.append(\"PaymentFrom\", subsInfo.bankName);\r\n data.append(\"PaymentMethodId\", subsInfo.bankProfileId);\r\n } else if (values.accountType === \"MMO\") {\r\n data.append(\"PaymentFrom\", subsInfo.mmoName);\r\n data.append(\"PaymentMethodId\", subsInfo.mmoId);\r\n }\r\n data.append(\"FeesAmount\", fees);\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/Save\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // updateMerchant(res.data.result);\r\n if (subsInfo.isBankApiAvailable) {\r\n updateMerchant(res.data.result.transactionId, \"Paid\");\r\n } else {\r\n updateMerchant(res.data.result.transactionId, \"In Process\");\r\n // notifySuccess('Payment added');\r\n // history.push('/subscriber-transaction');\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const walletPayment = () => {\r\n var data = {\r\n MerchantUserId: values.merchantProfileId,\r\n // SubscriberUserId: getUserId(),\r\n Amount: values.amount,\r\n ProductId: values.uniqueNo.trim(),\r\n PIN: values.password,\r\n CollectionType: \"WalletPayment\",\r\n // FeesAmount: fees\r\n // Otp: values.otp\r\n };\r\n if (use2FA) {\r\n data[\"Otp\"] = values.otp;\r\n }\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/voucherpayment\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // notifySuccess('Payment added');\r\n // history.push('/subscriber-transaction');\r\n updateMerchant(res.data.result.transactionId, \"Paid\");\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const genOtp = () => {\r\n var errorMsg = \"\";\r\n var data = JSON.stringify({\r\n // \"UserId\": getUserId(),\r\n OtpType: \"TransactionOTP\",\r\n });\r\n // setLoading(true);\r\n let url = \"/api/Auth/Sendotp\";\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Otp sent\";\r\n // notifySuccess(msg);\r\n openModal(msg);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in generating otp\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in generating otp\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const updateMerchant = (transId, status) => {\r\n var data = JSON.stringify({\r\n MerchantId: Number(values.merchantId),\r\n ProductId: values.uniqueNo.trim(),\r\n Amount: values.amount,\r\n TransactRefId: transId.toString(),\r\n Status: status,\r\n });\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/Transactions/PaymentUpdateTOMerchant\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Payment added\");\r\n history.push(\"/subscriber-transaction\");\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const verifyPin = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n PaymentAmount: values.amount,\r\n Password: values.password,\r\n Email: getUserEmail(),\r\n PaymentType: \"Bank\",\r\n };\r\n\r\n setLoading(true);\r\n let url = \"/api/Subscriber/GetSubscriberDetails\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let result = res.data.result;\r\n setSubsInfo(result);\r\n if (!isNaN(result.fees)) {\r\n setFees(Number(result.fees));\r\n }\r\n if (result.authFactorType == \"1FA\") {\r\n set1FA(true);\r\n set2FA(false);\r\n setLoading(false);\r\n setForm(3);\r\n } else if (result.authFactorType == \"2FA\") {\r\n set1FA(false);\r\n set2FA(true);\r\n } else {\r\n set1FA(false);\r\n set2FA(false);\r\n setLoading(false);\r\n setForm(3);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = \"Unknown error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const verifyPinV2 = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n PaymentAmount: Number(values.amount),\r\n Password: values.password,\r\n Email: getUserEmail(),\r\n PaymentType: \"Bank\",\r\n };\r\n\r\n setLoading(true);\r\n let url = \"/api/Subscriber/GetSubscriberDetails\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let result = res.data.result;\r\n setSubsInfo(result);\r\n if (!isNaN(result.fees)) {\r\n setFees(Number(result.fees));\r\n }\r\n if (result.authFactorType == \"1FA\") {\r\n set1FA(true);\r\n set2FA(false);\r\n } else if (result.authFactorType == \"2FA\") {\r\n set1FA(false);\r\n set2FA(true);\r\n } else {\r\n set1FA(false);\r\n set2FA(false);\r\n }\r\n verifyPinHandle(result);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = \"Unknown error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const verifyPinHandle = (result) => {\r\n if (result.fees == 0) {\r\n if (result.authFactorType == \"2FA\") {\r\n setLoading(false);\r\n genOtp();\r\n } else {\r\n setForm(4);\r\n }\r\n } else {\r\n setLoading(false);\r\n setForm(3);\r\n }\r\n };\r\n\r\n // const onClickBillSelectBtn = (item) => {\r\n // setCurrentBillScreen(item.id);\r\n // setcurrentScreenName(item.name)\r\n // };\r\n const onClickBillSelectBtn = (billType, subBillType) => {\r\n if (billType.id === 3 && subBillType) {\r\n // Handle the selection of \"Pay Other Services\" with a sub-bill type\r\n // Perform the necessary actions based on the selected bill and sub-bill types\r\n } else {\r\n // Handle the selection of other bill types without sub-bill types\r\n setCurrentBillScreen(billType.id);\r\n setcurrentScreenName(billType.name);\r\n }\r\n }\r\n\r\n const onClickSubBillSelectBtn = (subBillType) => {\r\n setCurrentSubBillScreen(subBillType.id);\r\n setcurrentSubScreenName(subBillType.name);\r\n\r\n }\r\n\r\n const renderSubBillScreen = (scrennNum) => {\r\n switch (scrennNum) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n ); \r\n case 3:\r\n return (\r\n \r\n );\r\n \r\n case 4:\r\n return (\r\n \r\n );\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const renderBillScreen = (scrennNum) => {\r\n switch (scrennNum) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return ;\r\n case 3:\r\n return (\r\n <>\r\n \r\n \r\n {currentSubBillScreen ? (\r\n
\r\n  \r\n {currentSubBillScreen !== 0 && (\r\n setCurrentSubBillScreen(0)}>\r\n \r\n \r\n  \r\n \r\n )}{currentSubScreenName}\r\n \r\n \r\n \r\n \r\n {renderSubBillScreen(currentSubBillScreen)}\r\n
\r\n ) : (\r\n \r\n {billSubTypes.map((item) => (\r\n \r\n \r\n {item.name}\r\n \r\n \r\n onClickSubBillSelectBtn(item)}\r\n >\r\n Select\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n \r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentBillScreen !== 0 && (\r\n
{setCurrentBillScreen(0); setCurrentSubBillScreen(0)}}>\r\n \r\n \r\n \r\n
\r\n )}\r\n

Make Payment

\r\n \r\n
\r\n
\r\n \r\n {currentBillScreen ? (\r\n
\r\n

{currentScreenName}

\r\n {renderBillScreen(currentBillScreen)}\r\n
\r\n ) : (\r\n \r\n {billTypes.map((item) => (\r\n \r\n \r\n {item.name}\r\n \r\n \r\n onClickBillSelectBtn(item, null)}\r\n >\r\n Select\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchSubsInfo: () => dispatch(fetchSubs()),\r\n fetchMerchantInfo: () => dispatch(fetchMerchant()),\r\n fetchAmt: (data) => dispatch(fetchPayableAmt(data)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MakePayment);\r\n","import React from \"react\";\r\nimport { Button, Col, Form, FormGroup, Input, Row } from \"reactstrap\";\r\n\r\nconst BetSalonePaymentTab = ({\r\n values,\r\n handleSubmit,\r\n handleInputChange,\r\n formState,\r\n errors,\r\n currencyTypes,\r\n langs,\r\n userResponse,\r\n setValues,\r\n initialValue,\r\n loading,\r\n setFormState,\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currencyTypes?.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n {errors.currency && (\r\n
\r\n * {errors.currency}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {langs?.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n {errors.lang && (\r\n
\r\n * {errors.lang}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {formState === 2 && (\r\n <>\r\n {userResponse?.id && (\r\n <>\r\n

Name: {userResponse?.name}

\r\n

Surname: {userResponse?.surname}

\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n {formState === 2 && (\r\n \r\n
\r\n {\r\n setValues(initialValue);\r\n setFormState(1);\r\n }}\r\n >\r\n Reset\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BetSalonePaymentTab;\r\n","import React from \"react\";\r\nimport { Button, Col, Form, FormGroup, Input, Row } from \"reactstrap\";\r\n\r\nconst ElephantBetsPaymentTab = ({\r\n values,\r\n handleSubmit,\r\n handleInputChange,\r\n formState,\r\n errors,\r\n bettingCompanyTypes,\r\n langs,\r\n userResponse,\r\n setValues,\r\n initialValue,\r\n loading,\r\n setFormState,\r\n VerifyAgent,\r\n}) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {bettingCompanyTypes?.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n {errors.bettingCompany && (\r\n
\r\n * {errors.bettingCompany}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {values.bettingCompany !== \"\" && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {errors.agentId && (\r\n
\r\n * {errors.agentId}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n {formState === 2 && (\r\n <>\r\n {userResponse?.id && (\r\n <>\r\n

Agent Name: {userResponse?.name}

\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n {formState === 2 && (\r\n \r\n
\r\n {\r\n setValues(initialValue);\r\n setFormState(1);\r\n }}\r\n >\r\n Reset\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n {values.agentId !== \"\" && (\r\n \r\n Submit {loading && }\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ElephantBetsPaymentTab;\r\n","import React from \"react\";\r\nimport { Button, Col, Form, FormGroup, Input, Row } from \"reactstrap\";\r\n\r\nconst LapoLoanRepaymentTab = ({\r\n values5,\r\n handleSubmit5,\r\n handleInputChange5,\r\n formState5,\r\n errors5,\r\n userResponse5,\r\n setValues5,\r\n initialValue5,\r\n loading5,\r\n setFormState5,\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {errors5.accNo && (\r\n
\r\n * {errors5.accNo}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n {formState5 === 2 ? (\r\n <>\r\n \r\n \r\n

Loan Details

\r\n \r\n Account holder name:{\" \"}\r\n {userResponse5?.client?.personal?.firstName}{\" \"}\r\n {userResponse5?.client?.personal?.lastName}\r\n \r\n \r\n Total loan amount: {userResponse5?.loanAccount?.loanAmount}\r\n \r\n \r\n Maximum repayable as of today:{\" \"}\r\n {userResponse5?.loanAccount?.maximumRepayableAsOfToday}\r\n \r\n \r\n Interest rate: {userResponse5?.loanAccount?.interestRate}\r\n \r\n \r\n User defined interest rate:{\" \"}\r\n {userResponse5?.loanAccount?.userDefinedInterestRate}\r\n \r\n \r\n Balance:{\" \"}\r\n {userResponse5?.transactions?.length\r\n ? userResponse5?.transactions[0]?.balance\r\n : userResponse5?.loanAccount?.loanAmount}\r\n \r\n \r\n \r\n {formState5 === 2 &&\r\n userResponse5?.loanAccount?.loanAmount > 0 ? (\r\n <>\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors5.amount && (\r\n
\r\n * {errors5.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Cash Commission Earned\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n {errors5.pin && (\r\n
\r\n * {errors5.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n ) : null}\r\n \r\n ) : null}\r\n \r\n {formState5 === 2 && (\r\n \r\n
\r\n {\r\n setValues5(initialValue5);\r\n setFormState5(1);\r\n }}\r\n >\r\n Reset\r\n \r\n
\r\n \r\n )}\r\n \r\n {/* {formState5 !== 2 ? ( */}\r\n
\r\n \r\n Submit {loading5 && }\r\n \r\n
\r\n {/* ) : null} */}\r\n {/* {formState5 === 2\r\n ? userResponse5?.transactions?.length !== 0 &&\r\n parseInt(userResponse5?.transactions[0]?.balance) > 0 && (\r\n
\r\n \r\n Submit{\" \"}\r\n {loading5 && }\r\n \r\n
\r\n )\r\n : null} */}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LapoLoanRepaymentTab;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Container,\r\n Row,\r\n Col,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n TabContent,\r\n TabPane,\r\n CardSubtitle,\r\n CardTitle,\r\n CardText,\r\n Button,\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod } from \"services/httpServices\";\r\nimport { connect } from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport BetSalonePaymentTab from \"./BetSalonePaymentTab\";\r\nimport SmartKorporPaymentTab from \"./SmartKorporPaymentTab\";\r\nimport EDSAPayment from \"./EDSAPayment\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport ElephantBetsPaymentTab from \"./ElephantBetsPaymentTab\";\r\nimport LapoLoanRepaymentTab from \"components/makePaymentScreens/lapo-loan-repayment\";\r\n\r\n// bets alone\r\nconst currencyTypes = [\r\n {\r\n key: \"eur\",\r\n value: \"eur\",\r\n label: \"EUR\",\r\n },\r\n];\r\nconst langs = [\r\n {\r\n key: \"en\",\r\n value: \"en\",\r\n label: \"En\",\r\n },\r\n];\r\n// bets alone\r\n\r\nconst billTypes = [\r\n {\r\n id: 1,\r\n name: \"Elephant Bet\",\r\n color: \"#2b3b84\",\r\n },\r\n {\r\n id: 2,\r\n name: \"SmartKorpor\",\r\n color: \"#2b3b84\",\r\n },\r\n {\r\n id: 3,\r\n name: \"EDSA\",\r\n color: \"#2b3b84\",\r\n },\r\n {\r\n id: 4,\r\n name: \"Bet salone\",\r\n color: \"#2b3b84\",\r\n },\r\n {\r\n id: 5,\r\n name: \"Lapo Loan Repayment\",\r\n color: \"#2b3b84\",\r\n },\r\n];\r\n\r\n// elephant\r\nconst initialValue = {\r\n agentId: \"\",\r\n companyName: \"\",\r\n companyId: \"\",\r\n amount: null,\r\n pin: \"\",\r\n bettingCompany: \"\",\r\n};\r\n\r\nconst initialValue1 = {\r\n refNo: \"\",\r\n amount: null,\r\n currency: \"\",\r\n customername: \"\",\r\n customer_account_number: \"\",\r\n pin: \"\",\r\n};\r\n\r\nconst initialValue2 = {\r\n amount: \"\",\r\n billNumber: \"\",\r\n pin: \"\",\r\n};\r\n\r\n// bet salone\r\nconst initialValue3 = {\r\n phone: \"\",\r\n currency: \"\",\r\n lang: \"\",\r\n amount: null,\r\n pin: \"\",\r\n betSaloneToken: \"\",\r\n};\r\n\r\n// lapo loan repayment\r\nconst initialValue5 = {\r\n accNo: \"\",\r\n amount: 0,\r\n pin: \"\",\r\n};\r\n\r\nconst MakePayment = (props) => {\r\n //elephant bet\r\n const [values, setValues] = useState(initialValue);\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const [formState, setFormState] = useState(1);\r\n const [userResponse, setUserResponse] = useState({});\r\n const [bettingCompanyTypes, setbettingCompanyTypes] = useState([]);\r\n\r\n //smartkorpor\r\n const [values1, setValues1] = useState(initialValue1);\r\n const [errors1, setErrors1] = useState({});\r\n const [loading1, setLoading1] = useState(false);\r\n const [formState1, setFormState1] = useState(1);\r\n const [userResponse1, setUserResponse1] = useState({});\r\n\r\n //EDSA\r\n const [values2, setValues2] = useState(initialValue2);\r\n const [errors2, setErrors2] = useState({});\r\n const [loading2, setLoading2] = useState(false);\r\n const [formState2, setFormState2] = useState(1);\r\n\r\n //bet salone\r\n const [values3, setValues3] = useState(initialValue3);\r\n const [errors3, setErrors3] = useState({});\r\n const [loading3, setLoading3] = useState(false);\r\n const [formState3, setFormState3] = useState(1);\r\n const [userResponse3, setUserResponse3] = useState({});\r\n\r\n //Lapo loan repayment\r\n const [values5, setValues5] = useState(initialValue5);\r\n const [errors5, setErrors5] = useState({});\r\n const [loading5, setLoading5] = useState(false);\r\n const [formState5, setFormState5] = useState(1);\r\n const [userResponse5, setUserResponse5] = useState({});\r\n\r\n const [currentBillScreen, setCurrentBillScreen] = useState(0);\r\n const [currentScreenName, setcurrentScreenName] = React.useState(\"\");\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n if (currentBillScreen === 1) {\r\n getCompanyList();\r\n }\r\n }, [currentBillScreen]);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n // elephant bets\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === \"bettingCompany\") {\r\n if (checkSpace(value)) {\r\n setValues({\r\n ...values,\r\n bettingCompany: value,\r\n companyId: value,\r\n companyName: bettingCompanyTypes.find((i) => i.id == value)?.label,\r\n });\r\n }\r\n } else {\r\n if (checkSpace(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const handleInputChange1 = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n setValues1({ ...values1, [name]: value });\r\n }\r\n };\r\n const handleInputChange2 = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n setValues2({ ...values2, [name]: value });\r\n }\r\n };\r\n\r\n const handleInputChange3 = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n setValues3({ ...values3, [name]: value });\r\n }\r\n };\r\n const handleInputChange5 = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n setValues5({ ...values5, [name]: value });\r\n }\r\n };\r\n // EP\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (formState === 2) {\r\n if (!inputs.amount) {\r\n errors.amount = \"This field is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"This field is required\";\r\n }\r\n }\r\n return errors;\r\n };\r\n\r\n const validate1 = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.refNo) {\r\n errors.refNo = \"This field is required\";\r\n }\r\n\r\n if (formState === 2) {\r\n if (!inputs.customer_account_number) {\r\n errors.customer_account_number = \"This field is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"This field is required\";\r\n }\r\n if (!inputs.currency) {\r\n errors.currency = \"This field is required\";\r\n }\r\n }\r\n return errors;\r\n };\r\n\r\n const validate2 = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.billNumber) {\r\n errors.billNumber = \"This field is required\";\r\n }\r\n if (!inputs.amount) {\r\n errors.amount = \"This field is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const validate5 = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.accNo) {\r\n errors.accNo = \"This field is required\";\r\n }\r\n if (!inputs.amount && inputs?.amount <= 0) {\r\n errors.amount = \"Enter valid amount\";\r\n }\r\n return errors;\r\n };\r\n\r\n // BA\r\n const validate3 = (inputs) => {\r\n let errors = {};\r\n if (!inputs.phone) {\r\n errors.phone = \"This field is required\";\r\n }\r\n if (!inputs.lang) {\r\n errors.lang = \"This field is required\";\r\n }\r\n if (!inputs.currency) {\r\n errors.currency = \"This field is required\";\r\n }\r\n if (formState === 2) {\r\n if (!inputs.amount) {\r\n errors.amount = \"This field is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"This field is required\";\r\n }\r\n }\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState === 1) {\r\n validateUser();\r\n } else if (isNoError && formState === 2) {\r\n initiatePayment();\r\n }\r\n };\r\n\r\n const VerifyAgent = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState === 1) {\r\n validateUser();\r\n }\r\n };\r\n\r\n const handleSubmit1 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate1(values1);\r\n setErrors1(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState1 === 1) {\r\n validateSmartKorpor();\r\n } else if (isNoError && formState1 === 2) {\r\n initiatePaymentSmartKorpor();\r\n }\r\n };\r\n\r\n const handleSubmit5 = (e) => {\r\n e.preventDefault();\r\n if (formState5 === 2) {\r\n const validationErrors = validate5(values5);\r\n setErrors5(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState5 === 2) {\r\n initiateLapoLoanRepayment();\r\n }\r\n } else {\r\n validateLapoAccNo();\r\n }\r\n };\r\n\r\n const handleSubmit2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate2(values2);\r\n setErrors2(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState2 === 1) {\r\n initiatePaymentEDSA();\r\n }\r\n };\r\n\r\n // BA\r\n const handleSubmit3 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate3(values3);\r\n setErrors3(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError && formState === 1) {\r\n validateBetSalone();\r\n } else if (isNoError && formState === 2) {\r\n initiatePaymentBetsAlone();\r\n }\r\n };\r\n\r\n const validateUser = () => {\r\n setLoading(true);\r\n var errorMsg = \"\";\r\n const { agentId } = values;\r\n var data = {\r\n agent_id: agentId,\r\n };\r\n\r\n let url = \"/api/Transactions/ValidateBettingAgent/\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n\r\n if (res.data) {\r\n if (res.data?.metaData) {\r\n notifySuccess(\"Agent validation success\");\r\n setUserResponse(res.data?.metaData);\r\n\r\n setFormState(2);\r\n } else {\r\n errorMsg = \"No Agent found!!\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const validateSmartKorpor = () => {\r\n var errorMsg = \"\";\r\n const { refNo } = values1;\r\n\r\n setLoading1(true);\r\n let url = \"/api/Transactions/SmartKorporFetchInvoice/?invoiceNo=\" + refNo;\r\n getMethod(url, \"get\")\r\n .then((res) => {\r\n setLoading1(false);\r\n\r\n if (res.data?.status === \"error\") {\r\n notifyFailed(res.data?.message);\r\n }\r\n if (res.data) {\r\n if (res?.data?.data.payment_status === \"settled\") {\r\n notifyFailed(\"Bill/Invoice already paid\");\r\n setLoading1(false);\r\n setValues1(initialValue1);\r\n setFormState1(1);\r\n } else {\r\n setUserResponse1(res?.data?.data);\r\n setValues1({\r\n ...values1,\r\n currency: res.data?.data?.currency,\r\n customername: res.data?.data?.name,\r\n amount: res.data?.data?.amount,\r\n });\r\n setFormState1(2);\r\n if (res.data?.desc) notifySuccess(res.data?.desc);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Check you referance/Bill/Invoice number\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n });\r\n };\r\n\r\n const validateLapoAccNo = () => {\r\n var errorMsg = \"\";\r\n const { accNo } = values5;\r\n const data = {\r\n id: accNo,\r\n };\r\n setLoading5(true);\r\n let url = \"/api/Transactions/VerifyLapoLoanAccount\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading5(false);\r\n if (res.data?.status === \"error\") {\r\n notifyFailed(res.data?.message);\r\n }\r\n if (res.data) {\r\n if (res?.data?.responseCode === \"200\") {\r\n setUserResponse5(res.data?.result?.account);\r\n notifySuccess(\"Account verified successfully\");\r\n setFormState5(2);\r\n } else {\r\n notifyFailed(\r\n res?.data?.result?.[0]?.message ??\r\n \"Please Check lapo loan account number\"\r\n );\r\n }\r\n } else {\r\n errorMsg = \"Something went wrong\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Please Check lapo loan account number\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n });\r\n };\r\n\r\n const initiateLapoLoanRepayment = () => {\r\n var errorMsg = \"\";\r\n const { accNo: accountID, pin, amount } = values5;\r\n var data = {\r\n accountID,\r\n pin,\r\n amount: Number(amount),\r\n };\r\n\r\n setLoading5(true);\r\n let url = \"/api/Transactions/InitiatePaymentLapoLoan\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading5(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(\"Issue with Loan account number\");\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(\"Loan repayment successful\");\r\n setValues5(initialValue5);\r\n setFormState5(1);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading5(false);\r\n });\r\n };\r\n\r\n // BA\r\n const validateBetSalone = () => {\r\n var errorMsg = \"\";\r\n const { phone, currency, lang } = values3;\r\n var data = {\r\n phone,\r\n currency,\r\n lang,\r\n };\r\n setLoading3(true);\r\n let url = \"/api/Transactions/ValidatePaymentBetSalone\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading3(false);\r\n if (res.data?.status === \"error\") {\r\n notifyFailed(res.data?.message);\r\n }\r\n if (res.data) {\r\n if (res.data?.data?.token) {\r\n notifySuccess(\"User validation success\");\r\n setUserResponse3(res.data?.data?.user);\r\n setValues3({ ...values, betSaloneToken: res.data?.data.token });\r\n setFormState3(2);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading3(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading3(false);\r\n });\r\n };\r\n\r\n const getCompanyList = () => {\r\n var errorMsg = \"\";\r\n setLoading1(true);\r\n let url = \"/api/Transactions/GetBettingCompanyList\";\r\n getMethod(url, \"get\")\r\n .then((res) => {\r\n setLoading1(false);\r\n if (res.data.message !== null) {\r\n setbettingCompanyTypes(\r\n res.data.message?.map((i) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name,\r\n };\r\n })\r\n );\r\n } else {\r\n errorMsg = \"Error while fetching the company\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Error while fetching the company\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n });\r\n };\r\n\r\n // EP\r\n const initiatePayment = () => {\r\n var errorMsg = \"\";\r\n const { amount, bettingCompany, ...rest } = values;\r\n var data = {\r\n ...rest,\r\n\r\n amount: Number(amount),\r\n };\r\n\r\n setLoading(true);\r\n let url = \"/api/Transactions/InitiatePaymentBettingCollection\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(res?.data?.responseMessage);\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(String(res.data));\r\n setValues(initialValue);\r\n setFormState(1);\r\n setLoading(false);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const initiatePaymentSmartKorpor = () => {\r\n var errorMsg = \"\";\r\n const {\r\n amount,\r\n refNo,\r\n currency,\r\n customername,\r\n customer_account_number,\r\n pin,\r\n } = values1;\r\n var data = {\r\n amount: Number(amount),\r\n refno: refNo,\r\n currency,\r\n customername,\r\n customer_account_number,\r\n pin,\r\n };\r\n\r\n setLoading1(true);\r\n let url = \"/api/Transactions/InitiatePaymentSmartKorpor\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading1(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(res?.data?.responseMessage);\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(String(res.data));\r\n setValues1(initialValue);\r\n setFormState1(1);\r\n setLoading1(false);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading1(false);\r\n });\r\n };\r\n\r\n const initiatePaymentEDSA = () => {\r\n var errorMsg = \"\";\r\n const { amount, billNumber, pin } = values2;\r\n var data = {\r\n amount: Number(amount),\r\n billNumber,\r\n pin,\r\n };\r\n\r\n setLoading2(true);\r\n let url = \"/api/Transactions/InitiatePaymentEDSA\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading2(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(res?.data?.responseMessage);\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(String(res.data));\r\n setValues2(initialValue2);\r\n setFormState2(1);\r\n setLoading2(false);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading2(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading2(false);\r\n });\r\n };\r\n\r\n // BA\r\n const initiatePaymentBetsAlone = () => {\r\n var errorMsg = \"\";\r\n const { amount, pin, betSaloneToken } = values;\r\n var data = {\r\n amount: Number(amount),\r\n pin,\r\n betSaloneToken,\r\n };\r\n setLoading3(true);\r\n let url = \"/api/Transactions/InitiatePaymentBetSalone\";\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading3(false);\r\n if (res.data?.responseCode === \"400\") {\r\n notifyFailed(res?.data?.responseMessage);\r\n return;\r\n }\r\n if (res.data) {\r\n notifySuccess(String(res.data));\r\n setValues3(initialValue);\r\n setFormState3(1);\r\n setLoading3(false);\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setLoading3(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setLoading3(false);\r\n });\r\n };\r\n\r\n const onClickBillSelectBtn = (item) => {\r\n setCurrentBillScreen(item.id);\r\n setcurrentScreenName(item.name);\r\n };\r\n\r\n const renderBillScreen = (scrennNum) => {\r\n switch (scrennNum) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n );\r\n case 3:\r\n return (\r\n \r\n );\r\n case 4:\r\n return (\r\n \r\n );\r\n case 5:\r\n return (\r\n \r\n );\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Make Payment

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {renderBillScreen(currentBillScreen)}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentBillScreen !== 0 && (\r\n
setCurrentBillScreen(0)}>\r\n \r\n \r\n \r\n
\r\n )}\r\n

Make Payment

\r\n \r\n
\r\n
\r\n \r\n {currentBillScreen ? (\r\n
\r\n

{currentScreenName}

\r\n {renderBillScreen(currentBillScreen)}\r\n
\r\n ) : (\r\n \r\n {billTypes.map((item) => (\r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {};\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MakePayment);\r\n","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n ModalHeader,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col,\r\n Badge\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\n// import MMO from \"./add-mmo\";\r\n// import Bank from \"./add-bank\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getMethod, getUserId, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"../../components/NoRecordFound/NoRecordFound\";\r\nimport { fetchSettlementBank, setSettlementBank, settlementBankError } from \"./action\";\r\nimport { connect } from \"react-redux\";\r\nimport { FinanceUserStatus, btnCss, iconCss } from \"appConfig\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\n\r\nconst STATUS = FinanceUserStatus;\r\n\r\nconst sortIS = {\r\n sortBankName: 0,\r\n sortCollectionType: 0,\r\n sortMerchantName: 0,\r\n sortAmount: 0\r\n};\r\n\r\nconst CollectionList = (props) => {\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [banklist, setBankList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [openApproveModal, setOpenApproveModal] = React.useState(false);\r\n const [approveObj, setApproveObj] = React.useState(null);\r\n const [approveReason, setApproveReason] = React.useState(null);\r\n const [settleBankId, setSettleBankId] = React.useState(null);\r\n const [settleBankList, setSettleBankList] = React.useState([]);\r\n const [errors, setError] = React.useState({});\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n const [statusFilter, setStatusFilter] = React.useState(STATUS[0].key);\r\n const [totalList, setTotalList] = React.useState([]);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [coreTransId, setCoreTransId] = React.useState(null);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [openLockModal, setOpenLockModal] = React.useState(false);\r\n const [openUnlockModal, setOpenUnlockModal] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n // fetchBank();\r\n props.fetchSettlementBankInfo()\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n fetchBank();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (\r\n props.finance.settlementBankInfo &&\r\n props.finance.settlementBankInfo.list.length\r\n ) {\r\n setSettleBankList(props.finance.settlementBankInfo.list);\r\n setSettleBankId(props.finance.settlementBankInfo.list[0].key);\r\n }\r\n }, [props.finance.settlementBankInfo.list]);\r\n\r\n // React.useEffect(() => {\r\n // setListDataWrapper(totalList);\r\n // }, [statusFilter]);\r\n\r\n // React.useEffect(()=> {\r\n // if (refresh) {\r\n // reloadListHandle();\r\n // }\r\n // }, [refresh])\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchBank();\r\n }\r\n }\r\n }, [statusFilter]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchBank();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchBank();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchBank();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleClick = (e, index) => {\r\n\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n\r\n }\r\n\r\n const getSearchHandle = (val, blist) => {\r\n let filteredList = [];\r\n let banklist = blist;\r\n for (let i = 0; i < banklist.length; i++) {\r\n if (\r\n (banklist[i].bankName &&\r\n banklist[i].bankName\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase())) ||\r\n (banklist[i].merchantName &&\r\n banklist[i].merchantName\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()))\r\n ) {\r\n filteredList.push(banklist[i]);\r\n }\r\n }\r\n return filteredList;\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n }\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'Status': statusFilter\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortBankName == \"1\") {\r\n data['SortingOn'] = 'BankName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortBankName == \"2\") {\r\n data['SortingOn'] = 'BankName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCollectionType == \"1\") {\r\n data['SortingOn'] = 'CollectionType';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCollectionType == \"2\") {\r\n data['SortingOn'] = 'CollectionType';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/Collection/FinancerCollectionList', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setTotalList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const setListData = (resp) => {\r\n let arr = [];\r\n for (let i = 0; i < resp.length; i++) {\r\n if (resp[i].status === statusFilter) {\r\n arr.push(resp[i]);\r\n }\r\n }\r\n setBankList(arr);\r\n return arr;\r\n }\r\n\r\n const approve = (trans) => {\r\n setOpenApproveModal(true);\r\n setCoreTransId(null);\r\n setApproveObj(trans);\r\n }\r\n\r\n const closeApproveModal = () => {\r\n // setApproveObj(null);\r\n setError({});\r\n setApproveReason(null);\r\n setCoreTransId(null);\r\n setOpenApproveModal(false);\r\n if (settleBankList && settleBankList.length) {\r\n setSettleBankId(settleBankList[0].key);\r\n }\r\n }\r\n\r\n const approveManual = (trans) => {\r\n setOpenLockModal(true);\r\n setCoreTransId(null);\r\n setApproveObj(trans);\r\n }\r\n\r\n const rejectManual = (trans) => {\r\n setOpenUnlockModal(true);\r\n setCoreTransId(null);\r\n setApproveObj(trans);\r\n }\r\n\r\n const closeLockModal = () => {\r\n setApproveObj(null);\r\n setError({});\r\n setApproveReason(null);\r\n setCoreTransId(null);\r\n setOpenLockModal(false);\r\n if (settleBankList && settleBankList.length) {\r\n setSettleBankId(settleBankList[0].key);\r\n }\r\n }\r\n\r\n const closeUnlockModal = () => {\r\n setApproveObj(null);\r\n setError({});\r\n setApproveReason(null);\r\n setCoreTransId(null);\r\n setOpenUnlockModal(false);\r\n if (settleBankList && settleBankList.length) {\r\n setSettleBankId(settleBankList[0].key);\r\n }\r\n }\r\n\r\n const changeSettleBank = (e) => {\r\n setSettleBankId(e.target.value);\r\n }\r\n\r\n const validate = () => {\r\n let errors = {};\r\n if (!approveReason) {\r\n errors.approveReason = 'Approval reason is required';\r\n }\r\n if (!settleBankId) {\r\n errors.settleBankId = 'Please select settlement bank';\r\n }\r\n // if (!coreTransId) {\r\n // errors.coreTransId = 'Please provide core banking transaction id';\r\n // }\r\n return errors;\r\n }\r\n\r\n const validateManual = (status) => {\r\n let errors = {};\r\n if (!settleBankId) {\r\n errors.settleBankId = 'Please select settlement bank';\r\n }\r\n if (status == 'Transferred' && !coreTransId) {\r\n errors.coreTransId = 'Please provide core banking transaction id';\r\n }\r\n return errors;\r\n }\r\n\r\n\r\n const approvePayment = () => {\r\n const validationErrors = validate();\r\n setError(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n var data = {\r\n 'CollectionIds': approveObj.collectionIds,\r\n 'SettlementAmount': approveObj.amount,\r\n 'Description': approveReason,\r\n 'UserId': getUserId(),\r\n 'BankSettlementId': Number(settleBankId),\r\n 'CorePaymentTransactionId': coreTransId,\r\n 'CollectionType': approveObj.collectionType,\r\n 'BankId': approveObj.bankId,\r\n 'Status': 'Approved',\r\n 'MerchantFees': approveObj.commissionAmount\r\n }\r\n setModalLoading(true);\r\n let url = '/api/Collection/SendForApproval/';\r\n postMethod(url, JSON.stringify(data), 'post')\r\n .then(res => {\r\n setModalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n notifySuccess('Approved Successfuly');\r\n closeApproveModal();\r\n fetchBank();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in approving';\r\n closeApproveModal();\r\n notifyFailed(errorMsg);\r\n fetchBank();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n closeApproveModal();\r\n fetchBank();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n closeApproveModal();\r\n fetchBank();\r\n }\r\n }).catch(err => {\r\n setModalLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n closeApproveModal();\r\n fetchBank();\r\n });\r\n }\r\n\r\n }\r\n\r\n const closeManaualModal = (status) => {\r\n if (status == 'Transferred') {\r\n closeLockModal();\r\n } else if (status == 'Rejected') {\r\n closeUnlockModal();\r\n }\r\n }\r\n\r\n const approveManualPayment = (status) => {\r\n const validationErrors = validateManual(status);\r\n setError(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n var data = {\r\n 'CollectionIds': approveObj.collectionIds,\r\n 'SettlementAmount': approveObj.amount,\r\n 'Description': approveReason,\r\n 'UserId': getUserId(),\r\n 'BankSettlementId': Number(approveObj.settlementBankId),\r\n 'CorePaymentTransactionId': coreTransId,\r\n 'CollectionType': approveObj.collectionType,\r\n 'BankId': approveObj.bankId,\r\n 'Status': status,\r\n 'MerchantFees': approveObj.commissionAmount\r\n }\r\n setModalLoading(true);\r\n let url = '/api/Collection/SendForApproval/';\r\n postMethod(url, JSON.stringify(data), 'post')\r\n .then(res => {\r\n setModalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let str = status == 'Rejected' ? 'Reject successfuly' : 'Approved Successfuly';\r\n notifySuccess(str);\r\n closeManaualModal(status);\r\n fetchBank();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in approving';\r\n closeManaualModal(status);\r\n notifyFailed(errorMsg);\r\n fetchBank();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n closeManaualModal(status);\r\n fetchBank();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n closeManaualModal(status);\r\n fetchBank();\r\n }\r\n }).catch(err => {\r\n setModalLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n closeManaualModal(status);\r\n fetchBank();\r\n });\r\n }\r\n\r\n }\r\n\r\n const approveManualPaymentCb = (status) => {\r\n if (status == 'Rejected') {\r\n notifySuccess('Approved Successfuly');\r\n } else {\r\n notifySuccess('Approved Successfuly');\r\n }\r\n }\r\n\r\n const getAmt = (amt) => {\r\n return Number(amt).toLocaleString();\r\n }\r\n\r\n const changeStatus = (val) => {\r\n var value = val;\r\n // setCurrentPage(0);\r\n setStatusFilter(value);\r\n }\r\n\r\n const setListDataWrapper = (resp) => {\r\n let arr = setListData(resp);\r\n if (arr && arr.length) {\r\n setLoading(false);\r\n }\r\n if (searchText) {\r\n arr = getSearchHandle(searchText, arr);\r\n }\r\n setFilteredList(arr);\r\n let pc = Math.ceil(arr.length / pageSize);\r\n setPageCount(pc);\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const reloadListHandle = () => {\r\n fetchBank();\r\n props.fetchSettlementBankInfo();\r\n }\r\n\r\n const getPaymentType = (type) => {\r\n if (type === \"TopUp\" || type === \"topup\") {\r\n return 'Top-up';\r\n } else {\r\n return 'Merchant Payment'\r\n }\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n
{ e.preventDefault(); }}>\r\n\r\n \r\n \r\n Status\r\n \r\n    \r\n
\r\n changeStatus(e.target.value)}\r\n >\r\n {STATUS.map(c =>\r\n \r\n )}\r\n \r\n
\r\n\r\n
\r\n\r\n    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n \r\n

\r\n Approve Payment\r\n

\r\n
\r\n \r\n
\r\n {approveObj ?\r\n
\r\n \r\n setCoreTransId(e.target.value)}\r\n />\r\n {errors.coreTransId &&
\r\n * {errors.coreTransId}\r\n
}\r\n\r\n
\r\n {' '}\r\n \r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n

\r\n Reject Payment\r\n

\r\n
\r\n \r\n
\r\n {approveObj ?\r\n
\r\n \r\n \r\n ** This action will change the status from In process to Collected\r\n \r\n\r\n
\r\n {' '}\r\n \r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n

\r\n Approve Payment\r\n

\r\n
\r\n \r\n
\r\n {approveObj ?\r\n
\r\n \r\n \r\n \r\n \r\n Settlement Bank\r\n \r\n \r\n {settleBankList.map(c =>\r\n \r\n )}\r\n \r\n {errors.settleBankId &&
\r\n * {errors.settleBankId}\r\n
}\r\n
\r\n \r\n
\r\n setApproveReason(e.target.value)}\r\n />\r\n {errors.approveReason &&
\r\n * {errors.approveReason}\r\n
}\r\n   \r\n \r\n
\r\n {' '}\r\n \r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortBankName, 'sortBankName')}>\r\n Payment From\r\n \r\n sortHandle(sort.sortCollectionType, 'sortCollectionType')}>\r\n Payment Type\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n StatusActions
\r\n {mmo.bankName}\r\n {getPaymentType(mmo.collectionType)}{mmo.merchantName ? mmo.merchantName : '--'}{getAmt(mmo.amount)}{statusFormat(mmo.status)}\r\n {\r\n mmo.status === \"Collected\" &&\r\n approve(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Send Bank Instruction\">\r\n \r\n \r\n }\r\n\r\n {\r\n mmo.status === \"InProcess\" &&\r\n approveManual(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Manual fund transfer\">\r\n \r\n \r\n }\r\n\r\n {\r\n mmo.status === \"InProcess\" &&\r\n rejectManual(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Send Bank Instruction\">\r\n \r\n \r\n }\r\n
\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state }\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchSettlementBankInfo: () => dispatch(fetchSettlementBank()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CollectionList);\r\n","import React from \"react\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getUserId, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {btnCss, iconCss} from \"../../appConfig\";\r\n\r\n\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader,\r\n Badge,\r\n Col\r\n} from \"reactstrap\";\r\nimport { SettleBankUserStatus } from \"appConfig\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\n\r\n\r\nconst STATUS = SettleBankUserStatus;\r\n\r\nconst initialState = {\r\n merchantId: '',\r\n approveReason: ''\r\n};\r\n\r\nconst sortIS = {\r\n sortMerchantName: 0,\r\n sortMerchantBankName: 0,\r\n sortMerchantAccountNo: 0,\r\n sortAmount: 0,\r\n sortCommissionAmount: 0\r\n};\r\n\r\n\r\nconst SettlementList = () => {\r\n const [values, setValues] = React.useState(initialState);\r\n const [errors, setError] = React.useState({});\r\n const [banklist, setBankList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n const [openApproveModal, setOpenApproveModal] = React.useState(false);\r\n const [approveObj, setApproveObj] = React.useState(null);\r\n const [statusFilter, setStatusFilter] = React.useState(STATUS[0].key);\r\n const [totalList, setTotalList] = React.useState([]);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [coreTransId, setCoreTransId] = React.useState(null);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n // React.useEffect(() => {\r\n // // fetch mobilemoney operator\r\n // fetchSettlement();\r\n // }, []);\r\n\r\n // React.useEffect(() => {\r\n // setListDataWrapper(totalList);\r\n // }, [statusFilter]);\r\n\r\n // React.useEffect(()=> {\r\n // if (refresh) {\r\n // reloadListHandle();\r\n // }\r\n // }, [refresh]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSettlement();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchSettlement();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSettlement();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchSettlement();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSettlement();\r\n }\r\n }\r\n }, [statusFilter]);\r\n\r\n\r\n const handleClick = (e, index) => {\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n };\r\n\r\n const changeStatus = (val) => {\r\n var value = val;\r\n setStatusFilter(value);\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s)=> s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n const getSearchHandle = (val, blist) => {\r\n let filteredList = [];\r\n let banklist = blist;\r\n for (let i = 0; i < banklist.length; i++) {\r\n if (\r\n (banklist[i].merchantName &&\r\n banklist[i].merchantName.toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n banklist[i].bankName &&\r\n banklist[i].bankName.toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()) ||\r\n banklist[i].merchantAccountNo &&\r\n banklist[i].merchantAccountNo.toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()))\r\n ) {\r\n filteredList.push(banklist[i]);\r\n }\r\n }\r\n return filteredList;\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const getAmt = (amt) => {\r\n return Number(amt).toLocaleString();\r\n }\r\n\r\n const setListDataWrapper = (resp) => {\r\n let arr = setListData(resp);\r\n if (arr && arr.length) {\r\n setLoading(false);\r\n }\r\n if (searchText) {\r\n arr = getSearchHandle(searchText, arr);\r\n }\r\n setBankList(arr);\r\n setFilteredList(arr);\r\n let pc = Math.ceil(arr.length / pageSize);\r\n setPageCount(pc);\r\n }\r\n\r\n const setListData = (resp) => {\r\n if (statusFilter === 'All') {\r\n return resp;\r\n }\r\n let arr = [];\r\n for (let i = 0; i < resp.length; i++) {\r\n if (resp[i].status === statusFilter) {\r\n arr.push(resp[i]);\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n const fetchSettlement = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'Status': statusFilter\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortMerchantBankName == \"1\") {\r\n data['SortingOn'] = 'MerchantBankName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortMerchantBankName == \"2\") {\r\n data['SortingOn'] = 'MerchantBankName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortMerchantAccountNo == \"1\") {\r\n data['SortingOn'] = 'MerchantAccountNo';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortMerchantAccountNo == \"2\") {\r\n data['SortingOn'] = 'MerchantAccountNo';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCommissionAmount == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCommissionAmount == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/Settlement/CollectionSettlementList', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setTotalList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setRefresh(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const approve = (trans) => {\r\n setOpenApproveModal(true);\r\n setCoreTransId(null);\r\n setApproveObj(trans);\r\n }\r\n\r\n const closeApproveModal = () => {\r\n setApproveObj(null);\r\n setError({});\r\n setCoreTransId(null);\r\n setValues(initialState);\r\n setOpenApproveModal(false);\r\n // if (settleBankList && settleBankList.length) {\r\n // setSettleBankId(settleBankList[0].key);\r\n // }\r\n }\r\n\r\n const setApproveReason = (reason) => {\r\n setValues({...values, approveReason: reason});\r\n }\r\n\r\n const approvePayment = () => {\r\n const validationErrors = validate(values);\r\n setError(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let settleIds = [];\r\n let topUpSettlementIds = [];\r\n if (\r\n approveObj.settlementIds &&\r\n approveObj.settlementIds.length\r\n ) {\r\n settleIds = approveObj.settlementIds.map(i => Number(i));\r\n }\r\n if (\r\n approveObj.topUPSettlementIds &&\r\n approveObj.topUPSettlementIds.length\r\n ) {\r\n topUpSettlementIds = approveObj.topUPSettlementIds.map(i => Number(i));\r\n }\r\n var data = {\r\n \"SettlementIds\": settleIds,\r\n \"SettlementAmout\": Number(approveObj.amount),\r\n \"Description\": values.approveReason,\r\n \"Status\": \"Approved\",\r\n \"UserId\": getUserId(),\r\n \"MerchantId\": Number(approveObj.merchantId),\r\n 'CorePaymentTransactionId': coreTransId,\r\n \"TopUPSettlementIds\": topUpSettlementIds,\r\n \"TopUpAmount\": approveObj.topUpAmount ? Number(approveObj.topUpAmount) : 0\r\n }\r\n setModalLoading(true);\r\n let url = '/api/Settlement/SettlementApproveReject';\r\n postMethod(url, JSON.stringify(data), 'post')\r\n .then(res => {\r\n setModalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n notifySuccess('Approved Successfuly');\r\n closeApproveModal();\r\n fetchSettlement();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in approving';\r\n closeApproveModal();\r\n notifyFailed(errorMsg);\r\n fetchSettlement();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in approving';\r\n notifyFailed(errorMsg);\r\n closeApproveModal();\r\n fetchSettlement();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n closeApproveModal();\r\n fetchSettlement();\r\n }\r\n }).catch(err => {\r\n setModalLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n closeApproveModal();\r\n fetchSettlement();\r\n });\r\n }\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.approveReason) {\r\n errors.approveReason = 'Approval reason is required';\r\n }\r\n if (!approveObj || !approveObj.settlementIds) {\r\n errors.settlementId = 'Settlement bankid not found';\r\n }\r\n if (!coreTransId) {\r\n errors.coreTransId = 'Please provide core banking transaction id';\r\n }\r\n return errors;\r\n }\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const reloadListHandle = () => {\r\n fetchSettlement();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n Status\r\n \r\n    \r\n\r\n
\r\n changeStatus(e.target.value)}\r\n >\r\n {STATUS.map(c => \r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n\r\n \r\n \r\n

\r\n Approve Payment\r\n

\r\n
\r\n \r\n
\r\n {approveObj ?\r\n
\r\n {/*

\r\n Do you want to approve {approveObj.merchantName}'s payment ?\r\n

*/}\r\n \r\n \r\n Transaction Details\r\n
\r\n
\r\n Merchant Name - \r\n \r\n {approveObj.merchantName}\r\n \r\n \r\n
\r\n
\r\n \r\n Amount - {getAmt(approveObj.amount)}\r\n \r\n
\r\n
\r\n \r\n Settlement Bank Account No - {approveObj.settlementAccountNo}\r\n \r\n
\r\n
\r\n \r\n Merchant Bank Name - {approveObj.merchantBankName}\r\n \r\n
\r\n
\r\n \r\n Merchant Account No - {approveObj.merchantAccountNo}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n setApproveReason(e.target.value)}\r\n />\r\n {errors.approveReason &&
\r\n * {errors.approveReason}\r\n
}\r\n setCoreTransId(e.target.value)}\r\n />\r\n {errors.coreTransId &&
\r\n * {errors.coreTransId}\r\n
}\r\n
\r\n {' '}\r\n \r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortMerchantBankName, 'sortMerchantBankName')}>\r\n Merchant Bank\r\n \r\n sortHandle(sort.sortMerchantAccountNo, 'sortMerchantAccountNo')}>\r\n Merchant BBAN\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n sortHandle(sort.sortCommissionAmount, 'sortCommissionAmount')}>\r\n Fees\r\n \r\n StatusActions
\r\n {mmo.merchantName}\r\n {mmo.merchantBankName}{mmo.merchantAccountNo}{getAmt(mmo.amount)}{getAmt(mmo.commissionAmount)}{statusFormat(mmo.status)}\r\n { \r\n mmo.status == \"Pending\" &&\r\n approve(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\" \r\n title=\"Send to Merchant\">\r\n \r\n \r\n } \r\n
\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n\r\n}\r\n\r\nexport default SettlementList;","import React from \"react\";\r\nimport {\r\n Row,\r\n Col,\r\n\r\n} from \"reactstrap\";\r\n\r\nconst VisuallyLoader = (props) => {\r\n var colorCls = \"spinner-grow\";\r\n if (props.colorCls) {\r\n colorCls = colorCls + \" \" + props.colorCls;\r\n }\r\n\r\n var label = \"Fetching\";\r\n if (props.label) {\r\n label = props.label;\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default VisuallyLoader;","import React, { useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport { useParams } from 'react-router-dom'\r\nimport VisuallyLoader from \"components/VisuallyHiddenLoader/visuallyhiddenLoader\";\r\nimport swal from 'sweetalert';\r\nimport { SECRET_KEY } from \"../../appConfig\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { \r\n loginMethod, setUserId, getUserId,\r\n setLoginType, setUserName, setUserB64,\r\n checkSpace, postMethod \r\n} from \"services/httpServices\";\r\nimport { useHistory } from \"react-router\";\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nvar CryptoJS = require(\"crypto-js\");\r\n\r\nconst initialValue = {\r\n merchantName: '',\r\n label: '',\r\n uniqueNo: '',\r\n bank: {},\r\n mmo: {},\r\n amount: '',\r\n otp: '',\r\n accountType: null\r\n}\r\n\r\nconst LABEL = \"Please wait while we are checking...\";\r\n\r\nconst dummyValue = {\r\n merchantName: 'Merter Online',\r\n label: 'Meter Number',\r\n uniqueNo: '2432545',\r\n bank: {bankName: 'Axis', bban: '37469569843', userId: ''},\r\n mmo: {mmoName: 'Orange Money', mmoAccountNumber: '8465984369834', userId: ''},\r\n amount: '1000',\r\n otp: '',\r\n accountType: null,\r\n paymentLogId: '',\r\n subscriberId: '',\r\n merchantId: ''\r\n}\r\n\r\nconst PayWithVoucher = () => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [initialLoading, setinitialLoading] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const { id } = useParams();\r\n const { addToast } = useToasts();\r\n const [failed, setFailed] = React.useState(0);\r\n const [validationError, setValidError] = React.useState('');\r\n const history = useHistory();\r\n\r\n useEffect(()=> {\r\n // call an api to verify id\r\n // var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(id), 'my-secret-key@123').toString();\r\n // setinitialLoading(true);\r\n\r\n // setTimeout(() => {\r\n // setinitialLoading(false);\r\n // setValues(dummyValue);\r\n // // genOtp();\r\n // }, 3000);\r\n\r\n var ciphertext = getCypherText();\r\n // var bytes = CryptoJS.AES.decrypt(ciphertext, SECRET_KEY);\r\n // var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));\r\n checkId();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n setValidError(text);\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const getAmt = () => {\r\n let amt = Number(values.amount);\r\n return amt.toLocaleString();\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n }\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const genOtp = () => {\r\n // setTimeout(()=> {\r\n // setSpinner(false);\r\n // openModal('We have sent you an otp on your registered number');\r\n // }, 1000);\r\n\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n // \"UserId\": values.subscriberId,\r\n \"UserId\": getUserId(),\r\n \"OtpType\": \"TransactionOTP\"\r\n });\r\n let url = '/api/Transactions/Sendotp';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || 'Otp sent';\r\n // notifySuccess(msg);\r\n openModal(msg);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setSpinner(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons:\r\n {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: 'sweet-btn'\r\n }\r\n }\r\n })\r\n }\r\n\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setSpinner(true);\r\n genOtp();\r\n }\r\n\r\n const getCypherText = () => {\r\n // var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(id), SECRET_KEY).toString();\r\n // return ciphertext;\r\n\r\n var key = CryptoJS.enc.Utf8.parse('8080808080808080'); \r\n var iv = CryptoJS.enc.Utf8.parse('8080808080808080'); \r\n var ciphertext = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(id), SECRET_KEY, \r\n { \r\n keySize: 128 / 8, \r\n iv: iv, \r\n mode: CryptoJS.mode.CBC, \r\n padding: CryptoJS.pad.Pkcs7 \r\n }).toString(); \r\n return ciphertext; \r\n }\r\n\r\n const checkId = () => {\r\n var errorMsg = '';\r\n setinitialLoading(true);\r\n // let id = getCypherText();\r\n // let id = '7f59148f-6135-499d-1633-08d9267e1908';\r\n let url = '/api/Transactions/GetPaymentLogById/' + id;\r\n loginMethod(url, {}, 'post')\r\n .then(res => {\r\n setinitialLoading(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n setFailed(0);\r\n setCheckIdResp(res.data.result);\r\n genOtp();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in checking';\r\n notifyFailed(errorMsg);\r\n setFailed(1);\r\n } else {\r\n errorMsg = 'Unknown error in checking';\r\n notifyFailed(errorMsg);\r\n setFailed(1);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setFailed(1);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setinitialLoading(false);\r\n setFailed(1);\r\n });\r\n }\r\n\r\n const setCheckIdResp = (resp) => {\r\n var data = {\r\n amount: resp.amount,\r\n uniqueNo: resp.productId,\r\n subscriberId: resp.subscriberId,\r\n merchantId: resp.merchant ? resp.merchant.merchantId : null,\r\n merchantName: resp.merchant ? resp.merchant.merchantName : null,\r\n label: resp.merchant ? resp.merchant.labelKey : null,\r\n merchantUrl: resp.merchant ? resp.merchant.webSiteURL: null,\r\n bank: resp.bank,\r\n mmo: resp.mmo,\r\n paymentLogId: resp.paymentLogId\r\n }\r\n window.localStorage.setItem(\"token\", resp.token);\r\n var decoded = jwt_decode(resp.token);\r\n if (decoded && decoded.UserProfile) {\r\n var userProfile = JSON.parse(decoded.UserProfile);\r\n if (userProfile.hasOwnProperty('UserRole')) {\r\n setLoginType(userProfile.UserRole);\r\n }\r\n if (\r\n userProfile.hasOwnProperty('UserName') &&\r\n userProfile.UserName.length\r\n ) {\r\n setUserName(userProfile.UserName)\r\n }\r\n\r\n if (\r\n userProfile.hasOwnProperty('UserProfileImage') &&\r\n userProfile.UserProfileImage.length\r\n ) {\r\n setUserB64(userProfile.UserProfileImage);\r\n } else {\r\n setUserB64(null);\r\n }\r\n\r\n if (\r\n userProfile.hasOwnProperty('UserID') &&\r\n userProfile.UserID.length\r\n ) {\r\n setUserId(userProfile.UserID);\r\n }\r\n }\r\n window.localStorage.setItem(\"validUser\", true);\r\n setValues({...values, ...data});\r\n }\r\n\r\n const validate2 = function(inputs) {\r\n var errors = {};\r\n if (!inputs.accountType) {\r\n errors.accountType = 'Please select one account';\r\n }\r\n if (!inputs.amount) {\r\n errors.amount = 'Amount is required';\r\n }\r\n if (!inputs.subscriberId) {\r\n errors.id = 'Subscriber is required';\r\n }\r\n if (!inputs.otp) {\r\n errors.otp = 'Please enter OTP';\r\n }\r\n return errors;\r\n }\r\n\r\n\r\n const handleSubmitV2 = (e) => {\r\n e.preventDefault();\r\n // history.push({pathname: '/show-msg', state: {error: true, msg: 'Error in processing'}});\r\n const validationErrors = validate2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n verifyOtp();\r\n }\r\n }\r\n\r\n const verifyOtp = () => {\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n \"UserId\": getUserId(),\r\n \"OtpType\": \"TransactionOTP\",\r\n \"Otp\": values.otp\r\n });\r\n setLoading(true);\r\n let url = '/api/Transactions/verifyotp';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n saveTrans();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const saveTrans = () => {\r\n var data = new FormData();\r\n data.append('SubscriberId', values.subscriberId);\r\n data.append('Amount', values.amount);\r\n data.append('PaymentMethod', values.accountType);\r\n data.append('PaymentType', 'Merchant');\r\n data.append('PaymentTo', values.merchantName);\r\n data.append('AmountType', 'P');\r\n data.append('MerchantId', values.merchantId);\r\n data.append('ProductId', values.uniqueNo);\r\n data.append('MerchantPaymentLogId', values.paymentLogId);\r\n if (values.accountType === \"Bank\") {\r\n data.append('PaymentFrom', values.bank.bankName);\r\n data.append('PaymentMethodId', values.bank.bankId);\r\n } else if (values.accountType === \"MMO\") {\r\n data.append('PaymentFrom', values.mmo.mmoName);\r\n data.append('PaymentMethodId', values.mmo.mmoId);\r\n }\r\n let errorMsg = '';\r\n setLoading(true);\r\n postMethod('/api/Transactions/Save', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess('Payment added');\r\n sendToNext({error: false, msg: 'Payment added'});\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error while saving';\r\n notifyFailed(errorMsg);\r\n sendToNext({error: true, msg: errorMsg});\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in saving';\r\n notifyFailed(errorMsg);\r\n sendToNext({error: true, msg: errorMsg});\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n sendToNext({error: true, msg: errorMsg});\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n sendToNext({error: true, msg: errorMsg});\r\n });\r\n }\r\n\r\n const sendToNext = (obj) => {\r\n history.push({pathname: '/show-msg', state: obj});\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n

Make Payment

\r\n \r\n
\r\n
\r\n \r\n {initialLoading && \r\n
\r\n \r\n
}\r\n\r\n {!initialLoading && failed == 1 &&\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
}\r\n \r\n {!initialLoading && failed == 0 &&
\r\n \r\n \r\n Payment Details\r\n
\r\n
\r\n Payment To - {values.merchantName}\r\n
\r\n
\r\n {values.label} - {values.uniqueNo}\r\n
\r\n
\r\n Amount - {getAmt()}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n OTP\r\n \r\n
\r\n \r\n \r\n Resend\r\n    \r\n {spinner && \r\n
\r\n \r\n
}\r\n
\r\n
\r\n \r\n \r\n
\r\n *\r\n we have sent you an OTP on your registered mobile number / email\r\n
\r\n
\r\n {errors.otp &&
\r\n * {errors.otp}\r\n
}\r\n
\r\n \r\n
\r\n\r\n \r\n Make Payment using\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {values.accountType && \r\n {values.accountType === \"Bank\" &&\r\n \r\n Bank Details\r\n
\r\n
\r\n Bank Name - {values.bank.bankName}\r\n
\r\n
\r\n Account Number - {values.bank.bban}\r\n
\r\n
\r\n\r\n }\r\n\r\n {values.accountType === \"MMO\" && \r\n MMO Details\r\n
\r\n
\r\n MMO Name - {values.mmo.mmoName}\r\n
\r\n
\r\n Account Number - {values.mmo.mmoAccountNumber}\r\n \r\n
\r\n
\r\n }\r\n
}\r\n\r\n \r\n {/* \r\n
\r\n \r\n
\r\n */}\r\n {values.accountType && \r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PayWithVoucher","import React, { useEffect } from \"react\";\r\n\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Badge,\r\n Col\r\n} from \"reactstrap\";\r\n\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getUserId, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport moment from \"moment\";\r\nimport { subsStatus, btnCss, iconCss } from \"../../appConfig\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\n\r\nconst STATUS = subsStatus;\r\n\r\nconst sortIS = {\r\n sortPaymentTo: 0,\r\n sortPaymentFrom: 0,\r\n sortCreatedAt: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortStatus: 0,\r\n sortReferenceId: 0,\r\n sortPaymentType: 0\r\n};\r\n\r\nconst TopUpHistory = () => {\r\n\r\n const [transList, setTransList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [statusFilter, setStatusFilter] = React.useState(STATUS[0].key);\r\n const [totalList, setTotalList] = React.useState([]);\r\n const { addToast } = useToasts();\r\n const [amount, setAmount] = React.useState('');\r\n const [balanceLoading, setBalLoading] = React.useState(false);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n\r\n // useEffect(() => {\r\n // fetchTrans();\r\n // fetchBalance();\r\n // }, []);\r\n\r\n // React.useEffect(() => {\r\n // setListDataWrapper(totalList);\r\n // }, [statusFilter]);\r\n\r\n // React.useEffect(()=> {\r\n // if (refresh) {\r\n // reloadListHandle();\r\n // }\r\n // }, [refresh])\r\n\r\n React.useEffect(() => {\r\n fetchBalance();\r\n }, []);\r\n\r\n React.useEffect(()=> {\r\n fetchTrans();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchTrans();\r\n }\r\n }\r\n }, [statusFilter]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchTrans();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchTrans();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n fetchBalance();\r\n if (currentPage == 0) {\r\n fetchTrans();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const getSearchHandle = (val, blist) => {\r\n let filteredList = [];\r\n let transList = blist;\r\n for (let i = 0; i < transList.length; i++) {\r\n if (\r\n (transList[i].paymentFrom.toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase())) ||\r\n (transList[i].paymentTo.toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()))\r\n ) {\r\n filteredList.push(transList[i]);\r\n }\r\n }\r\n return filteredList;\r\n }\r\n\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const handleClick = (e, index) => {\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n }\r\n\r\n const changeStatus = (val) => {\r\n var value = val;\r\n setStatusFilter(value);\r\n }\r\n\r\n const setListDataWrapper = (resp) => {\r\n let arr = setListData(resp);\r\n if (arr && arr.length) {\r\n setLoading(false);\r\n }\r\n if (searchText) {\r\n arr = getSearchHandle(searchText, arr);\r\n }\r\n setTransList(arr);\r\n setFilteredList(arr);\r\n let pc = Math.ceil(arr.length / pageSize);\r\n setPageCount(pc);\r\n }\r\n\r\n const setListData = (resp) => {\r\n\r\n let arr = [];\r\n if (statusFilter === 'All') {\r\n return resp;\r\n }\r\n for (let i = 0; i < resp.length; i++) {\r\n if (resp[i].status === statusFilter) {\r\n arr.push(resp[i]);\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n const getPaymentType = (type) => {\r\n let str = type;\r\n if (type == 'topup') {\r\n str = 'Top Up'\r\n } else if (type == 'BalanceTransfer') {\r\n str = 'Balance Transfer';\r\n } else if (type == 'Merchant') {\r\n str = 'Merchant Payment';\r\n } else if (type == 'WalletPayment') {\r\n str = 'Wallet Payment';\r\n } else if (type == 'CashTopUp') {\r\n str = 'Cash Top Up';\r\n }\r\n return str;\r\n };\r\n\r\n const fetchTrans = async () => {\r\n let errorMsg = '';\r\n const userId = getUserId();\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'Status': statusFilter,\r\n 'PaymentMethod': 'Voucher'\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortPaymentTo == \"1\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentTo == \"2\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPaymentFrom == \"1\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentFrom == \"2\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPaymentType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod(\r\n '/api/Transactions/SubscriberTransaction/' , \r\n data,\r\n 'post'\r\n ).then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setTotalList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchBalance = () => {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n setBalLoading(true);\r\n postMethod('/api/Subscriber/GetByUserId/' + id, {}, 'post')\r\n .then(res => {\r\n setBalLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (res.data.result.hasOwnProperty('balanceAmount')) {\r\n setAmount(res.data.result.balanceAmount);\r\n } else {\r\n setAmount(0);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setBalLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const getAmt = (amt) => {\r\n return Number(amt).toLocaleString();\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s)=> s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const showBal = (bal) => {\r\n return Number(bal).toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n Available Balance : \r\n
\r\n {balanceLoading && \r\n
\r\n
\r\n
\r\n }\r\n {!balanceLoading && \r\n
\r\n {showBal(amount)}\r\n
\r\n }\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n Status\r\n \r\n    \r\n
\r\n changeStatus(e.target.value)}\r\n >\r\n {STATUS.map(c => \r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {/* */}\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortPaymentTo, 'sortPaymentTo')}>\r\n Payment To\r\n \r\n sortHandle(sort.sortPaymentFrom, 'sortPaymentFrom')}>\r\n Payment From\r\n \r\n sortHandle(sort.sortPaymentType, 'sortPaymentType')}>\r\n Payment Type\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Smart Pay Id\r\n \r\n sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\r\n Date\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n TopUp Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Fees Amount\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n
\r\n {mmo.paymentTo}\r\n {mmo.paymentFrom}{getPaymentType(mmo.paymentType)}{mmo.referenceId}{moment(mmo.createdAt).format('lll')}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{statusFormat(mmo.status)}
\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\nexport default TopUpHistory;","import React from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nconst SHOWMSG = (props) => {\r\n const history = useHistory();\r\n\r\n var msg = '';\r\n var error = false;\r\n if (props.location && props.location.state) {\r\n error = props.location.state.error;\r\n msg = props.location.state.msg;\r\n }\r\n\r\n const gotoLogin = (e) => {\r\n e.preventDefault();\r\n history.push('/');\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n

Welcome !

\r\n \r\n
\r\n \r\n \r\n {!error ? : \r\n }\r\n \r\n \r\n \r\n {msg}\r\n \r\n\r\n {!props.login && \r\n \r\n \r\n gotoLogin(e)} id=\"tag\" href=\"#\">Login\r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default SHOWMSG;","import React from \"react\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getLoginType, getUserId, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {btnCss, iconCss} from \"../../appConfig\";\r\nimport moment from \"moment\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\n\r\n\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Col,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader,\r\n Badge\r\n} from \"reactstrap\";\r\nimport { DayEndReportStatus } from \"appConfig\";\r\n\r\nconst STATUS = DayEndReportStatus;\r\n\r\nconst sortIS = {\r\n sortPaymentMethodName: 0,\r\n sortCreatedAt: 0,\r\n sortProductId: 0,\r\n sortAmount: 0,\r\n sortCommissionAmount: 0,\r\n sortReferenceId: 0\r\n};\r\n\r\nconst MerchantPaymentList = () => {\r\n const [banklist, setBankList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [statusFilter, setStatusFilter] = React.useState(STATUS[0].key);\r\n const [totalList, setTotalList] = React.useState([]);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n // React.useEffect(() => {\r\n // // fetch mobilemoney operator\r\n // fetchSettlement();\r\n // }, []);\r\n\r\n // React.useEffect(() => {\r\n // setListDataWrapper(totalList);\r\n // }, [statusFilter]);\r\n\r\n // React.useEffect(()=> {\r\n // if (refresh) {\r\n // reloadListHandle();\r\n // }\r\n // }, [refresh])\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n fetchSettlement();\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchSettlement();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSettlement();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchSettlement();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSettlement();\r\n }\r\n }\r\n }, [statusFilter]);\r\n\r\n\r\n\r\n const handleClick = (e, index) => {\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n };\r\n\r\n const changeStatus = (val) => {\r\n var value = val;\r\n setStatusFilter(value);\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s)=> s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n const getSearchHandle = (val, blist) => {\r\n let filteredList = [];\r\n let banklist = blist;\r\n for (let i = 0; i < banklist.length; i++) {\r\n if (\r\n ( banklist[i].paymentMethodName &&\r\n banklist[i].paymentMethodName.toString()\r\n .trim()\r\n .toLowerCase()\r\n .includes(val.trim().toLowerCase()))\r\n ) {\r\n filteredList.push(banklist[i]);\r\n }\r\n }\r\n return filteredList;\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const getAmt = (amt) => {\r\n return Number(amt).toLocaleString();\r\n }\r\n\r\n const setListDataWrapper = (resp) => {\r\n let arr = setListData(resp);\r\n if (arr && arr.length) {\r\n setLoading(false);\r\n }\r\n if (searchText) {\r\n arr = getSearchHandle(searchText, arr);\r\n }\r\n setBankList(arr);\r\n setFilteredList(arr);\r\n let pc = Math.ceil(arr.length / pageSize);\r\n setPageCount(pc);\r\n }\r\n\r\n const setListData = (resp) => {\r\n let arr = [];\r\n if (statusFilter === 'All') {\r\n return resp;\r\n }\r\n for (let i = 0; i < resp.length; i++) {\r\n if (resp[i].status === statusFilter) {\r\n arr.push(resp[i]);\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n const fetchSettlement = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'Status': statusFilter\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortPaymentMethodName == \"1\") {\r\n data['SortingOn'] = 'PaymentMethodName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentMethodName == \"2\") {\r\n data['SortingOn'] = 'PaymentMethodName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortProductId == \"1\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortProductId == \"2\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCommissionAmount == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCommissionAmount == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n }\r\n let url = '/api/Settlement/MerchantStatement/'\r\n let loginType = getLoginType()\r\n if(loginType === \"Agent\") {\r\n url = '/api/transactions/SuperAgentTransaction'\r\n } else {\r\n url = '/api/Settlement/MerchantStatement/'\r\n }\r\n let id = getUserId();\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setTotalList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n Status\r\n \r\n    \r\n\r\n
\r\n changeStatus(e.target.value)}\r\n >\r\n {STATUS.map(c => \r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortPaymentMethodName, 'sortPaymentMethodName')}>\r\n Payment From\r\n \r\n sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\r\n Date\r\n \r\n sortHandle(sort.sortProductId, 'sortProductId')}>\r\n Product Id\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Smart Pay Id\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n sortHandle(sort.sortCommissionAmount, 'sortCommissionAmount')}>\r\n Fees\r\n \r\n Status
\r\n {mmo.paymentMethodName}\r\n {moment(mmo.createdAt).format('lll')}{mmo.productId ? mmo.productId : '--'}{mmo.referenceId}{getAmt(mmo.amount)}{mmo.commissionAmount}{statusFormat(mmo.status)}
\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n\r\n}\r\n\r\nexport default MerchantPaymentList;","import React, { useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Container,\r\n Row,\r\n Col,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Table,\r\n Badge,\r\n Label,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport Header from \"components/Headers/Header\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { collBankStatus } from \"appConfig\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\n\r\nconst initialValue = [\r\n { name: \"Keanu Reeves\", profession: \"Actor\" },\r\n { name: \"Lionel Messi\", profession: \"Football Player\" },\r\n { name: \"Cristiano Ronaldo\", profession: \"Football Player\" },\r\n { name: \"Jack Nicklaus\", profession: \"Golf Player\" },\r\n];\r\n\r\nconst STATUS = collBankStatus;\r\n\r\nconst SearchTransaction = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [error, setError] = React.useState(null);\r\n const [response, setResponse] = React.useState({});\r\n const [isPOS, setIsPOS] = useState(true);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const [people, setPeople] = React.useState(initialValue);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const submit = () => {\r\n if (!searchText) {\r\n setError(\"Please Enter Transaction ID\");\r\n setLoading(false);\r\n setResponse({});\r\n } else {\r\n setError(null);\r\n setLoading(true);\r\n setResponse({});\r\n fetchTrans(searchText);\r\n }\r\n };\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? ob.value : val;\r\n };\r\n\r\n const fetchTrans = async (id) => {\r\n let errorMsg = \"\";\r\n const url = isPOS\r\n ? \"/api/Reports/TrackPOSTransaction/\"\r\n : \"/api/Reports/TrackTransaction/\";\r\n getMethod(url + id, \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result) {\r\n setError(\"No transaction found\");\r\n } else {\r\n setResponse(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n setError(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n setError(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n setError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setError(errorMsg);\r\n });\r\n };\r\n\r\n const getAmt = (amount) => {\r\n let amt = Number(amount);\r\n return amt.toLocaleString();\r\n };\r\n\r\n const reset = () => {\r\n setLoading(false);\r\n setResponse({});\r\n setSearchText(\"\");\r\n };\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n {/* Page content */}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n    \r\n \r\n \r\n \r\n \r\n \r\n {loading && }\r\n\r\n {error && (\r\n
{error}
\r\n )}\r\n\r\n {response && response.transactionId && (\r\n
\r\n \r\n \r\n Transaction Details\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Transaction ID :\r\n \r\n \r\n \r\n {response.transactionId}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Payment From : \r\n \r\n \r\n \r\n {response.transationFrom}\r\n \r\n \r\n \r\n \r\n \r\n Payment To :\r\n \r\n \r\n \r\n {response.transationTo}\r\n \r\n \r\n \r\n \r\n \r\n Amount :\r\n \r\n \r\n \r\n Le {getAmt(response.amount)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isPOS\r\n ? \"Merchant Commission:\"\r\n : \"Smart Pay Fees\"}\r\n \r\n \r\n \r\n \r\n Le {getAmt(response.fees)}\r\n \r\n \r\n {isPOS && (\r\n <>\r\n \r\n \r\n \r\n POS Serial Number:\r\n \r\n \r\n \r\n {response.posSerialNumber}\r\n \r\n \r\n \r\n \r\n \r\n GPS Location:\r\n \r\n \r\n \r\n {response.gpsLocation}\r\n \r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n {response.date}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Status :\r\n \r\n \r\n \r\n \r\n {statusFormat(response.currentStatus)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Description :\r\n \r\n \r\n \r\n {response.description}\r\n \r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SearchTransaction;\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { paymentType } from \"services/util\";\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\nconst PAYMENT_TYPE = paymentType;\r\n\r\n\r\nconst CollectionReport = (props) => {\r\n\r\n const [merchants, setMerchant] = React.useState([]);\r\n const [merchantFilter, setMerchantFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [bank, setBank] = React.useState([]);\r\n const [bankCode, setBankCodeFilter] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [paymentType, setPaymentType] = React.useState('');\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n setMerchant(props.merchant);\r\n }, [props.merchant]);\r\n\r\n useEffect(() => {\r\n setBank(props.bank);\r\n }, [props.bank]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n const changeMerchant = (val) => {\r\n setMerchantFilter(val);\r\n }\r\n\r\n const changeBankCode = (val) => {\r\n setBankCodeFilter(val);\r\n }\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n if (paymentType == 'Bank' && bankCode == 0) {\r\n error.bankCode = 'Please select bank';\r\n }\r\n // if (!merchantFilter) {\r\n // error.merchant = 'Please select merchant';\r\n // }\r\n return error;\r\n }\r\n\r\n const changePaymentFilter = (val) => {\r\n setPaymentType(val);\r\n setBankCodeFilter('');\r\n }\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n if (paymentType != '') {\r\n data['PaymentMethod'] = paymentType;\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"1\") {\r\n data['SortingOn'] = 'SubscriberMobileNumber';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"2\") {\r\n data['SortingOn'] = 'SubscriberMobileNumber';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortUpdatedat == \"1\") {\r\n data['SortingOn'] = 'Updatedat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortUpdatedat == \"2\") {\r\n data['SortingOn'] = 'Updatedat';\r\n data['IsDescending'] = true;\r\n }\r\n postMethod('/api/Reports/CollectionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n if (paymentType != '') {\r\n data['PaymentMethod'] = paymentType;\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"1\") {\r\n data['SortingOn'] = 'SubscriberMobileNumber';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"2\") {\r\n data['SortingOn'] = 'SubscriberMobileNumber';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortUpdatedat == \"1\") {\r\n data['SortingOn'] = 'Updatedat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortUpdatedat == \"2\") {\r\n data['SortingOn'] = 'Updatedat';\r\n data['IsDescending'] = true;\r\n }\r\n postMethod('/api/Reports/CollectionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n const getLoading = () => {\r\n let str = false;\r\n if (loading && props.currentPage == 1) {\r\n str = true;\r\n }\r\n return str;\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Start Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n Merchant\r\n \r\n \r\n \r\n \r\n \r\n changeMerchant(e.uid)}\r\n />\r\n \r\n {/* \r\n
\r\n changeMerchant(e.target.value)}\r\n >\r\n \r\n {merchants.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
*/}\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Payment type\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changePaymentFilter(e.target.value)}\r\n >\r\n \r\n {PAYMENT_TYPE.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n\r\n {paymentType == 'Bank' &&\r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeBankCode(e.target.value)}\r\n >\r\n \r\n {bank.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.bankCode &&
\r\n * {errors.bankCode}\r\n
}\r\n \r\n
\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {/*    */}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default CollectionReport;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\n\r\nconst sortIS = {\r\n sortCreatedat: 0,\r\n sortMerchantName: 0,\r\n sortBank_MMOCode: 0,\r\n sortSubscriberMobileNumber: 0,\r\n sortAmount: 0,\r\n sortProductId: 0,\r\n sortReferenceId: 0,\r\n sortStatus: 0,\r\n sortUpdatedat: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '280px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst CollectionReportTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\r\n Instruction Date/Time\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortBank_MMOCode, 'sortBank_MMOCode')}>\r\n Bank/MMO Code\r\n \r\n sortHandle(sort.sortSubscriberMobileNumber, 'sortSubscriberMobileNumber')}>\r\n Customer UID\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Transaction Amount\r\n \r\n sortHandle(sort.sortProductId, 'sortProductId')}>\r\n Reference Code\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Transaction Ref\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n sortHandle(sort.sortUpdatedat, 'sortUpdatedat')}>\r\n Clearing Date/Time\r\n \r\n
\r\n {moment(mmo.createdat).format('lll')}\r\n {mmo.merchantName}{mmo.bank_MMOCode}{mmo.subscriberMobileNumber}{getAmt(mmo.amount)}{mmo.productId}{mmo.referenceId}{mmo.status}{mmo.updatedat ? moment(mmo.updatedat).format('lll') : '--'}
\r\n \r\n )\r\n}\r\n\r\nexport default CollectionReportTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\n\r\n\r\nconst CollectionSummaryReport = (props) => {\r\n\r\n const [merchants, setMerchant] = React.useState([]);\r\n const [merchantFilter, setMerchantFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [bank, setBank] = React.useState([]);\r\n const [bankCode, setBankCodeFilter] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n setMerchant(props.merchant);\r\n }, [props.merchant]);\r\n\r\n useEffect(() => {\r\n setBank(props.bank);\r\n }, [props.bank]);\r\n\r\n useEffect(()=> {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(()=> {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(()=> {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(()=> {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n\r\n // useEffect(() => {\r\n // if (\r\n // endDate &&\r\n // moment(new Date(endDate)).isBefore(new Date(startDate)) \r\n // ) {\r\n // setEndDate('');\r\n // }\r\n // }, [startDate]);\r\n\r\n const changeMerchant = (val) => {\r\n setMerchantFilter(val);\r\n }\r\n\r\n const changeBankCode = (val) => {\r\n setBankCodeFilter(val);\r\n }\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n // if (!merchantFilter) {\r\n // error.merchant = 'Please select merchant';\r\n // }\r\n return error;\r\n }\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/Reports/DailyCollectionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/Reports/DailyCollectionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n \r\n \r\n \r\n \r\n changeMerchant(e.uid)}\r\n />\r\n \r\n {/* \r\n
\r\n changeMerchant(e.target.value)}\r\n >\r\n \r\n {merchants.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
*/}\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeBankCode(e.target.value)}\r\n >\r\n \r\n {bank.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n
\r\n\r\n {/*    */}\r\n\r\n \r\n \r\n\r\n \r\n \r\n Select Date\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default CollectionSummaryReport;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortCreatedat: 0,\r\n sortMerchantName: 0,\r\n sortBank_MMOCode: 0,\r\n sortAmount: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '240px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst CollectionSummaryReportTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\r\n Date\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortBank_MMOCode, 'sortBank_MMOCode')}>\r\n Bank Code\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Total Amount\r\n \r\n
\r\n {moment(mmo.createdat).format('MMM Do, YYYY')}\r\n {mmo.merchantName}{mmo.bank_MMOCode}{getAmt(mmo.amount)}
\r\n \r\n )\r\n}\r\n\r\nexport default CollectionSummaryReportTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\n\r\n\r\nconst SettlementSummaryReport = (props) => {\r\n\r\n const [merchants, setMerchant] = React.useState([]);\r\n const [merchantFilter, setMerchantFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [bank, setBank] = React.useState([]);\r\n const [bankCode, setBankCodeFilter] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n setMerchant(props.merchant);\r\n }, [props.merchant]);\r\n\r\n useEffect(() => {\r\n setBank(props.bank);\r\n }, [props.bank]);\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n\r\n const changeMerchant = (val) => {\r\n setMerchantFilter(val);\r\n }\r\n\r\n const changeBankCode = (val) => {\r\n setBankCodeFilter(val);\r\n }\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n // if (!endDate) {\r\n // error.endDate = 'Please select end date';\r\n // }\r\n // if (!merchantFilter) {\r\n // error.merchant = 'Please select merchant';\r\n // }\r\n return error;\r\n }\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n }\r\n postMethod('/api/Reports/DailySettlementReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n\r\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n }\r\n postMethod('/api/Reports/DailySettlementReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n \r\n \r\n \r\n \r\n changeMerchant(e.uid)}\r\n />\r\n \r\n {/* \r\n
\r\n changeMerchant(e.target.value)}\r\n >\r\n \r\n {merchants.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
*/}\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeBankCode(e.target.value)}\r\n >\r\n \r\n {bank.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n
\r\n\r\n {/*    */}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n Select Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default SettlementSummaryReport;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortCreatedAt: 0,\r\n sortMerchantName: 0,\r\n sortPayingBankCode: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '235px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst SettlementSummaryReportTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n \r\n
sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\r\n Date\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortPayingBankCode, 'sortPayingBankCode')}>\r\n Bank Code\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Total Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Fees Amount\r\n \r\n
\r\n {moment(mmo.createdat).format('MMM Do, YYYY')}\r\n {mmo.merchantName}{mmo.payingBankCode}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}
\r\n \r\n )\r\n}\r\n\r\nexport default SettlementSummaryReportTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { paymentType } from \"services/util\";\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\nconst PAYMENT_TYPE = paymentType;\r\nconst SettlementReport = (props) => {\r\n\r\n const [merchants, setMerchant] = React.useState([]);\r\n const [merchantFilter, setMerchantFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [bank, setBank] = React.useState([]);\r\n const [bankCode, setBankCodeFilter] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [paymentType, setPaymentType] = React.useState('');\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n setMerchant(props.merchant);\r\n }, [props.merchant]);\r\n\r\n useEffect(() => {\r\n setBank(props.bank);\r\n }, [props.bank]);\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n\r\n const changeMerchant = (val) => {\r\n setMerchantFilter(val);\r\n }\r\n\r\n const changeBankCode = (val) => {\r\n setBankCodeFilter(val);\r\n }\r\n\r\n const changePaymentFilter = (val) => {\r\n setPaymentType(val);\r\n setBankCodeFilter('');\r\n }\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n if (paymentType == 'Bank' && bankCode == 0) {\r\n error.bankCode = 'Please select bank';\r\n }\r\n // if (!merchantFilter) {\r\n // error.merchant = 'Please select merchant';\r\n // }\r\n return error;\r\n }\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n if (paymentType != '') {\r\n data['PaymentMethod'] = paymentType;\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReceivingBank == \"1\") {\r\n data['SortingOn'] = 'ReceivingBank';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReceivingBank == \"2\") {\r\n data['SortingOn'] = 'ReceivingBank';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortUpdatedAt == \"1\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortUpdatedAt == \"2\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n\r\n postMethod('/api/Reports/SettlementReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\"\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantProfileId'] = merchantFilter;\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['BankProfileId'] = bankCode;\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'Createdat';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\r\n data['SortingOn'] = 'Bank_MMOCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\r\n data['SortingOn'] = 'PayingBankCode';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReceivingBank == \"1\") {\r\n data['SortingOn'] = 'ReceivingBank';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReceivingBank == \"2\") {\r\n data['SortingOn'] = 'ReceivingBank';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortUpdatedAt == \"1\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortUpdatedAt == \"2\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n if (paymentType != '') {\r\n data['PaymentMethod'] = paymentType;\r\n }\r\n\r\n postMethod('/api/Reports/SettlementReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n \r\n \r\n \r\n \r\n changeMerchant(e.uid)}\r\n />\r\n \r\n {/* \r\n
\r\n changeMerchant(e.target.value)}\r\n >\r\n \r\n {merchants.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
*/}\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Payment type\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changePaymentFilter(e.target.value)}\r\n >\r\n \r\n {PAYMENT_TYPE.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n {paymentType == 'Bank' &&\r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeBankCode(e.target.value)}\r\n >\r\n \r\n {bank.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.bankCode &&
\r\n * {errors.bankCode}\r\n
}\r\n \r\n
\r\n \r\n }\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default SettlementReport;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, iconCss, ReportStatus } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\n\r\nconst sortIS = {\r\n sortCreatedAt: 0,\r\n sortMerchantName: 0,\r\n sortBank_MMOCode: 0,\r\n sortPayingBankCode: 0,\r\n sortReceivingBank: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortReferenceId: 0,\r\n sortStatus: 0,\r\n sortUpdatedAt: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '280px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst STATUS = ReportStatus;\r\n\r\n\r\nconst SettlementReportTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n return ob && ob.value ? ob.value : val \r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\r\n Instruction Date/Time\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortPayingBankCode, 'sortPayingBankCode')}>\r\n Paying Bank Code\r\n \r\n sortHandle(sort.sortReceivingBank, 'sortReceivingBank')}>\r\n Receving Bank Code\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Transaction Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Transaction Fees\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Transaction Ref\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n sortHandle(sort.sortUpdatedAt, 'sortUpdatedAt')}>\r\n Clearing Date/Time\r\n \r\n
\r\n {moment(mmo.createdat).format('lll')}\r\n {mmo.merchantName}{mmo.payingBankCode}{mmo.receivingBank}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{mmo.referenceId}{statusFormat(mmo.status)}{mmo.updatedAt ? moment(mmo.updatedAt).format('lll') : '--'}
\r\n \r\n )\r\n}\r\n\r\nexport default SettlementReportTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\nconst TransactionReport = (props) => {\r\n\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n return error;\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n\r\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n }\r\n \r\n postMethod('/api/reports/GetTransactionsReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec\r\n }\r\n\r\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data['SortingOn'] = 'ProductId';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n }\r\n \r\n postMethod('/api/reports/GetTransactionsReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Start Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n        \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*    */}\r\n\r\n \r\n )\r\n};\r\n\r\nexport default TransactionReport;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table,\r\n Badge\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, subsStatus } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortPaymentTo: 0,\r\n sortPaymentFrom: 0,\r\n sortReferenceId: 0,\r\n sortProductId: 0,\r\n sortCreatedAt: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortStatus: 0,\r\n sortPaymentMethod: 0,\r\n sortPaymentType: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '240px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst STATUS = subsStatus;\r\n\r\nconst TransactionReportTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(() => {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const getPaymentType = (type) => {\r\n let str = type;\r\n if (type == 'topup') {\r\n str = 'Top Up'\r\n } else if (type == 'BalanceTransfer') {\r\n str = 'Balance Transfer';\r\n } else if (type == 'Merchant') {\r\n str = 'Merchant Payment';\r\n } else if (type == 'WalletPayment') {\r\n str = 'Wallet Payment';\r\n } else if (type == 'CashTopUp') {\r\n str = 'Cash Top Up';\r\n }\r\n return str;\r\n };\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s)=> s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortPaymentMethod, 'sortPaymentMethod')}>\r\n Payment Type\r\n \r\n sortHandle(sort.sortPaymentTo, 'sortPaymentTo')}>\r\n Payment To\r\n \r\n sortHandle(sort.sortPaymentFrom, 'sortPaymentFrom')}>\r\n Payment From\r\n \r\n sortHandle(sort.sortPaymentMethod, 'sortPaymentMethod')}>\r\n Payment Using\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Smart Pay Id\r\n \r\n sortHandle(sort.sortProductId, 'sortProductId')}>\r\n Product Id\r\n \r\n sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\r\n Date\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Fees Amount\r\n \r\n \r\n Description\r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n
{getPaymentType(mmo.paymentType)}\r\n {mmo.paymentTo}\r\n {mmo.paymentFrom}{mmo.paymentMethod}{mmo.referenceId}{mmo.productId ? mmo.productId : '--'}{moment(mmo.createdAt).format('lll')}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{mmo.description}{statusFormat(mmo.status)}
\r\n \r\n )\r\n}\r\nexport default TransactionReportTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { bankPaymentType } from \"services/util\";\r\nimport { getMethod } from \"services/httpServices\";\r\n\r\nconst PAYMENT_TYPE = bankPaymentType;\r\n\r\nconst BankReport = (props) => {\r\n\r\n const [startDate, setStartDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const [bankId, setBankId] = React.useState('');\r\n const [paymentType, setPaymentType] = React.useState('');\r\n const [banklist, setBankList] = React.useState([]);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n useEffect(()=> {\r\n fetchBankList();\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n return error;\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n const changePaymentFilter = (val) => {\r\n setPaymentType(val);\r\n }\r\n\r\n const changeBank = (val) => {\r\n setBankId(val);\r\n }\r\n\r\n const fetchBankList = () => {\r\n let errorMsg = '';\r\n getMethod('/api/bankProfile/nonapiddllist', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setBankList(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching bank list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching bank list';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n // 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (bankId) {\r\n data['BankId'] = Number(bankId);\r\n }\r\n if (paymentType) {\r\n data['PaymentType'] = paymentType;\r\n }\r\n\r\n if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortDate == \"1\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortDate == \"2\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/Reports/BankTransactionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n // 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec\r\n }\r\n\r\n if (bankId) {\r\n data['BankId'] = Number(bankId);\r\n }\r\n if (paymentType) {\r\n data['PaymentType'] = paymentType;\r\n }\r\n\r\n if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data['SortingOn'] = 'PaymentFrom';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortDate == \"1\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortDate == \"2\") {\r\n data['SortingOn'] = 'UpdatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'FeesAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data['SortingOn'] = 'PaymentMethod';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'MerchantName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data['SortingOn'] = 'ReferenceId';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/Reports/BankTransactionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Select Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeBank(e.target.value)}\r\n >\r\n \r\n {banklist.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.bankId &&
\r\n * {errors.bankId}\r\n
}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Payment type\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changePaymentFilter(e.target.value)}\r\n >\r\n \r\n {PAYMENT_TYPE.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {/*    */}\r\n\r\n \r\n )\r\n};\r\n\r\nexport default BankReport;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, iconCss, ReportStatus } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\n\r\nconst sortIS = {\r\n sortPaymentFrom: 0,\r\n sortSubscriberName: 0,\r\n sortPaymentType: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortReferenceId: 0,\r\n sortMerchantName: 0,\r\n sortDate: 0,\r\n sortStatus: 0,\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '280px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst STATUS = ReportStatus;\r\n\r\n\r\nconst BankReportTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n return ob && ob.value ? ob.value : val \r\n };\r\n\r\n const getPaymentType = (type) => {\r\n if (type == 'topup') {\r\n return 'Top Up';\r\n } else if (type == 'Merchant') {\r\n return 'Merchant Payment';\r\n } else {\r\n return type;\r\n }\r\n\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortPaymentFrom, 'sortPaymentFrom')}>\r\n Bank Name\r\n \r\n sortHandle(sort.sortSubscriberName, 'sortSubscriberName')}>\r\n Subscriber Name\r\n \r\n sortHandle(sort.sortDate, 'sortDate')}>\r\n Date\r\n \r\n sortHandle(sort.sortPaymentType, 'sortPaymentType')}>\r\n Payment Type\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Transaction Fees\r\n \r\n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\r\n Transaction Ref\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n
{mmo.paymentFrom}{mmo.subscriberName}{moment(mmo.updatedAt).format('lll')}{getPaymentType(mmo.paymentType)}{mmo.merchantName ? mmo.merchantName : '--'}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{mmo.referenceId}{statusFormat(mmo.status)}
\r\n \r\n )\r\n}\r\n\r\nexport default BankReportTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\n\r\nconst MerchantCommission = (props) => {\r\n\r\n const [merchants, setMerchant] = React.useState([]);\r\n const [merchantFilter, setMerchantFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [bank, setBank] = React.useState([]);\r\n const [bankCode, setBankCodeFilter] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n /**====================== Redux Hook ========================= */\r\n\r\n useEffect(() => {\r\n setMerchant(props.merchant);\r\n }, [props.merchant]);\r\n\r\n useEffect(() => {\r\n setBank(props.bank);\r\n }, [props.bank]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n\r\n /**====================== File Function ========================= */\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const changeMerchant = (val) => {\r\n setMerchantFilter(val);\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n /**====================== Form Validation ========================= */\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**====================== API Calls ========================= */\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantId'] = Number(merchantFilter);\r\n }\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'UserName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'UserName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n } \r\n\r\n postMethod('/api/reports/MerchantCommissionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec\r\n }\r\n if (merchantFilter && merchantFilter != '0') {\r\n data['MerchantId'] = Number(merchantFilter);\r\n }\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data['SortingOn'] = 'UserName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data['SortingOn'] = 'UserName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n } \r\n postMethod('/api/reports/MerchantCommissionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Start Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n Merchant\r\n \r\n \r\n \r\n \r\n \r\n changeMerchant(e.key)}\r\n />\r\n \r\n {/* \r\n
\r\n changeMerchant(e.target.value)}\r\n >\r\n \r\n {merchants.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
*/}\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.merchant &&
\r\n * {errors.merchant}\r\n
}\r\n \r\n
\r\n \r\n\r\n
\r\n      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n}\r\n\r\nexport default MerchantCommission\r\n\r\n","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortCreatedat: 0,\r\n sortMerchantName: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '280px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n};\r\n\r\nconst MerchantCommissionTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n /**========================== Redux Hook ====================== */\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n /**========================== File Function ====================== */\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\r\n Instruction Date/Time\r\n \r\n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\r\n Merchant Name\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Transaction Amount\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Commission Amount\r\n \r\n
\r\n {moment(mmo.createdAt).format('lll')}\r\n {mmo.userName}{getAmt(mmo.paymentAmount)}{getAmt(mmo.commissionAmount)}
\r\n \r\n );\r\n}\r\nexport default MerchantCommissionTable;","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader, getAmt } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortCreatedat: 0,\r\n sortSubscriberName: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortBankName: 0,\r\n sortTransactionType: 0\r\n};\r\n\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '280px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n};\r\n\r\nconst WalletCommissionTable = (props) => {\r\n\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n /**========================== Redux Hook ====================== */\r\n\r\n useEffect(()=> {\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(()=> {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(()=> {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(()=> {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n /**=========================== File Function ======================= */\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const getTransactionType = (type) => {\r\n if (type === 'topup') {\r\n return 'Top Up';\r\n } \r\n return type;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {props.loading && \r\n \r\n }\r\n {!props.loading && !filteredList.length && \r\n \r\n }\r\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\r\n Instruction Date/Time\r\n \r\n sortHandle(sort.sortBankName, 'sortBankName')}>\r\n Bank Name\r\n \r\n sortHandle(sort.sortSubscriberName, 'sortSubscriberName')}>\r\n Subscriber Name\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Transaction Amount\r\n \r\n sortHandle(sort.sortTransactionType, 'sortTransactionType')}>\r\n Transaction Type\r\n \r\n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\r\n Commission Amount\r\n \r\n
\r\n {moment(mmo.createdAt).format('lll')}\r\n {mmo.bankName}{mmo.subscriberName}{getAmt(mmo.paymentAmount)}{getTransactionType(mmo.paymentType)}{getAmt(mmo.commissionAmount)}
\r\n \r\n );\r\n};\r\nexport default WalletCommissionTable;","import React, { useEffect } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\nconst WalletCommission = (props) => {\r\n\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [bank, setBank] = React.useState([]);\r\n const [bankCode, setBankCodeFilter] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [paymentType, setPaymentType] = React.useState('');\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n /**================================= Redux Hook ============================ */\r\n\r\n useEffect(() => {\r\n setBank(props.bank);\r\n }, [props.bank]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading])\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading])\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n\r\n /**================================= File Function ============================ */\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const changeBankCode = (val) => {\r\n setBankCodeFilter(val);\r\n }\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n }\r\n\r\n /**================================= Validation ============================ */\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**================================= API Calls ============================ */\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'CommissionUserType': 'Bank',\r\n 'PaymentType': 'topup'\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['UserIntId'] = Number(bankCode);\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBankName == \"1\") {\r\n data['SortingOn'] = 'BankName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBankName == \"2\") {\r\n data['SortingOn'] = 'BankName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortTransactionType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortTransactionType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n } \r\n\r\n\r\n postMethod('/api/reports/WalletCommissionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': 1,\r\n 'PerPage': props.totalRec,\r\n 'CommissionUserType': 'Bank',\r\n 'PaymentType': 'topup'\r\n }\r\n\r\n if (bankCode && bankCode != '0') {\r\n data['UserIntId'] = Number(bankCode);\r\n }\r\n\r\n if (props.sort && props.sort.sortCreatedat == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortBankName == \"1\") {\r\n data['SortingOn'] = 'BankName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortBankName == \"2\") {\r\n data['SortingOn'] = 'BankName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortTransactionType == \"1\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortTransactionType == \"2\") {\r\n data['SortingOn'] = 'PaymentType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n } \r\n\r\n postMethod('/api/reports/WalletCommissionReport', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n }).catch(err => {\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n props.errorReportData();\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Start Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeBankCode(e.target.value)}\r\n >\r\n \r\n {bank.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.bankCode &&
\r\n * {errors.bankCode}\r\n
}\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n};\r\nexport default WalletCommission;","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Container,\r\n Row,\r\n Col,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Table,\r\n Badge,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport Header from \"components/Headers/Header\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { collBankStatus } from \"appConfig\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport { postMethod } from \"services/httpServices\";\r\n\r\nconst initialValue = [\r\n { name: \"Keanu Reeves\", profession: \"Actor\" },\r\n { name: \"Lionel Messi\", profession: \"Football Player\" },\r\n { name: \"Cristiano Ronaldo\", profession: \"Football Player\" },\r\n { name: \"Jack Nicklaus\", profession: \"Golf Player\" },\r\n];\r\n\r\nconst STATUS = collBankStatus;\r\n\r\nconst EDSATransaction = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [error, setError] = React.useState(null);\r\n const [response, setResponse] = React.useState({});\r\n\r\n const { addToast } = useToasts();\r\n\r\n const [people, setPeople] = React.useState(initialValue);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const submit = () => {\r\n if (!searchText) {\r\n setError(\"Please Enter Transaction ID\");\r\n setLoading(false);\r\n setResponse({});\r\n } else {\r\n setError(null);\r\n setLoading(true);\r\n setResponse({});\r\n fetchTrans(searchText);\r\n }\r\n };\r\n\r\n \r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? ob.value : val;\r\n };\r\n\r\n const sendNotification = async (id) => {\r\n setLoading(true);\r\n let errorMsg = \"\";\r\n postMethod(\"/api/Transactions/SendNotificationEDSATransaction?transactionId=\" + id, {}, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n notifySuccess(\"Email and SMS sent again successfully\");\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n setLoading(false);\r\n setError(errorMsg);\r\n notifyFailed(\"Try Again After Sometime\");\r\n });\r\n };\r\n\r\n const fetchTrans = async (id) => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/Transactions/CheckEDSATransaction/\" + id, \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n \r\n // Success\r\n if (!res.data.content) {\r\n setError(\"No transaction found\");\r\n } else {\r\n setResponse(res.data.content);\r\n } \r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n setError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setError(errorMsg);\r\n });\r\n };\r\n\r\n const getAmt = (amount) => {\r\n let amt = Number(amount);\r\n return amt.toLocaleString();\r\n };\r\n\r\n const reset = () => {\r\n setLoading(false);\r\n setResponse({});\r\n setSearchText(\"\");\r\n };\r\n return (\r\n <>\r\n
\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n    \r\n \r\n \r\n \r\n\r\n {loading && }\r\n
\r\n {error &&
{error}
}\r\n\r\n {response && response?.transactionID && (\r\n
\r\n \r\n \r\n EDSA Transaction Details\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Transaction ID :\r\n \r\n \r\n \r\n {response.transactionID}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Meter Number: \r\n \r\n \r\n \r\n {response.meterNumber}\r\n \r\n \r\n \r\n \r\n \r\n Units :\r\n \r\n \r\n \r\n {response.units}\r\n \r\n \r\n \r\n \r\n \r\n Voucher PIN :\r\n \r\n \r\n \r\n {response.voucherPin}\r\n \r\n \r\n \r\n \r\n \r\n Amount :\r\n \r\n \r\n \r\n Le {getAmt(response.denomination)}\r\n \r\n \r\n \r\n \r\n \r\n Status :\r\n \r\n \r\n \r\n {statusFormat(response.statusDescription)}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EDSATransaction;","import React, { useEffect } from \"react\";\r\nimport { Button, Row, Col } from \"reactstrap\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport moment from \"moment\";\r\n\r\nconst PendingSettlementsReport = (props) => {\r\n const [startDate, setStartDate] = React.useState(\"\");\r\n const [endDate, setEndDate] = React.useState(\"\");\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading]);\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading]);\r\n\r\n useEffect(() => {\r\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\r\n setEndDate(\"\");\r\n }\r\n }, [startDate]);\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = \"Please select start date\";\r\n }\r\n if (!endDate) {\r\n error.endDate = \"Please select end date\";\r\n }\r\n return error;\r\n };\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n };\r\n\r\n const fetchReport = () => {\r\n // const validationErrors = validate();\r\n const validationErrors = {};\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let data = {\r\n Status: \"\",\r\n PageNumber: Number(props.currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n if (props.sort && props.sort.sortMerchantName == \"1\") {\r\n data[\"SortingOn\"] = \"MerchantName\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortBankName == \"1\") {\r\n data[\"SortingOn\"] = \"BankName\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortBankName == \"2\") {\r\n data[\"SortingOn\"] = \"BankName\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortAccountNo == \"1\") {\r\n data[\"SortingOn\"] = \"AccountNo\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortAccountNo == \"2\") {\r\n data[\"SortingOn\"] = \"AccountNo\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortAmountDue == \"1\") {\r\n data[\"SortingOn\"] = \"AmountDue\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortAmountDue == \"2\") {\r\n data[\"SortingOn\"] = \"AmountDue\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n\r\n postMethod(\r\n \"/api/reports/MerchantPendingSettlementReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n }\r\n };\r\n\r\n const fetchReportData = () => {\r\n // const validationErrors = validate();\r\n const validationErrors = {};\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n let errorMsg = \"\";\r\n let data = {\r\n Status: \"\",\r\n PageNumber: 1,\r\n PerPage: props.totalRec,\r\n };\r\n\r\n postMethod(\r\n \"/api/reports/MerchantPendingSettlementReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n })\r\n .catch((err) => {\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.errorReportData();\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Submit    \r\n {loading && submitButton && }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PendingSettlementsReport;\r\n","import React, { useEffect } from \"react\";\r\nimport { FormGroup, Input, Button, Row, Col } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nconst SubscriberBalanceAnalysisReport = (props) => {\r\n const [startDate, setStartDate] = React.useState(\"\");\r\n const [endDate, setEndDate] = React.useState(\"\");\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading]);\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading]);\r\n\r\n useEffect(() => {\r\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\r\n setEndDate(\"\");\r\n }\r\n }, [startDate]);\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = \"Please select start date\";\r\n }\r\n if (!endDate) {\r\n error.endDate = \"Please select end date\";\r\n }\r\n return error;\r\n };\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n };\r\n\r\n const renameKey = (key) => {\r\n switch (key) {\r\n case \"balance0\":\r\n return \"0\";\r\n case \"balance1to100\":\r\n return \">Le 0.00 – Le 100.00\";\r\n case \"balance101to500\":\r\n return \">Le 100.00 – Le 500.00\";\r\n case \"balance501to1000\":\r\n return \">Le 500.00 – Le 1,000.00\";\r\n case \"balance1001to10000\":\r\n return \">Le 1,000.00 – Le 10,000.00\";\r\n case \"balance10001to25000\":\r\n return \">Le 10,000.00 – Le 25,000.00\";\r\n case \"balance25001to50000\":\r\n return \">Le 25,000.00 – Le 50,000.00\";\r\n case \"balance50001to1lk\":\r\n return \">Le 50,000.00 – Le 100,000.00\";\r\n case \"balance1lkplus\":\r\n return \">Le 100,000.00\";\r\n default:\r\n return;\r\n }\r\n };\r\n\r\n const resultFilter = (data) => {\r\n if (!data) return data;\r\n const list = [];\r\n Object.entries(data).forEach(([key, value], idx) => {\r\n if (typeof value === \"object\" && Array.isArray(value) && value?.length) {\r\n list.push({ name: renameKey(key), ...value[0] });\r\n }\r\n });\r\n const obj = {\r\n list,\r\n data,\r\n };\r\n return obj;\r\n };\r\n\r\n const fetchReport = () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n Status: \"\",\r\n PageNumber: Number(props.currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n postMethod(\r\n \"/api/reports/SubscriberBalanceAnalysisReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(resultFilter(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchReportData = () => {\r\n let errorMsg = \"\";\r\n let data = {\r\n Status: \"\",\r\n PageNumber: 1,\r\n PerPage: props.totalRec,\r\n };\r\n\r\n postMethod(\r\n \"/api/reports/SubscriberBalanceAnalysisReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(resultFilter(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n })\r\n .catch((err) => {\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.errorReportData();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n        \r\n \r\n \r\n \r\n Submit    \r\n {loading && submitButton && }\r\n \r\n \r\n \r\n {/*    */}\r\n \r\n );\r\n};\r\n\r\nexport default SubscriberBalanceAnalysisReport;\r\n","import React, { useEffect } from \"react\";\r\nimport { Button, Row, Col } from \"reactstrap\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nconst SettlementLiquidityAnalysisReport = (props) => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const [pageSize] = React.useState(10);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading]);\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading]);\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n };\r\n\r\n const fetchReport = () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let data = {\r\n Status: \"\",\r\n PageNumber: Number(props.currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n postMethod(\r\n \"/api/reports/SettlementLiquidityAnalysisReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchReportData = () => {\r\n let errorMsg = \"\";\r\n let data = {\r\n Status: \"\",\r\n PageNumber: 1,\r\n PerPage: props.totalRec,\r\n };\r\n\r\n postMethod(\r\n \"/api/reports/SettlementLiquidityAnalysisReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n })\r\n .catch((err) => {\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.errorReportData();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n        \r\n \r\n \r\n \r\n Submit    \r\n {loading && submitButton && }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SettlementLiquidityAnalysisReport;\r\n","import React, { useEffect } from \"react\";\r\nimport { FormGroup, Input, Button, Row, Col } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nconst CommissionsGrowthAnalysisReport = (props) => {\r\n const [startDate, setStartDate] = React.useState(\"\");\r\n const [endDate, setEndDate] = React.useState(\"\");\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading]);\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading]);\r\n\r\n useEffect(() => {\r\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\r\n setEndDate(\"\");\r\n }\r\n }, [startDate]);\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = \"Please select start date\";\r\n }\r\n if (!endDate) {\r\n error.endDate = \"Please select end date\";\r\n }\r\n return error;\r\n };\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n };\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\r\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\r\n Status: \"\",\r\n PageNumber: Number(props.currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n\r\n postMethod(\r\n \"/api/reports/GetTransactionsReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n }\r\n };\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n let errorMsg = \"\";\r\n let data = {\r\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\r\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\r\n Status: \"\",\r\n PageNumber: 1,\r\n PerPage: props.totalRec,\r\n };\r\n\r\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n\r\n postMethod(\r\n \"/api/reports/GetTransactionsReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n })\r\n .catch((err) => {\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.errorReportData();\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n        \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {errors.startDate && (\r\n
\r\n * {errors.startDate}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {errors.endDate && (\r\n
\r\n * {errors.endDate}\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n        \r\n \r\n \r\n \r\n Submit    \r\n {loading && submitButton && }\r\n \r\n \r\n \r\n {/*    */}\r\n \r\n );\r\n};\r\n\r\nexport default CommissionsGrowthAnalysisReport;\r\n","import React, { useEffect } from \"react\";\r\nimport { FormGroup, Input, Button, Row, Col } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getUserId, postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nconst AgentCommissionsReport = (props) => {\r\n const [startDate, setStartDate] = React.useState(\"\");\r\n const [endDate, setEndDate] = React.useState(\"\");\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchReport();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (props.pdfLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.pdfLoading]);\r\n\r\n useEffect(() => {\r\n if (props.xlLoading && isMounted) {\r\n fetchReportData();\r\n }\r\n }, [props.xlLoading]);\r\n\r\n useEffect(() => {\r\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\r\n setEndDate(\"\");\r\n }\r\n }, [startDate]);\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = \"Please select start date\";\r\n }\r\n if (!endDate) {\r\n error.endDate = \"Please select end date\";\r\n }\r\n return error;\r\n };\r\n\r\n const onSubmitReport = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchReport();\r\n }\r\n };\r\n\r\n const fetchReport = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n let id = getUserId();\r\n let data = {\r\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\r\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\r\n Status: \"\",\r\n PageNumber: Number(props.currentPage + 1),\r\n PerPage: pageSize,\r\n };\r\n\r\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n\r\n postMethod(\r\n \"/api/reports/GetTransactionsReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n }\r\n };\r\n\r\n const fetchReportData = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n let errorMsg = \"\";\r\n let data = {\r\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\r\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\r\n Status: \"\",\r\n PageNumber: 1,\r\n PerPage: props.totalRec,\r\n };\r\n\r\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentTo\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentFrom\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\r\n data[\"SortingOn\"] = \"ReferenceId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortProductId == \"1\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortProductId == \"2\") {\r\n data[\"SortingOn\"] = \"ProductId\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\r\n data[\"SortingOn\"] = \"CreatedAt\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortAmount == \"1\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortAmount == \"2\") {\r\n data[\"SortingOn\"] = \"Amount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\r\n data[\"SortingOn\"] = \"FeesAmount\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data[\"SortingOn\"] = \"Status\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentMethod\";\r\n data[\"IsDescending\"] = true;\r\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = false;\r\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\r\n data[\"SortingOn\"] = \"PaymentType\";\r\n data[\"IsDescending\"] = true;\r\n }\r\n\r\n postMethod(\r\n \"/api/reports/GetTransactionsReport\",\r\n JSON.stringify(data),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setIsMounted(true);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n props.parentReportData(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n props.errorReportData();\r\n }\r\n })\r\n .catch((err) => {\r\n setIsMounted(true);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n props.errorReportData();\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n        \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {errors.startDate && (\r\n
\r\n * {errors.startDate}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {errors.endDate && (\r\n
\r\n * {errors.endDate}\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n        \r\n \r\n \r\n \r\n Submit    \r\n {loading && submitButton && }\r\n \r\n \r\n \r\n {/*    */}\r\n \r\n );\r\n};\r\n\r\nexport default AgentCommissionsReport;\r\n","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { Table } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss } from \"../../appConfig\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { getLoginType } from \"services/httpServices\";\r\nimport { getAmt } from \"services/util\";\r\n\r\n//change props\r\nconst sortIS = {\r\n sortMerchantName: 0,\r\n sortBankName: 0,\r\n sortAccountNo: 0,\r\n sortAmountDue: 0,\r\n sortCreatedAt: 0,\r\n sortStatus: 0,\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: \"absolute\",\r\n top: \"240px\",\r\n left: 0,\r\n width: \"100%\",\r\n heigth: \"100%\",\r\n backgroundColor: \"#F8F8F8AD\",\r\n // display: 'none'\r\n};\r\n\r\nconst PendingSettlementsReportTable = (props) => {\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(() => {\r\n setFilteredList(props.datalist);\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n Report Date: {moment().format(\"Do MMMM, YYYY\")}\r\n
\r\n
\r\n Time Generated: {moment().format(\"HH:mm\")}\r\n
\r\n
\r\n\r\n
\r\n
\r\n No. of merchants:{\" \"}\r\n {props?.headings?.numberofMerchants}\r\n
\r\n
\r\n Activity Ratio:{\" \"}\r\n {props?.headings?.activityRatio &&\r\n props?.headings?.activityRatio?.toFixed(2)}%\r\n
\r\n
\r\n\r\n
\r\n
\r\n Total Amount Due:{\" \"}\r\n {getAmt(props?.headings?.overallDueAmount || 0)}\r\n
\r\n
\r\n Generated By: {getLoginType()}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n sortHandle(sort.sortMerchantName, \"sortMerchantName\")\r\n }\r\n >\r\n Merchant Name\r\n \r\n \r\n\r\n sortHandle(sort.sortBankName, \"sortBankName\")}\r\n >\r\n Bank Name\r\n \r\n \r\n sortHandle(sort.sortAccountNo, \"sortAccountNo\")}\r\n >\r\n Account No.\r\n \r\n \r\n sortHandle(sort.sortAmountDue, \"sortAmountDue\")}\r\n >\r\n Amount Due\r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {props.loading && (\r\n \r\n )}\r\n {!props.loading && !filteredList.length && (\r\n \r\n )}\r\n
{mmo?.merchantName}{mmo?.merchantBankName}{mmo?.merchantAccountNo}{getAmt(mmo?.amount + mmo?.commissionAmount || 0)}
\r\n \r\n );\r\n};\r\nexport default PendingSettlementsReportTable;\r\n","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { Table } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, subsStatus } from \"../../appConfig\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\n//TODO: modify sort props\r\nconst sortIS = {\r\n sortPaymentTo: 0,\r\n sortPaymentFrom: 0,\r\n sortReferenceId: 0,\r\n sortProductId: 0,\r\n sortCreatedAt: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortStatus: 0,\r\n sortPaymentMethod: 0,\r\n sortPaymentType: 0,\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: \"absolute\",\r\n top: \"240px\",\r\n left: 0,\r\n width: \"100%\",\r\n heigth: \"100%\",\r\n backgroundColor: \"#F8F8F8AD\",\r\n // display: 'none'\r\n};\r\n\r\nconst STATUS = subsStatus;\r\n\r\nconst SubscriberBalanceAnalysisReportTable = (props) => {\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(() => {\r\n setFilteredList(props.datalist);\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n };\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n Report Date: {moment().format(\"Do MMMM, YYYY\")}\r\n
\r\n
\r\n Time Generated: {moment().format(\"HH:mm\")}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Total Subscriber Balance:{\" \"}\r\n {getAmt(props?.headings?.data?.totalSubscriberBalanceAmount || 0)}\r\n
\r\n
\r\n I-C Ratio: {props?.headings?.data?.icRatio}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\r\n }\r\n >\r\n Balance Range (Le)\r\n \r\n \r\n\r\n sortHandle(sort.sortPaymentTo, \"sortPaymentTo\")}\r\n >\r\n I.S. Count\r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentFrom, \"sortPaymentFrom\")\r\n }\r\n >\r\n C.S. Count\r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\r\n }\r\n >\r\n Total Count\r\n \r\n \r\n\r\n \r\n sortHandle(sort.sortReferenceId, \"sortReferenceId\")\r\n }\r\n >\r\n Percent Share\r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {props.loading && (\r\n \r\n )}\r\n {!props.loading && !filteredList.length && (\r\n \r\n )}\r\n
{mmo.name}{mmo.individualSubscriber}{mmo.corporateSubscriber}{mmo.totalSubscriberCount}{mmo.percentShare?.toFixed(2)}%
\r\n \r\n );\r\n};\r\nexport default SubscriberBalanceAnalysisReportTable;\r\n","import React from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { Table } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { reportloader } from \"services/util\";\r\nimport { btnCss } from \"../../appConfig\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { getAmt } from \"services/util\";\r\n\r\nconst reportloaderContainer = {\r\n position: \"absolute\",\r\n top: \"240px\",\r\n left: 0,\r\n width: \"100%\",\r\n heigth: \"100%\",\r\n backgroundColor: \"#F8F8F8AD\",\r\n};\r\n\r\nconst SettlementLiquidityAnalysisReportTable = (props) => {\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n Report Date: {moment().format(\"Do MMMM, YYYY\")}\r\n
\r\n
\r\n Time: {moment().format(\"HH:mm\")}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Total Bank Balances:{\" \"}\r\n {getAmt(props?.datalist?.totalBankBalance || 0)}\r\n
\r\n
\r\n SL Ratio: {props?.datalist?.slRatio}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Pending Settlements:{\" \"}\r\n {getAmt(props?.datalist?.overallPendingsettlement || 0)}\r\n
\r\n
\r\n Net Position:{\" \"}\r\n \r\n {props?.datalist?.netPosition}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.loading && (\r\n \r\n )}\r\n {!Object.entries(props?.datalist)?.length && (\r\n \r\n )}\r\n
\r\n Bank Type\r\n \r\n \r\n Amount\r\n \r\n \r\n Percent Share\r\n \r\n Required Action
Settlement Bank{getAmt(props?.datalist?.settlemenetBankBalance || 0)}{props?.datalist?.percentagesettlementshare?.toFixed(2)}%\r\n {props?.datalist?.netPosition < 0\r\n ? \"Please transfer funds from Collection to Settlement Account to meet the settlement cash requirements\"\r\n : \"Liquidity position OK\"}\r\n
Collection Bank{getAmt(props?.datalist?.collectionBankBalance || 0)}{props?.datalist?.percentagecollectionshare?.toFixed(2)}%
\r\n \r\n );\r\n};\r\nexport default SettlementLiquidityAnalysisReportTable;\r\n","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { Table, Badge } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, subsStatus } from \"../../appConfig\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortPaymentTo: 0,\r\n sortPaymentFrom: 0,\r\n sortReferenceId: 0,\r\n sortProductId: 0,\r\n sortCreatedAt: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortStatus: 0,\r\n sortPaymentMethod: 0,\r\n sortPaymentType: 0,\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: \"absolute\",\r\n top: \"240px\",\r\n left: 0,\r\n width: \"100%\",\r\n heigth: \"100%\",\r\n backgroundColor: \"#F8F8F8AD\",\r\n // display: 'none'\r\n};\r\n\r\nconst STATUS = subsStatus;\r\n\r\nconst AgentCommissionsReportTable = (props) => {\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(() => {\r\n setFilteredList(props.datalist);\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n };\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n const getPaymentType = (type) => {\r\n let str = type;\r\n if (type == \"topup\") {\r\n str = \"Top Up\";\r\n } else if (type == \"BalanceTransfer\") {\r\n str = \"Balance Transfer\";\r\n } else if (type == \"Merchant\") {\r\n str = \"Merchant Payment\";\r\n } else if (type == \"WalletPayment\") {\r\n str = \"Wallet Payment\";\r\n } else if (type == \"CashTopUp\") {\r\n str = \"Cash Top Up\";\r\n }\r\n return str;\r\n };\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : (\r\n val\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\r\n }\r\n >\r\n Sub-Agent Name\r\n \r\n \r\n\r\n sortHandle(sort.sortPaymentTo, \"sortPaymentTo\")}\r\n >\r\n Period Commission\r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentFrom, \"sortPaymentFrom\")\r\n }\r\n >\r\n Period % Share\r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\r\n }\r\n >\r\n Cumulative % Share\r\n \r\n \r\n\r\n {/* \r\n sortHandle(sort.sortReferenceId, \"sortReferenceId\")\r\n }\r\n >\r\n Smart Pay Id\r\n \r\n \r\n sortHandle(sort.sortProductId, \"sortProductId\")}\r\n >\r\n Product Id\r\n \r\n \r\n sortHandle(sort.sortCreatedAt, \"sortCreatedAt\")}\r\n >\r\n Date\r\n \r\n \r\n sortHandle(sort.sortAmount, \"sortAmount\")}\r\n >\r\n Amount\r\n \r\n \r\n sortHandle(sort.sortFeesAmount, \"sortFeesAmount\")}\r\n >\r\n Fees Amount\r\n \r\n \r\n \r\n sortHandle(sort.sortStatus, \"sortStatus\")}\r\n >\r\n Status\r\n \r\n */}\r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n );\r\n })}\r\n \r\n {props.loading && (\r\n \r\n )}\r\n {!props.loading && !filteredList.length && (\r\n \r\n )}\r\n
Description
{getPaymentType(mmo.paymentType)}{mmo.paymentTo}{mmo.paymentFrom}{mmo.paymentMethod}{mmo.referenceId}{mmo.productId ? mmo.productId : \"--\"}{moment(mmo.createdAt).format(\"lll\")}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{mmo.description}{statusFormat(mmo.status)}
\r\n \r\n );\r\n};\r\nexport default AgentCommissionsReportTable;\r\n","import React, { useEffect } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { Table, Badge } from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader } from \"services/util\";\r\nimport { btnCss, subsStatus } from \"../../appConfig\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortPaymentTo: 0,\r\n sortPaymentFrom: 0,\r\n sortReferenceId: 0,\r\n sortProductId: 0,\r\n sortCreatedAt: 0,\r\n sortAmount: 0,\r\n sortFeesAmount: 0,\r\n sortStatus: 0,\r\n sortPaymentMethod: 0,\r\n sortPaymentType: 0,\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: \"absolute\",\r\n top: \"240px\",\r\n left: 0,\r\n width: \"100%\",\r\n heigth: \"100%\",\r\n backgroundColor: \"#F8F8F8AD\",\r\n // display: 'none'\r\n};\r\n\r\nconst STATUS = subsStatus;\r\n\r\nconst CommissionsGrowthAnalysisReportTable = (props) => {\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n\r\n useEffect(() => {\r\n setFilteredList(props.datalist);\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n const getAmt = (amt) => {\r\n return amt.toLocaleString();\r\n };\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n };\r\n\r\n const getPaymentType = (type) => {\r\n let str = type;\r\n if (type == \"topup\") {\r\n str = \"Top Up\";\r\n } else if (type == \"BalanceTransfer\") {\r\n str = \"Balance Transfer\";\r\n } else if (type == \"Merchant\") {\r\n str = \"Merchant Payment\";\r\n } else if (type == \"WalletPayment\") {\r\n str = \"Wallet Payment\";\r\n } else if (type == \"CashTopUp\") {\r\n str = \"Cash Top Up\";\r\n }\r\n return str;\r\n };\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : (\r\n val\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\r\n }\r\n >\r\n Month\r\n \r\n \r\n\r\n sortHandle(sort.sortPaymentTo, \"sortPaymentTo\")}\r\n >\r\n Total Commission (Le)\r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentFrom, \"sortPaymentFrom\")\r\n }\r\n >\r\n MGR (%)\r\n \r\n \r\n \r\n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\r\n }\r\n >\r\n CAGR (%)\r\n \r\n \r\n\r\n {/* \r\n sortHandle(sort.sortReferenceId, \"sortReferenceId\")\r\n }\r\n >\r\n Smart Pay Id\r\n \r\n \r\n sortHandle(sort.sortProductId, \"sortProductId\")}\r\n >\r\n Product Id\r\n \r\n \r\n sortHandle(sort.sortCreatedAt, \"sortCreatedAt\")}\r\n >\r\n Date\r\n \r\n \r\n sortHandle(sort.sortAmount, \"sortAmount\")}\r\n >\r\n Amount\r\n \r\n \r\n sortHandle(sort.sortFeesAmount, \"sortFeesAmount\")}\r\n >\r\n Fees Amount\r\n \r\n \r\n \r\n sortHandle(sort.sortStatus, \"sortStatus\")}\r\n >\r\n Status\r\n \r\n */}\r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n );\r\n })}\r\n \r\n {props.loading && (\r\n \r\n )}\r\n {!props.loading && !filteredList.length && (\r\n \r\n )}\r\n
Description
{getPaymentType(mmo.paymentType)}{mmo.paymentTo}{mmo.paymentFrom}{mmo.paymentMethod}{mmo.referenceId}{mmo.productId ? mmo.productId : \"--\"}{moment(mmo.createdAt).format(\"lll\")}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}{mmo.description}{statusFormat(mmo.status)}
\r\n \r\n );\r\n};\r\nexport default CommissionsGrowthAnalysisReportTable;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n FormGroup,\r\n Input,\r\n Button,\r\n Row,\r\n Col,\r\n Table,\r\n CardFooter,\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { getAmt } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport ReactSelect from \"react-select\";\r\nimport jsPDF from \"jspdf\";\r\nimport * as XLSX from \"xlsx\";\r\nconst AllTransactionReport = (props) => {\r\n const [merchants, setMerchants] = React.useState([]);\r\n const [merchantUsers, setMerchantUsers] = React.useState([]);\r\n const [fsps, setFsps] = React.useState([]);\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [posData, setPosData] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [values, setValues] = useState({\r\n isDescending: true,\r\n pageNumber: 1,\r\n perPage: 10,\r\n searchText: \"\",\r\n sortingOn: \"\",\r\n transactionStatus: [],\r\n collectionType: [],\r\n posMacID: [],\r\n collectedBy: [],\r\n merchantID: [],\r\n fspid: [],\r\n dateRange: [],\r\n startDate: \"\",\r\n endDate: \"\",\r\n });\r\n const [isFirst, setIsFirst] = useState(true);\r\n const [pdfLoading, setPdfLoading] = React.useState(false);\r\n const [xlLoading, setXlLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchAllMerchant = () => {\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setMerchants(\r\n res.data.result.map((i) => ({\r\n label: i.name,\r\n value: i.id,\r\n }))\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const fetchAllFsps = () => {\r\n setLoading(true);\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setFsps(\r\n res.data.result.map((i) => ({\r\n value: i.id,\r\n label: i.fspName,\r\n }))\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const fetchAllMerchantUsers = () => {\r\n setLoading(true);\r\n getMethod(\"/api/User/all\", \"get\")\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setMerchantUsers(\r\n res.data.result\r\n .filter((i) => i.roleName === \"POSAgent\")\r\n .map((i) => ({\r\n value: i.fullName,\r\n label: i.fullName,\r\n }))\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n notifyFailed(\"Something went wrong!\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n function fetchPosDeviceData() {\r\n getMethod(\"/api/POS/GetAllDevice\")\r\n .then((res) => {\r\n if (res.data?.length) {\r\n setPosData(\r\n res.data?.map((i) => ({\r\n label: i.posSerialNumber,\r\n value: i.posSerialNumber,\r\n }))\r\n );\r\n }\r\n })\r\n .catch(console.log);\r\n }\r\n\r\n useEffect(() => {\r\n fetchPosDeviceData();\r\n fetchAllMerchant();\r\n fetchAllFsps();\r\n fetchAllMerchant();\r\n fetchAllMerchantUsers();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isFirst) {\r\n onSubmitReport();\r\n }\r\n }, [currentPage]);\r\n\r\n const validate = (payload) => {\r\n var error = {};\r\n // if (!payload.transactionStatus?.length) {\r\n // error.transactionStatus = \"Please select transaction status\";\r\n // }\r\n // if (!payload.collectedBy?.length) {\r\n // error.collectedBy = \"Please select collected by\";\r\n // }\r\n return error;\r\n };\r\n\r\n const onSubmitReport = () => {\r\n setIsFirst(false);\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n const payload = {\r\n ...values,\r\n transactionStatus: values?.transactionStatus?.map((i) => i.value),\r\n collectionType: values?.collectionType?.map((i) => i.value),\r\n posMacID: values?.posMacID?.map((i) => i.value),\r\n merchantID: values?.merchantID?.map((i) => String(i.value)),\r\n fspid: values?.fspid?.map((i) => String(i.value)),\r\n collectedBy: values?.collectedBy?.map((i) => i.value),\r\n };\r\n if (values.startDate) {\r\n payload.dateRange = [new Date(values.startDate).toISOString()];\r\n }\r\n if (payload.endDate) {\r\n payload.dateRange = [\r\n new Date(values.startDate).toISOString(),\r\n new Date(values.endDate).toISOString(),\r\n ];\r\n }\r\n\r\n payload.pageNumber = currentPage + 1;\r\n setLoading(true);\r\n postMethod(\r\n \"/api/Reports/v2/Transaction/GetAll\",\r\n JSON.stringify(payload),\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setFilteredList(res.data.result.list);\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n })\r\n .catch(console.log)\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n const exportPDF = () => {\r\n setPdfLoading(true);\r\n const unit = \"pt\";\r\n const size = \"A4\"; // Use A1, A2, A3 or A4\r\n const orientation = \"portrait\"; // portrait or landscape\r\n\r\n const marginLeft = 10;\r\n const doc = new jsPDF(orientation, unit, size);\r\n\r\n doc.setFontSize(15);\r\n\r\n const title = \"Transactions\";\r\n const headers = [\r\n [\r\n \"Date\",\r\n \"From Payment Name\",\r\n \"To Payment Name\",\r\n \"Collection Type\",\r\n \"Amount\",\r\n \"Commission\",\r\n \"Transaction Status\",\r\n \"NFC Card ID\",\r\n \"Third Party Ref ID\",\r\n \"Transaction ID\",\r\n ],\r\n ];\r\n\r\n const data = filteredList.map((mmo, i) => [\r\n new Date(mmo.createdDate).toLocaleString(),\r\n mmo.fromPaymentName,\r\n mmo.toPaymentName ?? \"-\",\r\n mmo.collectionType ?? \"-\",\r\n getAmt(mmo.amount) ?? \"-\",\r\n getAmt(mmo.commission) ?? \"-\",\r\n mmo.transactionStatus ?? \"-\",\r\n mmo.nfcCardId,\r\n mmo.thirdPartyRefId,\r\n mmo.transactionId,\r\n ]);\r\n\r\n var summaryReport = false;\r\n\r\n const COLSPAN = 0;\r\n const total = filteredList.reduce((sum, el) => sum + el.amount, 0);\r\n\r\n let content = {\r\n startY: 50,\r\n head: headers,\r\n margin: { left: 10, right: 10 },\r\n body: summaryReport\r\n ? [\r\n ...data,\r\n [\r\n {\r\n content: \"Total\",\r\n colSpan: COLSPAN,\r\n styles: { fillColor: [163, 174, 169] },\r\n },\r\n {\r\n content: total,\r\n colSpan: 1,\r\n styles: { fillColor: [163, 174, 169] },\r\n },\r\n ],\r\n ]\r\n : data,\r\n };\r\n\r\n doc.text(title, marginLeft, 40);\r\n doc.autoTable(content);\r\n doc.save(\"report.pdf\");\r\n setTimeout(() => {\r\n setPdfLoading(false);\r\n }, 1000);\r\n };\r\n\r\n const exportToXlsx = (reportData) => {\r\n const wb = XLSX.utils.book_new();\r\n let data = filteredList.map((mmo, i) => {\r\n return {\r\n Date: new Date(mmo.createdDate).toLocaleString(),\r\n \"From Payment Name\": mmo.fromPaymentName,\r\n \"To Payment Name\": mmo.toPaymentName ?? \"-\",\r\n \"Collection Type\": mmo.collectionType ?? \"-\",\r\n Amount: getAmt(mmo.amount) ?? \"-\",\r\n Commission: getAmt(mmo.commission) ?? \"-\",\r\n \"Transaction Status\": mmo.transactionStatus ?? \"-\",\r\n \"NFC Card ID\": mmo.nfcCardId,\r\n \"Third Party Ref ID\": mmo.thirdPartyRefId,\r\n \"Transaction ID\": mmo.transactionId,\r\n };\r\n });\r\n\r\n const headings = [\r\n \"Date\",\r\n \"From Payment Name\",\r\n \"To Payment Name\",\r\n \"Amount\",\r\n \"Commission\",\r\n \"Transaction Status\",\r\n \"NFC Card ID\",\r\n \"Third Party Ref ID\",\r\n \"Transaction ID\",\r\n ];\r\n const ws = XLSX.utils.json_to_sheet(data);\r\n\r\n // Add the worksheet to the workbook\r\n XLSX.utils.book_append_sheet(wb, ws, \"Sheet1\");\r\n\r\n // Set up column headers\r\n ws[\"!cols\"] = headings.map((heading) => ({ wch: heading.length + 5 }));\r\n\r\n // Export the workbook to a file\r\n setTimeout(() => {\r\n setXlLoading(false);\r\n }, 1000);\r\n XLSX.writeFile(wb, \"report.xlsx\");\r\n };\r\n\r\n return (\r\n <>\r\n        \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.startDate && (\r\n
\r\n * {errors.startDate}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.endDate && (\r\n
\r\n * {errors.endDate}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n Merchant\r\n \r\n \r\n \r\n \r\n \r\n \r\n setValues({ ...values, merchantID: e })}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.merchant && (\r\n
\r\n * {errors.merchant}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n \r\n \r\n \r\n setValues({ ...values, fspid: e })}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.fsp && (\r\n
\r\n * {errors.fsp}\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Collected By\r\n \r\n \r\n \r\n \r\n \r\n \r\n setValues({ ...values, collectedBy: e })}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.collectedBy && (\r\n
\r\n * {errors.collectedBy}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n POS MAC ID\r\n \r\n \r\n \r\n \r\n \r\n \r\n setValues({ ...values, posMacID: e })}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Collection Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValues({ ...values, collectionType: e })\r\n }\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.bankCode && (\r\n
\r\n * {errors.bankCode}\r\n
\r\n )}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n Transaction Status\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValues({ ...values, transactionStatus: e })\r\n }\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n {errors.transactionStatus && (\r\n
\r\n * {errors.transactionStatus}\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {filteredList.length > 0 && (\r\n <>\r\n \r\n Download PDF\r\n {pdfLoading && }\r\n \r\n \r\n Download XLSX\r\n {xlLoading && }\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 &&\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
Date From Payment NameTo Payment NameCollection TypeAmountCommissionTransaction StatusNFC Card IDThird Party Ref IDTransaction ID
\r\n {new Date(mmo.createdDate).toLocaleString()}\r\n {mmo.fromPaymentName}{mmo.toPaymentName}{mmo.collectionType}{getAmt(mmo.amount)}{getAmt(mmo.commission)}{mmo.transactionStatus}{mmo.nfcCardId}{mmo.thirdPartyRefId}{mmo.transactionId}
\r\n {loading && (\r\n
\r\n {\" \"}\r\n \r\n
\r\n )}\r\n {!loading && !filteredList.length && (\r\n
No Records Found
\r\n )}\r\n \r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AllTransactionReport;\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Container,\r\n Row,\r\n Col,\r\n Button,\r\n Form,\r\n FormGroup,\r\n Input,\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport moment from \"moment\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport CollectionReport from \"./collection-report\";\r\nimport CollectionReportTable from \"./collection-report-table\";\r\nimport jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport CollectionSummaryReport from \"./collection-summary-report\";\r\nimport CollectionSummaryReportTable from \"./collection-summary-table\";\r\nimport SettlementSummaryReport from \"./settlement-summary-report\";\r\nimport SettlementSummaryReportTable from \"./settlement-summary-table\";\r\nimport SettlementReport from \"./settlement-report\";\r\nimport SettlementReportTable from \"./settlement-report-table\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport { ReportStatus, subsStatus } from \"appConfig\";\r\nimport { getAmt } from \"services/util\";\r\nimport TransactionReport from \"./transaction-report\";\r\nimport TransactionReportTable from \"./transaction-report-table\";\r\nimport BankReport from \"./bank-report\";\r\nimport BankReportTable from \"./bank-report-table\";\r\nimport MerchantCommission from \"./merchant-commission\";\r\nimport MerchantCommissionTable from \"./merchant-commission-table\";\r\nimport WalletCommissionTable from \"./wallet-commission-table\";\r\nimport WalletCommission from \"./wallet-commission\";\r\nimport EDSATransaction from \"./EDSATransaction.js\";\r\nimport PendingSettlementsReport from \"./pending-settlements\";\r\nimport SubscriberBalanceAnalysisReport from \"./subscriber-balance-analysis\";\r\nimport SettlementLiquidityAnalysisReport from \"./settlement-liquidity-analysis\";\r\nimport CommissionsGrowthAnalysisReport from \"./commissions-growth-analysis\";\r\nimport AgentCommissionsReport from \"./agent-commissions\";\r\nimport PendingSettlementsReportTable from \"./pending-settlements-table\";\r\nimport SubscriberBalanceAnalysisReportTable from \"./subscriber-balance-analysis-table\";\r\nimport SettlementLiquidityAnalysisReportTable from \"./settlement-liquidity-analysis-table\";\r\nimport AgentCommissionsReportTable from \"./agent-commissions-table\";\r\nimport CommissionsGrowthAnalysisReportTable from \"./commissions-growth-analysis-table\";\r\nimport AllTransactionReport from \"./all-transaction-report\";\r\n\r\nconst VERSIONS = [\r\n { key: 1, value: \"Transactions V1\" },\r\n { key: 2, value: \"Transactions V2\" },\r\n];\r\n\r\nconst REPORTS = [\r\n { key: 1, value: \"Detailed Collection Reports\" },\r\n { key: 2, value: \"Daily Collection Summary Reports\" },\r\n { key: 3, value: \"Detailed Settlement Reports\" },\r\n { key: 4, value: \"Daily Summary Settlement Reports\" },\r\n { key: 5, value: \"Transaction Report\" },\r\n { key: 6, value: \"Daily Bank Report\" },\r\n { key: 7, value: \"Merchant Commissions Report\" },\r\n { key: 8, value: \"Wallet Commissions Report\" },\r\n { key: 9, value: \"EDSA Transaction Report\" },\r\n { key: 10, value: \"Pending Settlements Report\" },\r\n { key: 11, value: \"Subscriber Balance Analysis Report\" },\r\n { key: 12, value: \"Settlement Liquidity Analysis Report\" },\r\n // { key: 13, value: \"Commissions Growth Analysis Report\" },\r\n // { key: 14, value: \"Agent Commissions Report\" },\r\n];\r\n\r\nconst STATUS = ReportStatus;\r\nconst SUBS_STATUS = subsStatus;\r\n\r\nconst Reports = () => {\r\n const [reportFilter, setReportFilter] = React.useState(\"\");\r\n const [version, setVersion] = React.useState(\"\");\r\n const [merchant, setMerchant] = React.useState([]);\r\n const [result, setResult] = React.useState([]);\r\n const [collectionR, setCollectionR] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [response, setResponse] = React.useState(false);\r\n const [pdfLoading, setPdfLoading] = React.useState(false);\r\n const [xlLoading, setXlLoading] = React.useState(false);\r\n const [bank, setBank] = React.useState([]);\r\n const [mmo, setMMO] = React.useState([]);\r\n const [sort, setSort] = React.useState({});\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [reportData, setReportData] = React.useState([]);\r\n const [reportHeadings, setReportHeadings] = React.useState();\r\n const [allTransactionsInfo, setAllTransactionsData] = React.useState({\r\n isDescending: true,\r\n pageNumber: 0,\r\n perPage: 0,\r\n searchText: \"\",\r\n sortingOn: \"\",\r\n transactionStatus: [],\r\n collectionType: [],\r\n posMacID: [],\r\n collectedBy: [],\r\n merchantID: [],\r\n fspid: [],\r\n dateRange: [],\r\n });\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchMerchants();\r\n fetchBank();\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const getPdfHeader = () => {\r\n if (reportFilter === \"1\") {\r\n return [\r\n \"Instruction Date/Time\",\r\n \"Merchant Name\",\r\n \"Bank Code\",\r\n \"Customer UID\",\r\n \"Transaction Amount\",\r\n \"Reference Code\",\r\n \"Transaction Ref\",\r\n \"Status\",\r\n \"Clearing Date/Time\",\r\n ];\r\n } else if (reportFilter === \"2\") {\r\n return [\"Date\", \"Merchant Name\", \"Bank Code\", \"Total Amount\"];\r\n } else if (reportFilter === \"3\") {\r\n return [\r\n \"Instruction Date/Time\",\r\n \"Merchant Name\",\r\n \"Paying Bank Code\",\r\n \"Receving Bank Code\",\r\n \"Transaction Amount\",\r\n \"Transaction Fees\",\r\n \"Transaction Ref\",\r\n \"Status\",\r\n \"Clearing Date/Time\",\r\n ];\r\n } else if (reportFilter === \"4\") {\r\n return [\r\n \"Date\",\r\n \"Merchant Name\",\r\n \"Bank Code\",\r\n \"Total Amount\",\r\n \"Fees Amount\",\r\n ];\r\n } else if (reportFilter === \"5\") {\r\n return [\r\n \"Payment Type\",\r\n \"Payment To\",\r\n \"Payment From\",\r\n \"Payment Using\",\r\n \"Smart Pay Id\",\r\n \"Product Id\",\r\n \"Date\",\r\n \"Amount\",\r\n \"Fees Amount\",\r\n \"Description\",\r\n \"Status\",\r\n ];\r\n } else if (reportFilter == \"6\") {\r\n return [\r\n \"Bank Name\",\r\n \"Subscriber Name\",\r\n \"Date\",\r\n \"Payment Type\",\r\n \"Merchant Name\",\r\n \"Amount\",\r\n \"Transaction Fees\",\r\n \"Transaction Ref\",\r\n \"Status\",\r\n ];\r\n } else if (reportFilter == \"7\") {\r\n return [\r\n \"Instruction Date/Time\",\r\n \"Merchant Name\",\r\n \"Transaction Amount\",\r\n \"Commission Amount\",\r\n ];\r\n } else if (reportFilter == \"10\") {\r\n return [\"Merchant Name\", \"Bank Name\", \"Account Number\", \"Amount Due\"];\r\n } else if (reportFilter == \"11\") {\r\n return [\r\n \"Balance Range (Le)\",\r\n \"I.S Count\",\r\n \"C.S Count\",\r\n \"Total Count\",\r\n \"Percent Share\",\r\n ];\r\n } else if (reportFilter == \"12\") {\r\n return [\"Bank Type\", \"Amount\", \"Percent Share\", \"Required Action\"];\r\n } else {\r\n return [[]];\r\n }\r\n };\r\n\r\n const getPdfTitle = () => {\r\n if (reportFilter == \"1\") {\r\n return \"Detailed Collection Report\";\r\n } else if (reportFilter == \"2\") {\r\n return \"Daily Collection Summary Report\";\r\n } else if (reportFilter == \"3\") {\r\n return \"Detailed Settlement Reports\";\r\n } else if (reportFilter == \"4\") {\r\n return \"Daily Settlement Summary Report\";\r\n } else if (reportFilter == \"5\") {\r\n return \"Transaction Report\";\r\n } else if (reportFilter == \"6\") {\r\n return \"Daily Bank Report\";\r\n } else if (reportFilter == \"7\") {\r\n return \"Merchant Commission Report\";\r\n } else if (reportFilter == \"8\") {\r\n return \"Wallet Commission Report\";\r\n } else if (reportFilter == \"10\") {\r\n return \"Pending Settlements Report\";\r\n } else if (reportFilter == \"11\") {\r\n return \"Subscriber Balance Analysis Report\";\r\n } else if (reportFilter == \"12\") {\r\n return \"Settlement Liquidity Analysis Report\";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n return ob && ob.value ? ob.value : val;\r\n };\r\n\r\n const transStatusFormat = (val) => {\r\n let ob = SUBS_STATUS.find((s) => s.key === val);\r\n return ob && ob.value ? ob.value : val;\r\n };\r\n\r\n const getPaymentType = (type) => {\r\n let str = type;\r\n if (type == \"topup\") {\r\n str = \"Top Up\";\r\n } else if (type == \"BalanceTransfer\") {\r\n str = \"Balance Transfer\";\r\n } else if (type == \"Merchant\") {\r\n str = \"Merchant Payment\";\r\n } else if (type == \"WalletPayment\") {\r\n str = \"Wallet Payment\";\r\n } else if (type == \"CashTopUp\") {\r\n str = \"Cash Top Up\";\r\n }\r\n return str;\r\n };\r\n\r\n const getPdfData = (reportData) => {\r\n if (reportFilter == \"1\") {\r\n return reportData.map((elt) => [\r\n moment(elt.createdat).format(\"lll\"),\r\n elt.merchantName,\r\n elt.bank_MMOCode,\r\n elt.subscriberMobileNumber,\r\n getAmt(elt.amount),\r\n elt.productId,\r\n elt.referenceId,\r\n statusFormat(elt.status),\r\n elt.updatedat ? moment(elt.updatedat).format(\"lll\") : \"--\",\r\n ]);\r\n } else if (reportFilter == \"2\") {\r\n return reportData.map((elt) => [\r\n moment(elt.createdat).format(\"MMM Do, YYYY\"),\r\n elt.merchantName,\r\n elt.bank_MMOCode,\r\n getAmt(elt.amount),\r\n ]);\r\n } else if (reportFilter == \"3\") {\r\n return reportData.map((elt) => [\r\n moment(elt.createdat).format(\"lll\"),\r\n elt.merchantName,\r\n elt.payingBankCode,\r\n elt.receivingBank,\r\n getAmt(elt.amount),\r\n getAmt(elt.feesAmount),\r\n elt.referenceId,\r\n statusFormat(elt.status),\r\n elt.updatedAt ? moment(elt.updatedAt).format(\"lll\") : \"--\",\r\n ]);\r\n } else if (reportFilter == \"4\") {\r\n return reportData.map((elt) => [\r\n moment(elt.createdAt).format(\"MMM Do, YYYY\"),\r\n elt.merchantName,\r\n elt.payingBankCode,\r\n getAmt(elt.amount),\r\n getAmt(elt.feesAmount),\r\n ]);\r\n } else if (reportFilter == \"5\") {\r\n return reportData.map((elt) => [\r\n getPaymentType(elt.paymentType),\r\n elt.paymentTo,\r\n elt.paymentFrom,\r\n elt.paymentMethod,\r\n elt.referenceId,\r\n elt.productId ? elt.productId : \"--\",\r\n moment(elt.createdAt).format(\"lll\"),\r\n getAmt(elt.amount),\r\n getAmt(elt.feesAmount),\r\n elt.description,\r\n transStatusFormat(elt.status),\r\n ]);\r\n } else if (reportFilter == \"6\") {\r\n return reportData.map((elt) => [\r\n elt.paymentFrom,\r\n elt.subscriberName,\r\n moment(mmo.updatedAt).format(\"lll\"),\r\n getPaymentType(elt.paymentType),\r\n elt.merchantName ? elt.merchantName : \"--\",\r\n getAmt(elt.amount),\r\n getAmt(elt.feesAmount),\r\n elt.referenceId,\r\n elt.status,\r\n ]);\r\n } else if (reportFilter == \"7\") {\r\n return reportData.map((elt) => [\r\n moment(elt.createdAt).format(\"lll\"),\r\n elt.userName,\r\n getAmt(elt.paymentAmount),\r\n getAmt(elt.commissionAmount),\r\n ]);\r\n } else if (reportFilter == \"8\") {\r\n return reportData.map((elt) => [\r\n moment(elt.createdAt).format(\"lll\"),\r\n elt.bankName,\r\n elt.subscriberName,\r\n getAmt(elt.paymentAmount),\r\n getTransactionType(elt.paymentType),\r\n getAmt(elt.commissionAmount),\r\n ]);\r\n } else if (reportFilter == \"10\") {\r\n return reportData.map((elt) => [\r\n elt.merchantName,\r\n elt.merchantBankName,\r\n elt.merchantAccountNo,\r\n getAmt(elt?.amount + elt?.commissionAmount),\r\n ]);\r\n } else if (reportFilter == \"11\") {\r\n return reportData.map((elt) => [\r\n elt.name,\r\n elt.individualSubscriber,\r\n elt.corporateSubscriber,\r\n elt.totalSubscriberCount,\r\n `${elt?.percentShare?.toFixed(2)}%`,\r\n ]);\r\n } else if (reportFilter == \"12\") {\r\n return [\r\n [\r\n \"Settlement Bank\",\r\n getAmt(reportData?.settlemenetBankBalance || 0),\r\n `${reportData?.percentagesettlementshare}%`,\r\n reportData?.netPosition < 0\r\n ? \"Please transfer funds from Collection to Settlement Account to meet the settlement cash requirements\"\r\n : \"Liquidity position OK\",\r\n ],\r\n [\r\n \"Collection Bank\",\r\n getAmt(reportData?.collectionBankBalance || 0),\r\n `${reportData?.percentagecollectionshare}%`,\r\n \"\",\r\n ],\r\n ];\r\n } else {\r\n return [];\r\n }\r\n };\r\n\r\n const getTransactionType = (type) => {\r\n if (type === \"topup\") {\r\n return \"Top Up\";\r\n }\r\n return type;\r\n };\r\n\r\n const getPdfTotal = (reportData) => {\r\n let total = reportData.reduce((sum, el) => sum + el.amount, 0);\r\n return total > 0 ? getAmt(total) : total;\r\n };\r\n\r\n const exportPDF = (reportData) => {\r\n const unit = \"pt\";\r\n const size = \"A4\"; // Use A1, A2, A3 or A4\r\n const orientation = \"portrait\"; // portrait or landscape\r\n\r\n const marginLeft = 10;\r\n const doc = new jsPDF(orientation, unit, size);\r\n\r\n doc.setFontSize(15);\r\n\r\n const title = getPdfTitle();\r\n const headers = [getPdfHeader()];\r\n const data = getPdfData(reportData);\r\n\r\n var summaryReport = false;\r\n if ((reportFilter == \"2\" || reportFilter == \"4\") && reportData.length) {\r\n summaryReport = true;\r\n }\r\n const COLSPAN = summaryReport ? (reportFilter == \"2\" ? 3 : 4) : 0;\r\n const total = summaryReport ? getPdfTotal(reportData) : 0;\r\n\r\n let content = {\r\n startY: 50,\r\n head: headers,\r\n margin: { left: 10, right: 10 },\r\n body: summaryReport\r\n ? [\r\n ...data,\r\n [\r\n {\r\n content: \"Total\",\r\n colSpan: COLSPAN,\r\n styles: { fillColor: [163, 174, 169] },\r\n },\r\n {\r\n content: total,\r\n colSpan: 1,\r\n styles: { fillColor: [163, 174, 169] },\r\n },\r\n ],\r\n ]\r\n : data,\r\n };\r\n\r\n doc.text(title, marginLeft, 40);\r\n doc.autoTable(content);\r\n doc.save(\"report.pdf\");\r\n setTimeout(() => {\r\n setPdfLoading(false);\r\n }, 1000);\r\n };\r\n\r\n const getCsvHeading = () => {\r\n return [[getPdfTitle()], getPdfHeader()];\r\n };\r\n\r\n const getCsvHeader = () => {\r\n if (reportFilter == \"1\") {\r\n return [\r\n \"createdat\",\r\n \"merchantName\",\r\n \"bank_MMOCode\",\r\n \"subscriberMobileNumber\",\r\n \"amount\",\r\n \"productId\",\r\n \"referenceId\",\r\n \"status\",\r\n \"updatedat\",\r\n ];\r\n } else if (reportFilter == \"2\") {\r\n return [\"createdat\", \"merchantName\", \"bank_MMOCode\", \"amount\"];\r\n } else if (reportFilter == \"3\") {\r\n return [\r\n \"createdat\",\r\n \"merchantName\",\r\n \"payingBankCode\",\r\n \"receivingBank\",\r\n \"amount\",\r\n \"feesAmount\",\r\n \"referenceId\",\r\n \"status\",\r\n \"updatedAt\",\r\n ];\r\n } else if (reportFilter == \"4\") {\r\n return [\r\n \"createdAt\",\r\n \"merchantName\",\r\n \"payingBankCode\",\r\n \"amount\",\r\n \"feesAmount\",\r\n ];\r\n } else if (reportFilter == \"5\") {\r\n return [\r\n \"paymentType\",\r\n \"paymentTo\",\r\n \"paymentFrom\",\r\n \"paymentMethod\",\r\n \"referenceId\",\r\n \"productId\",\r\n \"createdAt\",\r\n \"amount\",\r\n \"feesAmount\",\r\n \"description\",\r\n \"status\",\r\n ];\r\n } else if (reportFilter == \"6\") {\r\n return [\r\n \"paymentFrom\",\r\n \"subscriberName\",\r\n \"updatedAt\",\r\n \"paymentType\",\r\n \"merchantName\",\r\n \"amount\",\r\n \"feesAmount\",\r\n \"referenceId\",\r\n \"status\",\r\n ];\r\n } else if (reportFilter == \"7\") {\r\n return [\"createdAt\", \"userName\", \"paymentAmount\", \"commissionAmount\"];\r\n } else if (reportFilter == \"8\") {\r\n return [\r\n \"createdAt\",\r\n \"bankName\",\r\n \"subscriberName\",\r\n \"paymentAmount\",\r\n \"paymentType\",\r\n \"commissionAmount\",\r\n ];\r\n } else if (reportFilter == \"10\") {\r\n return [\"Merchant Name\", \"Bank Name\", \"Account Number\", \"Amount Due\"];\r\n } else if (reportFilter == \"11\") {\r\n return [\r\n \"Balance Range (Le)\",\r\n \"I.S Count\",\r\n \"C.S Count\",\r\n \"Total Count\",\r\n \"Percent Share\",\r\n ];\r\n } else if (reportFilter == \"12\") {\r\n return [\"Bank Type\", \"Amount\", \"Percent Share\", \"Required Action\"];\r\n } else {\r\n return [];\r\n }\r\n };\r\n\r\n const getColumnName = (i) => {\r\n return (\r\n (i >= 26 ? getColumnName(Math.floor(i / 26) - 1) : \"\") +\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"[i % 26]\r\n );\r\n };\r\n\r\n const getFeesAmt = (obj) => {\r\n obj.feesAmount = getAmt(obj.feesAmount);\r\n return obj;\r\n };\r\n\r\n const csvFormat = (obj) => {\r\n if (reportFilter == \"1\") {\r\n obj.createdat = moment(obj.createdat).format(\"lll\");\r\n obj.updatedat = obj.updatedat\r\n ? moment(obj.updatedat).format(\"lll\")\r\n : \"--\";\r\n } else if (reportFilter == \"2\") {\r\n obj.createdat = moment(obj.createdat).format(\"MMM Do, YYYY\");\r\n } else if (reportFilter == \"3\") {\r\n obj.createdat = moment(obj.createdat).format(\"lll\");\r\n obj.updatedAt = obj.updatedAt\r\n ? moment(obj.updatedAt).format(\"lll\")\r\n : \"--\";\r\n } else if (reportFilter == \"4\") {\r\n obj.createdAt = moment(obj.createdAt).format(\"MMM Do, YYYY\");\r\n } else if (reportFilter == \"5\") {\r\n obj.status = transStatusFormat(obj.status);\r\n obj.description = transStatusFormat(obj.description);\r\n obj.paymentType = getPaymentType(obj.paymentType);\r\n obj.createdAt = moment(obj.createdAt).format(\"lll\");\r\n obj.productId = obj.productId ? obj.productId : \"--\";\r\n } else if (reportFilter == \"6\") {\r\n obj.paymentType = getPaymentType(obj.paymentType);\r\n obj.updatedAt = moment(obj.updatedAt).format(\"lll\");\r\n } else if (reportFilter == \"7\") {\r\n obj.createdAt = moment(obj.createdAt).format(\"lll\");\r\n obj.paymentAmount = getAmt(obj.paymentAmount);\r\n obj.commissionAmount = getAmt(obj.commissionAmount);\r\n } else if (reportFilter == \"8\") {\r\n obj.createdAt = moment(obj.createdAt).format(\"lll\");\r\n obj.paymentAmount = getAmt(obj.paymentAmount);\r\n obj.commissionAmount = getAmt(obj.commissionAmount);\r\n obj.paymentType = getTransactionType(obj.paymentType);\r\n }\r\n if (obj.feesAmount) {\r\n obj.feesAmount = getAmt(obj.feesAmount);\r\n }\r\n return obj;\r\n };\r\n\r\n const exportToXlsx = (reportData) => {\r\n const wb = XLSX.utils.book_new();\r\n let data = [];\r\n if (reportFilter == \"10\") {\r\n data = reportData.map((elt) => {\r\n const obj = {};\r\n obj[\"Merchant Name\"] = elt.merchantName;\r\n obj[\"Bank Name\"] = elt.merchantBankName;\r\n obj[\"Account Number\"] = elt.merchantAccountNo;\r\n obj[\"Amount Due\"] = getAmt(elt?.amount + elt?.commissionAmount);\r\n return obj;\r\n });\r\n } else if (reportFilter == \"11\") {\r\n data = reportData.map((elt) => {\r\n const obj = {};\r\n obj[\"Balance Range (Le)\"] = elt.name;\r\n obj[\"I.S Count\"] = elt.individualSubscriber;\r\n obj[\"C.S Count\"] = elt.corporateSubscriber;\r\n obj[\"Total Count\"] = elt.totalSubscriberCount;\r\n obj[\"Percent Share\"] = `${elt.percentShare?.toFixed(2)}%`;\r\n return obj;\r\n });\r\n } else if (reportFilter == \"12\") {\r\n data = [\r\n {\r\n \"Bank Type\": \"Settlement Bank\",\r\n Amount: getAmt(reportData?.settlemenetBankBalance || 0),\r\n \"Percent Share\": `${reportData?.percentagesettlementshare}%`,\r\n \"Required Action\":\r\n reportData?.netPosition < 0\r\n ? \"Please transfer funds from Collection to Settlement Account to meet the settlement cash requirements\"\r\n : \"Liquidity position OK\",\r\n },\r\n {\r\n \"Bank Type\": \"Collection Bank\",\r\n Amount: getAmt(reportData?.collectionBankBalance || 0),\r\n \"Percent Share\": `${reportData?.percentagecollectionshare}%`,\r\n \"Required Action\": \"\",\r\n },\r\n ];\r\n }\r\n\r\n const headings = getCsvHeader();\r\n const ws = XLSX.utils.json_to_sheet(data);\r\n\r\n // Add the worksheet to the workbook\r\n XLSX.utils.book_append_sheet(wb, ws, \"Sheet1\");\r\n\r\n // Set up column headers\r\n ws[\"!cols\"] = headings.map((heading) => ({ wch: heading.length + 5 }));\r\n\r\n // Export the workbook to a file\r\n setTimeout(() => {\r\n setXlLoading(false);\r\n }, 1000);\r\n XLSX.writeFile(wb, \"report.xlsx\");\r\n };\r\n\r\n const exportToCSV = (reportData) => {\r\n if (reportFilter == \"10\" || reportFilter === \"11\" || reportFilter == \"12\") {\r\n exportToXlsx(reportData);\r\n return;\r\n }\r\n const header = getCsvHeader();\r\n const originalHeader = [...header];\r\n\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n\r\n var Heading = getCsvHeading();\r\n\r\n let newReportData = reportData.map((elt) => {\r\n const obj = Object.assign({}, elt);\r\n obj.status = statusFormat(obj.status);\r\n obj.amount = getAmt(obj.amount);\r\n // return obj.feesAmount ? getFeesAmt(obj) : obj\r\n return csvFormat(obj);\r\n });\r\n\r\n var ws = XLSX.utils.aoa_to_sheet(Heading);\r\n XLSX.utils.sheet_add_json(ws, newReportData, {\r\n header: header,\r\n skipHeader: true,\r\n origin: -1,\r\n });\r\n\r\n if (reportFilter == \"4\" && reportData.length) {\r\n XLSX.utils.sheet_add_aoa(\r\n ws,\r\n [[\"Total\", \"\", \"\", \"\", getPdfTotal(reportData)]],\r\n { origin: -1 }\r\n );\r\n }\r\n\r\n if (reportFilter == \"2\" && reportData.length) {\r\n XLSX.utils.sheet_add_aoa(\r\n ws,\r\n [[\"Total\", \"\", \"\", getPdfTotal(reportData)]],\r\n { origin: -1 }\r\n );\r\n }\r\n if (reportFilter == \"10\" && reportData.length) {\r\n XLSX.utils.sheet_add_aoa(\r\n ws,\r\n [[\"Total\", \"\", \"\", getPdfTotal(reportData)]],\r\n { origin: -1 }\r\n );\r\n }\r\n\r\n // For setting width of columns\r\n var wscols = [];\r\n for (var i = 0; i < header.length; i++) {\r\n // columns length added\r\n wscols.push({ wch: header[i].length + 10 });\r\n }\r\n ws[\"!cols\"] = wscols;\r\n if (ws[\"!cols\"]) {\r\n const original = getColumnName(\r\n ws[\"!cols\"].length > 0 ? ws[\"!cols\"].length - 1 : 0\r\n );\r\n const replace = getColumnName(\r\n originalHeader.length > 0 ? originalHeader.length - 1 : 0\r\n );\r\n\r\n // For removing other columns\r\n ws[\"!ref\"] = ws[\"!ref\"].replace(original, replace);\r\n }\r\n\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, \"Report\" + fileExtension);\r\n setTimeout(() => {\r\n setXlLoading(false);\r\n }, 1000);\r\n };\r\n\r\n const fetchMerchants = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/MerchantProfile/ddllist\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setMerchant(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching merchant\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/bankProfile/ddllist?Accounttype=Collection\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setBank(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching bank\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in bank\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const changeReportType = (val) => {\r\n setReportFilter(val);\r\n setResponse(false);\r\n setResult([]);\r\n setLoading(false);\r\n setPdfLoading(false);\r\n setXlLoading(false);\r\n };\r\n\r\n const detailHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(resp.list);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(resp.list);\r\n setPageCount(pc);\r\n };\r\n\r\n const detailSummaryHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(resp.list);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(resp.list);\r\n setPageCount(pc);\r\n };\r\n\r\n const detailSummarySort = (s) => {\r\n setSort(s);\r\n };\r\n\r\n const settlementSummaryHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(resp.list);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(resp.list);\r\n setPageCount(pc);\r\n };\r\n\r\n const transactionReportHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(reportFilter == \"12\" ? resp : resp.list);\r\n setReportHeadings(resp);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(reportFilter == \"12\" ? resp : resp.list);\r\n setPageCount(pc);\r\n };\r\n\r\n const bankReportHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(resp.list);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(resp.list);\r\n setPageCount(pc);\r\n };\r\n\r\n const summaryHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(resp.list);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(resp.list);\r\n setPageCount(pc);\r\n };\r\n\r\n const handleClick = (e, index) => {\r\n e.preventDefault();\r\n setCurrentPage(index + 1);\r\n };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n const reportLoading = (loaderValue) => {\r\n setLoading(loaderValue);\r\n };\r\n\r\n const getReportData = () => {\r\n setPdfLoading(true);\r\n // setReportData([]);\r\n };\r\n\r\n const getXLReportData = () => {\r\n setXlLoading(true);\r\n // setReportData([]);\r\n };\r\n\r\n const setReportHandle = (resp) => {\r\n if (pdfLoading) {\r\n exportPDF(reportFilter == \"12\" ? resp : resp.list);\r\n } else if (xlLoading) {\r\n exportToCSV(reportFilter == \"12\" ? resp : resp.list);\r\n }\r\n };\r\n\r\n const setErrorReportData = () => {\r\n setPdfLoading(false);\r\n setXlLoading(false);\r\n };\r\n\r\n const changePageNo = (num) => {\r\n setCurrentPage(num);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n Reports\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n setVersion(e.target.value);\r\n setReportFilter(\"\");\r\n }}\r\n >\r\n \r\n {VERSIONS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n
\r\n {Number(version) === 1 && (\r\n \r\n \r\n \r\n
\r\n \r\n changeReportType(e.target.value)\r\n }\r\n >\r\n \r\n {REPORTS.map((c) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n {/* \r\n
\r\n changeReportType(e.target.value)}\r\n >\r\n \r\n {REPORTS.map(c =>\r\n \r\n )}\r\n \r\n
\r\n\r\n
*/}\r\n\r\n {reportFilter === \"1\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"2\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"3\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"4\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"5\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"6\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"7\" && (\r\n \r\n )}\r\n\r\n {reportFilter === \"8\" && (\r\n \r\n )}\r\n {reportFilter === \"9\" && (\r\n \r\n {\" \"}\r\n \r\n \r\n )}\r\n {reportFilter === \"10\" && (\r\n \r\n )}\r\n {reportFilter === \"11\" && (\r\n \r\n )}\r\n {reportFilter === \"12\" && (\r\n \r\n )}\r\n {reportFilter === \"13\" && (\r\n \r\n )}\r\n {reportFilter === \"14\" && (\r\n \r\n )}\r\n\r\n {response && (\r\n <>\r\n
\r\n {/* */}\r\n Export      \r\n \r\n PDF{\" \"}\r\n {pdfLoading && }\r\n \r\n    \r\n \r\n EXCEL{\" \"}\r\n {xlLoading && }\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n {version === \"2\" && (\r\n \r\n )}\r\n {response && reportFilter === \"1\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"2\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"3\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"4\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"5\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"6\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"7\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"8\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"10\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"11\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"12\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"13\" && (\r\n \r\n )}\r\n\r\n {response && reportFilter === \"14\" && (\r\n \r\n )}\r\n\r\n {result.length > 0 && (\r\n \r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Reports;\r\n","import React from \"react\";\r\n\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Label,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n} from \"reactstrap\";\r\nimport { checkSpace, postMethodDefaultToken } from '../../services/httpServices';\r\nimport { checkName, setUserDetails } from '../../services/util';\r\nimport { PIN_HINT, PASSWORD_HINT, MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport swal from 'sweetalert';\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\n\r\n\r\n\r\nconst codes = [23225, 23230, 23231, 23232,\r\n 23233, 23234, 23244, 23275, 23276, 23277,\r\n 23278, 23279, 23280, 23288, 23299];\r\n\r\n\r\nconst ProfileDetails = (props) => {\r\n\r\n // const initialValue = {\r\n // 'firstName': props.userDetails && props.userDetails.firstName ? \r\n // props.userDetails.firstName : '',\r\n // 'lastName': props.userDetails && props.userDetails.lastName ? \r\n // props.userDetails.lastName : '',\r\n // 'mobileCode': props.userDetails && props.userDetails.mobileCode ? \r\n // props.userDetails.mobileCode : codes[0],\r\n // 'phone': props.userDetails && props.userDetails.phone ? \r\n // props.userDetails.phone : '',\r\n // 'email': props.userDetails && props.userDetails.email ? \r\n // props.userDetails.email : '',\r\n // 'password': props.userDetails && props.userDetails.password ? \r\n // props.userDetails.password : '',\r\n // 'oneFAAmt': props.userDetails && props.userDetails.oneFAAmt ? \r\n // props.userDetails.oneFAAmt : '',\r\n // 'authMode': props.userDetails && props.userDetails.authMode ? \r\n // props.userDetails.authMode : '',\r\n // 'confirmpswd': props.userDetails && props.userDetails.confirmpswd ? \r\n // props.userDetails.confirmpswd : ''\r\n // };\r\n\r\n const initialValue = setUserDetails(props);\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [showConfirmPswd, setComfirmPswd] = React.useState(false);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [showConfirmPin, setShowConfirmPin] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n\r\n // value = value.trim();\r\n if (checkSpace(value)) {\r\n // if (name === 'password') {\r\n // if (pswdValidation(value)) {\r\n // setValues({ ...values, [name]: value });\r\n // }\r\n // } else \r\n if (name === \"confirmpswd\") {\r\n validateConfirmPswd(value);\r\n setValues({ ...values, [name]: value });\r\n } else if (name === 'firstName') {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === 'lastName') {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === 'organisationName') {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === 'phone') {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"pin\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"confirmpin\") {\r\n validateConfirmPin(value);\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({...values, phone: value, mobileCode: data.dialCode,\r\n mobWithoutCC: value.substring(data.dialCode.length)\r\n });\r\n }\r\n return;\r\n }\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const validateConfirmPin = (value) => {\r\n let error = {};\r\n if (value !== values.pin) {\r\n error.confirmpin = 'Confirm pin should match Password';\r\n }\r\n setErrors(error);\r\n }\r\n\r\n const pswdValidation = (value) => {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const validateProfile = (e) => {\r\n e.preventDefault();\r\n if (checkProfileTab()) {\r\n // Call gen-otp api\r\n genotp();\r\n } else {\r\n }\r\n }\r\n\r\n const genotp = () => {\r\n setLoading(true);\r\n let data = {\r\n 'Email': values.email ? values.email : '',\r\n 'Mobilenumber': values.mobWithoutCC,\r\n 'FirstName': values.subscriberType && values.subscriberType == 'Individual' ? values.firstName.trim() :\r\n values.organisationName,\r\n 'LastName': values.lastName.trim(),\r\n 'MobileCode': Number(values.mobileCode)\r\n }\r\n let errorMsg = '';\r\n postMethodDefaultToken('/api/Auth/SelfOtp', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let msg = res.data.responseMessage || 'Otp sent';\r\n openModal(msg);\r\n\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in generating otp';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons:\r\n {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: 'sweet-btn'\r\n }\r\n }\r\n }).then((confirm) => {\r\n if (confirm) {\r\n props.parentCallback(values);\r\n } else {\r\n props.parentCallback(values);\r\n }\r\n });\r\n }\r\n\r\n const checkProfileTab = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.subscriberType) {\r\n error.subscriberType = 'Subscriber Type is Required';\r\n valid = false;\r\n }\r\n if (values.subscriberType == 'Individual') {\r\n if (!values.firstName) {\r\n error.firstName = 'First Name is Required';\r\n valid = false\r\n }\r\n if (!values.lastName) {\r\n error.lastName = 'Last Name is Required';\r\n valid = false\r\n }\r\n } else if (values.subscriberType == 'Organisation') {\r\n if (!values.organisationName) {\r\n error.organisationName = 'Organisation Name is Required';\r\n valid = false;\r\n }\r\n }\r\n \r\n if (!values.mobileCode) {\r\n error.mobileCode = 'Mobile Code is Required';\r\n valid = false\r\n }\r\n if (!values.phone) {\r\n error.phone = 'Phone Number is Required';\r\n valid = false\r\n } else if (!values.mobWithoutCC) {\r\n error.phone = 'Phone Number is Required';\r\n valid = false\r\n } \r\n // else if (values.phone.length != 6) {\r\n // error.phone = 'Phone Number should have 6 digits';\r\n // valid = false;\r\n // }\r\n if (!values.password) {\r\n error.password = 'Password is Required';\r\n valid = false\r\n } else if (values.password.length < 6) {\r\n error.password = 'Password should have atleast 6 characters';\r\n valid = false\r\n }\r\n if (!values.confirmpswd) {\r\n error.confirmpswd = 'Confirm Password is Required';\r\n valid = false\r\n } else if (values.confirmpswd !== values.password) {\r\n error.confirmpswd = 'Confirm password should match Password';\r\n valid = false\r\n }\r\n\r\n if (!values.pin) {\r\n error.pin = 'Pin is Required';\r\n valid = false\r\n } else if (values.pin.length !== 4) {\r\n error.pin = 'Pin should have 4 digits';\r\n valid = false\r\n }\r\n if (!values.confirmpin) {\r\n error.confirmpin = 'Confirm Pin is Required';\r\n valid = false\r\n } else if (values.pin !== values.confirmpin) {\r\n error.confirmpin = 'Confirm Pin should match Pin';\r\n valid = false\r\n }\r\n if (values.email) {\r\n if (!checkEmail(values.email)) {\r\n error.email = 'Please enter valid email';\r\n valid = false;\r\n }\r\n }\r\n setErrors(error);\r\n return valid;\r\n }\r\n\r\n const checkEmail = (email) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n if (emailRegEx.test(email)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const validateConfirmPswd = (value) => {\r\n let error = {};\r\n if (value !== values.password) {\r\n error.confirmpswd = 'Confirm password should match Password';\r\n }\r\n setErrors(error);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n\r\n \r\n Subscriber Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {values.subscriberType && <>\r\n\r\n {values.subscriberType == \"Individual\" && \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName &&
\r\n * {errors.firstName}\r\n
}\r\n
\r\n \r\n
}\r\n {values.subscriberType == 'Individual' && \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName &&
\r\n * {errors.lastName}\r\n
}\r\n
\r\n \r\n
\r\n }\r\n\r\n {values.subscriberType == 'Organisation' && \r\n \r\n \r\n \r\n Organisation Name\r\n \r\n \r\n {errors.organisationName &&
\r\n * {errors.organisationName}\r\n
}\r\n
\r\n \r\n
\r\n }\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email &&
\r\n * {errors.email}\r\n
}\r\n
\r\n \r\n
\r\n {/* \r\n \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n {errors.mobileCode &&
\r\n * {errors.mobileCode}\r\n
}\r\n
\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n {!showPswd && \r\n \r\n setShowPswd(true)} />\r\n \r\n \r\n }\r\n\r\n {showPswd && \r\n \r\n setShowPswd(false)} />\r\n \r\n }\r\n \r\n * {PASSWORD_HINT}\r\n {errors.password &&
\r\n * {errors.password}\r\n
}\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n Confirm Password\r\n \r\n \r\n \r\n {!showConfirmPswd && \r\n \r\n setComfirmPswd(true)} />\r\n \r\n \r\n }\r\n\r\n {showConfirmPswd && \r\n \r\n setComfirmPswd(false)} />\r\n \r\n }\r\n \r\n {errors.confirmpswd &&
\r\n * {errors.confirmpswd}\r\n
}\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n \r\n {!showPin && \r\n \r\n setShowPin(true)} />\r\n \r\n \r\n }\r\n\r\n {showPin && \r\n \r\n setShowPin(false)} />\r\n \r\n }\r\n \r\n * {PIN_HINT}\r\n {errors.pin &&
\r\n * {errors.pin}\r\n
}\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n Confirm PIN\r\n \r\n \r\n \r\n {!showConfirmPin && \r\n \r\n setShowConfirmPin(true)} />\r\n \r\n \r\n }\r\n\r\n {showConfirmPin && \r\n \r\n setShowConfirmPin(false)} />\r\n \r\n }\r\n \r\n {errors.confirmpin &&
\r\n * {errors.confirmpin}\r\n
}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Save and Next {loading && }\r\n \r\n \r\n \r\n
\r\n\r\n }\r\n\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProfileDetails;","import React from \"react\"\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input, InputGroupText, InputGroupAddon, InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\r\nimport { postMethodDefaultToken } from \"services/httpServices\";\r\nimport swal from 'sweetalert';\r\n\r\n\r\n\r\nconst initialValue = {\r\n firstName: 'Inderjeet',\r\n lastName: 'Kaur',\r\n mobileCode: '23458',\r\n phone: '984983',\r\n email: 'ik@gmail.com',\r\n password: 'Inder@123',\r\n oneFAAmt: '',\r\n authMode: ''\r\n};\r\n\r\nconst VerifyUser = (props) => {\r\n const [values, setValues] = React.useState(props);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const validateOTP = (e) => {\r\n e.preventDefault();\r\n if (checkOTPTab()) {\r\n // Call verify-otp api\r\n verifyotp();\r\n } else {\r\n }\r\n }\r\n\r\n const verifyotp = () => {\r\n setLoading(true);\r\n let data = {\r\n 'Email': values.email ? values.email : '',\r\n 'Mobilenumber': values.phone,\r\n 'FirstName': values.firstName,\r\n 'LastName': values.lastName,\r\n 'Otp': values.otp\r\n }\r\n let errorMsg = '';\r\n postMethodDefaultToken('/api/Auth/VerifySelfOtp', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let msg = res.data.responseMessage || 'Otp Verified';\r\n openModal(msg);\r\n\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in verifying otp';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in verifying otp';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons:\r\n {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: 'sweet-btn'\r\n }\r\n }\r\n }).then((confirm) => {\r\n if (confirm) {\r\n props.parentCallback(values);\r\n } else {\r\n props.parentCallback(values);\r\n }\r\n });\r\n }\r\n\r\n const checkOTPTab = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.otp) {\r\n error.otp = 'OTP is Required';\r\n valid = false\r\n }\r\n setErrors(error);\r\n return valid;\r\n }\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setSpinner(true);\r\n setValues({...values, 'otp': ''});\r\n genOtp();\r\n }\r\n\r\n const genOtp = () => {\r\n let data = {\r\n 'Email': values.email ? values.email : '',\r\n 'Mobilenumber': values.mobWithoutCC,\r\n 'FirstName': values.subscriberType && values.subscriberType == 'Individual' ? values.firstName.trim() :\r\n values.organisationName,\r\n 'LastName': values.lastName,\r\n 'MobileCode': Number(values.mobileCode)\r\n }\r\n let errorMsg = '';\r\n postMethodDefaultToken('/api/Auth/SelfOtp', data, 'post')\r\n .then(res => {\r\n setSpinner(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in generating otp';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setSpinner(false);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const goBack = () => {\r\n props.goBack();\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n Profile Details\r\n
\r\n
\r\n {values.subscriberType == 'Individual' ? \r\n Name : {values.firstName} {values.lastName} :\r\n \r\n Name : {values.organisationName}\r\n }\r\n
\r\n
\r\n Phone : {`(${values.mobileCode}) - ${values.mobWithoutCC}`}\r\n
\r\n
\r\n E-mail : {values.email}\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n OTP\r\n \r\n
\r\n \r\n \r\n Resend\r\n    \r\n {spinner &&\r\n
\r\n \r\n
}\r\n
\r\n
\r\n\r\n \r\n
\r\n *\r\n we have sent you an OTP on your registered mobile number / email\r\n
\r\n
\r\n {errors.otp &&
\r\n * {errors.otp}\r\n
}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default VerifyUser;","import { data } from \"jquery\";\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n// core components\r\nimport { postMethod, postMethodDefaultToken } from \"../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { AUTH_MODE, AMOUNT_HINT } from \"appConfig\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\n\r\nconst MODES = AUTH_MODE;\r\nconst HINT = AMOUNT_HINT;\r\n\r\nconst codes = [\r\n 23225, 23230, 23231, 23232, 23233, 23234, 23244, 23275, 23276, 23277, 23278,\r\n 23279, 23280, 23288, 23299,\r\n];\r\n\r\nconst mobileMoney = [];\r\n\r\nconst banks = [];\r\n\r\nconst Subscriber = (props) => {\r\n const [values, setValues] = React.useState(props);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n // const validationErrors = validate(values);\r\n // setErrors(validationErrors);\r\n };\r\n\r\n const checkBbanValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 18) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 5) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const reviewModal = () => {\r\n props.reviewModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n let errors = {};\r\n\r\n if (!inputs.subscriberType) {\r\n errors.subscriberType = \"Please select subscriber type\";\r\n }\r\n if (inputs.subscriberType == \"Individual\") {\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is Required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is Required\";\r\n }\r\n }\r\n // else if (inputs.subscriberType == 'Organisation') {\r\n // if (!inputs.organisationName) {\r\n // errors.organisationName = 'Organsation Name is Required';\r\n // }\r\n // }\r\n // if (!inputs.firstName) {\r\n // errors.firstName = 'First Name is required';\r\n // }\r\n // if (!inputs.lastName) {\r\n // errors.lastName = \"Last Name is required\";\r\n // }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = \"Phone Number is Required\";\r\n }\r\n // else if (inputs.phone.length !== 6) {\r\n // errors.phone = 'Phone Number should have 6 digits';\r\n // }\r\n if (inputs.email && !emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (!inputs.password) {\r\n errors.password = \"Password is required\";\r\n }\r\n // if (!inputs.mobileMoney) {\r\n // errors.mobileMoney = 'Mobile Money is required';\r\n // }\r\n // if (!inputs.mobileMoneyAccNo) {\r\n // errors.mobileMoneyAccNo = 'Mobile Money account number is required';\r\n // }\r\n if (!inputs.bank) {\r\n errors.bank = \"Bank is required\";\r\n }\r\n // if (!inputs.bban) {\r\n // errors.bban = 'BBAN is required';\r\n // }\r\n // if (!inputs.bankLinkedMobileCode) {\r\n // errors.bankLinkedMobileCode = 'Mobile Code is required';\r\n // }\r\n // if (!inputs.bankLinkedPhone) {\r\n // errors.bankLinkedPhone = 'Phone number is required';\r\n // }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n let url = \"/api/Subscriber/save\";\r\n if (isNoError) {\r\n var data = new FormData();\r\n if (props.subscriberType === \"Individual\") {\r\n data.append(\"FirstName\", values.firstName);\r\n data.append(\"LastName\", values.lastName);\r\n data.append(\"SubscriberType\", props.subscriberType);\r\n } else if (\r\n props.subscriberType === \"Organisation\" &&\r\n props?.registerType !== \"sub_agent\"\r\n ) {\r\n data.append(\"SubscriberType\", \"Organisation\");\r\n data.append(\"OrganizationName\", values.organisationName);\r\n } else {\r\n data.append(\"FirstName\", values.firstName);\r\n data.append(\"LastName\", values.lastName);\r\n data.append(\"SubscriberType\", props.subscriberType);\r\n }\r\n data.append(\"MobileCode\", values.mobileCode);\r\n data.append(\"MobileNumber\", values.mobWithoutCC);\r\n data.append(\"Email\", values.email);\r\n data.append(\"BBAN\", values.bban);\r\n // data.append('BBANLinkMobileNumber', Number(values.bankMobWithoutCC));\r\n // data.append('BBANLinkMobileCode', Number(values.bankLinkedMobileCode));\r\n data.append(\"BBANLinkMobileNumber\", Number(0));\r\n data.append(\"BBANLinkMobileCode\", Number(0));\r\n if (props.selfRegistered) {\r\n data.append(\"AccountCreatedBy\", \"Self\");\r\n data.append(\"IsVerifiedByAdmin\", false);\r\n } else {\r\n data.append(\"AccountCreatedBy\", \"Admin\");\r\n data.append(\"IsVerifiedByAdmin\", true);\r\n }\r\n data.append(\"Password\", values.password);\r\n if (values.mobileMoney) {\r\n data.append(\"MMOId\", values.mobileMoney);\r\n } else {\r\n data.append(\"MMOId\", 0);\r\n }\r\n if (values.mobileMoneyAccNo) {\r\n data.append(\"MMOAccountNumber\", values.mobileMoneyAccNo);\r\n } else {\r\n data.append(\"MMOAccountNumber\", \"\");\r\n }\r\n data.append(\"BankProfileId\", values.bank);\r\n data.append(\"AuthFactorType\", values.authMode);\r\n data.append(\r\n \"ExcidedPaymentAmount\",\r\n values.authMode == \"1FA\" ? values.oneFAAmt : 0\r\n );\r\n data.append(\"Pin\", values.pin);\r\n data.append(\"BankAccountNumber\", values.bankAccNo);\r\n\r\n if (props.registerType === \"super_agent\") {\r\n url = \"/api/Agent/SaveSuperAgent\";\r\n data.delete(\"SubscriberType\");\r\n }\r\n if (props.registerType === \"sub_agent\") {\r\n url = \"/api/Agent/SaveSubAgent\";\r\n data.append(\"Type\", Object.fromEntries(data)?.SubscriberType);\r\n data.append(\"TopUpCommissionId\", props.cashTopupCommId);\r\n data.delete(\"SubscriberType\");\r\n }\r\n if (props.registerType === \"master_agent\") {\r\n url = \"/api/Agent/SaveMasterAgent\";\r\n data.delete(\"SubscriberType\");\r\n }\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n if (props.selfRegistered) {\r\n SubscriberSelfReg(data);\r\n } else {\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n }\r\n };\r\n\r\n const SubscriberSelfReg = (data) => {\r\n let errorMsg = \"\";\r\n let url = \"/api/Subscriber/SelfRegistration\";\r\n postMethodDefaultToken(url, data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const getHeaderCls = () => {\r\n if (props.selfRegistered) {\r\n return \" border-0\";\r\n } else {\r\n return \"bg-white border-0\";\r\n }\r\n };\r\n\r\n const getBtnCls = () => {\r\n if (props.selfRegistered) {\r\n return \"sign-up-btn float-right\";\r\n } else {\r\n return \"btn float-right\";\r\n }\r\n };\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n {props?.modalName || \"Subscriber Information\"}\r\n

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Profile Details\r\n
\r\n
\r\n \r\n {/* {values.subscriberType == \"Individual\" && */}\r\n <>\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n {/* } */}\r\n\r\n {/* {values.subscriberType == \"Organisation\" &&\r\n \r\n \r\n \r\n Organisation Name\r\n \r\n \r\n {errors.organisationName &&
\r\n * {errors.organisationName}\r\n
}\r\n
\r\n } */}\r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n */}\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {values.authMode == \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {/*
*/}\r\n {/* Address */}\r\n {/*
\r\n Mobile Money Details\r\n
*/}\r\n {/*
\r\n \r\n \r\n \r\n \r\n Mobile Money (optional)\r\n \r\n \r\n \r\n {values.mobileMoneyList && values.mobileMoneyList.map(c =>\r\n )}\r\n \r\n \r\n \r\n {values.mobileMoney.length > 0 && \r\n \r\n \r\n MM Account Number (optional)\r\n \r\n \r\n {errors.mobileMoneyAccNo &&
\r\n * {errors.mobileMoneyAccNo}\r\n
}\r\n
\r\n \r\n }\r\n
\r\n
*/}\r\n
\r\n {/* Address */}\r\n {props.cashTopupCommId !== null && (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n Cash Topup Commission\r\n \r\n \r\n {values.cashTopUpCommList &&\r\n values.cashTopUpCommList.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )}\r\n\r\n
\r\n Bank Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n {values.bankList &&\r\n values.bankList.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n BBAN Number (optional)\r\n \r\n \r\n {errors.bban &&
\r\n * {errors.bban}\r\n
}\r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n {/* \r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n {errors.bankLinkedPhone &&
\r\n * {errors.bankLinkedPhone}\r\n
}\r\n
\r\n */}\r\n\r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n {errors.bankLinkedPhone &&
\r\n * {errors.bankLinkedPhone}\r\n
}\r\n
\r\n */}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Subscriber;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n Button,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Modal,\r\n ModalBody\r\n} from \"reactstrap\";\r\nimport { setUserDetails, getMobCodes, checkDigitOnly, checkBankAccNo, checkBbanValidation } from \"services/util\";\r\nimport { checkSpace } from '../../services/httpServices';\r\nimport { AUTH_MODE, AMOUNT_HINT, MOBILE_ONLY_COUNTRY } from 'appConfig';\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport PreviewSubscriber from '../preview-subscriber';\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst BankDetails = (props) => {\r\n const BANKS = props.banks ? props.banks : [];\r\n const codes = getMobCodes();\r\n const initialValue = setUserDetails(props);\r\n const [banks, setBanks] = useState(BANKS);\r\n const [values, setValues] = useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const history = useHistory();\r\n\r\n const MODES = AUTH_MODE;\r\n const HINT = AMOUNT_HINT;\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n // value = value.trim();\r\n if (checkSpace(value)) {\r\n if (name === \"bankLinkedPhone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === 'bban') {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === 'bankAccNo') {\r\n if (checkBankAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({...values, \r\n bankLinkedPhone: value, \r\n bankLinkedMobileCode: data.dialCode,\r\n bankMobWithoutCC: value.substring(data.dialCode.length)\r\n });\r\n }\r\n return;\r\n }\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const goBack = () => {\r\n props.goBack();\r\n }\r\n\r\n const validateBank = (e) => {\r\n e.preventDefault();\r\n if (checkBank()) {\r\n props.parentCallback(values);\r\n setOpen(true);\r\n }\r\n }\r\n\r\n const checkBank = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.bank) {\r\n error.bank = 'Bank is Required';\r\n valid = false;\r\n }\r\n // if (!values.bban) {\r\n // error.bban = 'Bban Number is Required';\r\n // valid = false;\r\n // } else if (values.bban.length < 8 || values.bban.length > 18) {\r\n // error.bban = 'Please enter 8 to 18 digit BBAN Number';\r\n // valid = false;\r\n // }\r\n // if (values.bban.length !== 0 && (values.bban.length < 8 || values.bban.length > 18)) {\r\n // error.bban = 'Please enter 8 to 18 digit BBAN Number';\r\n // valid = false;\r\n // }\r\n\r\n if (!values.bankLinkedMobileCode) {\r\n error.bankLinkedMobileCode = 'Mobile Code is Required';\r\n valid = false;\r\n }\r\n // if (!values.bankLinkedPhone) {\r\n // error.bankLinkedPhone = 'Phone number is Required';\r\n // valid = false;\r\n // } else if (!values.bankMobWithoutCC) {\r\n // error.bankLinkedPhone = 'Phone number is Required';\r\n // valid = false;\r\n // } \r\n\r\n if (!values.authMode) {\r\n error.authMode = 'Please select authentication mode';\r\n valid = false;\r\n }\r\n\r\n if (values.authMode == \"1FA\" && values.oneFAAmt == '') {\r\n error.oneFAAmt = \"Please enter amount\";\r\n valid = false;\r\n }\r\n\r\n if (!values.bankAccNo) {\r\n error.bankAccNo = 'Please enter account number';\r\n valid = false;\r\n } else if (values.bankAccNo.length < 8 || values.bankAccNo.length > 18) {\r\n error.bankAccNo = 'Please enter 8 to 18 digit Bank Account Number';\r\n valid = false;\r\n }\r\n setErrors(error);\r\n return valid;\r\n }\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n // history.push('/auth/login');\r\n history.push({\r\n pathname: '/show-msg',\r\n state: {\r\n error: false, \r\n msg: `You've been successfully registered on Smartpay`,\r\n login: true\r\n }\r\n });\r\n }\r\n\r\n const reviewModal = () => {\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n {/* \r\n {banks && banks.map(c => )}\r\n */}\r\n {errors.bank &&
\r\n * {errors.bank}\r\n
}\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n BBAN Number (optional)\r\n \r\n \r\n {errors.bban &&
\r\n * {errors.bban}\r\n
}\r\n
\r\n */}\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo &&
\r\n * {errors.bankAccNo}\r\n
}\r\n
\r\n \r\n
\r\n\r\n {/* \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.bankLinkedPhone &&
\r\n * {errors.bankLinkedPhone}\r\n
}\r\n
\r\n \r\n
*/}\r\n\r\n \r\n\r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n {/* \r\n {MODES.map(c => )}\r\n */}\r\n {errors.authMode &&
\r\n * {errors.authMode}\r\n
}\r\n
\r\n \r\n\r\n {values.authMode == \"1FA\" && \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt &&
\r\n * {errors.oneFAAmt}\r\n
}\r\n\r\n
\r\n }\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default BankDetails;","import React, { useState } from \"react\";\r\nimport {\r\n Button,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n Modal, ModalBody\r\n} from \"reactstrap\";\r\nimport { setUserDetails, getMobCodes } from \"services/util\";\r\nimport { checkSpace } from '../../services/httpServices';\r\nimport PreviewSubscriber from '../preview-subscriber';\r\nimport { useHistory } from \"react-router\";\r\n\r\n\r\nconst MMODetails = (props) => {\r\n const MMO = props.mmo ? props.mmo : [];\r\n const codes = getMobCodes();\r\n const initialValue = setUserDetails(props);\r\n const [mobileMoney, setMMO] = useState(MMO);\r\n const [values, setValues] = useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const history = useHistory();\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n // value = value.trim();\r\n if (checkSpace(value)) {\r\n if (name === 'mobileMoneyAccNo') {\r\n if (checkMobileMoneyAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 11) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const goBack = () => {\r\n props.goBack();\r\n }\r\n\r\n const validateMM = (e) => {\r\n e.preventDefault();\r\n if (checkMMTab()) {\r\n props.parentCallback(values);\r\n setOpen(true);\r\n }\r\n }\r\n\r\n const checkMMTab = () => {\r\n let error = {};\r\n let valid = true;\r\n \r\n if (values.mobileMoney) {\r\n if (!values.mobileMoneyAccNo) {\r\n error.mobileMoneyAccNo = 'Mobile Money Account Number is Required';\r\n valid = false;\r\n }\r\n // if (values.mobileMoneyAccNo.length !== 11) {\r\n // error.mobileMoneyAccNo = 'Mobile Money Account Number should have 11 digits';\r\n // valid = false;\r\n // }\r\n } else if (values.mobileMoneyAccNo) {\r\n if (!values.mobileMoney) {\r\n error.mobileMoney = 'Mobile Money Account is Required';\r\n valid = false;\r\n }\r\n // if (values.mobileMoneyAccNo.length !== 11) {\r\n // error.mobileMoneyAccNo = 'Mobile Money Account Number should have 11 digits';\r\n // valid = false;\r\n // }\r\n }\r\n\r\n // if (!values.mobileMoney) {\r\n // error.mobileMoney = 'Mobile Money Account is Required';\r\n // valid = false;\r\n // }\r\n // if (!values.mobileMoneyAccNo) {\r\n // error.mobileMoneyAccNo = 'Mobile Money Account Number is Required';\r\n // valid = false;\r\n // }\r\n // if (values.mobileMoneyAccNo.length !== 11) {\r\n // error.mobileMoneyAccNo = 'Mobile Money Account Number should have 11 digits';\r\n // valid = false;\r\n // }\r\n setErrors(error);\r\n return valid;\r\n }\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n // history.push('/auth/login');\r\n history.push({\r\n pathname: '/show-msg',\r\n state: {\r\n error: false, \r\n msg: `You've been successfully registered on Smartpay`,\r\n login: true\r\n }\r\n });\r\n }\r\n\r\n const reviewModal = () => {\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Mobile Money (optional)\r\n \r\n \r\n \r\n {mobileMoney && mobileMoney.map(c => )}\r\n \r\n {errors.mobileMoney &&
\r\n * {errors.mobileMoney}\r\n
}\r\n
\r\n \r\n \r\n \r\n \r\n MM Account Number (optional)\r\n \r\n \r\n {errors.mobileMoneyAccNo &&
\r\n * {errors.mobileMoneyAccNo}\r\n
}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n )\r\n}\r\nexport default MMODetails;","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport ProfileDetails from \"./profile-details\";\r\nimport VerifyUser from \"./verify-user\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getMethodDefaultToken } from '../../services/httpServices';\r\nimport BankDetails from \"./bank-details\";\r\nimport MMODetails from \"./mmo-details\";\r\n\r\n\r\nconst SignupSubscriber = () => {\r\n const [profileDetails, setProfileDetails] = useState({});\r\n const [page, setPage] = useState(1);\r\n const [banks, setBanks] = React.useState(null);\r\n const [mobileMoney, setMMO] = React.useState(null);\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n fetchBank();\r\n fetchMMO();\r\n }, []);\r\n\r\n\r\n const userDetailCB = (data) => {\r\n setProfileDetails(data);\r\n setPage(2);\r\n }\r\n\r\n const otpVerified = () => {\r\n setPage(3);\r\n }\r\n\r\n const bankDetailCB = (data) => {\r\n setProfileDetails(data);\r\n // setPage(4);\r\n }\r\n\r\n const mmoDetailCB = (data) => {\r\n setProfileDetails(data);\r\n setPage(4);\r\n }\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = '';\r\n getMethodDefaultToken('/api/bankProfile/ddllist?Accounttype=Collection', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setBanks(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n\r\n const fetchMMO = async () => {\r\n let errorMsg = '';\r\n getMethodDefaultToken('/api/MobileMoney/ddllist', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setMMO(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n

Register Subscriber

\r\n \r\n
\r\n
\r\n \r\n {page == 1 && \r\n }\r\n {page == 2 && \r\n {setPage(1)}}\r\n />}\r\n {page == 3 &&\r\n {setPage(1)}}\r\n />}\r\n {page == 4 &&\r\n {setPage(3)}}\r\n />}\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SignupSubscriber;","import React, { useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input, InputGroupText, InputGroupAddon, InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\r\nimport { PIN_HINT } from \"appConfig\";\r\nimport swal from 'sweetalert';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { useHistory } from \"react-router\";\r\n\r\n\r\nconst initialValue = {\r\n 'otp': '',\r\n 'pin': '',\r\n 'confirmPin': ''\r\n};\r\n\r\nconst ChangePin = () => {\r\n\r\n const [values, setValues] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [form, setForm] = React.useState(null);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [showConfirmPin, setShowConfirmPin] = React.useState(false);\r\n const [otpLoading, setotpLoading] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n\r\n\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n useEffect(() => {\r\n setotpLoading(true);\r\n genOtp();\r\n }, []);\r\n\r\n\r\n /**======================== File Functions ==========================*/\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setValues({ ...values, 'otp': '' });\r\n setSpinner(true);\r\n genOtp();\r\n }\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons:\r\n {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: 'sweet-btn'\r\n }\r\n }\r\n }).then((confirm) => {\r\n if (confirm) {\r\n setForm(1);\r\n } else {\r\n setForm(1);\r\n }\r\n });\r\n }\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n verifyOtp();\r\n }\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.otp) {\r\n errors.otp = \"OTP is required\";\r\n }\r\n return errors;\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"pin\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"confirmPin\") {\r\n if (pinValidation(value)) {\r\n validateConfirmPswd(value);\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n }\r\n\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const validateConfirmPswd = (value) => {\r\n let error = {};\r\n if (value !== values.pin) {\r\n error.confirmPin = 'Confirm Pin should match Pin';\r\n }\r\n setErrors(error);\r\n }\r\n\r\n const handleSubmitV2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validateV2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n changePin();\r\n }\r\n }\r\n\r\n const validateV2 = (inputs) => {\r\n let errors = {};\r\n\r\n if (!inputs.otp) {\r\n errors.otp = \"OTP is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"PIN is required\";\r\n } else if (values.pin.length !== 4) {\r\n errors.pin = 'Pin should have 4 digits';\r\n }\r\n if (!inputs.confirmPin) {\r\n errors.confirmPin = \"Confirm PIN is required\";\r\n } else if (inputs.confirmPin.length !== 4) {\r\n errors.confirmPin = 'Confirm PIN should have 4 digits';\r\n } else if (values.pin !== values.confirmPin) {\r\n errors.confirmPin = 'Confirm Pin should match Pin';\r\n }\r\n return errors;\r\n }\r\n\r\n\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const genOtp = () => {\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n \"UserId\": getUserId(),\r\n \"OtpType\": \"ChangePIN\"\r\n });\r\n // setLoading(true);\r\n let url = '/api/Transactions/Sendotp';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setSpinner(false);\r\n setotpLoading(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || 'Otp sent';\r\n // notifySuccess(msg);\r\n openModal(msg);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setotpLoading(false);\r\n setSpinner(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n\r\n\r\n const verifyOtp = () => {\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n \"UserId\": getUserId(),\r\n \"OtpType\": \"ChangePIN\",\r\n \"Otp\": values.otp\r\n });\r\n setLoading(true);\r\n let url = '/api/Transactions/verifyotp';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n setForm(2);\r\n setLoading(false);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const changePin = () => {\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n \"PIN\": values.pin,\r\n \"OTP\": values.otp\r\n });\r\n setLoading(true);\r\n let url = '/api/Auth/changepin';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess('Pin has changed successfully');\r\n history.push('/index');\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n

Change Pin

\r\n \r\n
\r\n
\r\n\r\n \r\n {otpLoading && }\r\n {!otpLoading && form == 1 &&\r\n
\r\n \r\n \r\n \r\n \r\n OTP\r\n \r\n\r\n
\r\n \r\n \r\n Resend\r\n    \r\n {spinner &&\r\n
\r\n \r\n
}\r\n
\r\n
\r\n\r\n \r\n
\r\n *\r\n we have sent you an OTP on your registered mobile number / email\r\n
\r\n {errors.otp &&
\r\n * {errors.otp}\r\n
}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n\r\n\r\n {form == 2 &&\r\n
\r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n \r\n {!showPin && \r\n \r\n setShowPin(true)} />\r\n \r\n \r\n }\r\n\r\n {showPin && \r\n \r\n setShowPin(false)} />\r\n \r\n }\r\n \r\n * {PIN_HINT}\r\n {errors.pin &&
\r\n * {errors.pin}\r\n
}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Confirm PIN\r\n \r\n \r\n \r\n {!showConfirmPin && \r\n \r\n setShowConfirmPin(true)} />\r\n \r\n \r\n }\r\n\r\n {showConfirmPin && \r\n \r\n setShowConfirmPin(false)} />\r\n \r\n }\r\n \r\n {errors.confirmPin &&
\r\n * {errors.confirmPin}\r\n
}\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Save and Next {loading && }\r\n \r\n \r\n \r\n \r\n \r\n\r\n }\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n\r\n\r\n\r\n\r\n}\r\n\r\nexport default ChangePin;","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod } from \"../../services/httpServices\";\r\nimport { NFC_OPTION, GET_YEAR_LIST } from \"appConfig\";\r\nimport { checkMacAddress } from \"services/util\";\r\n\r\nconst initialValue = {\r\n posDeviceName: \"\",\r\n posMake: \"\",\r\n posModel: \"\",\r\n posManufactureYear: \"\",\r\n posSerialNumber: \"\",\r\n posMacAddress: \"\",\r\n isNFCEnabled: null,\r\n isMagStripeEnabled: null,\r\n isChipEnabled: null,\r\n};\r\n\r\nconst NFC = NFC_OPTION && NFC_OPTION.length ? NFC_OPTION : [];\r\n\r\nconst AddPOS = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.posDeviceName) {\r\n errors.posDeviceName = \"Device name is required\";\r\n }\r\n if (!inputs.posMake) {\r\n errors.posMake = \"POS Make is required\";\r\n }\r\n if (!inputs.posModel) {\r\n errors.posModel = \"POS Model is required\";\r\n }\r\n if (!inputs.posManufactureYear) {\r\n errors.posManufactureYear = \"Manufacture year is required\";\r\n }\r\n if (!inputs.posSerialNumber) {\r\n errors.posSerialNumber = \"Serial No is required\";\r\n }\r\n // if (!inputs.posMacAddress) {\r\n // errors.posMacAddress = \"MAC Address is required\";\r\n // } else if (!checkMacAddress(inputs.posMacAddress)) {\r\n // errors.posMacAddress = \"Please enter valid MAC Address\";\r\n // }\r\n if (!inputs.isNFCEnabled) {\r\n errors.isNFCEnabled = \"Nfc option is required\";\r\n }\r\n if (!inputs.isMagStripeEnabled) {\r\n errors.isMagStripeEnabled = \"Mag Stripe option is required\";\r\n }\r\n if (!inputs.isChipEnabled) {\r\n errors.isChipEnabled = \"Chip option is required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = {};\r\n data[\"posDeviceName\"] = values.posDeviceName;\r\n data[\"posMake\"] = values.posMake;\r\n data[\"posModel\"] = values.posModel;\r\n data[\"posManufactureYear\"] = values.posManufactureYear;\r\n data[\"posSerialNumber\"] = values.posSerialNumber;\r\n data[\"posMacAddress\"] = values.posMacAddress;\r\n data[\"isNFCEnabled\"] = values.isNFCEnabled === \"Enable\";\r\n data[\"isMagStripeEnabled\"] = values.isMagStripeEnabled === \"Enable\";\r\n data[\"isChipEnabled\"] = values.isChipEnabled === \"Enable\";\r\n\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/POS/Register\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

POS Terminal

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Device Name * \r\n \r\n \r\n {errors.posDeviceName && (\r\n
\r\n * {errors.posDeviceName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Make *\r\n \r\n \r\n {errors.posMake && (\r\n
\r\n * {errors.posMake}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Model *\r\n \r\n \r\n {errors.posModel && (\r\n
\r\n * {errors.posModel}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Manufacture Year *\r\n \r\n \r\n {GET_YEAR_LIST()}\r\n \r\n {errors.posManufactureYear && (\r\n
\r\n * {errors.posManufactureYear}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Serial No *\r\n \r\n \r\n {errors.posSerialNumber && (\r\n
\r\n * {errors.posSerialNumber}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n MAC Address\r\n \r\n \r\n {errors.posMacAddress && (\r\n
\r\n * {errors.posMacAddress}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {NFC.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.isNFCEnabled && (\r\n
\r\n * {errors.isNFCEnabled}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Mag Stripe *\r\n \r\n \r\n \r\n {NFC.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.isMagStripeEnabled && (\r\n
\r\n * {errors.isMagStripeEnabled}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Chip *\r\n \r\n \r\n \r\n {NFC.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.isChipEnabled && (\r\n
\r\n * {errors.isChipEnabled}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AddPOS;\r\n","export const setPosTerminalvalues = (props) => {\r\n const initialValue = {\r\n make: props.posMake ? props.posMake : '',\r\n model: props.posModel ? props.posModel : '',\r\n manufactureYear: props.posManufactureYear ? props.posManufactureYear : '',\r\n macAddress: props.posMacAddress ? props.posMacAddress : '',\r\n serialNo: props.posSerialNumber ? props.posSerialNumber : '',\r\n nfc: props.isNFCEnabled ? \"Enable\" : 'Disable',\r\n chip: props.isChipEnabled ? \"Enable\" : 'Disable',\r\n magStrip: props.isMagStripeEnabled ? \"Enable\" : 'Disable',\r\n deviceName: props.posDeviceName ? props.posDeviceName : '',\r\n ...props\r\n };\r\n\r\n return initialValue;\r\n}\r\n\r\nexport default {\r\n setPosTerminalvalues\r\n};","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\n\r\nimport { NFC_OPTION, GET_YEAR_LIST } from \"appConfig\";\r\nimport { setPosTerminalvalues } from \"services/pos-terminal-service\";\r\n\r\nconst NFC = NFC_OPTION && NFC_OPTION.length ? NFC_OPTION : [];\r\n\r\nconst ViewPOS = (props) => {\r\n\r\n const initialValue = setPosTerminalvalues(props);\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

POS Terminal

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Device Name\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Make\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Model\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Manufacture Year\r\n \r\n \r\n {\r\n GET_YEAR_LIST()\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Serial No\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n MAC Address\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n NFC\r\n \r\n \r\n \r\n {NFC.map(c => )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Chip\r\n \r\n \r\n \r\n {NFC.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Mag Strip\r\n \r\n \r\n \r\n {NFC.map(c => )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n\r\n}\r\n\r\nexport default ViewPOS;\r\n","import React, { useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, getUserId, postMethod } from \"../../services/httpServices\";\r\nimport { NFC_OPTION, GET_YEAR_LIST } from \"appConfig\";\r\nimport { checkMacAddress } from \"services/util\";\r\nimport { setPosTerminalvalues } from \"services/pos-terminal-service\";\r\n\r\nconst NFC = NFC_OPTION && NFC_OPTION.length ? NFC_OPTION : [];\r\n\r\nconst EditPOS = (props) => {\r\n const initialValue = setPosTerminalvalues(props);\r\n\r\n const [values, setValues] = useState(initialValue);\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const { addToast } = useToasts();\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.deviceName) {\r\n errors.deviceName = \"Device name is required\";\r\n }\r\n if (!inputs.make) {\r\n errors.make = \"Make is required\";\r\n }\r\n if (!inputs.model) {\r\n errors.model = \"Model is required\";\r\n }\r\n if (!inputs.manufactureYear) {\r\n errors.manufactureYear = \"Manufacture year is required\";\r\n }\r\n if (!inputs.serialNo) {\r\n errors.serialNo = \"Serial No is required\";\r\n }\r\n if (!inputs.macAddress) {\r\n errors.macAddress = \"MAC Address is required\";\r\n } else if (!checkMacAddress(inputs.macAddress)) {\r\n errors.macAddress = \"Please enter valid MAC Address\";\r\n }\r\n if (!inputs.nfc) {\r\n errors.nfc = \"Nfc option is required\";\r\n }\r\n if (!inputs.chip) {\r\n errors.chip = \"Chip option is required\";\r\n }\r\n if (!inputs.magStrip) {\r\n errors.magStrip = \"Mag Strip option is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = {};\r\n data[\"posDeviceName\"] = values.deviceName;\r\n data[\"posMake\"] = values.make;\r\n data[\"posId\"] = values.posId;\r\n data[\"posModel\"] = values.model;\r\n data[\"posManufactureYear\"] = values.manufactureYear;\r\n data[\"posSerialNumber\"] = values.serialNo;\r\n data[\"posMacAddress\"] = values.macAddress;\r\n data[\"isNFCEnabled\"] = values.nfc === \"Enable\";\r\n data[\"isMagStripeEnabled\"] = values.magStrip === \"Enable\";\r\n data[\"isChipEnabled\"] = values.chip === \"Enable\";\r\n data[\"isDeleted\"] = values.isDeleted;\r\n data[\"isBlocked\"] = values.isBlocked;\r\n data[\"createdAt\"] = values.createdAt;\r\n data[\"createdBy\"] = values.createdBy;\r\n data[\"updatedAt\"] = new Date().toISOString();\r\n data[\"updatedBy\"] = getUserId();\r\n\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/POS/Update\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

POS Terminal

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Device Name\r\n \r\n \r\n {errors.deviceName && (\r\n
\r\n * {errors.deviceName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Make\r\n \r\n \r\n {errors.make && (\r\n
\r\n * {errors.make}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Model\r\n \r\n \r\n {errors.model && (\r\n
\r\n * {errors.model}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Manufacture Year\r\n \r\n \r\n {GET_YEAR_LIST()}\r\n \r\n {errors.manufactureYear && (\r\n
\r\n * {errors.manufactureYear}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Serial No\r\n \r\n \r\n {errors.serialNo && (\r\n
\r\n * {errors.serialNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n MAC Address\r\n \r\n \r\n {errors.macAddress && (\r\n
\r\n * {errors.macAddress}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {NFC.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.nfc && (\r\n
\r\n * {errors.nfc}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {NFC.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.chip && (\r\n
\r\n * {errors.chip}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {NFC.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.magStrip && (\r\n
\r\n * {errors.magStrip}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditPOS;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col,\r\n ModalHeader,\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { getUserId, postMethod } from \"../../services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport AddPOS from \"./add-pos-terminal\";\r\nimport ViewPOS from \"./view-pos-terminal\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport EditPOS from \"./edit-post-terminal\";\r\n// import AssignPOS from \"./assign-pos-terminal\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst PosTerminalList = () => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [postlist, setPosList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [view, setView] = React.useState(false);\r\n const [openEdit, setOpenEditModal] = React.useState(false);\r\n const [POSObj, setPOSObj] = React.useState(null);\r\n const [editObj, setEditObj] = React.useState(null);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n // const [assign, setAssign] = React.useState(false);\r\n // const [assignObj, setAssignObj] = React.useState(null);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n React.useEffect(() => {\r\n fetchPOS();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n let timeout;\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n } else {\r\n timeout = setTimeout(() => {\r\n fetchPOS();\r\n }, 2000);\r\n }\r\n\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }, [searchText]);\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n // const notifySuccess = (text) => {\r\n // if (!text) {\r\n // text = \"Save successfully\";\r\n // }\r\n // addToast(text, {\r\n // appearance: \"success\",\r\n // autoDismiss: true,\r\n // });\r\n // };\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n // if (timeout) clearTimeout(timeout);\r\n // const timeout1 = setTimeout(() => {\r\n // let filteredList = [];\r\n // for (let i = 0; i < postlist.length; i++) {\r\n // if (\r\n // postlist[i].bban\r\n // .trim()\r\n // .toLowerCase()\r\n // .includes(val.trim().toLowerCase()) ||\r\n // postlist[i].email\r\n // .trim()\r\n // .toLowerCase()\r\n // .includes(val.trim().toLowerCase()) ||\r\n // postlist[i].mobileCode\r\n // .toString()\r\n // .trim()\r\n // .toLowerCase()\r\n // .includes(val.trim().toLowerCase()) ||\r\n // postlist[i].phoneNumber\r\n // .toString()\r\n // .trim()\r\n // .toLowerCase()\r\n // .includes(val.trim().toLowerCase()) ||\r\n // postlist[i].name\r\n // .toString()\r\n // .trim()\r\n // .toLowerCase()\r\n // .includes(val.trim().toLowerCase())\r\n // ) {\r\n // filteredList.push(postlist[i]);\r\n // }\r\n // }\r\n // setFilteredList(filteredList);\r\n // setCurrentPage(0);\r\n // let pc = Math.ceil(filteredList.length / pageSize);\r\n // setPageCount(pc);\r\n // }, 750);\r\n // setTimeoutNew(timeout1);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText(\"\");\r\n setCurrentPage(0);\r\n fetchPOS();\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchPOS();\r\n };\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n // const handleClick = (e, index) => {\r\n // e.preventDefault();\r\n // setCurrentPage(index);\r\n // };\r\n\r\n const showPOS = (obj) => {\r\n setPOSObj(obj);\r\n setView(true);\r\n };\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n setPOSObj(null);\r\n };\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n setEditObj(null);\r\n fetchPOS();\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n setOpenDelModal(false);\r\n };\r\n\r\n // const openAssign = (mmo) => {\r\n // setAssignObj(mmo);\r\n // setAssign(true);\r\n // };\r\n\r\n // const closeAssignModal = () => {\r\n // setAssignObj(null);\r\n // setAssign(false);\r\n // };\r\n\r\n /**======================== Validation Functions ==========================*/\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const fetchPOS = async () => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\r\n \"/api/POS/SearchDevice\",\r\n {\r\n searchText: searchText,\r\n isDescending: false,\r\n sortingOn: \"\",\r\n perPage: 10,\r\n pageNumber: 1,\r\n },\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result.list || !res.data.result.list.length) {\r\n res.data.result.list = [];\r\n }\r\n setPosList(res.data.result.list);\r\n setFilteredList(res.data.result.list);\r\n let pc = Math.ceil(res.data.result.list.length / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchPOSById = (id) => {\r\n let errorMsg = \"\";\r\n postMethod(\"/api/POS/Edit/\" + id, {}, \"post\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setEditObj(res.data.result);\r\n setOpenEditModal(true);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n // setSError();\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj.isBlocked) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Do you want to ${str} ${deleteObj?.posDeviceName}?`;\r\n };\r\n const deletePOS = () => {\r\n var data = {};\r\n data[\"posDeviceName\"] = deleteObj.deviceName;\r\n data[\"posMake\"] = deleteObj.make;\r\n data[\"posId\"] = deleteObj.posId;\r\n data[\"posModel\"] = deleteObj.model;\r\n data[\"posManufactureYear\"] = deleteObj.manufactureYear;\r\n data[\"posSerialNumber\"] = deleteObj.serialNo;\r\n data[\"posMacAddress\"] = deleteObj.macAddress;\r\n data[\"isNFCEnabled\"] = deleteObj.nfc === \"Enable\";\r\n data[\"isMagStripeEnabled\"] = deleteObj.magStrip === \"Enable\";\r\n data[\"isChipEnabled\"] = deleteObj.chip === \"Enable\";\r\n data[\"isDeleted\"] = deleteObj.isDeleted;\r\n data[\"isBlocked\"] = !deleteObj.isBlocked;\r\n data[\"createdAt\"] = deleteObj.createdAt;\r\n data[\"createdBy\"] = deleteObj.createdBy;\r\n data[\"updatedAt\"] = new Date().toISOString();\r\n data[\"updatedBy\"] = getUserId();\r\n\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/POS/Update\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let text = deleteObj.isBlocked\r\n ? \"NFC unblocked successfully\"\r\n : \"NFC blocked successfully\";\r\n notifySuccess(text);\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlock\r\n ? \"Unblock POS\"\r\n : \"Block POS\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.posDeviceName ? (\r\n
\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && (\r\n \r\n )}\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {filteredList\r\n .slice(currentPage * pageSize, (currentPage + 1) * pageSize)\r\n .map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
Device NameMakeManufacture YearModelSerial No.MAC AddressActions
{mmo.posDeviceName}{mmo.posMake}{mmo.posManufactureYear}{mmo.posModel}{mmo.posSerialNumber}{mmo.posMacAddress}\r\n showPOS(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n \r\n\r\n fetchPOSById(mmo.posId)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n\r\n {/* openAssign(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n */}\r\n\r\n {!mmo.isBlocked ? (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n ) : (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n {!loading && !filteredList.length && }\r\n {filteredList.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {totalRec}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PosTerminalList;\r\n","const fields = [\r\n 'minAmt1', 'maxAmt1', 'calcMethod1',\r\n 'minAmt2', 'maxAmt2', 'calcMethod2',\r\n 'minAmt3', 'maxAmt3', 'calcMethod3',\r\n 'minAmt4', 'maxAmt4', 'calcMethod4',\r\n 'minAmt5', 'maxAmt5', 'calcMethod5',\r\n];\r\n\r\nconst ALL_FIELDS = [\r\n 'minAmt1', 'maxAmt1', 'commissionAmt1', 'calcMethod1', 'commissionRate1',\r\n 'minAmt2', 'maxAmt2', 'commissionAmt2', 'calcMethod1', 'commissionRate2',\r\n 'minAmt3', 'maxAmt3', 'commissionAmt3', 'calcMethod1', 'commissionRate3',\r\n 'minAmt4', 'maxAmt4', 'commissionAmt4', 'calcMethod1', 'commissionRate4',\r\n 'minAmt5', 'maxAmt5', 'commissionAmt5', 'calcMethod1', 'commissionRate5',\r\n];\r\n\r\nexport const CommissionType = [\r\n {key: 'Merchant', value: 'Merchant Commission'},\r\n {key: 'WalletTopUp', value: 'Wallet Commission'},\r\n {key: 'CashTopUp', value: 'Cash Top Up'},\r\n {key: 'Cashout', value: 'Cash Out'},\r\n {key: 'Sub Agent Cash Commission', value: 'Sub Agent Cash Commission'}\r\n];\r\n\r\nexport const CalcMethod = [\r\n {key: '1', value: 'Zero Commission'},\r\n {key: '2', value: 'Flat Amount'},\r\n {key: '3', value: 'Flat Rate'},\r\n {key: '4', value: 'Table'},\r\n {key: '5', value: '60:40'},\r\n]\r\n\r\nexport const checkTableField = (name) => {\r\n let fields = [\r\n 'minAmt1', 'maxAmt1', 'commissionAmt1', \r\n 'minAmt2', 'maxAmt2', 'commissionAmt2',\r\n 'minAmt3', 'maxAmt3', 'commissionAmt3',\r\n 'minAmt4', 'maxAmt4', 'commissionAmt4',\r\n 'minAmt5', 'maxAmt5', 'commissionAmt5'\r\n ];\r\n if (fields.indexOf(name) > -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const changeCalMethod = (values, method) => {\r\n let v = {...values};\r\n if (method !== '4') { // Table\r\n for (let i = 0; i < ALL_FIELDS.length; i++) {\r\n v.table[ALL_FIELDS[i]] = '';\r\n }\r\n }\r\n\r\n if (method != '1') { // Zero\r\n v.amount = '';\r\n }\r\n \r\n if (method != '2') { // Flat Amount\r\n v.flatamount = '';\r\n }\r\n\r\n if (method != '3') { // Flat Rate\r\n v.rate = '';\r\n }\r\n\r\n return v;\r\n}\r\n\r\nexport const checkTableValues = (inputs) => {\r\n var valid = true;\r\n for (let i = 0; i < fields.length; i++) {\r\n if (!inputs.table[fields[i]]) {\r\n valid = false;\r\n break;\r\n } else {\r\n if (fields[i] == 'calcMethod1') {\r\n if (inputs.table.calcMethod1 == \"2\" && !inputs.table['commissionRate1']) {\r\n valid = false;\r\n break;\r\n }\r\n if (inputs.table.calcMethod1 == \"1\" && !inputs.table['commissionAmt1']) {\r\n valid = false;\r\n break;\r\n }\r\n } \r\n if (fields[i] == 'calcMethod2') {\r\n if (inputs.table.calcMethod2 == \"2\" && !inputs.table['commissionRate2']) {\r\n valid = false;\r\n break;\r\n }\r\n if (inputs.table.calcMethod2 == \"1\" &&!inputs.table['commissionAmt2']) {\r\n valid = false;\r\n break;\r\n }\r\n } \r\n if (fields[i] == 'calcMethod3') {\r\n if (inputs.table.calcMethod3 == \"2\" &&!inputs.table['commissionRate3']) {\r\n valid = false;\r\n break;\r\n }\r\n if (inputs.table.calcMethod3 == \"1\" &&!inputs.table['commissionAmt3']) {\r\n valid = false;\r\n break;\r\n }\r\n } \r\n if (fields[i] == 'calcMethod4') {\r\n if (inputs.table.calcMethod4 == \"2\" && !inputs.table['commissionRate4']) {\r\n valid = false;\r\n break;\r\n }\r\n if (inputs.table.calcMethod4 == \"1\" &&!inputs.table['commissionAmt4']) {\r\n valid = false;\r\n break;\r\n }\r\n } \r\n if (fields[i] == 'calcMethod5') {\r\n if (inputs.table.calcMethod5 == \"2\" && !inputs.table['commissionRate5']) {\r\n valid = false;\r\n break;\r\n }\r\n if (inputs.table.calcMethod5 == \"1\" && !inputs.table['commissionAmt5']) {\r\n valid = false;\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n return valid;\r\n}\r\n\r\nexport const checkMinMax = (inputs) => {\r\n var valid = true;\r\n for (let i = 1; i < 6; i++) {\r\n if (Number(inputs.table[`minAmt${i}`]) > Number(inputs.table[`maxAmt${i}`])) {\r\n valid = false;\r\n break;\r\n } \r\n } \r\n return valid;\r\n}\r\n\r\nexport const ValidateCommission = (inputs) => {\r\n var errors = {};\r\n\r\n if (!inputs.name) {\r\n errors.name = 'Please provide commission name';\r\n }\r\n if (!inputs.type) {\r\n errors.type = 'Please select commission type';\r\n }\r\n\r\n if (!inputs.method) {\r\n errors.method = 'Please select calculation method';\r\n }\r\n if (inputs.method == '2') {\r\n if (!inputs.flatamount) {\r\n errors.flatamount = 'Please enter flat amount';\r\n }\r\n } \r\n if (inputs.method == '3') {\r\n if (!inputs.rate) {\r\n errors.rate = 'Please enter flat rate';\r\n }\r\n } \r\n if (inputs.method == '4') {\r\n if (!checkTableValues(inputs)) {\r\n errors.table = 'Please provide table values';\r\n } else if (!checkMinMax(inputs)) {\r\n errors.table = `Maximum amount can't be less than Minimum amount`;\r\n }\r\n }\r\n return errors; \r\n}\r\n\r\nexport const getInitialValue = (props) => {\r\n const initialValue = {\r\n name: props.commissionName ? props.commissionName : '',\r\n type: props.commissionType ? props.commissionType : '',\r\n method: props.commissionCalculateMethod ? props.commissionCalculateMethod : '',\r\n amount: props.commissionCalculateMethod == 1 ? props.commissionValue : '',\r\n flatamount: props.commissionCalculateMethod == 2 ? props.commissionValue : '',\r\n rate: props.commissionCalculateMethod == 3 || props.commissionCalculateMethod == 5 ? props.commissionValue : '',\r\n id: props.commissionId,\r\n table: {\r\n minAmt1: '',\r\n maxAmt1: '',\r\n commissionAmt1: '',\r\n commissionRate1: '',\r\n calcMethod1: '',\r\n minAmt2: '',\r\n maxAmt2: '',\r\n commissionAmt2: '',\r\n commissionRate2: '',\r\n calcMethod2: '',\r\n minAmt3: '',\r\n maxAmt3: '',\r\n commissionAmt3: '',\r\n commissionRate3: '',\r\n calcMethod3: '',\r\n minAmt4: '',\r\n maxAmt4: '',\r\n commissionAmt4: '',\r\n commissionRate4: '',\r\n calcMethod4: '',\r\n minAmt5: '',\r\n maxAmt5: '',\r\n commissionAmt5: '',\r\n commissionRate5: '',\r\n calcMethod5: '',\r\n commissionTableId1: 0,\r\n commissionTableId2: 0,\r\n commissionTableId3: 0,\r\n commissionTableId4: 0,\r\n commissionTableId5: 0,\r\n }\r\n };\r\n if (\r\n props.commissionCalculateMethod == '4' &&\r\n props.commissionTable &&\r\n props.commissionTable.length\r\n ) {\r\n for (let i = 0; i < props.commissionTable.length; i++) {\r\n if (props.commissionTable[i].hasOwnProperty('index')) {\r\n\r\n let key = Number(props.commissionTable[i].index) + 1;\r\n initialValue.table['minAmt' + key] = props.commissionTable[i].minAmount;\r\n initialValue.table['maxAmt' + key] = props.commissionTable[i].maxAmount;\r\n initialValue.table['commissionTableId' + key] = props.commissionTable[i].commissionTableId;\r\n initialValue.table['calcMethod' + key] = props.commissionTable[i].calculateMethod;\r\n\r\n if (props.commissionTable[i].calculateMethod == '1') {\r\n initialValue.table['commissionAmt' + key] = props.commissionTable[i].commissionValue;\r\n } else if (props.commissionTable[i].calculateMethod == '2') {\r\n initialValue.table['commissionRate' + key] = props.commissionTable[i].commissionValue;\r\n }\r\n\r\n }\r\n }\r\n }\r\n return initialValue;\r\n}\r\n\r\nexport const setCommissionValues = (values) => {\r\n let data = {\r\n 'CommissionType': values.type,\r\n 'CommissionName': values.name.trim(),\r\n 'CommissionCalculateMethod': Number(values.method),\r\n }\r\n if (values.method == '1' || values.method == '4') {\r\n data['CommissionValue'] = 0\r\n } else if (values.method == '2') {\r\n data['CommissionValue'] = Number(values.flatamount);\r\n } else if (values.method == '3') {\r\n data['CommissionValue'] = Number(values.rate);\r\n }\r\n\r\n if (values.method == '4') {\r\n data['CommissionTable'] = [\r\n {\r\n 'MinAmount': Number(values.table.minAmt1),\r\n 'MaxAmount': Number(values.table.maxAmt1),\r\n 'CommissionTableId': values.table.commissionTableId1, \r\n 'Index': 0,\r\n 'CommissionId': values.id ? values.id : 0,\r\n 'CalculateMethod': Number(values.table.calcMethod1),\r\n 'CommissionValue': values.table.calcMethod1 == 1 ? \r\n Number(values.table.commissionAmt1) : Number(values.table.commissionRate1)\r\n },\r\n {\r\n 'MinAmount': Number(values.table.minAmt2),\r\n 'MaxAmount': Number(values.table.maxAmt2),\r\n 'CommissionTableId': values.table.commissionTableId2, \r\n 'Index': 1,\r\n 'CommissionId': values.id ? values.id : 0,\r\n 'CalculateMethod': Number(values.table.calcMethod2),\r\n 'CommissionValue': values.table.calcMethod2 == 1 ? \r\n Number(values.table.commissionAmt2) : Number(values.table.commissionRate2)\r\n },\r\n {\r\n 'MinAmount': Number(values.table.minAmt3),\r\n 'MaxAmount': Number(values.table.maxAmt3),\r\n 'CommissionTableId': values.table.commissionTableId3, \r\n 'Index': 2,\r\n 'CommissionId': values.id ? values.id : 0,\r\n 'CalculateMethod': Number(values.table.calcMethod3),\r\n 'CommissionValue': values.table.calcMethod3 == 1 ? \r\n Number(values.table.commissionAmt3) : Number(values.table.commissionRate3)\r\n },\r\n {\r\n 'MinAmount': Number(values.table.minAmt4),\r\n 'MaxAmount': Number(values.table.maxAmt4),\r\n 'CommissionTableId': values.table.commissionTableId4,\r\n 'Index': 3,\r\n 'CommissionId': values.id ? values.id : 0,\r\n 'CalculateMethod': Number(values.table.calcMethod4),\r\n 'CommissionValue': values.table.calcMethod4 == 1 ? \r\n Number(values.table.commissionAmt4) : Number(values.table.commissionRate4)\r\n },\r\n {\r\n 'MinAmount': Number(values.table.minAmt5),\r\n 'MaxAmount': Number(values.table.maxAmt5),\r\n 'CommissionTableId': values.table.commissionTableId5,\r\n 'Index': 4,\r\n 'CommissionId': values.id ? values.id : 0,\r\n 'CalculateMethod': Number(values.table.calcMethod5),\r\n 'CommissionValue': values.table.calcMethod5 == 1 ? \r\n Number(values.table.commissionAmt5) : Number(values.table.commissionRate5)\r\n }\r\n ]\r\n }\r\n return data;\r\n}\r\n\r\nexport const getCommissionTypeName = (value) => {\r\n let ob = CalcMethod.find(o => o.key == value);\r\n if (ob) {\r\n return ob.value\r\n } else {\r\n return value;\r\n }\r\n}\r\n\r\nexport const checkTableRateField = (name) => {\r\n let fields = [\r\n 'commissionRate1',\r\n 'commissionRate2',\r\n 'commissionRate3',\r\n 'commissionRate4',\r\n 'commissionRate5',\r\n ];\r\n if (fields.indexOf(name) > -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const TableCalcMethod = [\r\n {'key': 1, 'value': 'Flat Amount'},\r\n {'key': 2, 'value': 'Flat Rate'}\r\n];\r\n\r\nexport const TableBody = [\r\n {'key': 'Min. Threshold', 'count': 1},\r\n {'key': 'Band 1 amount', 'count': 2},\r\n {'key': 'Band 2 amount', 'count': 3},\r\n {'key': 'Band 3 amount', 'count': 4},\r\n {'key': 'Max. Threshold', 'count': 5}\r\n]\r\n\r\nexport const checkTableAmountTypeField = (name) => {\r\n let fields = [\r\n 'calcMethod1',\r\n 'calcMethod2',\r\n 'calcMethod3',\r\n 'calcMethod4',\r\n 'calcMethod5',\r\n ];\r\n if (fields.indexOf(name) > -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const getMinValueName = (name) => {\r\n let str = null;\r\n if (name == 'maxAmt1') {\r\n str = 'minAmt2';\r\n } else if (name == 'maxAmt2') {\r\n str = 'minAmt3';\r\n } else if (name == 'maxAmt3') {\r\n str = 'minAmt4';\r\n } else if (name == 'maxAmt4') {\r\n str = 'minAmt5';\r\n }\r\n return str;\r\n}\r\n\r\nexport const checkMinAmtDisable = (index) => {\r\n if (index > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport default {\r\n CommissionType,\r\n CalcMethod,\r\n checkTableField,\r\n changeCalMethod,\r\n checkTableValues,\r\n ValidateCommission,\r\n getInitialValue,\r\n setCommissionValues,\r\n getCommissionTypeName,\r\n checkTableRateField,\r\n checkTableAmountTypeField,\r\n TableCalcMethod,\r\n TableBody,\r\n getMinValueName,\r\n checkMinAmtDisable\r\n}","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Table\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { checkSpace, postMethod } from '../../services/httpServices';\r\nimport {\r\n CalcMethod, CommissionType, checkTableField, changeCalMethod,\r\n ValidateCommission, setCommissionValues, checkTableRateField,\r\n TableCalcMethod, TableBody, checkTableAmountTypeField,\r\n checkMinAmtDisable, getMinValueName\r\n} from \"services/commission-service\";\r\nimport { checkDigit2Decimal, checkPercentage, checkName } from \"services/util\";\r\n\r\n\r\nconst initialValue = {\r\n name: '',\r\n type: '',\r\n method: '',\r\n amount: '',\r\n flatamount: '',\r\n rate: '',\r\n table: {\r\n minAmt1: '',\r\n maxAmt1: '',\r\n commissionAmt1: '',\r\n commissionRate1: '',\r\n calcMethod1: '',\r\n minAmt2: '',\r\n maxAmt2: '',\r\n commissionAmt2: '',\r\n commissionRate2: '',\r\n calcMethod2: '',\r\n minAmt3: '',\r\n maxAmt3: '',\r\n commissionAmt3: '',\r\n commissionRate3: '',\r\n calcMethod3: '',\r\n minAmt4: '',\r\n maxAmt4: '',\r\n commissionAmt4: '',\r\n commissionRate4: '',\r\n calcMethod4: '',\r\n minAmt5: '',\r\n maxAmt5: '',\r\n commissionAmt5: '',\r\n commissionRate5: '',\r\n calcMethod5: '',\r\n commissionTableId1: 0,\r\n commissionTableId2: 0,\r\n commissionTableId3: 0,\r\n commissionTableId4: 0,\r\n commissionTableId5: 0,\r\n }\r\n};\r\n\r\nconst TYPE = CommissionType ? CommissionType : [];\r\nconst METHOD = CalcMethod ? CalcMethod : [];\r\nconst TABLE_METHOD = TableCalcMethod ? TableCalcMethod : [];\r\nconst TABLE_BODY = TableBody ? TableBody : [];\r\n\r\n\r\nconst AddCommission = (props) => {\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n React.useEffect(() => {\r\n const v = changeCalMethod(values, values.method);\r\n changeState(v);\r\n }, [values.method]);\r\n\r\n\r\n /**======================== File Function ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name == 'method' && value == '1') {\r\n changeState({ ...values, [name]: value, 'amount': 0 });\r\n } else if (name == \"flatamount\") {\r\n if (checkDigit2Decimal(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name == \"rate\") {\r\n if (checkPercentage(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name == \"name\") {\r\n if (checkName(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (checkTableRateField(name)) {\r\n if (checkPercentage(value)) {\r\n changeState({ ...values, table: { ...values.table, [name]: value } });\r\n }\r\n } else if (checkTableField(name)) {\r\n if (checkDigit2Decimal(value)) {\r\n let str = getMinValueName(name);\r\n let obj = str ? { ...values.table, [name]: value, [str]: value } :\r\n { ...values.table, [name]: value }\r\n changeState({ ...values, table: obj });\r\n }\r\n } else if (checkTableAmountTypeField(name)) {\r\n changeState({ ...values, table: { ...values.table, [name]: value } });\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n }\r\n\r\n const getTableTypeValue = (v, i) => {\r\n let str = v + i;\r\n return values.table[str];\r\n }\r\n\r\n const checkDisable = (i) => {\r\n let str = 'calcMethod' + i;\r\n if (values.table[str] == \"\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const showAmtOrRate = (i) => {\r\n let str = 'calcMethod' + i;\r\n if (values.table[str] == \"1\") {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n Le\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n } else if (values.table[str] == \"2\") {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n (   )\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n )\r\n }\r\n }\r\n\r\n\r\n /**======================== Validation Function ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = ValidateCommission(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n var data = setCommissionValues(values);\r\n data['CommissionValue'] = Number(values.rate);\r\n let errorMsg = '';\r\n setLoading(true);\r\n postMethod('/api/commission/save', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess('Saved Successfuly');\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || 'Error while saving';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in saving';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add Commission

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {errors.name &&
\r\n * {errors.name}\r\n
}\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n Commission Type\r\n \r\n \r\n \r\n {TYPE.map(c => )}\r\n \r\n {errors.type &&
\r\n * {errors.type}\r\n
}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Calculation Method\r\n \r\n \r\n \r\n {METHOD.map(c => )}\r\n \r\n {errors.method &&
\r\n * {errors.method}\r\n
}\r\n
\r\n \r\n\r\n {values.method && values.method == '1' &&\r\n \r\n \r\n \r\n Commission Amount\r\n \r\n \r\n {errors.amount &&
\r\n * {errors.amount}\r\n
}\r\n
\r\n \r\n }\r\n\r\n\r\n {values.method && values.method == '2' &&\r\n \r\n \r\n \r\n Commission Amount\r\n \r\n \r\n {errors.flatamount &&
\r\n * {errors.flatamount}\r\n
}\r\n
\r\n \r\n }\r\n\r\n\r\n {values.method && (values.method == '3' || values.method == '5') &&\r\n \r\n \r\n \r\n Commission Rate\r\n \r\n\r\n \r\n \r\n \r\n \r\n (   )\r\n \r\n \r\n \r\n {errors.rate &&
\r\n * {errors.rate}\r\n
}\r\n
\r\n \r\n }\r\n\r\n
\r\n\r\n {values.method && values.method == '4' &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {\r\n \r\n {TABLE_BODY.map((ob, i) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n {checkDisable(ob.count) ? : showAmtOrRate(ob.count)\r\n }\r\n\r\n \r\n )\r\n\r\n })\r\n }\r\n \r\n }\r\n\r\n
\r\n Commission Item\r\n Transaction Band Min\r\n Transaction Band Max\r\n Commission Amount Type\r\n Commission Amount / Rate
\r\n {ob.key}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {TABLE_METHOD.map(c => )}\r\n \r\n \r\n \r\n
\r\n {errors.table &&
\r\n * {errors.table}\r\n
}\r\n \r\n
\r\n }\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n \r\n Submit {loading && }\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n\r\n}\r\n\r\nexport default AddCommission;","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Table\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { checkSpace, postMethod } from '../../services/httpServices';\r\nimport { \r\n CalcMethod, CommissionType, checkTableField, changeCalMethod,\r\n ValidateCommission, getInitialValue,TableCalcMethod, TableBody, \r\n checkTableAmountTypeField\r\n} from \"services/commission-service\";\r\nimport { checkDigit2Decimal } from \"services/util\";\r\n\r\n\r\nconst TYPE = CommissionType ? CommissionType : [];\r\nconst METHOD = CalcMethod ? CalcMethod : [];\r\nconst TABLE_METHOD = TableCalcMethod ? TableCalcMethod : [];\r\nconst TABLE_BODY = TableBody ? TableBody : [];\r\n\r\nconst ViewCommission = (props) => {\r\n\r\n const initialValue = getInitialValue(props);\r\n \r\n const [values, setValues] = React.useState(initialValue);\r\n //console.log(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n\r\n\r\n /**======================== File Function ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name == 'method' && value == '1') {\r\n changeState({ ...values, [name]: value, 'amount': 0 });\r\n } else if (name == \"flatamount\" || name == \"rate\") {\r\n if (checkDigit2Decimal(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (checkTableField(name) && checkDigit2Decimal(value)) {\r\n changeState({...values, table: {...values.table, [name]: value}});\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n }\r\n\r\n const getTableTypeValue = (v, i) => {\r\n let str = v + i;\r\n return values.table[str];\r\n }\r\n\r\n const checkDisable = (i) => {\r\n let str = 'calcMethod' + i;\r\n if (values.table[str] == \"\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const showAmtOrRate = (i) => {\r\n let str = 'calcMethod' + i;\r\n if (values.table[str] == \"1\") {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n Le\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n } else if (values.table[str] == \"2\") {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n }\r\n\r\n\r\n\r\n /**======================== Validation Function ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = ValidateCommission(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Commission

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {errors.name &&
\r\n * {errors.name}\r\n
}\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n Commission Type\r\n \r\n \r\n \r\n {TYPE.map(c => )}\r\n \r\n {errors.type &&
\r\n * {errors.type}\r\n
}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Calculation Method\r\n \r\n \r\n \r\n {METHOD.map(c => )}\r\n \r\n {errors.method &&
\r\n * {errors.method}\r\n
}\r\n
\r\n \r\n\r\n {values.method && values.method == '1' &&\r\n \r\n \r\n \r\n Commission Amount\r\n \r\n \r\n {errors.amount &&
\r\n * {errors.amount}\r\n
}\r\n
\r\n \r\n }\r\n\r\n\r\n {values.method && values.method == '2' &&\r\n \r\n \r\n \r\n Commission Amount\r\n \r\n \r\n {errors.flatamount &&
\r\n * {errors.flatamount}\r\n
}\r\n
\r\n \r\n }\r\n\r\n\r\n {values.method && (values.method == '3' || values.method == '5')&&\r\n \r\n \r\n \r\n Commission Rate\r\n \r\n \r\n {errors.rate &&
\r\n * {errors.rate}\r\n
}\r\n
\r\n \r\n }\r\n\r\n
\r\n\r\n {values.method && values.method == '4' &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n \r\n\r\n {\r\n \r\n {TABLE_BODY.map((ob, i) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n {checkDisable(ob.count) ? : showAmtOrRate(ob.count)\r\n }\r\n \r\n )\r\n\r\n })\r\n }\r\n \r\n }\r\n\r\n {/* \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n */}\r\n
\r\n Commission Item\r\n Transaction Band Min\r\n Transaction Band Max\r\n Commission Amount\r\n Commission RateActions
\r\n {ob.key}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {TABLE_METHOD.map(c => )}\r\n \r\n \r\n \r\n
\r\n Min. Threshold\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Band 1 amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Band 2 amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Band 3 amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Max. Threshold\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {errors.table &&
\r\n * {errors.table}\r\n
}\r\n \r\n
\r\n }\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ViewCommission;","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Table,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod } from \"../../services/httpServices\";\r\nimport {\r\n CalcMethod,\r\n CommissionType,\r\n checkTableField,\r\n changeCalMethod,\r\n ValidateCommission,\r\n getInitialValue,\r\n checkTableRateField,\r\n setCommissionValues,\r\n TableBody,\r\n checkTableAmountTypeField,\r\n TableCalcMethod,\r\n checkMinAmtDisable,\r\n getMinValueName,\r\n} from \"services/commission-service\";\r\nimport { checkDigit2Decimal, checkPercentage } from \"services/util\";\r\n\r\nconst TYPE = CommissionType ? CommissionType : [];\r\nconst METHOD = CalcMethod ? CalcMethod : [];\r\nconst TABLE_METHOD = TableCalcMethod ? TableCalcMethod : [];\r\nconst TABLE_BODY = TableBody ? TableBody : [];\r\n\r\nconst EditCommission = (props) => {\r\n const initialValue = getInitialValue(props);\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const { addToast } = useToasts();\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n React.useEffect(() => {\r\n // const v = changeCalMethod(values, values.method);\r\n // changeState(v);\r\n }, [values.method]);\r\n\r\n /**======================== File Function ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n // const handleInputChange = (e) => {\r\n // const { name, value } = e.target;\r\n // if (checkSpace(value)) {\r\n // if (name == 'method') {\r\n // const v = changeCalMethod(values, values.method);\r\n // if (value == '1') {\r\n // changeState({ ...v, [name]: value, 'amount': 0 });\r\n // } else {\r\n // changeState({ ...v, [name]: value});\r\n // }\r\n // } else if (name == \"flatamount\") {\r\n // if (checkDigit2Decimal(value)) {\r\n // changeState({ ...values, [name]: value });\r\n // }\r\n // } else if (name == \"rate\") {\r\n // if (checkPercentage(value)) {\r\n // changeState({ ...values, [name]: value });\r\n // }\r\n // } else if (checkTableRateField(name) && checkPercentage(value)) {\r\n // changeState({...values, table: {...values.table, [name]: value}});\r\n // } else if (checkTableField(name) && checkDigit2Decimal(value)) {\r\n // changeState({...values, table: {...values.table, [name]: value}});\r\n // } else {\r\n // changeState({ ...values, [name]: value });\r\n // }\r\n // }\r\n // };\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name == \"method\" && value == \"1\") {\r\n changeState({ ...values, [name]: value, amount: 0 });\r\n } else if (name == \"flatamount\") {\r\n if (checkDigit2Decimal(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name == \"rate\") {\r\n if (checkPercentage(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (checkTableRateField(name)) {\r\n if (checkPercentage(value)) {\r\n changeState({ ...values, table: { ...values.table, [name]: value } });\r\n }\r\n } else if (checkTableField(name)) {\r\n if (checkDigit2Decimal(value)) {\r\n // changeState({ ...values, table: { ...values.table, [name]: value } });\r\n let str = getMinValueName(name);\r\n let obj = str\r\n ? { ...values.table, [name]: value, [str]: value }\r\n : { ...values.table, [name]: value };\r\n changeState({ ...values, table: obj });\r\n }\r\n } else if (checkTableAmountTypeField(name)) {\r\n changeState({ ...values, table: { ...values.table, [name]: value } });\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const getTableTypeValue = (v, i) => {\r\n let str = v + i;\r\n return values.table[str];\r\n };\r\n\r\n const checkDisable = (i) => {\r\n let str = \"calcMethod\" + i;\r\n if (values.table[str] == \"\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const showAmtOrRate = (i) => {\r\n let str = \"calcMethod\" + i;\r\n if (values.table[str] == \"1\") {\r\n return (\r\n \r\n \r\n \r\n Le\r\n \r\n \r\n \r\n \r\n );\r\n } else if (values.table[str] == \"2\") {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n (   )\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n /**======================== Validation Function ==========================*/\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = ValidateCommission(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = setCommissionValues(values);\r\n if (values.method == \"1\" || values.method == \"4\") {\r\n data[\"CommissionValue\"] = 0;\r\n } else if (values.method == \"2\") {\r\n data[\"CommissionValue\"] = Number(values.flatamount);\r\n } else if (values.method == \"3\") {\r\n data[\"CommissionValue\"] = Number(values.rate);\r\n }\r\n data[\"commissionId\"] = values.id;\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/commission/update\", JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Edit Commission

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {errors.name && (\r\n
\r\n * {errors.name}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Commission Type\r\n \r\n \r\n \r\n {TYPE.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.type && (\r\n
\r\n * {errors.type}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Calculation Method\r\n \r\n \r\n \r\n {METHOD.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.method && (\r\n
\r\n * {errors.method}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.method && values.method == \"1\" && (\r\n \r\n \r\n \r\n Commission Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n\r\n {values.method && values.method == \"2\" && (\r\n \r\n \r\n \r\n Commission Amount\r\n \r\n \r\n {errors.flatamount && (\r\n
\r\n * {errors.flatamount}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n\r\n {values.method &&\r\n (values.method == \"3\" || values.method == \"5\") && (\r\n \r\n \r\n \r\n Commission Rate\r\n \r\n \r\n \r\n \r\n \r\n ( {\" \"}\r\n {\" \"}\r\n  )\r\n \r\n \r\n \r\n {errors.rate && (\r\n
\r\n * {errors.rate}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n\r\n {values.method && values.method == \"4\" && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n \r\n\r\n {\r\n \r\n {TABLE_BODY.map((ob, i) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n {checkDisable(ob.count) ? (\r\n \r\n ) : (\r\n showAmtOrRate(ob.count)\r\n )}\r\n \r\n );\r\n })}\r\n \r\n }\r\n\r\n {/* \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n */}\r\n
\r\n Commission Item\r\n \r\n Transaction Band Min\r\n \r\n Transaction Band Max\r\n \r\n Commission Amount\r\n \r\n Commission Rate\r\n Actions
\r\n {ob.key}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {TABLE_METHOD.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n Min. Threshold\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Band 1 amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Band 2 amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Band 3 amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Max. Threshold\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {errors.table && (\r\n
\r\n * {errors.table}\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditCommission;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader,\r\n Col\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { getMethod, postMethod } from \"../../services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport AddCommission from \"./add-commission\";\r\nimport ViewCommission from \"./view-commission\";\r\nimport EditCommission from \"./edit-commission\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport { getCommissionTypeName } from \"services/commission-service\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\nimport { getPrivileges } from \"services/util\";\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortType: 0,\r\n sortMethod: 0\r\n};\r\n\r\nconst CommissionList = () => {\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [postlist, setPosList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [open, setOpen] = React.useState(false);\r\n const [view, setView] = React.useState(false);\r\n const [openEdit, setOpenEditModal] = React.useState(false);\r\n const [ViewObj, setViewObj] = React.useState(null);\r\n const [editObj, setEditObj] = React.useState(null);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const privileges = getPrivileges('commission');\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n // React.useEffect(() => {\r\n // fetchCommission();\r\n // }, []);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchCommission();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchCommission();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchCommission();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchCommission();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetchCommission();\r\n }\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n }\r\n\r\n const handleClick = (e, index) => {\r\n\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n\r\n const ShowCommission = (obj) => {\r\n setViewObj(obj);\r\n setView(true);\r\n }\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n setSearchText('');\r\n setViewObj(null);\r\n }\r\n\r\n const closeEditModal = () => {\r\n setOpenEditModal(false);\r\n setEditObj(null);\r\n setSearchText('');\r\n fetchCommission();\r\n }\r\n\r\n const commType = (value) => {\r\n if (value == 'WalletTopUp') {\r\n return 'Wallet';\r\n } else if (value == 'CashTopUp') {\r\n return 'Cash Top Up';\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n /**======================== Validation Functions ==========================*/\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const fetchCommission = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data['SortingOn'] = 'CommissionName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'CommissionName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortType == \"1\") {\r\n data['SortingOn'] = 'CommissionType';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortType == \"2\") {\r\n data['SortingOn'] = 'CommissionType';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortMethod == \"1\") {\r\n data['SortingOn'] = 'CommissionCalculateMethodName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortMethod == \"2\") {\r\n data['SortingOn'] = 'CommissionCalculateMethodName';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/commission/all', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setPosList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n const fetchCommissionById = (id, page) => {\r\n let errorMsg = '';\r\n postMethod('/api/commission/Edit/' + id, {}, 'post')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (page == 'edit') {\r\n setEditObj(res.data.result);\r\n setOpenEditModal(true);\r\n } else if (page == 'view') {\r\n ShowCommission(res.data.result);\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n // setSError(errorMsg);\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n // setSError();\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n\r\n {privileges.add && }\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortName, 'sortName')}>\r\n Commission Name\r\n \r\n sortHandle(sort.sortType, 'sortType')}>\r\n Commission Type\r\n \r\n sortHandle(sort.sortMethod, 'sortMethod')}>\r\n Calculation Method\r\n \r\n Actions
\r\n {mmo.commissionName}\r\n {commType(mmo.commissionType)}{mmo.commissionCalculateMethodName}\r\n {privileges.view && fetchCommissionById(mmo.commissionId, 'view')}\r\n // onClick={() => ShowCommission(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\"\r\n >\r\n \r\n }\r\n\r\n {privileges.edit && fetchCommissionById(mmo.commissionId, 'edit')}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\">\r\n \r\n \r\n}\r\n
\r\n\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n\r\n}\r\n\r\nexport default CommissionList;","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { postMethod } from \"../../services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport { getAmt, getSortCls } from \"services/util\";\r\nimport moment from \"moment\";\r\nimport ReactPaginate from 'react-paginate';\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortSubsName: 0,\r\n sortStatus: 0,\r\n sortPaymentAmt: 0,\r\n sortCommAmt: 0\r\n};\r\n\r\nconst MerchantCommission = () => {\r\n const [loading, setLoading] = React.useState(false);\r\n const [list, setList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [open, setOpen] = React.useState(false);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n\r\n const { addToast } = useToasts();\r\n\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n // React.useEffect(() => {\r\n // fetchCommission();\r\n // }, []);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchCommission();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetchCommission();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchCommission();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(() => {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchCommission();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n\r\n\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const handleClick = (e, index) => {\r\n\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const fetchCommission = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize,\r\n 'AccountType': 'Merchant'\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data['SortingOn'] = 'UserName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'UserName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortSubsName == \"1\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortSubsName == \"2\") {\r\n data['SortingOn'] = 'SubscriberName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPaymentAmt == \"1\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPaymentAmt == \"2\") {\r\n data['SortingOn'] = 'PaymentAmount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortCommAmt == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortCommAmt == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/admin/GetCommissionList', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setList(res.data.result.list);\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortName, 'sortName')}>\r\n Name\r\n \r\n sortHandle(sort.sortSubsName, 'sortSubsName')}>\r\n From Payment Name\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n sortHandle(sort.sortPaymentAmt, 'sortPaymentAmt')}>\r\n Payment Amount\r\n \r\n sortHandle(sort.sortCommAmt, 'sortCommAmt')}>\r\n Commission Amount\r\n \r\n Actions
\r\n {mmo.name}\r\n {mmo.fromPaymentName}{mmo.transactionStatus}{getAmt(mmo.amount)}\r\n {getAmt(mmo.commission)}\r\n \r\n setOpen(!open)}\r\n data-toggle=\"collapse\"\r\n data-target={`.multi-collapse${i}`}\r\n aria-controls={`multiCollapseExample${i}`}\r\n aria-expanded=\"false\"\r\n style={btnCss}>\r\n \r\n \r\n \r\n
\r\n Added On : \r\n \r\n {moment(mmo.createdAt).format('lll')}\r\n \r\n Collected On. : \r\n \r\n {mmo.updatedAt ? moment(mmo.updatedAt).format('lll') : '--'}\r\n
\r\n\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default MerchantCommission;","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col\r\n} from \"reactstrap\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkBbanValidation } from \"services/util\";\r\n\r\n\r\nconst codes = [23225, 23230, 23231, 23232,\r\n 23233, 23234, 23244, 23275, 23276, 23277,\r\n 23278, 23279, 23280, 23288, 23299];\r\n\r\nconst mobileMoney = [];\r\n\r\nconst banks = [];\r\n\r\nconst ViewSubscriber = (props) => {\r\n\r\n const [values, setValues] = React.useState(props);\r\n const [errors, setErrors] = React.useState({}); \r\n const mobWithCC = values.mobileCode + values.mobileNumber;\r\n const bankMobWithCC = values.bbanLinkMobileCode + values.bbanLinkMobileNumber;\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (name === 'phone') {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === 'bban') {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 5) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/\r\n if (!inputs.name) {\r\n errors.name = 'Merchant Name is Required';\r\n }\r\n if (inputs.email && !emailRegEx.test(inputs.email)) {\r\n errors.email = 'Enter valid email';\r\n }\r\n if (!inputs.bban) {\r\n errors.bban = 'BBAN is Required';\r\n } else if (inputs.bban.length < 8 || inputs.bban.length > 18) {\r\n errors.bban = 'BBAN should have 8 to 18 digits';\r\n }\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = 'Please select mobile code';\r\n }\r\n if (!inputs.phone) {\r\n errors.phone = 'Phone Number is Required';\r\n } else if (inputs.phone.length !== 5) {\r\n errors.phone = 'Phone Number should have 5 digits';\r\n }\r\n if (!inputs.bankName) {\r\n errors.bankName = 'Bank Name is Required';\r\n }\r\n if (!inputs.address) {\r\n errors.address = 'Address is Required';\r\n }\r\n if (!inputs.attachFile) {\r\n errors.attachFile = 'Attach file is required';\r\n }\r\n return errors;\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n }\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Subscriber Information

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Profile Details\r\n
\r\n
\r\n \r\n {\r\n values.subscriberType == 'Individual' &&\r\n <>\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName &&
\r\n * {errors.firstName}\r\n
}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName &&
\r\n * {errors.lastName}\r\n
}\r\n
\r\n \r\n\r\n \r\n }\r\n\r\n {values.subscriberType == 'Organisation' &&\r\n \r\n \r\n \r\n Organisation Name\r\n \r\n \r\n {errors.organizationName &&
\r\n * {errors.organizationName}\r\n
}\r\n
\r\n \r\n }\r\n
\r\n \r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone &&
\r\n * {errors.phone}\r\n
}\r\n
\r\n */}\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email &&
\r\n * {errors.email}\r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* Address */}\r\n
\r\n Mobile Money Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Mobile Money\r\n \r\n \r\n \r\n {values.mobileMoneyList && values.mobileMoneyList.map(c =>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n MM Account Number\r\n \r\n \r\n {errors.mobileMoneyAccNo &&
\r\n * {errors.mobileMoneyAccNo}\r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* Address */}\r\n
\r\n Bank Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n {values.bankList && values.bankList.map(c =>\r\n )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n BBAN Number\r\n \r\n \r\n {errors.bban &&
\r\n * {errors.bban}\r\n
}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccountNumber &&
\r\n * {errors.bankAccountNumber}\r\n
}\r\n
\r\n \r\n\r\n {/* \r\n \r\n \r\n Mobile Code\r\n \r\n \r\n {codes.map(c => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n {errors.bbanLinkMobileNumber &&
\r\n * {errors.bbanLinkMobileNumber}\r\n
}\r\n
\r\n \r\n */}\r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ViewSubscriber;\r\n","\r\nimport React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Table,\r\n Container,\r\n Row, Col,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n ModalHeader\r\n} from \"reactstrap\";\r\n// core components\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getMethod, postMethod } from \"../../services/httpServices\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport ViewSubscriber from \"views/subscriber/view-subscriber\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls } from \"services/util\";\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortEmail: 0,\r\n sortPhone: 0\r\n};\r\n\r\n\r\nconst SubscriberVerificationList = () => {\r\n\r\n const [subslist, setSubsList] = React.useState([]);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [timeout, setTimeoutNew] = React.useState(0);\r\n const [loading, setLoading] = React.useState(false);\r\n const [subsObj, setSubsObj] = React.useState(null);\r\n const [view, setView] = React.useState(false);\r\n const [banks, setBanks] = React.useState(null);\r\n const [mobileMoney, setMMO] = React.useState(null);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [verifyBankLoading, setVerifyBankLoading] = React.useState(false);\r\n const [verifyBankObj, setVerifyBankObj] = React.useState(null);\r\n const [openVerifyBankModal, setOpenVerifyBankModal] = React.useState(false);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n\r\n\r\n\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n // fetch mobilemoney operator\r\n // fetchSubs();\r\n fetchBank();\r\n fetchMMO();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n fetchSubs();\r\n }\r\n }\r\n \r\n }, [searchText]);\r\n\r\n React.useEffect(() => {\r\n fetchSubs();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetchSubs();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetchSubs();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const handleClick = (e, index) => {\r\n e.preventDefault();\r\n setCurrentPage(index);\r\n\r\n };\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n // fetchSubs();\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const showSubs = (obj) => {\r\n setSubsObj(obj);\r\n setView(true);\r\n }\r\n\r\n const closeViewModal = () => {\r\n setView(false);\r\n setSubsObj(null);\r\n }\r\n\r\n \r\n const fetchSubs = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data['SortingOn'] = 'FirstName';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'FirstName';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortEmail == \"1\") {\r\n data['SortingOn'] = 'Email';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortEmail == \"2\") {\r\n data['SortingOn'] = 'Email';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPhone == \"1\") {\r\n data['SortingOn'] = 'SubscriberUid';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'SubscriberUid';\r\n data['IsDescending'] = true;\r\n }\r\n\r\n postMethod('/api/bankprofile/GetAllSubscriber', data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n if (\r\n res.data.responseCode === \"200\" &&\r\n res.data.result\r\n ) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setSubsList(res.data.result.list);\r\n setFilteredList(res.data.result.list);\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n // let pc = res.data.result.totalRecords;\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = '';\r\n getMethod('/api/bankProfile/ddllist?AccountType=Collection', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setBanks(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n\r\n const fetchMMO = async () => {\r\n let errorMsg = '';\r\n getMethod('/api/MobileMoney/ddllist', 'get')\r\n .then(res => {\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (\r\n !res.data.result ||\r\n !res.data.result.length\r\n ) {\r\n res.data.result = [];\r\n }\r\n setMMO(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n\r\n const openVerifyBank = (mmo) => {\r\n setVerifyBankObj(mmo);\r\n setOpenVerifyBankModal(true);\r\n }\r\n\r\n const closeVerifyBankModal = () => {\r\n setVerifyBankObj(null);\r\n setOpenVerifyBankModal(false);\r\n }\r\n\r\n const verifySubsBank = () => {\r\n let errorMsg = '';\r\n setVerifyBankLoading(true);\r\n let url = `/api/User/subscriberbankverify`;\r\n let data = {\r\n 'UserId': verifyBankObj.userProfileId,\r\n 'Verify': true\r\n };\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n setVerifyBankLoading(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n notifySuccess('Verified Successfuly');\r\n closeVerifyBankModal();\r\n reloadList();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setVerifyBankLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n fetchBank();\r\n fetchMMO();\r\n }\r\n\r\n const getAmt = (amt) => {\r\n if (amt) {\r\n return amt.toLocaleString();\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n {/* Page content */}\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

\r\n Verify Bank\r\n

\r\n
\r\n \r\n
\r\n {verifyBankObj && verifyBankObj.firstName ?\r\n
\r\n

\r\n Do you want to verify bank of {verifyBankObj.firstName} {verifyBankObj.lastName} ?\r\n

\r\n\r\n \r\n \r\n Bank Details\r\n
\r\n
\r\n Bank Name : {verifyBankObj.bankName}\r\n
\r\n
\r\n BBAN : {verifyBankObj.bban}\r\n
\r\n
\r\n Bank Linked Mobile Number : {\r\n `(${verifyBankObj.mobileCode}) - ${verifyBankObj.mobileNumber}`}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Yes {verifyBankLoading && }\r\n {' '}\r\n No\r\n
\r\n
: <> \r\n }\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/* */}\r\n \r\n \r\n\r\n )\r\n }\r\n )}\r\n \r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n
sortHandle(sort.sortName, 'sortName')}\r\n >Name\r\n \r\n sortHandle(sort.sortEmail, 'sortEmail')}\r\n >Email\r\n \r\n sortHandle(sort.sortPhone, 'sortPhone')}>Phone\r\n Actions
\r\n {mmo.firstName} {mmo.lastName}\r\n {mmo.email}({mmo.mobileCode})-\r\n {mmo.mobileNumber}{mmo.bban}\r\n {getAmt(mmo.balanceAmount)}\r\n \r\n showSubs(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View\">\r\n \r\n \r\n\r\n {\r\n !mmo.isBankVerified &&\r\n openVerifyBank(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Verify Bank\">\r\n \r\n \r\n \r\n }\r\n\r\n
\r\n \r\n {!loading && !filteredList.length && }\r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SubscriberVerificationList;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n Label,\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\r\nimport { useHistory } from \"react-router\";\r\nimport swal from \"sweetalert\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { getUserEmail } from \"services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { getAmt } from \"services/util\";\r\nimport { getLoginType } from \"services/httpServices\";\r\nimport { getSuperAgentId } from \"services/httpServices\";\r\nimport { useLocation, useParams } from \"react-router-dom/cjs/react-router-dom\";\r\n\r\nconst initialValue = {\r\n toMobWithCC: \"\",\r\n toMobWithoutCC: \"\",\r\n toMobCC: \"\",\r\n amount: \"\",\r\n pin: \"\",\r\n otp: \"\",\r\n};\r\nconst STR = `Please enter the mobile number whom you want to transfer`;\r\n\r\nconst TransferMoney = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [subsInfo, setSubsInfo] = React.useState({});\r\n const [SubscriberDetails, setSubscriberDetails] = React.useState({});\r\n const [toUserInfo, setToUserInfo] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const [use1FA, set1FA] = React.useState(false);\r\n const [use2FA, set2FA] = React.useState(false);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [form, setForm] = React.useState(1);\r\n const [resendLoader, setResendLoader] = React.useState(false);\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const routeName = useLocation();\r\n let loginType = getLoginType();\r\n // console.log(routeName.pathname);\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n useEffect(() => {\r\n fetchSubs();\r\n }, []);\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons: {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: \"sweet-btn\",\r\n },\r\n },\r\n }).then((confirm) => {\r\n setSpinner(false);\r\n if (confirm) {\r\n setForm(3);\r\n } else {\r\n setForm(3);\r\n }\r\n });\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n toMobWithCC: value,\r\n toMobCC: data.dialCode,\r\n toMobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const goBack1 = () => {\r\n setValues(initialValue);\r\n setToUserInfo({});\r\n setForm(1);\r\n };\r\n\r\n const goBack2 = () => {\r\n setValues({ ...values, otp: \"\", pin: \"\" });\r\n setForm(2);\r\n };\r\n\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setValues({ ...values, otp: \"\" });\r\n setResendLoader(true);\r\n genOtp();\r\n };\r\n\r\n const checkForm = () => {\r\n if (form == 2 || form == 3) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n const handleSubmit1 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate1(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n checkToMob();\r\n }\r\n };\r\n\r\n const validate1 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.toMobWithCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n } else if (!inputs.toMobWithoutCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n verifyPinV2();\r\n }\r\n };\r\n\r\n const validate2 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"Pin is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit3 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate3(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n transferMoney();\r\n }\r\n };\r\n\r\n const validate3 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"Pin is required\";\r\n }\r\n if (use2FA && !inputs.otp) {\r\n errors.otp = \"OTP is required\";\r\n }\r\n if (!toUserInfo || !toUserInfo.userId) {\r\n errors.toUserId = \"To userid is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleInputChange = (ev) => {\r\n var { name, value } = ev.target;\r\n value = value.trim();\r\n if (name === \"amount\") {\r\n if (value == \"\") {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n if (checkNumberOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n setValues({ ...values, [name]: \"\" });\r\n }\r\n }\r\n } else if (name === \"password\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkNumberOnly = (value) => {\r\n // let digiRegex = /^[0-9]*$/;\r\n let digiRegex = /^[+-]?([1-9]+\\.?[0-9]*|\\.[0-9]+)$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const fetchSubs = () => {\r\n let errorMsg = \"\";\r\n let id = getUserId();\r\n \r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/agent/GetSuperAgent/\" + id;\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Agent/GetMasterAgentById/\" + id;\r\n } else if (loginType === \"Agent\") {\r\n setForm(2);\r\n checkToMob();\r\n return;\r\n } else {\r\n url = \"/api/Subscriber/GetByUserId/\" + id;\r\n }\r\n setLoading(true);\r\n postMethod(url, null, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setSubsInfo(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching subscriber info\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching subscriber info\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const checkToMob = () => {\r\n let errorMsg = \"\";\r\n setSpinner(true);\r\n \r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/Transactions/validateSubAgent/\";\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Transactions/validateSuperAgent/\";\r\n } else if (loginType === \"Agent\") {\r\n url = \"/api/Agent/GetSuperAgent/\" + getSuperAgentId();\r\n } else {\r\n if (\r\n routeName.pathname.includes(\"cash-out\") &&\r\n loginType === \"Subscriber\"\r\n ) {\r\n url = \"/api/Transactions/validateSubAgent-Subscriber/\";\r\n } else {\r\n url = \"/api/Transactions/validateSubscriber/\";\r\n }\r\n }\r\n postMethod(url + values.toMobWithCC, {}, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setToUserInfo({\r\n ...res.data.result,\r\n userId:\r\n res.data.result?.userId || res.data?.result?.userProfileId,\r\n });\r\n setForm(2);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const verifyPinV2 = () => {\r\n var errorMsg = \"\";\r\n // var data = {\r\n // \"PaymentAmount\": Number(values.amount),\r\n // \"Password\": values.pin,\r\n // \"Email\": getUserEmail().trim(),\r\n // \"PaymentType\": \"BalanceTransfer\"\r\n // };\r\n\r\n var data = {\r\n PaymentAmount: Number(values.amount),\r\n Password: values.pin,\r\n Email: getUserEmail().trim(),\r\n PaymentType: \"BalanceTransfer\",\r\n };\r\n let url = \"\";\r\n \r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/agent/GetSubAgentDetails\";\r\n data.Email = subsInfo.mobNumber;\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Agent/GetSuperAgentDetails\";\r\n data.Email = subsInfo.mobNumber;\r\n } else if (loginType === \"Agent\") {\r\n url = \"/api/Agent/GetSuperAgent/\" + getSuperAgentId();\r\n } \r\n else {\r\n if (\r\n routeName.pathname.includes(\"cash-out\") &&\r\n loginType === \"Subscriber\"\r\n ) {\r\n url = \"/api/Subscriber/GetSubscriberDetailsForCashout/\";\r\n \r\n } else {\r\n url = \"/api/Subscriber/GetSubscriberDetails/\";\r\n }\r\n }\r\n setSpinner(true);\r\n // let url = '/api/pos/PaymentPinVerification';\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let result = res.data.result;\r\n setSubscriberDetails(result);\r\n if (result.authFactorType == \"1FA\") {\r\n set1FA(true);\r\n set2FA(false);\r\n } else if (result.authFactorType == \"2FA\") {\r\n set1FA(false);\r\n set2FA(true);\r\n } else {\r\n set1FA(false);\r\n set2FA(false);\r\n }\r\n verifyPinHandle(result);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n } else {\r\n errorMsg = \"Unknown error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n });\r\n };\r\n\r\n const verifyPinHandle = (result) => {\r\n if (result.authFactorType == \"2FA\") {\r\n genOtp();\r\n } else {\r\n setSpinner(false);\r\n setForm(3);\r\n }\r\n };\r\n\r\n const genOtp = () => {\r\n var errorMsg = \"\";\r\n var data = JSON.stringify({\r\n UserId: getUserId(),\r\n OtpType: \"BalanceTransfer\",\r\n });\r\n let url = \"/api/Transactions/Sendotp\";\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n setResendLoader(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Otp sent\";\r\n // notifySuccess(msg);\r\n openModal(msg);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in generating otp\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n } else {\r\n errorMsg = \"Unknown error in generating otp\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n setResendLoader(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const transferMoney = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n ToUserId: toUserInfo.userId,\r\n Amount: Number(values.amount),\r\n PIN: values.pin,\r\n };\r\n if (use2FA) {\r\n data[\"Otp\"] = values.otp;\r\n }\r\n setSpinner(true);\r\n \r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSubAgent\";\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSuperAgent\";\r\n } else if (loginType === \"Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSuperAgentReverse\";\r\n data.ToUserId = getSuperAgentId();\r\n } else {\r\n if (\r\n routeName.pathname.includes(\"cash-out\") &&\r\n loginType === \"Subscriber\"\r\n ) {\r\n url = \"/api/Transactions/walletBalanceTransferToSubAgentFromSubscriber\";\r\n } else {\r\n url = \"/api/Transactions/walletBalanceTransfer\";\r\n }\r\n }\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Amount Transferred\";\r\n notifySuccess(msg);\r\n history.push(\"/index\");\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n {routeName.pathname.includes(\"cash-out\") &&\r\n loginType === \"Subscriber\"\r\n ? \"Cash Out\"\r\n : \"Transfer Money\"}\r\n

\r\n \r\n
\r\n
\r\n \r\n {loading && }\r\n {!loading && (\r\n <>\r\n {form == 1 && loginType !== \"Agent\" && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {errors.toMobWithCC && (\r\n
\r\n * {errors.toMobWithCC}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {checkForm() && (\r\n \r\n \r\n User Details\r\n
\r\n
\r\n \r\n Transfer to -{\" \"}\r\n {toUserInfo.subscriberName ||\r\n toUserInfo?.fullName}\r\n \r\n
\r\n
\r\n \r\n Mobile Number -{\" \"}\r\n {`(${\r\n toUserInfo.mobileCodeId ||\r\n toUserInfo?.mobileCode\r\n }) - ${\r\n loginType === \"Agent\"\r\n ? toUserInfo?.mobileNumber\r\n : toUserInfo?.mobNumber\r\n }`}\r\n \r\n
\r\n
\r\n \r\n Email - {toUserInfo.email}\r\n \r\n
\r\n {form == 3 && (\r\n
\r\n \r\n Amount -  \r\n Le  \r\n {getAmt(values.amount)}\r\n \r\n
\r\n )}\r\n
\r\n {routeName.pathname.includes(\"cash-out\") ? Fees - Le {SubscriberDetails.fees} (Sub Agent Commission: {SubscriberDetails.commissionWillCredit} & Subscriber Commission: {SubscriberDetails.actualCommission}): null}\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n\r\n {form == 2 && (\r\n
\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n\r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n {loginType !== \"Agent\" && (\r\n \r\n
\r\n \r\n \r\n   Back\r\n \r\n
\r\n \r\n )}\r\n\r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {form == 3 && (\r\n
\r\n {use2FA && (\r\n \r\n \r\n \r\n \r\n OTP\r\n \r\n\r\n
\r\n \r\n \r\n Resend\r\n {\" \"}\r\n    \r\n {resendLoader && (\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n * we have sent you an OTP on your\r\n registered mobile number / email\r\n \r\n \r\n
\r\n {errors.otp && (\r\n
\r\n * {errors.otp}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n   Back\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TransferMoney;\r\n","import React, { useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n getUserId,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport { getAmt } from \"../../services/util\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\n\r\nconst initialValue = {\r\n toMobWithCC: \"\",\r\n toMobWithoutCC: \"\",\r\n toMobCC: \"\",\r\n amount: \"\",\r\n totalAmt: \"\",\r\n};\r\n\r\nconst STR = `Please enter the super agent mobile number and amount whom you want to withdraw`;\r\n\r\nconst CashWithDrawals = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [subsInfo, setSubsInfo] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading] = React.useState(false);\r\n const [form, setForm] = React.useState(1);\r\n const [spinner, setSpinner] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const checkNumberOnly = (value) => {\r\n let digiRegex = /^[1-9][\\d]*$/;\r\n // let digiRegex = /^[+-]?([1-9]+\\.?[0-9]*|\\.[0-9]+)$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const goBack1 = () => {\r\n setValues(initialValue);\r\n setSubsInfo({});\r\n setForm(1);\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n toMobWithCC: value,\r\n toMobCC: data.dialCode,\r\n toMobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n const handleInputChange = (ev) => {\r\n var { name, value } = ev.target;\r\n value = value.trim();\r\n if (name === \"amount\") {\r\n if (value === \"\") {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n if (checkNumberOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n setValues({ ...values });\r\n }\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const handleSubmit1 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate1(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n checkToMob();\r\n }\r\n };\r\n\r\n const validate1 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.toMobWithCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n } else if (!inputs.toMobWithoutCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n } else if (!inputs.amount) {\r\n errors.amount = \"Please enter the amount\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n getCommissionAmt();\r\n }\r\n };\r\n\r\n const validate2 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit3 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate3(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n transferMoney();\r\n }\r\n };\r\n\r\n const validate3 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const checkToMob = () => {\r\n /** =======testing ======= */\r\n // setSpinner(true);\r\n\r\n // setTimeout(()=> {\r\n // setSubsInfo(DUMMY_USER);\r\n // setSpinner(false);\r\n // setForm(2);\r\n // }, 3000);\r\n\r\n /** ====================== */\r\n\r\n let errorMsg = \"\";\r\n setSpinner(true);\r\n let data = {\r\n Amount: Number(values.amount),\r\n Subscriber: values.toMobWithCC,\r\n };\r\n let url = \"/api/Transactions/validateCashWithdrawal/\";\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setSubsInfo(res.data.result);\r\n setForm(3);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const getCommissionAmt = () => {\r\n /** =======testing ======= */\r\n setSpinner(true);\r\n\r\n setTimeout(() => {\r\n setSpinner(false);\r\n setForm(3);\r\n }, 3000);\r\n\r\n /** ====================== */\r\n\r\n // var errorMsg = '';\r\n // var data = {\r\n // \"PaymentAmount\": Number(values.amount),\r\n // \"Password\": values.pin,\r\n // \"Email\": getUserEmail().trim(),\r\n // \"PaymentType\": \"BalanceTransfer\"\r\n // };\r\n\r\n // setSpinner(true);\r\n // let url = '/api/pos/PaymentPinVerification';\r\n // postMethod(url, JSON.stringify(data), 'post')\r\n // .then(res => {\r\n // if (res.data) {\r\n // if (res.data.responseCode === \"200\") {\r\n // let result = res.data.result;\r\n // setFees(result);\r\n // setForm(3);\r\n // } else if (res.data.responseCode === \"400\") {\r\n // errorMsg = res.data.responseMessage || 'Error in validating pin';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // } else {\r\n // errorMsg = 'Unknown error in validating pin';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // }\r\n // } else {\r\n // errorMsg = 'Unknown Error';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // }\r\n // }).catch(err => {\r\n // errorMsg = 'Something went wrong!, Please call 3737';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // });\r\n };\r\n\r\n const transferMoney = () => {\r\n /** =======testing ======= */\r\n // setSpinner(true);\r\n\r\n // setTimeout(()=> {\r\n // setSpinner(false);\r\n // let msg = 'Amount Transferred';\r\n // notifySuccess(msg);\r\n // closeModal(true);\r\n // }, 3000);\r\n\r\n /** ====================== */\r\n var errorMsg = \"\";\r\n setSpinner(true);\r\n var data = new FormData();\r\n data.append(\"SubscriberUserId\", subsInfo.subscriberId);\r\n data.append(\"Amount\", subsInfo.amount);\r\n data.append(\"PaymentMethod\", \"Cash\");\r\n data.append(\"PaymentType\", \"CashTopUp\");\r\n data.append(\"PaymentTo\", \"Wallet TopUp\");\r\n data.append(\"AmountType\", \"R\");\r\n data.append(\"CollectionType\", \"CashTopUp\");\r\n data.append(\"FeesAmount\", subsInfo.feesAmount);\r\n data.append(\"PaymentFrom\", getUserId());\r\n data.append(\"PaymentMethodId\", 0);\r\n let url = \"/api/transactions/MerchantCashWithdrawal\";\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Amount Transferred\";\r\n notifySuccess(msg);\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Cash withdrawal

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {loading && }\r\n {!loading && (\r\n <>\r\n {form === 1 && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {errors.toMobWithCC && (\r\n
\r\n * {errors.toMobWithCC}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {form === 2 && (\r\n
\r\n \r\n \r\n User Details\r\n
\r\n
\r\n \r\n Transfer to - {subsInfo.subscriberName}\r\n \r\n
\r\n
\r\n \r\n Mobile Number -{\" \"}\r\n {`(${subsInfo.mobileCodeId}) - ${subsInfo.mobNumber}`}\r\n \r\n
\r\n
\r\n \r\n Email - {subsInfo.email}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n   Back\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {form === 3 && (\r\n
\r\n \r\n \r\n User Details\r\n
\r\n
\r\n \r\n Transfer to : {subsInfo.subscriberName}\r\n \r\n
\r\n
\r\n \r\n Mobile Number :{\" \"}\r\n {`(${subsInfo.subscriberMobileCode}) : \r\n ${subsInfo.subscriberMobileNumber}`}\r\n \r\n
\r\n
\r\n \r\n Email : {subsInfo.subscriberEmail}\r\n \r\n
\r\n\r\n
\r\n \r\n Cash Received :  \r\n Le  \r\n {getAmt(subsInfo.amount)}\r\n \r\n
\r\n\r\n
\r\n \r\n Withdrawal Amount :  \r\n Le  \r\n {getAmt(subsInfo.topUpAmount)}\r\n \r\n
\r\n\r\n
\r\n \r\n Commission :  \r\n Le  \r\n {getAmt(subsInfo.feesAmount)}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n   Back\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CashWithDrawals;\r\n","export default __webpack_public_path__ + \"static/media/lapologo.2ae0fc3b.PNG\";","export default __webpack_public_path__ + \"static/media/nacsaLogo.b1436e99.png\";","export default __webpack_public_path__ + \"static/media/wellbodi-logo.6bbb98ca.jpg\";","export default __webpack_public_path__ + \"static/media/project_logo.8dd5635e.png\";","import React, { useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n Table,\r\n} from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n checkSpace,\r\n getLoginType,\r\n getUserId,\r\n getUserName,\r\n postMethod,\r\n} from \"../../services/httpServices\";\r\nimport { getAmt, DUMMY_USER } from \"../../services/util\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport LapoLogo from \"../../assets/img/brand/lapologo.PNG\";\r\nimport NacsaLogo from \"../../assets/img/brand/nacsaLogo.png\";\r\nimport WellbodiLogo from \"../../assets/img/brand/wellbodi-logo.jpg\";\r\nimport SpayLogo from \"../../assets/img/brand/project_logo.png\";\r\nconst paymentToOptions = [\r\n {\r\n name: \"Lapo\",\r\n value: \"Lapo\",\r\n logo: LapoLogo,\r\n },\r\n {\r\n name: \"NaCSA\",\r\n value: \"Nacsa\",\r\n logo: NacsaLogo,\r\n },\r\n {\r\n name: \"Wellbodi\",\r\n value: \"wellbodi\",\r\n logo: WellbodiLogo,\r\n },\r\n {\r\n name: \"SmartPay\",\r\n value: \"SmartPay\",\r\n logo: SpayLogo,\r\n },\r\n];\r\n\r\nconst initialValue = {\r\n toMobWithCC: \"\",\r\n toMobWithoutCC: \"\",\r\n toMobCC: \"\",\r\n amount: \"\",\r\n totalAmt: \"\",\r\n platform: \"\",\r\n};\r\n\r\nconst STR = `Please enter the subscriber's mobile number and amount whom you want to transfer`;\r\n\r\nconst AddTopUpSubscriber = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [subsInfo, setSubsInfo] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [form, setForm] = React.useState(1);\r\n const [spinner, setSpinner] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const checkNumberOnly = (value) => {\r\n let digiRegex = /^[1-9][\\d]*$/;\r\n // let digiRegex = /^[+-]?([1-9]+\\.?[0-9]*|\\.[0-9]+)$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const goBack1 = () => {\r\n setValues(initialValue);\r\n setSubsInfo({});\r\n setForm(1);\r\n };\r\n\r\n const goBack2 = () => {\r\n setValues({ ...values, amount: \"\" });\r\n setForm(2);\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n toMobWithCC: value,\r\n toMobCC: data.dialCode,\r\n toMobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n const handleInputChange = (ev) => {\r\n var { name, value } = ev.target;\r\n value = value.trim();\r\n if (name === \"amount\") {\r\n if (value == \"\") {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n if (checkNumberOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n setValues({ ...values });\r\n }\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const handleSubmit1 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate1(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n checkToMob();\r\n }\r\n };\r\n\r\n const validate1 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.platform) {\r\n errors.platform = \"Please select the platform\";\r\n } else if (!inputs.toMobWithCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n } else if (!inputs.toMobWithoutCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n } else if (!inputs.amount) {\r\n errors.amount = \"Please enter the amount\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n getCommissionAmt();\r\n }\r\n };\r\n\r\n const validate2 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit3 = (e) => {\r\n e.preventDefault();\r\n if (values.platform === \"SmartPay\") {\r\n const validationErrors = validate3(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n transferMoney();\r\n }\r\n } else {\r\n handleCashout();\r\n }\r\n };\r\n\r\n const validate3 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const handleCashout = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n walletOrAccount: values.toMobWithoutCC,\r\n subAgentName: getUserName(),\r\n amount: Number(values.amount),\r\n platform: values.platform === \"Nacsa\" ? \"NACSA\" : values.platform,\r\n type: \"CashIn\",\r\n };\r\n\r\n setSpinner(true);\r\n\r\n let url = \"/api/Transactions/CashInToOtherPlatform\";\r\n\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Amount Transferred\";\r\n notifySuccess(msg);\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const checkToMob = () => {\r\n /** =======testing ======= */\r\n // setSpinner(true);\r\n\r\n // setTimeout(()=> {\r\n // setSubsInfo(DUMMY_USER);\r\n // setSpinner(false);\r\n // setForm(2);\r\n // }, 3000);\r\n\r\n /** ====================== */\r\n\r\n if (values.platform !== \"SmartPay\") {\r\n setForm(3);\r\n return;\r\n }\r\n\r\n let errorMsg = \"\";\r\n setSpinner(true);\r\n let data = {\r\n Amount: Number(values.amount),\r\n Subscriber: values.toMobWithCC,\r\n };\r\n let url = \"\";\r\n let loginType = getLoginType();\r\n if (loginType === \"Agent\") {\r\n url = \"/api/Agent/validateCashTopup\";\r\n } else {\r\n url = \"/api/Transactions/validateCashTopup/\";\r\n }\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setSubsInfo(res.data.result);\r\n setForm(3);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const getCommissionAmt = () => {\r\n /** =======testing ======= */\r\n setSpinner(true);\r\n\r\n setTimeout(() => {\r\n setSpinner(false);\r\n setForm(3);\r\n }, 3000);\r\n\r\n /** ====================== */\r\n\r\n // var errorMsg = '';\r\n // var data = {\r\n // \"PaymentAmount\": Number(values.amount),\r\n // \"Password\": values.pin,\r\n // \"Email\": getUserEmail().trim(),\r\n // \"PaymentType\": \"BalanceTransfer\"\r\n // };\r\n\r\n // setSpinner(true);\r\n // let url = '/api/pos/PaymentPinVerification';\r\n // postMethod(url, JSON.stringify(data), 'post')\r\n // .then(res => {\r\n // if (res.data) {\r\n // if (res.data.responseCode === \"200\") {\r\n // let result = res.data.result;\r\n // setFees(result);\r\n // setForm(3);\r\n // } else if (res.data.responseCode === \"400\") {\r\n // errorMsg = res.data.responseMessage || 'Error in validating pin';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // } else {\r\n // errorMsg = 'Unknown error in validating pin';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // }\r\n // } else {\r\n // errorMsg = 'Unknown Error';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // }\r\n // }).catch(err => {\r\n // errorMsg = 'Something went wrong!, Please call 3737';\r\n // notifyFailed(errorMsg);\r\n // setSpinner(false);\r\n // });\r\n };\r\n\r\n const transferMoney = () => {\r\n /** =======testing ======= */\r\n // setSpinner(true);\r\n\r\n // setTimeout(()=> {\r\n // setSpinner(false);\r\n // let msg = 'Amount Transferred';\r\n // notifySuccess(msg);\r\n // closeModal(true);\r\n // }, 3000);\r\n\r\n /** ====================== */\r\n var errorMsg = \"\";\r\n setSpinner(true);\r\n var data = new FormData();\r\n data.append(\"SubscriberUserId\", subsInfo.subscriberId);\r\n data.append(\"Amount\", subsInfo.amount);\r\n data.append(\"PaymentMethod\", \"Cash\");\r\n data.append(\"PaymentType\", \"CashTopUp\");\r\n data.append(\"PaymentTo\", \"Wallet TopUp\");\r\n data.append(\"AmountType\", \"R\");\r\n data.append(\"CollectionType\", \"CashTopUp\");\r\n data.append(\"FeesAmount\", subsInfo.feesAmount);\r\n data.append(\"PaymentFrom\", getUserId());\r\n data.append(\"PaymentMethodId\", 0);\r\n let loginType = getLoginType();\r\n let url = \"\";\r\n if (loginType === \"Agent\") {\r\n url = \"/api/Transactions/SubagentTopup\";\r\n } else {\r\n url = \"/api/transactions/Merchanttopup\";\r\n }\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Amount Transferred\";\r\n notifySuccess(msg);\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Add Cash Top-up

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {loading && }\r\n {!loading && (\r\n <>\r\n {form == 1 && (\r\n
\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n {paymentToOptions.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n {errors.platform && (\r\n
\r\n * {errors.platform}\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Wallet Id\r\n \r\n \r\n\r\n {errors.toMobWithCC && (\r\n
\r\n * {errors.toMobWithCC}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {form == 2 && (\r\n
\r\n \r\n \r\n User Details\r\n
\r\n
\r\n \r\n Transfer to - {subsInfo.subscriberName}\r\n \r\n
\r\n
\r\n \r\n Mobile Number -{\" \"}\r\n {`(${subsInfo.mobileCodeId}) - ${subsInfo.mobNumber}`}\r\n \r\n
\r\n
\r\n \r\n Email - {subsInfo.email}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n   Back\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {form == 3 && (\r\n
\r\n \r\n \r\n User Details\r\n {values.platform === \"SmartPay\" ? (\r\n
\r\n
\r\n \r\n Transfer to : {subsInfo.subscriberName}\r\n \r\n
\r\n
\r\n \r\n Mobile Number :{\" \"}\r\n {`(${subsInfo.subscriberMobileCode}) : \r\n ${subsInfo.subscriberMobileNumber}`}\r\n \r\n
\r\n
\r\n \r\n Email : {subsInfo.subscriberEmail}\r\n \r\n
\r\n\r\n
\r\n \r\n Cash Received :  \r\n Le  \r\n {getAmt(subsInfo.amount)}\r\n \r\n
\r\n\r\n
\r\n \r\n Top Up Amount :  \r\n Le  \r\n {getAmt(subsInfo.topUpAmount)}\r\n \r\n
\r\n\r\n
\r\n \r\n Commission :  \r\n Le  \r\n {getAmt(subsInfo.feesAmount)}\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n \r\n Platform : {values.platform}\r\n \r\n
\r\n
\r\n \r\n {values.platform} Wallet ID :{\" \"}\r\n {values.toMobWithCC}\r\n \r\n
\r\n\r\n
\r\n \r\n Top Up Amount :  \r\n Le  \r\n {getAmt(values.amount)}\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n   Back\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AddTopUpSubscriber;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n Table,\r\n Container,\r\n Row,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Col,\r\n Badge\r\n} from \"reactstrap\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { getLoginType, postMethod } from \"../../services/httpServices\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getSortCls, getAmt } from \"services/util\";\r\nimport moment from \"moment\";\r\nimport { SettleBankUserStatus } from \"appConfig\";\r\nimport CashWithDrawals from \"./cash-withdrawal\";\r\nimport AddTopUpSubscriber from \"./add-top-up-subscriber\";\r\n\r\nconst STATUS = SettleBankUserStatus;\r\n\r\nconst sortIS = {\r\n sortName: 0,\r\n sortPhone: 0,\r\n sortDate: 0,\r\n sortAmount: 0,\r\n sortFees: 0,\r\n sortStatus: 0\r\n};\r\n\r\nconst TopUpSubscriberList = () => {\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [open, setOpen] = React.useState(false);\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n let loginType = getLoginType()\r\n\r\n const { addToast } = useToasts();\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (\r\n searchText && searchText.length >= 3 ||\r\n searchText.length == 0\r\n ) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetch();\r\n }\r\n }\r\n }\r\n }, [searchText]);\r\n\r\n\r\n React.useEffect(() => {\r\n fetch();\r\n }, [currentPage]);\r\n\r\n React.useEffect(() => {\r\n if (!refresh && isMounted) {\r\n if (currentPage != 0) {\r\n setCurrentPage(0);\r\n } else {\r\n fetch();\r\n }\r\n }\r\n }, [sort]);\r\n\r\n React.useEffect(()=> {\r\n if (refresh && isMounted) {\r\n setSearchText('');\r\n setSort(sortIS);\r\n if (currentPage == 0) {\r\n fetch();\r\n } else {\r\n setCurrentPage(0);\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const reloadList = () => {\r\n setSearchText('');\r\n setRefresh(true);\r\n }\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n fetch();\r\n }\r\n\r\n const openModal = () => {\r\n setOpen(true);\r\n }\r\n\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s)=> s.key === val);\r\n return ob && ob.value ? (\r\n \r\n \r\n {ob.value}\r\n \r\n ) : val\r\n };\r\n\r\n\r\n /**======================== Validation Functions ==========================*/\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const fetch = async () => {\r\n let errorMsg = '';\r\n setLoading(true);\r\n\r\n let data = {\r\n 'PageNumber': Number(currentPage + 1),\r\n 'PerPage': pageSize\r\n };\r\n\r\n if (searchText && searchText.length >= 3) {\r\n data['SearchText'] = searchText;\r\n // data['PageNumber'] = 0;\r\n }\r\n\r\n if (sort.sortName == \"1\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortName == \"2\") {\r\n data['SortingOn'] = 'PaymentTo';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortPhone == \"1\") {\r\n data['SortingOn'] = 'SubMobNumber';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortPhone == \"2\") {\r\n data['SortingOn'] = 'SubMobNumber';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortDate == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortDate == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortAmount == \"1\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortAmount == \"2\") {\r\n data['SortingOn'] = 'Amount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortFees == \"1\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortFees == \"2\") {\r\n data['SortingOn'] = 'CommissionAmount';\r\n data['IsDescending'] = true;\r\n } else if (sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n }\r\n let url = \"\";\r\n if(loginType === \"Agent\") {\r\n url = \"/api/Settlement/SubAgentTopUpList\"\r\n } else {\r\n url = '/api/Settlement/MerchantTopUpList';\r\n }\r\n\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n if (\r\n res && res.data\r\n ) {\r\n\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n setFilteredList(res.data.result.list)\r\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\r\n setTotalRec(res.data.result.totalRecords);\r\n setPageCount(pc);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setRefresh(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n {/*

Card tables

*/}\r\n\r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n   \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n\r\n \r\n \r\n {\r\n loginType === \"Merchant\" ? : loginType === \"Agent\" ? : null\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n )\r\n })}\r\n \r\n
sortHandle(sort.sortName, 'sortName')}>\r\n Name\r\n \r\n sortHandle(sort.sortPhone, 'sortPhone')}>\r\n Phone\r\n \r\n sortHandle(sort.sortDate, 'sortDate')}>\r\n Date\r\n \r\n sortHandle(sort.sortAmount, 'sortAmount')}>\r\n Amount\r\n \r\n sortHandle(sort.sortFees, 'sortFees')}>\r\n Commission Amount\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n
\r\n {mmo.paymentTo}\r\n ({mmo.subMobileCode}) - {mmo.subMobileNumber}{moment(mmo.createdAt).format('lll')}{getAmt(mmo.amount)}{getAmt(mmo.commissionAmount)}{statusFormat(mmo.status)}
\r\n {loading && }\r\n {!loading && !filteredList.length && }\r\n\r\n \r\n {filteredList.length > 0 &&\r\n \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n\r\n}\r\n\r\nexport default TopUpSubscriberList;","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Container, Row, Card,\r\n CardHeader, CardFooter, Col,\r\n Form, FormGroup, Input,\r\n InputGroup, InputGroupAddon,\r\n InputGroupText, Button\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { User_Log_Action_Type } from \"services/util\";\r\n\r\nconst UserLogs = (props) => {\r\n\r\n const [logType, setLogType] = React.useState(User_Log_Action_Type);\r\n const [logTypeFilter, setLogTypeFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const { addToast } = useToasts();\r\n\r\n /**============================== React Hooks ============================= */\r\n\r\n // useEffect(() => {\r\n // setLogType(props.logType);\r\n // }, [props.logType]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchLogs();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchLogs();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n\r\n\r\n\r\n /**============================== File Functiond ============================= */\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const changeLogType = (val) => {\r\n setLogTypeFilter(val);\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const onSubmit = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchLogs();\r\n }\r\n }\r\n\r\n /**============================== Form Validation ============================= */\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n return error;\r\n }\r\n\r\n /**============================== API Calls ================================== */\r\n\r\n const fetchLogs = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (logTypeFilter && logTypeFilter != '0') {\r\n data['ActionType'] = logTypeFilter;\r\n }\r\n if (searchText) {\r\n data['SearchText'] = searchText;\r\n }\r\n if (props.sort && props.sort.sortAction == \"1\") {\r\n data['SortingOn'] = 'ActionType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAction == \"2\") {\r\n data['SortingOn'] = 'ActionType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortActionBy == \"1\") {\r\n data['SortingOn'] = 'PerformBy';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortActionBy == \"2\") {\r\n data['SortingOn'] = 'PerformBy';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortLoginUserType == \"1\") {\r\n data['SortingOn'] = 'PerformByRole';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortLoginUserType == \"2\") {\r\n data['SortingOn'] = 'PerformByRole';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortUserType == \"1\") {\r\n data['SortingOn'] = 'UserType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortUserType == \"2\") {\r\n data['SortingOn'] = 'UserType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortDate == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortDate == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } \r\n\r\n postMethod('/api/logs/UserLogsList', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Start Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n Action Type\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeLogType(e.target.value)}\r\n >\r\n \r\n {logType.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.logTypeFilter &&
\r\n * {errors.logTypeFilter}\r\n
}\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n Search\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserLogs;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table,\r\n Button,\r\n Popover, PopoverHeader, PopoverBody,\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader, User_Log_Action_Type } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortAction: 0,\r\n sortActionBy: 0,\r\n sortLoginUserType: 0,\r\n sortDate: 0,\r\n sortStatus: 0,\r\n sortDesc: 0,\r\n sortUserType: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '260px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst UserLogTable = (props) => {\r\n\r\n const [logType, setLogType] = React.useState(User_Log_Action_Type);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [tooltips, setToolTips] = React.useState({});\r\n const toolTipRef = useRef();\r\n\r\n /**============================== React Hooks ============================= */\r\n\r\n useEffect(() => {\r\n setToolTips({});\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setToolTips({});\r\n setCurrentPage(props.currentPage);\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n useEffect(() => {\r\n let handler = (event) => {\r\n if (toolTipRef.current && !toolTipRef.current.contains(event.target)) {\r\n setToolTips({});\r\n }\r\n }\r\n document.addEventListener('mousedown', handler);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handler);\r\n }\r\n }, [toolTipRef]);\r\n\r\n /**============================== File Function ============================= */\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const checkOpen = (i) => {\r\n let val = false;\r\n if (tooltips[i]) {\r\n val = true;\r\n }\r\n return val;\r\n }\r\n\r\n\r\n const toggle = (i) => {\r\n setToolTips({ [i]: !tooltips[i] });\r\n }\r\n\r\n\r\n const getActionType = (type) => {\r\n let ob = logType.find(x=> x.id == type);\r\n\r\n if (ob && ob.value) {\r\n return ob.value;\r\n } else {\r\n return type;\r\n }\r\n }\r\n\r\n const closepopOver = () => {\r\n setToolTips({});\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n )}\r\n \r\n {props.loading &&\r\n \r\n }\r\n {!props.loading && !filteredList.length &&\r\n \r\n }\r\n
sortHandle(sort.sortAction, 'sortAction')}>\r\n Action\r\n \r\n sortHandle(sort.sortActionBy, 'sortActionBy')}>\r\n Action Performed By\r\n \r\n sortHandle(sort.sortLoginUserType, 'sortLoginUserType')}>\r\n Login User Type\r\n \r\n sortHandle(sort.sortUserType, 'sortUserType')}>\r\n Action Performed On\r\n \r\n sortHandle(sort.sortDate, 'sortDate')}>\r\n Action Performed at\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n Description
\r\n {getActionType(mmo.actionType)}\r\n {mmo.performBy}{mmo.performByRole ? mmo.performByRole : '--'}{mmo.userType ? mmo.userType : '--'}{moment(mmo.createdAt).format('lll')}{mmo.status}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n toggle(Number(currentPage * pageSize + i))}\r\n >\r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n {mmo.description}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default UserLogTable;","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Container, Row, Card,\r\n CardHeader, CardFooter, Col,\r\n Form, FormGroup, Input,\r\n InputGroup, InputGroupAddon,\r\n InputGroupText, Button\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { Transaction_Log_Action_Type } from \"services/util\";\r\n\r\n\r\nconst TransactionLogs = (props) => {\r\n\r\n const [logType, setLogType] = React.useState(Transaction_Log_Action_Type);\r\n const [logTypeFilter, setLogTypeFilter] = React.useState('');\r\n const [startDate, setStartDate] = React.useState('');\r\n const [endDate, setEndDate] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [minEndDate, setMinEndDate] = React.useState('');\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [submitButton, setSubmitButton] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const { addToast } = useToasts();\r\n\r\n /**============================== React Hooks ============================= */\r\n\r\n // useEffect(() => {\r\n // setLogType(props.logType);\r\n // }, [props.logType]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchLogs();\r\n }\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n if (isMounted) {\r\n fetchLogs();\r\n }\r\n }, [props.sort]);\r\n\r\n useEffect(() => {\r\n props.parentLoading(loading);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (\r\n endDate &&\r\n moment(new Date(endDate)).isBefore(new Date(startDate))\r\n ) {\r\n setEndDate('');\r\n }\r\n }, [startDate]);\r\n\r\n\r\n\r\n /**============================== File Functiond ============================= */\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const getSearch = (val) => {\r\n setSearchText(val);\r\n };\r\n\r\n const onSubmit = () => {\r\n setSubmitButton(true);\r\n if (props.currentPage != 0) {\r\n props.changePage(0);\r\n } else {\r\n fetchLogs();\r\n }\r\n }\r\n\r\n const changeLogType = (val) => {\r\n setLogTypeFilter(val);\r\n }\r\n\r\n /**============================== Form Validation ============================= */\r\n\r\n const validate = () => {\r\n var error = {};\r\n if (!startDate) {\r\n error.startDate = 'Please select start date';\r\n }\r\n if (!endDate) {\r\n error.endDate = 'Please select end date';\r\n }\r\n return error;\r\n }\r\n\r\n /**============================== API Calls ================================== */\r\n\r\n const fetchLogs = () => {\r\n const validationErrors = validate();\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n let errorMsg = '';\r\n setLoading(true);\r\n let data = {\r\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\r\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\r\n \"Status\": \"\",\r\n 'PageNumber': Number(props.currentPage + 1),\r\n 'PerPage': pageSize\r\n }\r\n if (logTypeFilter && logTypeFilter != '0') {\r\n data['ActionType'] = logTypeFilter;\r\n }\r\n if (searchText) {\r\n data['SearchText'] = searchText;\r\n }\r\n if (props.sort && props.sort.sortAction == \"1\") {\r\n data['SortingOn'] = 'ActionType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortAction == \"2\") {\r\n data['SortingOn'] = 'ActionType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortActionBy == \"1\") {\r\n data['SortingOn'] = 'PerformBy';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortActionBy == \"2\") {\r\n data['SortingOn'] = 'PerformBy';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortUserType == \"1\") {\r\n data['SortingOn'] = 'PerformByRole';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortUserType == \"2\") {\r\n data['SortingOn'] = 'PerformByRole';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortDate == \"1\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortDate == \"2\") {\r\n data['SortingOn'] = 'CreatedAt';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortStatus == \"1\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortStatus == \"2\") {\r\n data['SortingOn'] = 'Status';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortTransactionStatus == \"1\") {\r\n data['SortingOn'] = 'TransactionStatus';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortTransactionStatus == \"2\") {\r\n data['SortingOn'] = 'TransactionStatus';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortTransactionType == \"1\") {\r\n data['SortingOn'] = 'TransactionType';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortTransactionType == \"2\") {\r\n data['SortingOn'] = 'TransactionType';\r\n data['IsDescending'] = true;\r\n } else if (props.sort && props.sort.sortTransactionRefId == \"1\") {\r\n data['SortingOn'] = 'TransactionRefId';\r\n data['IsDescending'] = false;\r\n } else if (props.sort && props.sort.sortTransactionRefId == \"2\") {\r\n data['SortingOn'] = 'TransactionRefId';\r\n data['IsDescending'] = true;\r\n } \r\n\r\n postMethod('/api/logs/TransactionLogsList', JSON.stringify(data), 'post')\r\n .then(res => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n setSubmitButton(false);\r\n if (\r\n res && res.data\r\n ) {\r\n if (res.data.responseCode === \"200\" &&\r\n res.data.result) {\r\n // Success\r\n if (\r\n !res.data.result.list ||\r\n !res.data.result.list.length\r\n ) {\r\n res.data.result.list = [];\r\n }\r\n props.parentCallback(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching list';\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n\r\n }\r\n }).catch(err => {\r\n setLoading(false);\r\n setIsMounted(true);\r\n notifyFailed('Something went wrong!, Please call 3737');\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n        \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n Start Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.startDate &&
\r\n * {errors.startDate}\r\n
}\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n End Date\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {errors.endDate &&
\r\n * {errors.endDate}\r\n
}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n Action Type\r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeLogType(e.target.value)}\r\n >\r\n \r\n {logType.map(c =>\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {errors.logTypeFilter &&
\r\n * {errors.logTypeFilter}\r\n
}\r\n \r\n
\r\n \r\n\r\n\r\n
\r\n    \r\n \r\n\r\n \r\n \r\n \r\n\r\n Search\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n getSearch(e.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default TransactionLogs;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport {\r\n Table,\r\n Button,\r\n Popover, PopoverHeader, PopoverBody,\r\n} from \"reactstrap\";\r\nimport moment from \"moment\";\r\nimport { getSortCls, reportloader, Transaction_Log_Action_Type } from \"services/util\";\r\nimport { btnCss, iconCss } from '../../appConfig';\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\n\r\nconst sortIS = {\r\n sortAction: 0,\r\n sortActionBy: 0,\r\n sortUserType: 0,\r\n sortDate: 0,\r\n sortStatus: 0,\r\n sortDesc: 0,\r\n sortTransactionStatus: 0,\r\n sortTransactionType: 0,\r\n sortTransactionRefId: 0\r\n};\r\n\r\nconst reportloaderContainer = {\r\n position: 'absolute',\r\n top: '260px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nconst TransactionLogTable = (props) => {\r\n\r\n const [logType, setLogType] = React.useState(Transaction_Log_Action_Type);\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [sort, setSort] = React.useState(sortIS);\r\n const [tooltips, setToolTips] = React.useState({});\r\n const toolTipRef = useRef();\r\n\r\n /**============================== React Hooks ============================= */\r\n\r\n useEffect(() => {\r\n setToolTips({});\r\n setFilteredList(props.datalist)\r\n }, [props.datalist]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(props.currentPage);\r\n setToolTips({});\r\n }, [props.currentPage]);\r\n\r\n useEffect(() => {\r\n setPageSize(props.pageSize);\r\n }, [props.pageSize]);\r\n\r\n useEffect(() => {\r\n props.setParentSort(sort);\r\n }, [sort]);\r\n\r\n useEffect(() => {\r\n let handler = (event) => {\r\n if (toolTipRef.current && !toolTipRef.current.contains(event.target)) {\r\n setToolTips({});\r\n }\r\n }\r\n document.addEventListener('mousedown', handler);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handler);\r\n }\r\n }, [toolTipRef]);\r\n\r\n\r\n /**============================== File Function ============================= */\r\n\r\n const sortHandle = (fieldValue, fieldName) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = '1';\r\n } else if (fieldValue == \"1\") {\r\n newValue = '2';\r\n } else if (fieldValue == \"2\") {\r\n newValue = '1';\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n }\r\n\r\n const checkOpen = (i) => {\r\n let val = false;\r\n if (tooltips[i]) {\r\n val = true;\r\n }\r\n return val;\r\n }\r\n\r\n\r\n const toggle = (i) => {\r\n setToolTips({ [i]: !tooltips[i] });\r\n }\r\n\r\n const getActionType = (type) => {\r\n let ob = logType.find(x => x.id == type);\r\n\r\n if (ob && ob.value) {\r\n return ob.value;\r\n } else {\r\n return type;\r\n }\r\n }\r\n\r\n const getTransactionType = (type) => {\r\n if (!type) {\r\n return '--'\r\n } else if (type == 'Merchant' || type == 'MerchantPayment') {\r\n return 'Merchant Payment';\r\n } else if (type == 'topup' || type == 'TopUp') {\r\n return 'Top Up';\r\n } else if (type == 'MerchantSettlement') {\r\n return 'Merchant Settlement';\r\n } else if (type == 'WalletPayment') {\r\n return 'Wallet Payment';\r\n } else if (type == 'BalanceTransfer') {\r\n return 'Balance Transfer';\r\n } else if (type == 'CashTopUp') {\r\n return 'Cash Top Up';\r\n } else if (type == 'BankPayment') {\r\n return 'Bank Payment'\r\n } else if (type == 'BankCommission') {\r\n return 'Bank Commission';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n const closepopOver = () => {\r\n setToolTips({});\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 && filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n )}\r\n \r\n {props.loading &&\r\n \r\n }\r\n {!props.loading && !filteredList.length &&\r\n \r\n }\r\n
sortHandle(sort.sortAction, 'sortAction')}>\r\n Action\r\n \r\n sortHandle(sort.sortActionBy, 'sortActionBy')}>\r\n Action Performed By\r\n \r\n sortHandle(sort.sortUserType, 'sortUserType')}>\r\n Login User Type\r\n \r\n sortHandle(sort.sortDate, 'sortDate')}>\r\n Action Performed At\r\n \r\n sortHandle(sort.sortStatus, 'sortStatus')}>\r\n Status\r\n \r\n sortHandle(sort.sortTransactionStatus, 'sortTransactionStatus')}>\r\n Transaction Status\r\n \r\n sortHandle(sort.sortTransactionType, 'sortTransactionType')}>\r\n Transaction Type\r\n \r\n sortHandle(sort.sortTransactionRefId, 'sortTransactionRefId')}>\r\n Transaction Ref Id\r\n \r\n \r\n Description\r\n
\r\n {getActionType(mmo.actionType)}\r\n {mmo.performBy}{mmo.performByRole ? mmo.performByRole : '--'}{moment(mmo.createdAt).format('lll')}{mmo.status}{mmo.transactionStatus}{getTransactionType(mmo.transactionType)}{mmo.transactionRefId ? mmo.transactionRefId : '--'}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n toggle(Number(currentPage * pageSize + i))}\r\n >\r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n {mmo.description}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default TransactionLogTable;","import Header from \"components/Headers/Header\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport {\r\n Container, Row, Card,\r\n CardHeader, CardFooter, Col,\r\n Form, FormGroup, Input\r\n} from \"reactstrap\";\r\nimport UserLogs from \"./user-logs\";\r\nimport UserLogTable from \"./user-logs.table\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport TransactionLogs from \"./transaction-logs\";\r\nimport TransactionLogTable from \"./transaction-log-table\";\r\n\r\nconst ACTION_TYPE = [\r\n { key: 1, value: 'User Logs' },\r\n // { key: 2, value: 'Transaction Logs' }\r\n];\r\n\r\nconst Logs = () => {\r\n\r\n const [actionType, setActionType] = useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n const [result, setResult] = React.useState([]);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [pageSize, setPageSize] = React.useState(10);\r\n const [pagesCount, setPageCount] = React.useState(0);\r\n const [response, setResponse] = React.useState(false);\r\n const [sort, setSort] = React.useState({});\r\n const [totalRec, setTotalRec] = React.useState(0);\r\n const [collectionR, setCollectionR] = React.useState([]);\r\n\r\n\r\n const { addToast } = useToasts();\r\n\r\n\r\n /**======================== React Hooks ======================== */\r\n\r\n\r\n\r\n\r\n\r\n /**======================== File Function ======================== */\r\n\r\n const changeActionType = (val) => {\r\n setActionType(val);\r\n setLoading(false);\r\n setResponse(false);\r\n setResult([]);\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const detailHandleCB = (resp) => {\r\n setResponse(true);\r\n setResult(resp.list);\r\n let pc = Math.ceil(resp.totalRecords / pageSize);\r\n setTotalRec(resp.totalRecords);\r\n // setCurrentPage(0);\r\n setCollectionR(resp.list);\r\n setPageCount(pc);\r\n }\r\n\r\n const reportLoading = (loaderValue) => {\r\n setLoading(loaderValue);\r\n }\r\n\r\n const changePageNo = (num) => {\r\n setCurrentPage(num);\r\n }\r\n\r\n const detailSummarySort = (s) => {\r\n setSort(s);\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n }\r\n\r\n\r\n /**======================== Validation ======================== */\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**======================== Api Calls ======================== */\r\n\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
{ e.preventDefault(); }}>\r\n \r\n \r\n \r\n \r\n Logs Type\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n changeActionType(e.target.value)}\r\n >\r\n \r\n {ACTION_TYPE.map(c =>\r\n \r\n )}\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n {actionType === \"1\" &&\r\n \r\n\r\n }\r\n\r\n {actionType === \"2\" &&\r\n \r\n }\r\n \r\n\r\n
\r\n\r\n {\r\n response && actionType === \"1\" &&\r\n \r\n }\r\n\r\n {\r\n response && actionType === \"2\" &&\r\n \r\n }\r\n\r\n \r\n {result.length > 0 && \r\n \r\n
\r\n \r\n \r\n Total Records : {totalRec}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n}\r\n\r\nexport default Logs;","\r\nimport React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\n\r\nconst h1Style = {\r\n textAlign: 'center',\r\n color: 'black'\r\n};\r\nconst h4Style = {\r\n color: 'white'\r\n};\r\n\r\n\r\n\r\nconst privacyPolicy = () => {\r\n\r\n return (\r\n
\r\n

\r\n\r\n Your privacy is very important to us. This privacy policy discloses how Smart Systems Sierra Leone Limited and its applications (“SmartPay”, “SmartBill”, “SmartShop”, or “SmartPower”) will collect, use and share personal information about you. Smart Systems recognizes the need for appropriate protections and management of the personal information you provide us.\r\n This Privacy Policy is designed to both inform you of your rights in respect to the collection and storage of personal information, and to help us ensure that we comply with applicable law in the countries in which we operate.\r\n This Privacy Policy .\r\n

\r\n

Privacy Policy

\r\n\r\n Your privacy is very important to us. This privacy policy discloses how Smart Systems Sierra Leone Limited and its applications (“SmartPay”, “SmartBill”, “SmartShop”, or “SmartPower”) will collect, use and share personal information about you. Smart Systems recognizes the need for appropriate protections and management of the personal information you provide us.\r\n This Privacy Policy is designed to both inform you of your rights in respect to the collection and storage of personal information, and to help us ensure that we comply with applicable law in the countries in which we operate.\r\n

\r\n

Information We Collect

\r\n Personal information is information or an opinion about you or which is reasonably identifiable as you, whether or not the information or opinion is true and whether or not the information is recorded in a material form.When you register for services that we may offer, place an order, meet us face - to - face meeting, correspond with us online, via mobile applications, mail, email or telephone, subscribe to our newsletter, or fill out any forms we provide you with, we may collect, the following personal information(without limitation):\r\n
    \r\n
  • Your name.
  • \r\n
  • Your date of birth.
  • \r\n
  • Your physical and/or postal address.
  • \r\n
  • Your email address.
  • \r\n
  • Your phone number.
  • \r\n
  • A copy of your passport (or other proof of identification).
  • \r\n
  • Credit information, such as details relating to your credit history, credit capacity, and credit eligibility.
  • \r\n
  • Records of our interactions with you.
  • \r\n
  • Your mobile money account number.
  • \r\n
\r\n

\r\n In addition to the above, if you conduct a business or financial transaction with Smart Systems, or through a merchant or biller using a system that is managed by Smart Systems, we will collect payment and transaction data (including the name, amount, frequency, type, location, origin and recipients) from you at the time we process those transactions, as required in order to allow the transaction to be completed.\r\n We may collect personal information about:\r\n

\r\n
    \r\n
  • Contractors and suppliers.
  • \r\n
  • Third parties seeking or using our services.
  • \r\n
  • Other people who come into contact with us in the ordinary course of business\r\n Applicants applying for a job or position with us: we may collect certain information from you (including your name, contact details, working history and relevant records checks) from any recruitment consultant, your previous employers and others who may be able to provide information to us to assist in our decision whether or not to make you an offer of employment or engage you under a contract. This Privacy Policy does not apply to acts and practices in relation to employee records of our current and former employees, which are exempt from privacy laws.\r\n In some cases, we collect personal information from third parties including public sources, our related companies and our service providers.
  • \r\n
\r\n\r\n

Using Your Personal Information

\r\n

Any of the personal information we collect from you may be used in one of the following ways:

\r\n
    \r\n
  • To undertake customer due diligence to ensure we comply with our obligations within the laws of Sierra Leone to prevent and (if necessary) report financial crimes.
  • \r\n
  • To personalize your experience of our Website and services (your personal information helps us to better respond to your individual needs)..
  • \r\n
  • To improve customer service (your information helps us to more effectively respond to your customer service requests and support your needs)..
  • \r\n
  • To process transactions, or deliver purchased products or services requested.
  • \r\n
  • To administer the product(s) or service(s) we provide you (including by answering any question, requests or complaints you may have).
  • \r\n
  • To track traffic through our Website.
  • \r\n
  • To consider your employment or contractual engagement application.
  • \r\n
  • Where you have specifically consented to us doing so, to:\r\n

     Communicate with you in relation to products and services we offer which we feel may be of interest to you; and/or.

    \r\n

     Communicate with you on behalf of our business partners.

  • \r\n • Such other purposes that we will notify you of at the time we collect your personal information.\r\n • The personal information you submit is gathered only on a voluntary basis; you may choose to not provide the personal information, although this may mean that you are unable to access certain services.\r\n
\r\n

Sharing Your Information

\r\n

\r\n We do not sell personal information to third parties. Except as set out below, your personal information will not be exchanged, transferred, or given to third parties for any reason without your consent.\r\n We may share your personal information with third parties in the following circumstances:\r\n

\r\n
    \r\n
  • To the extent necessary to deliver purchased products or services requested.
  • \r\n
  • To enterprise resource planning (ERP) service providers, as necessary for the storage of your information on the cloud. Currently, Smart Systems stores data (including personal information) using various solutions.
  • \r\n
  • Registering a Security Interest against Smart Systems owned equipment.
  • \r\n
  • Where we believe in good faith that we are required to do so by law.
  • \r\n
  • We may provide non-personally identifiable information to other parties for marketing, advertising, or other uses.
  • \r\n
  • To track traffic through our Website.
  • \r\n
\r\n\r\n

Protecting Your Information

\r\n

\r\n We implement a variety of security measures to safeguard against loss, access, use, modification or disclosure of your personal information when you enter, submit, or access your personal information.\r\n We will retain your personal information only for as long as necessary to fulfil the purpose(s) for which it was collected and to comply with applicable laws. Your consent to such purpose(s) remains valid after termination of our relationship with you.\r\n We will take all reasonable steps to ensure that your personal information is accurate, up to date, complete, relevant and not misleading.\r\n Storing & Transferring Your Personal Information\r\n

\r\n

\r\n Smart Systems’ business is operated in and from Sierra Leone. Accordingly, information is, in the first instance, processed in Sierra Leone.\r\n We may store your information in the cloud or on other types of electronic storage systems. All electronic storage system premises are located in Sierra Leone. Smart Systems ensures any cloud provider used is certified for security of the cloud in compliance with all the laws and regulations. Note that cloud agents are not to disclose information that Smart Systems stores on their services except as legally required.\r\n We take reasonable steps to ensure that all personal information that we collect is kept secure in accordance with industry standard physical, electronic and managerial procedures. All of our staff are trained to comply with this Privacy Policy. In respect of personal information collected online or stored electronically (including in the cloud) in particular, you acknowledge that no security system is impenetrable and that the security of such networks and systems can never be guaranteed. We also cannot guarantee that the information you supply will not be intercepted while being transmitted over the internet. Accordingly, any personal information which is transmitted to us is transmitted at your own risk.\r\n

\r\n

\r\n PCI DSS\r\n The Payment Card Industry Data Security Standard (“PCI DSS”) includes a number of security requirements relating to cardholder data. Smart Systems will collect full card number/data information for our card services, therefore Smart Systems does is to be PCi DSS compliant always.\r\n

\r\n\r\n

Cookies

\r\n

\r\n Cookies are small files that a site or its service provider transfers to your computer hard drive through your Web browser (if you allow) that enables the sites or service provider’s systems to recognize your browser and capture and remember certain information. We use cookies to:\r\n

\r\n
    \r\n
  • Track traffic patterns to our Website.
  • \r\n
  • Ensure that the most relevant content is being shown to you.
  • \r\n
  • Ensure that the most relevant content is being shown to you.
  • \r\n
  • Ensure that the most relevant content is being shown to you.
  • \r\n\r\n
\r\n

\r\n If you would rather that we did not use cookies with you, you can refuse them by turning them off in your browser and/or deleting them from your hard drive. You will still be able to visit our Website.\r\n

\r\n\r\n

Terms & Conditions\r\n

\r\n

\r\n Please also visit our Terms and Conditions section establishing the use, disclaimers, and limitations of liability governing the use of our website at:\r\n

\r\n
    \r\n
  • \r\n http://www.smartsystems.sl/terms-and-conditions/\r\n
  • \r\n
\r\n

\r\n This Website may contain links to third party websites for your convenience and information. Smart Systems does not control these sites or their privacy practices. We do not endorse or make any representations about third party websites, and any personal information you choose to give these sites will not be covered by this privacy policy. We encourage you to review the privacy policy of any company or website before submitting your personal information.\r\n

\r\n\r\n

Your Rights to Access Information

\r\n

We will take reasonable steps to ensure that any personal information we collect is accurate, up-to-date, complete, relevant and not misleading, and any personal information that we use or disclose is up-to-date, complete, accurate and relevant.\r\n You may contact us to access, or request correction or deletion of your personal information. However, if you have any questions regarding this Privacy Policy you may contact us on one of the following:

\r\n
    \r\n
  • Phone: 8080 (within Sierra Leone).
  • \r\n
  • Mail: 8 Regent Road, Hill Station, Freetown, Sierra Leone. Attention: Privacy Officer.
  • \r\n
  • Email: support@smartsystems.sl\r\n
  • \r\n\r\n
\r\n

Privacy Complaints

\r\n

If you believe that we have breached this Privacy Policy, you may direct your complaint to us at support@smartsystems.sl or at 8 Regent Road, Hill Station, Freetown, Sierra Leone. Attention: Privacy Officer, please include your name, email and/or telephone number. We will review your complaint and liaise with you directly to resolve your complaint within a reasonable time.

\r\n\r\n

Privacy Breaches & Escalations

\r\n

\r\n Smart Pay takes Privacy seriously and any Privacy breaches will be escalated internally to the Smart Systems Executive Team and the Board.

\r\n

\r\n Smart Pay will follow the guidelines of the Privacy Commission in relation to the handling of any privacy breaches.\r\n

\r\n
\r\n );\r\n};\r\n\r\n\r\n\r\n\r\nexport default privacyPolicy;","import React, { useEffect, useState } from \"react\";\r\n\r\nimport {\r\n Button,\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n Col,\r\n Container,\r\n Form,\r\n FormGroup,\r\n Input,\r\n Row,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { useParams } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport axios from \"axios\";\r\nimport { API_ENDPOINTS } from \"appConfig\";\r\nimport UserGif from \"../../assets/img/brand/verified.png\";\r\nimport OTPInput from \"react-otp-input\";\r\n\r\nconst initialValue = {\r\n userId: \"\",\r\n otp: \"\",\r\n otpType: \"ChangePIN\",\r\n password: \"\",\r\n pin: \"\",\r\n paymentAmount: 0,\r\n confirmPin: \"\",\r\n};\r\n\r\nconst WhiteListCustomer = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const { id } = useParams();\r\n\r\n useEffect(() => {\r\n if (id) {\r\n setValues({ ...values, userId: id });\r\n }\r\n }, []);\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.otp?.trim()) {\r\n errors.otp = \"OTP is required\";\r\n }\r\n if (!inputs.pin?.trim()) {\r\n errors.pin = \"Pin is required\";\r\n }\r\n if (inputs.pin?.trim().length < 3) {\r\n errors.pin = \"PIN must be 4 digits or longer.\";\r\n }\r\n if (!inputs.confirmPin?.trim()) {\r\n errors.confirmPin = \"Confirm Pin is required\";\r\n }\r\n if (inputs.confirmPin?.trim() !== inputs?.pin?.trim()) {\r\n errors.confirmPin = \"Pin and Confirm Pin Mismatch\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n setLoading(true);\r\n const { confirmPin, ...rest } = values;\r\n axios\r\n .post(\r\n `${API_ENDPOINTS}/api/Auth/VerifyCustomerOTP`,\r\n { ...rest },\r\n {\r\n headers: {\r\n PIN1: values.pin,\r\n PIN2: values.confirmPin,\r\n },\r\n }\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data.responseCode === \"200\") {\r\n setIsSuccess(true);\r\n } else {\r\n const errorMsg = \"You have entered the wrong OTP. Please try again.\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setIsSuccess(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Customer verification\r\n \r\n \r\n {isSuccess ? (\r\n <>\r\n
\r\n \"verify\"\r\n

\r\n Verified!\r\n

\r\n

\r\n You are whitelisted on the SmartPay system. You can pay\r\n at any SmartPay POS machine. Happy paying!\r\n

\r\n window.location.replace(\"/\")}\r\n >\r\n Ok\r\n \r\n
\r\n \r\n ) : (\r\n
\r\n {values.userId && (\r\n
\r\n <>\r\n \r\n \r\n \r\n \r\n OTP *\r\n \r\n \r\n {errors.otp && (\r\n
\r\n * {errors.otp}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n PIN *\r\n \r\n {/* \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )} */}\r\n \r\n setValues({ ...values, pin: e })\r\n }\r\n inputStyle={{\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius:\"12px\",\r\n border: \"1px solid #ddd\",\r\n marginRight:\"8px\"\r\n }}\r\n inputType=\"password\"\r\n numInputs={4}\r\n renderSeparator={{\" \"}}\r\n renderInput={(props) => }\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n Confirm PIN *\r\n \r\n {/* */}\r\n \r\n setValues({ ...values, confirmPin: e })\r\n }\r\n inputStyle={{\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius:\"12px\",\r\n border: \"1px solid #ddd\",\r\n marginRight:\"8px\"\r\n }}\r\n numInputs={4}\r\n inputType=\"password\"\r\n renderSeparator={{\" \"}}\r\n renderInput={(props) => }\r\n />\r\n {errors.confirmPin && (\r\n
\r\n * {errors.confirmPin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default WhiteListCustomer;\r\n","export default \"data:image/png;base64,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\"","import React, { useEffect, useState } from \"react\";\r\n\r\nimport {\r\n Alert,\r\n Button,\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n Col,\r\n Container,\r\n Form,\r\n FormGroup,\r\n Input,\r\n Row,\r\n} from \"reactstrap\";\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { useParams } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport axios from \"axios\";\r\nimport { API_ENDPOINTS } from \"appConfig\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport ShieldGif from \"../../assets/gif/shield.gif\";\r\n\r\nconst initialValue = {\r\n userId: \"\",\r\n otp: \"\",\r\n otpType: \"ChangePIN\",\r\n password: \"\",\r\n pin: \"\",\r\n paymentAmount: 0,\r\n confirmPin: \"\",\r\n type: \"\",\r\n phone: \"\",\r\n customerId: null,\r\n accountNo: null,\r\n email: null,\r\n dob: null,\r\n fspid: null,\r\n};\r\n\r\nconst WhiteListCustomer = (props) => {\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [isExpired, setIsExpired] = useState(false);\r\n const [isVerified, setIsVerified] = useState(false);\r\n const [isSentOtp, setIsSentOtp] = useState(false);\r\n const [allVerified, setAllVerified] = useState(false);\r\n const [step, setStep] = useState(0);\r\n const [customer, setCustomer] = useState(null);\r\n const { addToast } = useToasts();\r\n const { id } = useParams();\r\n const [values, setValues] = useState({\r\n ...initialValue,\r\n fspid: id?.split(\"-\")[1] ?? null,\r\n });\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (id) {\r\n setLoading(true);\r\n axios\r\n .get(`${API_ENDPOINTS}/api/FSP/Profile/Customer/ValidateUrl/${id}`)\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n // fetchAllFsps();\r\n setStep(1);\r\n setIsVerified(true);\r\n } else {\r\n setIsVerified(false);\r\n setIsExpired(true);\r\n }\r\n })\r\n .catch(() => setIsExpired(true))\r\n .finally(() => setLoading(false));\r\n }\r\n }, []);\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.otp?.trim()) {\r\n errors.otp = \"OTP is required\";\r\n }\r\n if (!inputs.pin?.trim()) {\r\n errors.pin = \"Pin is required\";\r\n }\r\n if (!inputs.confirmPin?.trim()) {\r\n errors.confirmPin = \"Confirm Pin is required\";\r\n }\r\n if (inputs.confirmPin?.trim() !== inputs?.pin?.trim()) {\r\n errors.confirmPin = \"Pin and Confirm Pin Mismatch\";\r\n }\r\n return errors;\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n mobileCodeId: data.dialCode,\r\n phone: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const validateCustomer = (inputs) => {\r\n let errors = {};\r\n // if (!inputs.fspid) {\r\n // errors.fspid = \"Fsp is required\";\r\n // }\r\n if (!inputs.phone) {\r\n errors.phone = \"Phone is required\";\r\n }\r\n // if (!inputs.email) {\r\n // errors.email = \"Email is required\";\r\n // }\r\n return errors;\r\n };\r\n\r\n const verifyCustomerData = (e) => {\r\n setLoading(true);\r\n\r\n e.preventDefault();\r\n const validationErrors = validateCustomer(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n const { customerId, fspid, accountNo, phone, email } = values;\r\n axios\r\n .post(`${API_ENDPOINTS}/api/FSP/Profile/Customer/FetchDetails`, {\r\n customerId,\r\n fspid,\r\n accountNo,\r\n phone,\r\n email,\r\n })\r\n .then((res) => {\r\n if (res.data.responseCode === \"200\") {\r\n setIsSuccess(true);\r\n // setStep(2);\r\n if (\r\n res.data.result.dateOfBirth !== null ||\r\n res.data.result.dateOfBirth !== \"null\"\r\n ) {\r\n const actualDOB = new Date(\r\n res.data.result.dateOfBirth\r\n ).toLocaleDateString();\r\n const enteredDOB = new Date(values.dob).toLocaleDateString();\r\n if (actualDOB !== enteredDOB) {\r\n notifyFailed(\"Incorrect Date of Birth entered!\");\r\n return;\r\n } else {\r\n setCustomer(res.data.result);\r\n setIsSuccess(true);\r\n setStep(2);\r\n }\r\n } else {\r\n setCustomer(res.data.result);\r\n setIsSuccess(true);\r\n setStep(2);\r\n }\r\n } else {\r\n const errorMsg = \"Incorrect account details\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n const maskText = (text) => {\r\n if (!text) {\r\n return null;\r\n }\r\n text = String(text);\r\n const textLength = text.length;\r\n const firstThree = text.slice(0, 3);\r\n const remaining = text.slice(3, textLength);\r\n\r\n return (\r\n firstThree + remaining.replace(remaining, \"*\".repeat(remaining.length))\r\n );\r\n };\r\n\r\n const submitPin = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (!isNoError) {\r\n return;\r\n }\r\n setLoading(true);\r\n\r\n const payload = {\r\n userId: values?.customerId ?? customer?.custId,\r\n otp: values.otp,\r\n otpType: \"ChangePIN\",\r\n password: values.password,\r\n pin: values.pin,\r\n paymentAmount: 0,\r\n confirmPin: values.confirmPin,\r\n };\r\n axios\r\n .post(\r\n `${API_ENDPOINTS}/api/Auth/VerifyCustomerOTP`,\r\n { ...payload },\r\n {\r\n headers: {\r\n PIN1: values.pin,\r\n PIN2: values.confirmPin,\r\n },\r\n }\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data.responseCode === \"200\") {\r\n setAllVerified(true);\r\n setStep(4);\r\n } else {\r\n const errorMsg = \"Please check OTP\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setAllVerified(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n const generateOTP = () => {\r\n const payload = {\r\n email: values.email,\r\n phone: values.phone,\r\n accountNo:\r\n values?.fspid === \"1\" ? values.accountNo ?? customer?.accountNo : null,\r\n customerId:\r\n values?.fspid === \"1\" ? values?.customerId ?? customer?.custId : null,\r\n fspid: values?.fspid ?? \"1\",\r\n };\r\n setLoading(true);\r\n axios\r\n .post(`${API_ENDPOINTS}/api/FSP/Profile/Customer/Whitelist`, {\r\n ...payload,\r\n })\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"OTP Sent Successfully!\");\r\n setIsSentOtp(true);\r\n setStep(3);\r\n return;\r\n } else {\r\n const errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Customer verification\r\n \r\n \r\n {loading && step === 0 && (\r\n

Loading...

\r\n )}\r\n {step === 0 && isExpired && (\r\n

Link expired!

\r\n )}\r\n {step === 1 && isVerified && (\r\n
\r\n
\r\n
\r\n <>\r\n \r\n \r\n \r\n \r\n Mobile No *\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n {/* \r\n \r\n \r\n Customer Id\r\n \r\n \r\n {errors.customerId && (\r\n
\r\n * {errors.customerId}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Account No\r\n \r\n \r\n {errors.accountNo && (\r\n
\r\n * {errors.accountNo}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Date Of Birth\r\n \r\n \r\n {errors.dob && (\r\n
\r\n * {errors.dob}\r\n
\r\n )}\r\n
\r\n */}\r\n \r\n \r\n If you're are a wallet holder to any platform\r\n just input your wallet number or phone number\r\n associated with the system.\r\n \r\n \r\n
\r\n \r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n {step === 2 && isSuccess && (\r\n <>\r\n {\" \"}\r\n
\r\n \r\n Account Details\r\n

\r\n
\r\n \r\n Account Name\r\n

\r\n

\r\n {maskText(customer.accountName) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Branch Name\r\n

\r\n

\r\n {maskText(customer.branchName) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Account No\r\n

\r\n

\r\n {maskText(customer.accountNo) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Email\r\n

\r\n

\r\n {maskText(customer?.custEmail) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Available Balance\r\n

\r\n

\r\n {maskText(customer?.avlBal) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Customer Id\r\n

\r\n

\r\n {maskText(customer?.custId) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Customer Name\r\n

\r\n

\r\n {maskText(customer?.customerName) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Customer Phone\r\n

\r\n

\r\n {maskText(customer?.custPhone) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n Gender\r\n

\r\n

\r\n {customer?.gender ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n DOB\r\n

\r\n

\r\n {maskText(\r\n new Date(customer?.dateOfBirth).toLocaleDateString()\r\n ) ?? \"-\"}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n )}\r\n {step === 3 && isSentOtp && (\r\n
\r\n \"verify\"\r\n

\r\n Verification has started, and you have received the OTP to\r\n complete the verification on your bank-registered email\r\n and phone.\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default WhiteListCustomer;\r\n// {\r\n// \"fspid\": \"1\",\r\n// \"phone\": \"322314242142\",\r\n// \"customerId\": null,\r\n// \"accountNo\": null,\r\n// \"email\": \"figihem893@lewenbo.com\",\r\n// \"LoggedInUserId\": \"490598b8-0341-4d02-a74f-d047b74d724f\"\r\n// }\r\n","export default __webpack_public_path__ + \"static/media/checkmark-1.0f718bcb.png\";","export default __webpack_public_path__ + \"static/media/cancel-1.391b4f49.png\";","import React from \"react\";\r\nimport { Button, Col, Row } from \"reactstrap\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport SuccessImg from \"assets/img/brand/checkmark-1.png\";\r\nimport CancelImg from \"assets/img/brand/cancel-1.png\";\r\n\r\nconst textP = {\r\n fontSize: \"14px\",\r\n fontWeight: 500,\r\n};\r\n\r\nconst PaymentInfo = () => {\r\n const location = useLocation();\r\n const params = new URLSearchParams(location.search);\r\n const search = Object.fromEntries(params.entries());\r\n const history = useHistory();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

\r\n {search.status === \"success\"\r\n ? \"Smart Pay wallet Top up is successful\"\r\n : \"Smart Pay Wallet Top up failed\"}\r\n

\r\n

Wallet Number: {search.wallet}

\r\n

Reference Number: {search.reference}

\r\n
\r\n
\r\n \r\n\r\n
\r\n history.push(\"/top-up\")}\r\n className=\"bg-blue\"\r\n style={{ color: \"white\" }}\r\n >\r\n Exit Page\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PaymentInfo;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Card,\r\n Row,\r\n Col,\r\n Container,\r\n CardBody,\r\n CardHeader,\r\n FormGroup,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n} from \"reactstrap\";\r\nimport classnames from \"classnames\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, getMethod } from \"services/httpServices\";\r\n\r\nimport Header from \"components/Headers/Header.js\";\r\nimport PreviewSubscriber from \"../preview-subscriber\";\r\nimport {\r\n AUTH_MODE,\r\n AMOUNT_HINT,\r\n PIN_HINT,\r\n PASSWORD_HINT,\r\n MOBILE_ONLY_COUNTRY,\r\n} from \"appConfig\";\r\nimport { checkBankAccNo, checkName, checkBbanValidation } from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\n\r\nconst MODES = AUTH_MODE;\r\n\r\nconst initialValue = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n mobWithoutCC: \"\",\r\n email: \"\",\r\n mobileMoney: \"\",\r\n mobileMoneyAccNo: \"\",\r\n bank: \"22\",\r\n bban: \"\",\r\n bankLinkedMobileCode: 0,\r\n bankLinkedPhone: 0,\r\n bankMobWithoutCC: 0,\r\n password: \"\",\r\n oneFAAmt: \"50000\",\r\n authMode: \"1FA\",\r\n pin: \"\",\r\n registerType: \"super_agent\", //to check submit user type in preview subscriber modal\r\n subscriberType: \"Individual\",\r\n organisationName: \"\",\r\n bankAccNo: \"\",\r\n};\r\n\r\nconst navItemCls = {\r\n minWidth: \"120px\",\r\n textAlign: \"center\",\r\n};\r\n\r\nconst cardHeaderCls = {\r\n backgroundColor: \"#6490CA\",\r\n};\r\n\r\nconst HINT = AMOUNT_HINT;\r\n\r\nconst AddSuperAgent = (props) => {\r\n const [activeTab, setActiveTab] = useState(\"1\");\r\n const [values, setValues] = React.useState(initialValue);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [open, setOpen] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [, setDisableTab2] = React.useState(true);\r\n const [disableTab3, setDisableTab3] = React.useState(true);\r\n const [banks, setBanks] = React.useState(null);\r\n const [mobileMoney, setMMO] = React.useState(null);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchBank();\r\n fetchMMO();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const toggle = (tab) => {\r\n if (activeTab !== tab) setActiveTab(tab);\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n\r\n if (checkSpace(value)) {\r\n if (name === \"phone\" || name === \"bankLinkedPhone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"firstName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"lastName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"organisationName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"mobileMoneyAccNo\") {\r\n if (checkMobileMoneyAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n // } else if (name === 'password') {\r\n // if (pswdValidation(value)) {\r\n // setValues({ ...values, [name]: value });\r\n // }\r\n } else if (name === \"pin\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"oneFAAmt\") {\r\n if (checkDigitOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n phone: value,\r\n mobileCode: data.dialCode,\r\n mobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n setValues({ ...initialValue });\r\n setActiveTab(\"1\");\r\n setDisableTab2(true);\r\n setDisableTab3(true);\r\n };\r\n\r\n const reviewModal = () => {\r\n setOpen(false);\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n if (value.length <= 11) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkProfileTab = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.subscriberType) {\r\n error.subscriberType = \"Please select subscriber type\";\r\n valid = false;\r\n }\r\n\r\n if (!values.firstName) {\r\n error.firstName = \"First Name is Required\";\r\n valid = false;\r\n }\r\n if (!values.lastName) {\r\n error.lastName = \"Last Name is Required\";\r\n valid = false;\r\n }\r\n if (!values.mobileCode) {\r\n error.mobileCode = \"Mobile Code is Required\";\r\n valid = false;\r\n }\r\n if (!values.phone) {\r\n error.phone = \"Phone Number is Required\";\r\n valid = false;\r\n } else if (!values.mobWithoutCC) {\r\n error.phone = \"Phone Number is Required\";\r\n valid = false;\r\n }\r\n if (!values.password) {\r\n error.password = \"Password is Required\";\r\n valid = false;\r\n } else if (values.password.length < 6) {\r\n error.password = \"Password should have atleast 6 characters\";\r\n valid = false;\r\n }\r\n\r\n if (!values.pin) {\r\n error.pin = \"PIN is Required\";\r\n valid = false;\r\n } else if (values.pin.length !== 4) {\r\n error.pin = \"PIN should have 4 characters\";\r\n valid = false;\r\n }\r\n if (values.email) {\r\n if (!checkEmail(values.email)) {\r\n error.email = \"Please enter valid email\";\r\n valid = false;\r\n }\r\n }\r\n setErrors(error);\r\n return valid;\r\n };\r\n\r\n const checkEmail = (email) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n if (emailRegEx.test(email)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const validateProfile = () => {\r\n if (checkProfileTab()) {\r\n toggle(\"3\");\r\n setDisableTab2(false);\r\n setValues({\r\n ...values,\r\n bankAccNo: values.phone,\r\n bankLinkedPhone: 0,\r\n });\r\n } else {\r\n setDisableTab2(true);\r\n setDisableTab3(true);\r\n }\r\n };\r\n\r\n const checkBank = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.bank) {\r\n error.bank = \"Bank is Required\";\r\n valid = false;\r\n }\r\n\r\n if (!values.authMode) {\r\n error.authMode = \"Please select authentication mode\";\r\n valid = false;\r\n }\r\n\r\n if (values.authMode === \"1FA\" && values.oneFAAmt === \"\") {\r\n error.oneFAAmt = \"Please enter amount\";\r\n valid = false;\r\n }\r\n\r\n if (!values.bankAccNo) {\r\n error.bankAccNo = \"Please enter bank account number\";\r\n valid = false;\r\n } else if (values.bankAccNo.length < 8 || values.bankAccNo.length > 18) {\r\n error.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n valid = false;\r\n }\r\n setErrors(error);\r\n return valid;\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validateBank = () => {\r\n if (checkBank()) {\r\n setOpen(true);\r\n }\r\n };\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setBanks(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchMMO = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/MobileMoney/ddllist\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setMMO(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Profile Info\r\n

\r\n \r\n
\r\n
\r\n \r\n
\r\n {values.subscriberType && (\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n \r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n *{\" \"}\r\n \r\n {PIN_HINT}\r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n *{\" \"}\r\n \r\n {PASSWORD_HINT}\r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Save and Next\r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Bank Info\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n {banks &&\r\n banks.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bank && (\r\n
\r\n * {errors.bank}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.authMode && (\r\n
\r\n * {errors.authMode}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.authMode === \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n Save and Review\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddSuperAgent;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod } from \"services/httpServices\";\r\nimport { AUTH_MODE, AMOUNT_HINT, MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { checkBankAccNo } from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkBbanValidation } from \"services/util\";\r\n\r\nconst MODES = AUTH_MODE;\r\nconst HINT = AMOUNT_HINT;\r\nconst initialValue = {};\r\n\r\nconst EditSuperAgent = (props) => {\r\n initialValue.firstName = props.firstName;\r\n initialValue.lastName = props.lastName;\r\n initialValue.mobileNumber = props.mobileNumber;\r\n initialValue.mobileCode = props.mobileCode;\r\n initialValue.mmoId = props.mmoId;\r\n initialValue.bankProfileId = props.bankProfileId;\r\n initialValue.mobileMoneyAccNo = props.mobileMoneyAccNo;\r\n initialValue.bban = props.bban === \"null\" ? \"\" : props.bban;\r\n initialValue.bbanLinkMobileCode = props.bbanLinkMobileCode;\r\n initialValue.bbanLinkMobileNumber =\r\n props?.bbanLinkMobileNumber === null\r\n ? props.mobileNumber\r\n : props?.bbanLinkMobileNumber;\r\n initialValue.id = props.id;\r\n initialValue.bankList = props.bankList;\r\n initialValue.mobileMoneyList = props.mobileMoneyList;\r\n initialValue.email = props.email;\r\n initialValue.mmoAccountNumber = props.mmoAccountNumber;\r\n initialValue.authMode = props.authFactorType ? props.authFactorType : \"\";\r\n initialValue.oneFAAmt = props.excidedPaymentAmount\r\n ? props.excidedPaymentAmount\r\n : 0;\r\n initialValue.subscriberType = props.subscriberType\r\n ? props.subscriberType\r\n : \"\";\r\n initialValue.organizationName = props.organizationName\r\n ? props.organizationName\r\n : \"\";\r\n initialValue.bankAccNo = props.bankAccountNumber\r\n ? props.bankAccountNumber\r\n : \"\";\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const mobWithCC = values.mobileCode + values.mobileNumber;\r\n const bankMobWithCC =\r\n values.bbanLinkMobileCode + values?.bbanLinkMobileNumber;\r\n const { addToast } = useToasts();\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"mmoAccountNumber\") {\r\n if (checkMobileMoneyAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bbanLinkMobileNumber\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"oneFAAmt\") {\r\n if (checkDigitOnly(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n bankMobWithCC: value,\r\n bbanLinkMobileCode: data.dialCode,\r\n bbanLinkMobileNumber: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 11) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n let errors = {};\r\n if (inputs.mobileNumber) {\r\n inputs.mobileNumber = inputs.mobileNumber.toString();\r\n }\r\n if (inputs.bban) {\r\n inputs.bban = inputs.bban.toString();\r\n }\r\n if (inputs.bbanLinkMobileNumber) {\r\n inputs.bbanLinkMobileNumber = inputs.bbanLinkMobileNumber.toString();\r\n }\r\n if (inputs.subscriberType === \"Individual\") {\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is required\";\r\n }\r\n } else if (inputs.subscriberType === \"Organisation\") {\r\n if (!inputs.organizationName) {\r\n errors.organizationName = \"Organisation Name is Required\";\r\n }\r\n }\r\n\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.mobileNumber) {\r\n errors.mobileNumber = \"Phone Number is Required\";\r\n }\r\n if (inputs.email && !emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (inputs.mmoId) {\r\n if (!inputs.mmoAccountNumber) {\r\n errors.mmoAccountNumber = \"Mobile Money account number is required\";\r\n }\r\n }\r\n\r\n if (!inputs.bankProfileId) {\r\n errors.bankProfileId = \"Bank is required\";\r\n }\r\n\r\n if (\r\n inputs?.bban?.length !== 0 &&\r\n (inputs?.bban?.length < 8 || inputs?.bban?.length > 18)\r\n ) {\r\n errors.bban = \"BBAN should have 8 to 18 digits\";\r\n }\r\n\r\n if (!inputs.authMode) {\r\n errors.authMode = \"Please select authentication mode\";\r\n }\r\n if (!inputs.bankAccNo) {\r\n errors.bankAccNo = \"Please enter bank account number\";\r\n } else if (inputs.bankAccNo.length < 8 || inputs.bankAccNo.length > 18) {\r\n errors.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = new FormData();\r\n if (values.subscriberType === \"Individual\") {\r\n data.append(\"FirstName\", values.firstName);\r\n data.append(\"LastName\", values.lastName);\r\n } else if (values.subscriberType === \"Organisation\") {\r\n data.append(\"OrganizationName\", values.organizationName);\r\n }\r\n data.append(\"SubscriberType\", values.subscriberType);\r\n data.append(\"MobileCode\", values.mobileCode);\r\n data.append(\"MobileNumber\", values.mobileNumber);\r\n data.append(\"Email\", values.email ? values.email : \"\");\r\n data.append(\"BBAN\", values.bban);\r\n data.append(\"BBANLinkMobileNumber\", values.bbanLinkMobileNumber);\r\n data.append(\"BBANLinkMobileCode\", values.bbanLinkMobileCode);\r\n data.append(\"AccountCreatedBy\", \"Admin\");\r\n data.append(\"Password\", values.password);\r\n data.append(\"BankProfileId\", values.bankProfileId);\r\n data.append(\"IsVerifiedByAdmin\", true);\r\n data.append(\"Id\", values.id);\r\n if (values.mmoId) {\r\n data.append(\"MMOId\", values.mmoId);\r\n } else {\r\n data.append(\"MMOId\", 0);\r\n }\r\n if (values.mmoAccountNumber) {\r\n data.append(\"MMOAccountNumber\", values.mmoAccountNumber);\r\n } else {\r\n data.append(\"MMOAccountNumber\", \"\");\r\n }\r\n data.append(\"AuthFactorType\", values.authMode);\r\n data.append(\r\n \"ExcidedPaymentAmount\",\r\n values.authMode === \"1FA\" ? values.oneFAAmt : 0\r\n );\r\n data.append(\"BankAccountNumber\", values.bankAccNo);\r\n if (values.bankProfileId > 0) {\r\n data.append(\"isBankInfoAvailable\", true);\r\n }\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/Agent/updateSuperAgent\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Updated Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Super Agent Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Profile Details\r\n
\r\n
\r\n \r\n {values.subscriberType === \"Individual\" && (\r\n <>\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.authMode && (\r\n
\r\n * {errors.authMode}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.authMode === \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {/*
*/}\r\n {/* Address */}\r\n {/*
\r\n Mobile Money Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Mobile Money (optional)\r\n \r\n \r\n \r\n {values.mobileMoneyList &&\r\n values.mobileMoneyList.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.mmoId && (\r\n
\r\n * {errors.mmoId}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n MM Account Number (optional)\r\n \r\n \r\n {errors.mmoAccountNumber && (\r\n
\r\n * {errors.mmoAccountNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
*/}\r\n
\r\n {/* Address */}\r\n
\r\n Bank Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n {values.bankList &&\r\n values.bankList.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bankProfileId && (\r\n
\r\n * {errors.bankProfileId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n BBAN Number (optional)\r\n \r\n \r\n {errors.bban && (\r\n
\r\n * {errors.bban}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n {errors.bbanLinkMobileNumber && (\r\n
\r\n * {errors.bbanLinkMobileNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditSuperAgent;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Card,\r\n Row,\r\n Col,\r\n Container,\r\n CardBody,\r\n CardHeader,\r\n FormGroup,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Label,\r\n} from \"reactstrap\";\r\nimport classnames from \"classnames\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, getMethod } from \"services/httpServices\";\r\n\r\nimport Header from \"components/Headers/Header.js\";\r\nimport PreviewSubscriber from \"../preview-subscriber\";\r\nimport {\r\n AUTH_MODE,\r\n AMOUNT_HINT,\r\n PIN_HINT,\r\n PASSWORD_HINT,\r\n MOBILE_ONLY_COUNTRY,\r\n} from \"appConfig\";\r\nimport { checkBankAccNo, checkName, checkBbanValidation } from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { CASH_TOPUP_HINT } from \"appConfig\";\r\n\r\nconst MODES = AUTH_MODE;\r\n\r\nconst initialValue = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n mobWithoutCC: \"\",\r\n email: \"\",\r\n mobileMoney: \"\",\r\n mobileMoneyAccNo: \"\",\r\n bank: \"22\",\r\n bban: \"\",\r\n bankLinkedMobileCode: 0,\r\n bankLinkedPhone: 0,\r\n bankMobWithoutCC: 0,\r\n password: \"\",\r\n oneFAAmt: \"50000\",\r\n authMode: \"1FA\",\r\n pin: \"\",\r\n subscriberType: \"\",\r\n organisationName: \"\",\r\n bankAccNo: \"\",\r\n registerType: \"sub_agent\",\r\n cashTopupCommId: 0,\r\n cashTopUpCommList: [],\r\n};\r\n\r\nconst navItemCls = {\r\n minWidth: \"120px\",\r\n textAlign: \"center\",\r\n};\r\n\r\nconst cardHeaderCls = {\r\n backgroundColor: \"#6490CA\",\r\n};\r\n\r\nconst HINT = AMOUNT_HINT;\r\n\r\nconst AddSubAgent = (props) => {\r\n const [activeTab, setActiveTab] = useState(\"1\");\r\n const [values, setValues] = React.useState(initialValue);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [open, setOpen] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [, setDisableTab2] = React.useState(true);\r\n const [disableTab3, setDisableTab3] = React.useState(true);\r\n const [banks, setBanks] = React.useState(null);\r\n const [mobileMoney, setMMO] = React.useState(null);\r\n const [cashTopUpComm, setCashTopUpComm] = React.useState([]);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchBank();\r\n fetchMMO();\r\n fetchCashTopUpCommission();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n // if (values.subscriberType === \"Organisation\") {\r\n // setValues({ ...values, firstName: \"\", lastName: \"\" });\r\n // } else if (values.subscriberType === \"Individual\") {\r\n // setValues({ ...values, organisationName: \"\" });\r\n // }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [values.subscriberType]);\r\n\r\n const toggle = (tab) => {\r\n if (activeTab !== tab) setActiveTab(tab);\r\n };\r\n\r\n const fetchCashTopUpCommission = () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/commission/ddllist?CommissionType=CashTopUp\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setCashTopUpComm(res.data.result);\r\n setValues({ ...values, cashTopUpCommList: res.data.result });\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching commission\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n\r\n // value = value.trim();\r\n if (checkSpace(value)) {\r\n if (name === \"phone\" || name === \"bankLinkedPhone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"firstName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"lastName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"organisationName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"mobileMoneyAccNo\") {\r\n if (checkMobileMoneyAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n // } else if (name === 'password') {\r\n // if (pswdValidation(value)) {\r\n // setValues({ ...values, [name]: value });\r\n // }\r\n } else if (name === \"pin\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"oneFAAmt\") {\r\n if (checkDigitOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n phone: value,\r\n mobileCode: data.dialCode,\r\n mobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n setValues({ ...initialValue });\r\n setActiveTab(\"1\");\r\n setDisableTab2(true);\r\n setDisableTab3(true);\r\n };\r\n\r\n const reviewModal = () => {\r\n setOpen(false);\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n if (value.length <= 11) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkProfileTab = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.subscriberType) {\r\n error.subscriberType = \"Please select subscriber type\";\r\n valid = false;\r\n }\r\n if (values.subscriberType === \"Individual\") {\r\n if (!values.firstName) {\r\n error.firstName = \"First Name is Required\";\r\n valid = false;\r\n }\r\n if (!values.lastName) {\r\n error.lastName = \"Last Name is Required\";\r\n valid = false;\r\n }\r\n }\r\n //else if (values.subscriberType === \"Organisation\") {\r\n // if (!values.organisationName) {\r\n // error.organisationName = \"Organsation Name is Required\";\r\n // valid = false;\r\n // }\r\n // }\r\n if (!values.mobileCode) {\r\n error.mobileCode = \"Mobile Code is Required\";\r\n valid = false;\r\n }\r\n if (!values.phone) {\r\n error.phone = \"Phone Number is Required\";\r\n valid = false;\r\n } else if (!values.mobWithoutCC) {\r\n error.phone = \"Phone Number is Required\";\r\n valid = false;\r\n }\r\n if (!values.password) {\r\n error.password = \"Password is Required\";\r\n valid = false;\r\n } else if (values.password.length < 6) {\r\n error.password = \"Password should have atleast 6 characters\";\r\n valid = false;\r\n }\r\n\r\n if (!values.pin) {\r\n error.pin = \"PIN is Required\";\r\n valid = false;\r\n } else if (values.pin.length !== 4) {\r\n error.pin = \"PIN should have 4 characters\";\r\n valid = false;\r\n }\r\n if (values.email) {\r\n if (!checkEmail(values.email)) {\r\n error.email = \"Please enter valid email\";\r\n valid = false;\r\n }\r\n }\r\n setErrors(error);\r\n return valid;\r\n };\r\n\r\n const checkEmail = (email) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n if (emailRegEx.test(email)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const validateProfile = () => {\r\n if (checkProfileTab()) {\r\n toggle(\"3\");\r\n setDisableTab2(false);\r\n setValues({\r\n ...values,\r\n bankAccNo: values.phone,\r\n bankLinkedPhone: 0,\r\n });\r\n } else {\r\n setDisableTab2(true);\r\n setDisableTab3(true);\r\n }\r\n };\r\n\r\n const checkBank = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.bank) {\r\n error.bank = \"Bank is Required\";\r\n valid = false;\r\n }\r\n\r\n if (!values.authMode) {\r\n error.authMode = \"Please select authentication mode\";\r\n valid = false;\r\n }\r\n\r\n if (values.authMode === \"1FA\" && values.oneFAAmt === \"\") {\r\n error.oneFAAmt = \"Please enter amount\";\r\n valid = false;\r\n }\r\n\r\n if (!values.bankAccNo) {\r\n error.bankAccNo = \"Please enter bank account number\";\r\n valid = false;\r\n } else if (values.bankAccNo.length < 8 || values.bankAccNo.length > 18) {\r\n error.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n valid = false;\r\n }\r\n // if (!values.cashTopupCommId) {\r\n // error.cashTopupCommId = \"Please Select cash Topup commission\";\r\n // valid = false;\r\n // }\r\n setErrors(error);\r\n return valid;\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validateBank = () => {\r\n if (checkBank()) {\r\n setOpen(true);\r\n }\r\n };\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setBanks(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchMMO = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/MobileMoney/ddllist\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setMMO(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Profile Info\r\n

\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Sub Agent Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {values.subscriberType && (\r\n
\r\n \r\n {/* {values.subscriberType === \"Individual\" && ( */}\r\n <>\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n {/* )} */}\r\n\r\n {/* {values.subscriberType === \"Organisation\" && (\r\n \r\n \r\n \r\n Organisation Name\r\n \r\n \r\n {errors.organisationName && (\r\n
\r\n \r\n * {errors.organisationName}\r\n \r\n
\r\n )}\r\n
\r\n \r\n )} */}\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n \r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n *{\" \"}\r\n \r\n {PIN_HINT}\r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n *{\" \"}\r\n \r\n {PASSWORD_HINT}\r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Save and Next\r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Bank Info\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n {banks &&\r\n banks.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bank && (\r\n
\r\n * {errors.bank}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.authMode && (\r\n
\r\n * {errors.authMode}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.authMode === \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n Save and Review\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddSubAgent;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod } from \"services/httpServices\";\r\nimport { AUTH_MODE, AMOUNT_HINT, MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { checkBankAccNo } from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkBbanValidation } from \"services/util\";\r\nimport { CASH_TOPUP_HINT } from \"appConfig\";\r\nimport { getUserId } from \"services/httpServices\";\r\n\r\nconst MODES = AUTH_MODE;\r\nconst HINT = AMOUNT_HINT;\r\nconst initialValue = {};\r\n\r\nconst EditSubAgent = (props) => {\r\n initialValue.firstName = props.firstName;\r\n initialValue.lastName = props.lastName;\r\n initialValue.mobileNumber = props.mobileNumber;\r\n initialValue.mobileCode = props.mobileCode;\r\n initialValue.mmoId = props.mmoId;\r\n initialValue.bankProfileId = props.bankProfileId;\r\n initialValue.mobileMoneyAccNo = props.mobileMoneyAccNo;\r\n initialValue.bban = props.bban === \"null\" ? \"\" : props.bban;\r\n initialValue.bbanLinkMobileCode = props.bbanLinkMobileCode;\r\n initialValue.bbanLinkMobileNumber =\r\n props?.bbanLinkMobileNumber === null\r\n ? props.mobileNumber\r\n : props?.bbanLinkMobileNumber;\r\n initialValue.id = props.id;\r\n initialValue.bankList = props.bankList;\r\n initialValue.mobileMoneyList = props.mobileMoneyList;\r\n initialValue.email = props.email;\r\n initialValue.mmoAccountNumber = props.mmoAccountNumber;\r\n initialValue.authMode = props.authFactorType ? props.authFactorType : \"\";\r\n initialValue.oneFAAmt = props.excidedPaymentAmount\r\n ? props.excidedPaymentAmount\r\n : 0;\r\n initialValue.subscriberType = props.subscriberType\r\n ? props.subscriberType\r\n : \"\";\r\n initialValue.organizationName = props.organizationName\r\n ? props.organizationName\r\n : \"\";\r\n initialValue.bankAccNo = props.bankAccountNumber\r\n ? props.bankAccountNumber\r\n : \"\";\r\n initialValue.topUpCommissionId = props.topUpCommissionId\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const mobWithCC = values.mobileCode + values.mobileNumber;\r\n const bankMobWithCC =\r\n values.bbanLinkMobileCode + values?.bbanLinkMobileNumber;\r\n const { addToast } = useToasts();\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"mmoAccountNumber\") {\r\n if (checkMobileMoneyAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bbanLinkMobileNumber\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"oneFAAmt\") {\r\n if (checkDigitOnly(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n bankMobWithCC: value,\r\n bbanLinkMobileCode: data.dialCode,\r\n bbanLinkMobileNumber: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 11) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n let errors = {};\r\n if (inputs.mobileNumber) {\r\n inputs.mobileNumber = inputs.mobileNumber.toString();\r\n }\r\n if (inputs.bban) {\r\n inputs.bban = inputs.bban.toString();\r\n }\r\n if (inputs.bbanLinkMobileNumber) {\r\n inputs.bbanLinkMobileNumber = inputs.bbanLinkMobileNumber.toString();\r\n }\r\n if (inputs.subscriberType === \"Individual\") {\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is required\";\r\n }\r\n } else if (inputs.subscriberType === \"Organisation\") {\r\n if (!inputs.organizationName) {\r\n errors.organizationName = \"Organisation Name is Required\";\r\n }\r\n }\r\n\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.mobileNumber) {\r\n errors.mobileNumber = \"Phone Number is Required\";\r\n }\r\n if (inputs.email && !emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (inputs.mmoId) {\r\n if (!inputs.mmoAccountNumber) {\r\n errors.mmoAccountNumber = \"Mobile Money account number is required\";\r\n }\r\n }\r\n\r\n if (!inputs.bankProfileId) {\r\n errors.bankProfileId = \"Bank is required\";\r\n }\r\n\r\n if (\r\n inputs?.bban?.length !== 0 &&\r\n (inputs?.bban?.length < 8 || inputs?.bban?.length > 18)\r\n ) {\r\n errors.bban = \"BBAN should have 8 to 18 digits\";\r\n }\r\n\r\n if (!inputs.authMode) {\r\n errors.authMode = \"Please select authentication mode\";\r\n }\r\n if (!inputs.bankAccNo) {\r\n errors.bankAccNo = \"Please enter bank account number\";\r\n } else if (inputs.bankAccNo.length < 8 || inputs.bankAccNo.length > 18) {\r\n errors.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = new FormData();\r\n if (values.subscriberType === \"Individual\") {\r\n data.append(\"FirstName\", values.firstName);\r\n data.append(\"LastName\", values.lastName);\r\n } else if (values.subscriberType === \"Organisation\") {\r\n data.append(\"OrganizationName\", values.organizationName);\r\n }\r\n data.append(\"SubscriberType\", values.subscriberType);\r\n data.append(\"MobileCode\", values.mobileCode);\r\n data.append(\"MobileNumber\", values.mobileNumber);\r\n data.append(\"Email\", values.email ? values.email : \"\");\r\n data.append(\"BBAN\", values.bban);\r\n data.append(\"BBANLinkMobileNumber\", values.bbanLinkMobileNumber);\r\n data.append(\"BBANLinkMobileCode\", values.bbanLinkMobileCode);\r\n data.append(\"AccountCreatedBy\", \"Admin\");\r\n data.append(\"Password\", values.password);\r\n data.append(\"BankProfileId\", values.bankProfileId);\r\n data.append(\"IsVerifiedByAdmin\", true);\r\n data.append(\"Id\", values.id);\r\n data.append(\"topUpCommissionId\", values.topUpCommissionId)\r\n if (values.mmoId) {\r\n data.append(\"MMOId\", values.mmoId);\r\n } else {\r\n data.append(\"MMOId\", 0);\r\n }\r\n if (values.mmoAccountNumber) {\r\n data.append(\"MMOAccountNumber\", values.mmoAccountNumber);\r\n } else {\r\n data.append(\"MMOAccountNumber\", \"\");\r\n }\r\n data.append(\"AuthFactorType\", values.authMode);\r\n data.append(\r\n \"ExcidedPaymentAmount\",\r\n values.authMode === \"1FA\" ? values.oneFAAmt : 0\r\n );\r\n data.append(\"BankAccountNumber\", values.bankAccNo);\r\n if (values.bankProfileId > 0) {\r\n data.append(\"isBankInfoAvailable\", true);\r\n }\r\n data.append('Type', props.type)\r\n data.append('SuperAgentProfileId', getUserId())\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/Agent/updateSubAgent\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Updated Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Sub Agent Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Profile Details\r\n
\r\n
\r\n \r\n {values.subscriberType === \"Individual\" && (\r\n <>\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.authMode && (\r\n
\r\n * {errors.authMode}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.authMode === \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {/*
*/}\r\n {/* Address */}\r\n {/*
\r\n Mobile Money Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Mobile Money (optional)\r\n \r\n \r\n \r\n {values.mobileMoneyList &&\r\n values.mobileMoneyList.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.mmoId && (\r\n
\r\n * {errors.mmoId}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n MM Account Number (optional)\r\n \r\n \r\n {errors.mmoAccountNumber && (\r\n
\r\n * {errors.mmoAccountNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
*/}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Cash Topup Commission\r\n \r\n \r\n \r\n {props?.cashTopUpComm?.map(c => )}\r\n \r\n
\r\n {CASH_TOPUP_HINT}\r\n
\r\n {errors.topUpCommissionId && (\r\n
\r\n * {errors.topUpCommissionId}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n {/* Address */}\r\n
\r\n Bank Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Bank\r\n \r\n \r\n {values.bankList &&\r\n values.bankList.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bankProfileId && (\r\n
\r\n * {errors.bankProfileId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n BBAN Number (optional)\r\n \r\n \r\n {errors.bban && (\r\n
\r\n * {errors.bban}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n {errors.bbanLinkMobileNumber && (\r\n
\r\n * {errors.bbanLinkMobileNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditSubAgent;\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod } from \"services/httpServices\";\r\nimport { AUTH_MODE, AMOUNT_HINT, MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { checkBankAccNo } from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { checkBbanValidation } from \"services/util\";\r\n\r\nconst MODES = AUTH_MODE;\r\nconst HINT = AMOUNT_HINT;\r\nconst initialValue = {};\r\n\r\nconst EditMasterAgent = (props) => {\r\n initialValue.firstName = props.firstName;\r\n initialValue.lastName = props.lastName;\r\n initialValue.mobileNumber = props.mobileNumber;\r\n initialValue.mobileCode = props.mobileCode;\r\n initialValue.mmoId = props.mmoId;\r\n initialValue.bankProfileId = props.bankProfileId;\r\n initialValue.mobileMoneyAccNo = props.mobileMoneyAccNo;\r\n initialValue.bban = props.bban === \"null\" ? \"\" : props.bban;\r\n initialValue.bbanLinkMobileCode = props.bbanLinkMobileCode;\r\n initialValue.bbanLinkMobileNumber =\r\n props?.bbanLinkMobileNumber === null\r\n ? props.mobileNumber\r\n : props?.bbanLinkMobileNumber;\r\n initialValue.id = props.id;\r\n initialValue.bankList = props.bankList;\r\n initialValue.mobileMoneyList = props.mobileMoneyList;\r\n initialValue.email = props.email;\r\n initialValue.mmoAccountNumber = props.mmoAccountNumber;\r\n initialValue.authMode = props.authFactorType ? props.authFactorType : \"\";\r\n initialValue.oneFAAmt = props.excidedPaymentAmount\r\n ? props.excidedPaymentAmount\r\n : 0;\r\n initialValue.subscriberType = props.subscriberType\r\n ? props.subscriberType\r\n : \"\";\r\n initialValue.organizationName = props.organizationName\r\n ? props.organizationName\r\n : \"\";\r\n initialValue.bankAccNo = props.bankAccountNumber\r\n ? props.bankAccountNumber\r\n : \"\";\r\n\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const mobWithCC = values.mobileCode + values.mobileNumber;\r\n const bankMobWithCC =\r\n values.bbanLinkMobileCode + values?.bbanLinkMobileNumber;\r\n const { addToast } = useToasts();\r\n\r\n const handleInputChange = (e) => {\r\n const { name, value } = e.target;\r\n if (checkSpace(value)) {\r\n if (name === \"phone\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"mmoAccountNumber\") {\r\n if (checkMobileMoneyAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bbanLinkMobileNumber\") {\r\n if (checkMobValidation(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"oneFAAmt\") {\r\n if (checkDigitOnly(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n changeState({ ...values, [name]: value });\r\n }\r\n } else {\r\n changeState({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n changeState({\r\n ...values,\r\n bankMobWithCC: value,\r\n bbanLinkMobileCode: data.dialCode,\r\n bbanLinkMobileNumber: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const changeState = (obj) => {\r\n setValues(obj);\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 11) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const closeModal = () => {\r\n props.closeModal();\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n let errors = {};\r\n if (inputs.mobileNumber) {\r\n inputs.mobileNumber = inputs.mobileNumber.toString();\r\n }\r\n if (inputs.bban) {\r\n inputs.bban = inputs.bban.toString();\r\n }\r\n if (inputs.bbanLinkMobileNumber) {\r\n inputs.bbanLinkMobileNumber = inputs.bbanLinkMobileNumber.toString();\r\n }\r\n if (inputs.subscriberType === \"Individual\") {\r\n if (!inputs.firstName) {\r\n errors.firstName = \"First Name is required\";\r\n }\r\n if (!inputs.lastName) {\r\n errors.lastName = \"Last Name is required\";\r\n }\r\n } else if (inputs.subscriberType === \"Organisation\") {\r\n if (!inputs.organizationName) {\r\n errors.organizationName = \"Organisation Name is Required\";\r\n }\r\n }\r\n\r\n if (!inputs.mobileCode) {\r\n errors.mobileCode = \"Please select mobile code\";\r\n }\r\n if (!inputs.mobileNumber) {\r\n errors.mobileNumber = \"Phone Number is Required\";\r\n }\r\n if (inputs.email && !emailRegEx.test(inputs.email)) {\r\n errors.email = \"Enter valid email\";\r\n }\r\n if (inputs.mmoId) {\r\n if (!inputs.mmoAccountNumber) {\r\n errors.mmoAccountNumber = \"Mobile Money account number is required\";\r\n }\r\n }\r\n\r\n if (!inputs.bankProfileId) {\r\n errors.bankProfileId = \"Bank is required\";\r\n }\r\n\r\n if (\r\n inputs?.bban?.length !== 0 &&\r\n (inputs?.bban?.length < 8 || inputs?.bban?.length > 18)\r\n ) {\r\n errors.bban = \"BBAN should have 8 to 18 digits\";\r\n }\r\n\r\n if (!inputs.authMode) {\r\n errors.authMode = \"Please select authentication mode\";\r\n }\r\n if (!inputs.bankAccNo) {\r\n errors.bankAccNo = \"Please enter bank account number\";\r\n } else if (inputs.bankAccNo.length < 8 || inputs.bankAccNo.length > 18) {\r\n errors.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n var data = new FormData();\r\n if (values.subscriberType === \"Individual\") {\r\n data.append(\"FirstName\", values.firstName);\r\n data.append(\"LastName\", values.lastName);\r\n } else if (values.subscriberType === \"Organisation\") {\r\n data.append(\"OrganizationName\", values.organizationName);\r\n }\r\n data.append(\"SubscriberType\", values.subscriberType);\r\n data.append(\"MobileCode\", values.mobileCode);\r\n data.append(\"MobileNumber\", values.mobileNumber);\r\n data.append(\"Email\", values.email ? values.email : \"\");\r\n data.append(\"BBAN\", values.bban);\r\n data.append(\"BBANLinkMobileNumber\", values.bbanLinkMobileNumber);\r\n data.append(\"BBANLinkMobileCode\", values.bbanLinkMobileCode);\r\n data.append(\"AccountCreatedBy\", \"Admin\");\r\n data.append(\"Password\", values.password);\r\n data.append(\"BankProfileId\", values.bankProfileId);\r\n data.append(\"IsVerifiedByAdmin\", true);\r\n data.append(\"Id\", values.id);\r\n if (values.mmoId) {\r\n data.append(\"MMOId\", values.mmoId);\r\n } else {\r\n data.append(\"MMOId\", 0);\r\n }\r\n if (values.mmoAccountNumber) {\r\n data.append(\"MMOAccountNumber\", values.mmoAccountNumber);\r\n } else {\r\n data.append(\"MMOAccountNumber\", \"\");\r\n }\r\n data.append(\"AuthFactorType\", values.authMode);\r\n data.append(\r\n \"ExcidedPaymentAmount\",\r\n values.authMode === \"1FA\" ? values.oneFAAmt : 0\r\n );\r\n data.append(\"BankAccountNumber\", values.bankAccNo);\r\n if (values.bankProfileId > 0) {\r\n data.append(\"isBankInfoAvailable\", true);\r\n }\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/Agent/updateMasterAgent\", data, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Updated Successfuly\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n // setSError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Master Agent Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Profile Details\r\n
\r\n
\r\n \r\n {values.subscriberType === \"Individual\" && (\r\n <>\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.authMode && (\r\n
\r\n * {errors.authMode}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.authMode === \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {/*
*/}\r\n {/* Address */}\r\n {/*
\r\n Mobile Money Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Mobile Money (optional)\r\n \r\n \r\n \r\n {values.mobileMoneyList &&\r\n values.mobileMoneyList.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.mmoId && (\r\n
\r\n * {errors.mmoId}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n MM Account Number (optional)\r\n \r\n \r\n {errors.mmoAccountNumber && (\r\n
\r\n * {errors.mmoAccountNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
*/}\r\n
\r\n {/* Address */}\r\n
\r\n Bank Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n {values.bankList &&\r\n values.bankList.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bankProfileId && (\r\n
\r\n * {errors.bankProfileId}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n BBAN Number (optional)\r\n \r\n \r\n {errors.bban && (\r\n
\r\n * {errors.bban}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Linked Phone Number\r\n \r\n \r\n {errors.bbanLinkMobileNumber && (\r\n
\r\n * {errors.bbanLinkMobileNumber}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {loading && }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EditMasterAgent;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Card,\r\n Row,\r\n Col,\r\n Container,\r\n CardBody,\r\n CardHeader,\r\n FormGroup,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Button,\r\n Modal,\r\n ModalBody,\r\n} from \"reactstrap\";\r\nimport classnames from \"classnames\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, getMethod } from \"services/httpServices\";\r\n\r\nimport Header from \"components/Headers/Header.js\";\r\nimport PreviewSubscriber from \"../preview-subscriber\";\r\nimport {\r\n AUTH_MODE,\r\n AMOUNT_HINT,\r\n PIN_HINT,\r\n PASSWORD_HINT,\r\n MOBILE_ONLY_COUNTRY,\r\n} from \"appConfig\";\r\nimport { checkBankAccNo, checkName, checkBbanValidation } from \"services/util\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\n\r\nconst MODES = AUTH_MODE;\r\n\r\nconst initialValue = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n mobileCode: \"\",\r\n phone: \"\",\r\n mobWithoutCC: \"\",\r\n email: \"\",\r\n mobileMoney: \"\",\r\n mobileMoneyAccNo: \"\",\r\n bank: \"22\",\r\n bban: \"\",\r\n bankLinkedMobileCode: 0,\r\n bankLinkedPhone: 0,\r\n bankMobWithoutCC: 0,\r\n password: \"\",\r\n oneFAAmt: \"50000\",\r\n authMode: \"1FA\",\r\n pin: \"\",\r\n registerType: \"master_agent\", //to check submit user type in preview subscriber modal\r\n subscriberType: \"Individual\",\r\n organisationName: \"\",\r\n bankAccNo: \"\",\r\n};\r\n\r\nconst navItemCls = {\r\n minWidth: \"120px\",\r\n textAlign: \"center\",\r\n};\r\n\r\nconst cardHeaderCls = {\r\n backgroundColor: \"#6490CA\",\r\n};\r\n\r\nconst HINT = AMOUNT_HINT;\r\n\r\nconst AddMasterAgent = (props) => {\r\n const [activeTab, setActiveTab] = useState(\"1\");\r\n const [values, setValues] = React.useState(initialValue);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [showPin, setShowPin] = React.useState(false);\r\n const [open, setOpen] = React.useState(false);\r\n const [errors, setErrors] = React.useState({});\r\n const [, setDisableTab2] = React.useState(true);\r\n const [disableTab3, setDisableTab3] = React.useState(true);\r\n const [banks, setBanks] = React.useState(null);\r\n const [mobileMoney, setMMO] = React.useState(null);\r\n const { addToast } = useToasts();\r\n\r\n React.useEffect(() => {\r\n fetchBank();\r\n fetchMMO();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const toggle = (tab) => {\r\n if (activeTab !== tab) setActiveTab(tab);\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n var { name, value } = e.target;\r\n\r\n if (checkSpace(value)) {\r\n if (name === \"phone\" || name === \"bankLinkedPhone\") {\r\n if (checkMobValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"firstName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"lastName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"organisationName\") {\r\n if (checkName(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bban\") {\r\n if (checkBbanValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"mobileMoneyAccNo\") {\r\n if (checkMobileMoneyAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n // } else if (name === 'password') {\r\n // if (pswdValidation(value)) {\r\n // setValues({ ...values, [name]: value });\r\n // }\r\n } else if (name === \"pin\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"oneFAAmt\") {\r\n if (checkDigitOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"bankAccNo\") {\r\n if (checkBankAccNo(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n }\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n phone: value,\r\n mobileCode: data.dialCode,\r\n mobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const closeModal = () => {\r\n setOpen(false);\r\n setValues({ ...initialValue });\r\n setActiveTab(\"1\");\r\n setDisableTab2(true);\r\n setDisableTab3(true);\r\n };\r\n\r\n const reviewModal = () => {\r\n setOpen(false);\r\n };\r\n\r\n const checkMobValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 6) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMobileMoneyAccNo = (value) => {\r\n if (value.length <= 11) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkProfileTab = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.subscriberType) {\r\n error.subscriberType = \"Please select subscriber type\";\r\n valid = false;\r\n }\r\n\r\n if (!values.firstName) {\r\n error.firstName = \"First Name is Required\";\r\n valid = false;\r\n }\r\n if (!values.lastName) {\r\n error.lastName = \"Last Name is Required\";\r\n valid = false;\r\n }\r\n if (!values.mobileCode) {\r\n error.mobileCode = \"Mobile Code is Required\";\r\n valid = false;\r\n }\r\n if (!values.phone) {\r\n error.phone = \"Phone Number is Required\";\r\n valid = false;\r\n } else if (!values.mobWithoutCC) {\r\n error.phone = \"Phone Number is Required\";\r\n valid = false;\r\n }\r\n if (!values.password) {\r\n error.password = \"Password is Required\";\r\n valid = false;\r\n } else if (values.password.length < 6) {\r\n error.password = \"Password should have atleast 6 characters\";\r\n valid = false;\r\n }\r\n\r\n if (!values.pin) {\r\n error.pin = \"PIN is Required\";\r\n valid = false;\r\n } else if (values.pin.length !== 4) {\r\n error.pin = \"PIN should have 4 characters\";\r\n valid = false;\r\n }\r\n if (values.email) {\r\n if (!checkEmail(values.email)) {\r\n error.email = \"Please enter valid email\";\r\n valid = false;\r\n }\r\n }\r\n setErrors(error);\r\n return valid;\r\n };\r\n\r\n const checkEmail = (email) => {\r\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\r\n if (emailRegEx.test(email)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const validateProfile = () => {\r\n if (checkProfileTab()) {\r\n toggle(\"3\");\r\n setDisableTab2(false);\r\n setValues({\r\n ...values,\r\n bankAccNo: values.phone,\r\n bankLinkedPhone: 0,\r\n });\r\n } else {\r\n setDisableTab2(true);\r\n setDisableTab3(true);\r\n }\r\n };\r\n\r\n const checkBank = () => {\r\n let error = {};\r\n let valid = true;\r\n if (!values.bank) {\r\n error.bank = \"Bank is Required\";\r\n valid = false;\r\n }\r\n\r\n if (!values.authMode) {\r\n error.authMode = \"Please select authentication mode\";\r\n valid = false;\r\n }\r\n\r\n if (values.authMode === \"1FA\" && values.oneFAAmt === \"\") {\r\n error.oneFAAmt = \"Please enter amount\";\r\n valid = false;\r\n }\r\n\r\n if (!values.bankAccNo) {\r\n error.bankAccNo = \"Please enter bank account number\";\r\n valid = false;\r\n } else if (values.bankAccNo.length < 8 || values.bankAccNo.length > 18) {\r\n error.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\r\n valid = false;\r\n }\r\n setErrors(error);\r\n return valid;\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validateBank = () => {\r\n if (checkBank()) {\r\n setOpen(true);\r\n }\r\n };\r\n\r\n const fetchBank = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/FSP/GetAll\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setBanks(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const fetchMMO = async () => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/MobileMoney/ddllist\", \"get\")\r\n .then((res) => {\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setMMO(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Profile Info\r\n

\r\n \r\n
\r\n
\r\n \r\n
\r\n {values.subscriberType && (\r\n
\r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {errors.firstName && (\r\n
\r\n * {errors.firstName}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n {errors.lastName && (\r\n
\r\n * {errors.lastName}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {errors.email && (\r\n
\r\n * {errors.email}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n PIN\r\n \r\n \r\n \r\n {!showPin && (\r\n \r\n \r\n setShowPin(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPin && (\r\n \r\n \r\n setShowPin(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n *{\" \"}\r\n \r\n {PIN_HINT}\r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Phone Number\r\n \r\n \r\n {errors.phone && (\r\n
\r\n * {errors.phone}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n *{\" \"}\r\n \r\n {PASSWORD_HINT}\r\n \r\n {errors.password && (\r\n
\r\n * {errors.password}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Save and Next\r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Bank Info\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n FSP\r\n \r\n \r\n \r\n {banks &&\r\n banks.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.bank && (\r\n
\r\n * {errors.bank}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Bank Account Number\r\n \r\n \r\n {errors.bankAccNo && (\r\n
\r\n * {errors.bankAccNo}\r\n
\r\n )}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Authentication Mode\r\n \r\n \r\n \r\n {MODES.map((c) => (\r\n \r\n ))}\r\n \r\n {errors.authMode && (\r\n
\r\n * {errors.authMode}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {values.authMode === \"1FA\" && (\r\n \r\n \r\n \r\n Enter amount for using 1FA\r\n \r\n \r\n\r\n
\r\n \r\n * {HINT}\r\n \r\n
\r\n {errors.oneFAAmt && (\r\n
\r\n * {errors.oneFAAmt}\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n Save and Review\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddMasterAgent;\r\n","import React, { useEffect } from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input, InputGroupText, InputGroupAddon, InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { connect } from \"react-redux\";\r\nimport { fetchSubs, addVoucher } from \"./action\";\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { getUserEmail, loginMethod } from \"services/httpServices\";\r\nimport { useHistory } from \"react-router\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { getUserId } from \"services/httpServices\";\r\nimport swal from 'sweetalert';\r\nimport { getAmt } from \"services/util\";\r\nimport { getLoginType } from \"services/httpServices\";\r\n\r\n\r\nconst initialValue = {\r\n accountType: 'Bank',\r\n amount: null,\r\n otp: '',\r\n password: ''\r\n};\r\n\r\nconst TopUp = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [subsInfo, setSubsInfo] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [form, setForm] = React.useState(1);\r\n const [use1FA, set1FA] = React.useState(false);\r\n const [use2FA, set2FA] = React.useState(false);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const [fees, setFees] = React.useState(0);\r\n\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n useEffect(() => {\r\n props.fetchSubsInfo();\r\n // genOtp();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.subscriber.subsInfo.error) {\r\n notifyFailed(props.subscriber.subsInfo.errorMsg);\r\n }\r\n }, [props.subscriber.subsInfo.error]);\r\n\r\n\r\n useEffect(() => {\r\n setSubsInfo(props.subscriber.subsInfo.data);\r\n }, [props.subscriber.subsInfo.data]);\r\n\r\n useEffect(() => {\r\n setLoading(props.subscriber.voucherInfo.loading);\r\n }, [props.subscriber.voucherInfo.loading]);\r\n\r\n useEffect(() => {\r\n if (props.subscriber.voucherInfo.success) {\r\n notifySuccess(props.subscriber.voucherInfo.successMsg);\r\n resetValues();\r\n history.push('/subscriber-transaction');\r\n }\r\n }, [props.subscriber.voucherInfo.success]);\r\n\r\n useEffect(() => {\r\n if (props.subscriber.voucherInfo.error) {\r\n notifyFailed(props.subscriber.voucherInfo.errorMsg);\r\n }\r\n }, [props.subscriber.voucherInfo.error]);\r\n\r\n // useEffect(() => {\r\n // if (use2FA) {\r\n // genOtp();\r\n // }\r\n // }, [use2FA]);\r\n\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = 'Error in saving';\r\n }\r\n addToast(text, {\r\n appearance: 'error',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = 'Save successfully';\r\n }\r\n addToast(text, {\r\n appearance: 'success',\r\n autoDismiss: true,\r\n });\r\n }\r\n\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setValues({ ...values, 'otp': '' });\r\n setSpinner(true);\r\n genOtp();\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n handleSubmitCB();\r\n }\r\n\r\n const handleSubmitCB = () => {\r\n const validationErrors = validateV2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n // verifyOtp();\r\n saveTrans();\r\n }\r\n }\r\n\r\n const resetValues = () => {\r\n setValues({ ...values, amount: \"\" });\r\n };\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons:\r\n {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: 'sweet-btn'\r\n }\r\n }\r\n }).then((confirm) => {\r\n setLoading(false);\r\n setForm(3);\r\n });\r\n }\r\n\r\n const gotoNext = (e) => {\r\n setLoading(true);\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every(x => x === '');\r\n if (isNoError) {\r\n verifyPinV2();\r\n // Check subscriber's 1FA/2FA\r\n // if (subsInfo.authFactorType == \"2FA\") {\r\n // set2FA(true);\r\n // } else if (subsInfo.authFactorType == \"1FA\") {\r\n // if (\r\n // subsInfo.excidedPaymentAmount >=\r\n // values.amount\r\n // ) {\r\n // set1FA(true);\r\n // setForm(2);\r\n // setLoading(false);\r\n // } else {\r\n // set2FA(true);\r\n // }\r\n // }\r\n } else {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n const goBack = () => {\r\n setForm(1);\r\n set1FA(false);\r\n set2FA(false);\r\n setValues({ ...values, otp: '', password: '' });\r\n }\r\n\r\n const proceed = (e) => {\r\n e.preventDefault();\r\n if (use2FA) {\r\n // call genOtp()\r\n setLoading(true);\r\n genOtp();\r\n } else {\r\n handleSubmitCB();\r\n }\r\n }\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n\r\n const handleInputChange = (ev) => {\r\n var { name, value } = ev.target;\r\n value = value.trim();\r\n if (name === \"amount\") {\r\n if (value == '') {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n if (checkNumberOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n setValues({...values, [name]: ''});\r\n }\r\n }\r\n \r\n } else if (name === \"password\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkNumberOnly = (value) => {\r\n let digiRegex = /^[1-9][\\d]*$/;\r\n // let digiRegex = /^[+-]?([1-9]+\\.?[0-9]*|\\.[0-9]+)$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (!inputs.accountType) {\r\n errors.accountType = 'Please select one account';\r\n }\r\n if (!inputs.amount) {\r\n errors.amount = 'Please enter amount';\r\n } else if (Number(inputs.amount) <= 0) {\r\n errors.amount = `Amount can't be ${inputs.amount}`\r\n }\r\n if (!subsInfo.id) {\r\n errors.id = 'Subscriber is required';\r\n }\r\n // if (!inputs.otp) {\r\n // errors.otp = 'Please enter OTP';\r\n // }\r\n \r\n if (!inputs.password) {\r\n errors.password = 'Pin is required';\r\n } else if (inputs.password.length !== 4) {\r\n errors.password = 'Pin should contain 4 digits';\r\n }\r\n return errors;\r\n }\r\n\r\n const validateV2 = (inputs) => {\r\n let errors = {};\r\n if (!inputs.accountType) {\r\n errors.accountType = 'Please select one account';\r\n }\r\n if (!inputs.amount) {\r\n errors.amount = 'Please enter amount';\r\n }\r\n if (!subsInfo.id) {\r\n errors.id = 'Subscriber is required';\r\n }\r\n // if (!inputs.otp) {\r\n // errors.otp = 'Please enter OTP';\r\n // }\r\n if (Number(inputs.amount) <= 0) {\r\n errors.amount = `Amount can't be ${inputs.amount}`\r\n }\r\n if (!inputs.password) {\r\n errors.password = 'Password is Required';\r\n }\r\n if (use2FA && !inputs.otp) {\r\n errors.otp = 'Otp is required';\r\n }\r\n return errors;\r\n }\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n\r\n const saveTrans = () => {\r\n setLoading(true);\r\n var data = new FormData();\r\n // data.append('SubscriberId', subsInfo.id);\r\n data.append('SubscriberUserId', getUserId());\r\n data.append('Amount', values.amount);\r\n data.append('PaymentMethod', values.accountType);\r\n data.append('PaymentType', 'topup');\r\n data.append('PaymentTo', 'Wallet TopUp');\r\n data.append('AmountType', 'R');\r\n data.append('CollectionType', 'TopUp');\r\n if (use2FA) {\r\n data.append('Otp', values.otp);\r\n }\r\n data.append('PIN', values.password);\r\n if (values.accountType === \"Bank\") {\r\n data.append('PaymentFrom', subsInfo.bankName);\r\n data.append('PaymentMethodId', subsInfo.bankProfileId);\r\n } else if (values.accountType === \"MMO\") {\r\n data.append('PaymentFrom', subsInfo.mmoName);\r\n data.append('PaymentMethodId', subsInfo.mmoId);\r\n }\r\n data.append('FeesAmount', fees);\r\n let loginType = getLoginType()\r\n if(loginType === \"Master Agent\") {\r\n data.append('MasterAgentUserId', getUserId())\r\n }\r\n props.addVoucherAmt(data);\r\n }\r\n\r\n const genOtp = () => {\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n \"UserId\": getUserId(),\r\n \"OtpType\": \"TransactionOTP\"\r\n });\r\n let url = '/api/Transactions/Sendotp';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || 'Otp sent';\r\n // notifySuccess(msg);\r\n openModal(msg);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n setSpinner(false);\r\n setLoading(false);\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n\r\n const verifyOtp = () => {\r\n var errorMsg = '';\r\n var data = JSON.stringify({\r\n \"UserId\": getUserId(),\r\n \"OtpType\": \"TransactionOTP\",\r\n \"Otp\": values.otp\r\n });\r\n setLoading(true);\r\n let url = '/api/Transactions/verifyotp';\r\n postMethod(url, data, 'post')\r\n .then(res => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n saveTrans();\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in generating otp';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const verifyPin = () => {\r\n var errorMsg = '';\r\n var data = {\r\n \"PaymentAmount\": Number(values.amount),\r\n \"Password\": values.password,\r\n \"Email\": getUserEmail(),\r\n \"PaymentType\": values.accountType \r\n };\r\n\r\n setLoading(true);\r\n let loginType = getLoginType()\r\n let url = loginType === \"Master Agent\" ? '/api/Agent/GetSuperAgentDetails' : '/api/Subscriber/GetSubscriberDetails';\r\n postMethod(url, JSON.stringify(data), 'post')\r\n .then(res => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let result = res.data.result;\r\n setFees(result.fees);\r\n if (result.authFactorType == \"1FA\") {\r\n set1FA(true);\r\n set2FA(false);\r\n handleSubmitCB();\r\n } else if (result.authFactorType == \"2FA\") {\r\n set1FA(false);\r\n set2FA(true);\r\n // setForm(2);\r\n // setLoading(false);\r\n } else {\r\n set1FA(false);\r\n set2FA(false);\r\n handleSubmitCB();\r\n }\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in validating pin';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in validating pin';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const verifyPinV2 = () => {\r\n var errorMsg = '';\r\n var data = {\r\n \"PaymentAmount\": Number(values.amount),\r\n \"Password\": values.password,\r\n \"Email\": getUserEmail(),\r\n \"PaymentType\": values.accountType \r\n };\r\n\r\n setLoading(true);\r\n let loginType = getLoginType()\r\n let url = loginType === \"Master Agent\" ? '/api/Agent/GetSuperAgentDetails' : '/api/Subscriber/GetSubscriberDetails';\r\n postMethod(url, JSON.stringify(data), 'post')\r\n .then(res => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let result = res.data.result;\r\n if (!isNaN(result.fees)) {\r\n setFees(Number(result.fees));\r\n }\r\n if (result.authFactorType == \"1FA\") {\r\n set1FA(true);\r\n set2FA(false);\r\n // handleSubmitCB();\r\n } else if (result.authFactorType == \"2FA\") {\r\n set1FA(false);\r\n set2FA(true);\r\n // setForm(2);\r\n // setLoading(false);\r\n } else {\r\n set1FA(false);\r\n set2FA(false);\r\n // handleSubmitCB();\r\n }\r\n verifyPinHandle(result);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || 'Error in validating pin';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n } else {\r\n errorMsg = 'Unknown error in validating pin';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n } else {\r\n errorMsg = 'Unknown Error';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n }\r\n }).catch(err => {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n notifyFailed(errorMsg);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const verifyPinHandle = (result) => {\r\n if (result.fees == 0) {\r\n // Smart pay fees is zero\r\n if (result.authFactorType == '2FA') {\r\n // setLoading(false);\r\n genOtp();\r\n } else {\r\n handleSubmitCB();\r\n }\r\n } else {\r\n setLoading(false);\r\n setForm(2);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Top Up

\r\n \r\n
\r\n
\r\n \r\n {form == 1 &&
\r\n {/* \r\n Recharge Using\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {values.accountType && \r\n {values.accountType === \"Bank\" ?\r\n \r\n Bank Details\r\n
\r\n
\r\n Bank Name - {subsInfo.bankName}\r\n
\r\n
\r\n Account Number - {subsInfo.bankAccountNumber}\r\n
\r\n
\r\n\r\n :\r\n \r\n MMO Details\r\n
\r\n
\r\n MMO Name - {subsInfo.mmoName}\r\n
\r\n
\r\n Account Number - {subsInfo.mmoAccountNumber}\r\n \r\n
\r\n
\r\n }\r\n
}\r\n\r\n {values.accountType &&\r\n
\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount &&
\r\n * {errors.amount}\r\n
}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n\r\n \r\n \r\n {!showPswd && \r\n \r\n setShowPswd(true)} />\r\n \r\n \r\n }\r\n\r\n {showPswd && \r\n \r\n setShowPswd(false)} />\r\n \r\n }\r\n \r\n {errors.password &&
\r\n * {errors.password}\r\n
}\r\n
\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n }\r\n\r\n {values.accountType && \r\n \r\n
\r\n \r\n
\r\n \r\n
}\r\n \r\n }\r\n\r\n {form == 2 &&
\r\n \r\n \r\n
\r\n
\r\n {values.accountType && \r\n {values.accountType === \"Bank\" ?\r\n \r\n Bank Details\r\n
\r\n
\r\n Bank Name - {subsInfo.bankName}\r\n
\r\n
\r\n Account Number - {subsInfo.bban}\r\n
\r\n
\r\n Amount - {getAmt(values.amount)}\r\n
\r\n
\r\n Smart Pay Fees - {getAmt(fees)}\r\n
\r\n
\r\n\r\n :\r\n \r\n MMO Details\r\n
\r\n
\r\n MMO Name - {subsInfo.mmoName}\r\n
\r\n
\r\n Account Number - {subsInfo.mmoAccountNumber}\r\n \r\n
\r\n
\r\n Amount - {getAmt(values.amount)}\r\n
\r\n
\r\n Smart Pay Fees - {getAmt(fees)}\r\n
\r\n
\r\n }\r\n
}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n\r\n {form == 3 &&
\r\n \r\n \r\n
\r\n
\r\n {values.accountType && \r\n {values.accountType === \"Bank\" ?\r\n \r\n Bank Details\r\n
\r\n
\r\n Bank Name - {subsInfo.bankName}\r\n
\r\n
\r\n Account Number - {subsInfo.bban}\r\n
\r\n
\r\n Amount - {getAmt(values.amount)}\r\n
\r\n
\r\n Smart Pay Fees - {getAmt(fees)}\r\n
\r\n
\r\n\r\n :\r\n \r\n MMO Details\r\n
\r\n
\r\n MMO Name - {subsInfo.mmoName}\r\n
\r\n
\r\n Account Number - {subsInfo.mmoAccountNumber}\r\n \r\n
\r\n
\r\n Amount - {getAmt(values.amount)}\r\n
\r\n
\r\n Smart Pay Fees - {getAmt(fees)}\r\n
\r\n
\r\n }\r\n
}\r\n
\r\n\r\n
\r\n \r\n
\r\n {use2FA && \r\n \r\n \r\n \r\n OTP\r\n \r\n\r\n
\r\n \r\n \r\n Resend\r\n    \r\n {spinner &&\r\n
\r\n \r\n
}\r\n
\r\n
\r\n\r\n \r\n
\r\n *\r\n we have sent you an OTP on your registered mobile number / email\r\n
\r\n {errors.otp &&
\r\n * {errors.otp}\r\n
}\r\n
\r\n \r\n
\r\n }\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return { ...state }\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchSubsInfo: () => dispatch(fetchSubs()),\r\n addVoucherAmt: (data) => dispatch(addVoucher(data))\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TopUp);\r\n","import React from \"react\";\r\n\r\n// reactstrap components\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Container,\r\n Row,\r\n Col,\r\n Form,\r\n FormGroup,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Input,\r\n Table,\r\n Badge,\r\n} from \"reactstrap\";\r\n// core components\r\n\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport Header from \"components/Headers/Header\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { collBankStatus } from \"appConfig\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport { postMethod } from \"services/httpServices\";\r\n\r\nconst initialValue = [\r\n { name: \"Keanu Reeves\", profession: \"Actor\" },\r\n { name: \"Lionel Messi\", profession: \"Football Player\" },\r\n { name: \"Cristiano Ronaldo\", profession: \"Football Player\" },\r\n { name: \"Jack Nicklaus\", profession: \"Golf Player\" },\r\n];\r\n\r\nconst STATUS = collBankStatus;\r\n\r\nconst EDSATransactionsMerchant = (props) => {\r\n const [values, setValues] = React.useState(initialValue);\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [error, setError] = React.useState(null);\r\n const [response, setResponse] = React.useState({});\r\n\r\n const { addToast } = useToasts();\r\n\r\n const [people, setPeople] = React.useState(initialValue);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const submit = () => {\r\n if (!searchText) {\r\n setError(\"Please Enter Transaction ID\");\r\n setLoading(false);\r\n setResponse({});\r\n } else {\r\n setError(null);\r\n setLoading(true);\r\n setResponse({});\r\n fetchTrans(searchText);\r\n }\r\n };\r\n\r\n const statusFormat = (val) => {\r\n let ob = STATUS.find((s) => s.key === val);\r\n // return ob && ob.value ? ob.value : val;\r\n return ob && ob.value ? ob.value : val;\r\n };\r\n\r\n const sendNotification = async (id) => {\r\n setLoading(true);\r\n let errorMsg = \"\";\r\n postMethod(\r\n \"/api/Transactions/SendNotificationEDSATransaction?transactionId=\" + id,\r\n {},\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n notifySuccess(\"Email and SMS sent again successfully\");\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n setLoading(false);\r\n setError(errorMsg);\r\n notifyFailed(\"Try Again After Sometime\");\r\n });\r\n };\r\n\r\n const fetchTrans = async (id) => {\r\n let errorMsg = \"\";\r\n getMethod(\"/api/Transactions/CheckEDSATransaction/\" + id, \"get\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n // Success\r\n if (!res.data.content) {\r\n setError(\"No transaction found\");\r\n } else {\r\n setResponse(res.data.content);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n setError(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setError(errorMsg);\r\n });\r\n };\r\n\r\n const getAmt = (amount) => {\r\n let amt = Number(amount);\r\n return amt.toLocaleString();\r\n };\r\n\r\n const reset = () => {\r\n setLoading(false);\r\n setResponse({});\r\n setSearchText(\"\");\r\n };\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n    \r\n \r\n \r\n \r\n \r\n \r\n {loading && }\r\n
\r\n {error && (\r\n
{error}
\r\n )}\r\n\r\n {response && response?.transactionID && (\r\n
\r\n \r\n \r\n EDSA Transaction Details\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Transaction ID :\r\n \r\n \r\n \r\n {response.transactionID}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Meter Number: \r\n \r\n \r\n \r\n {response.meterNumber}\r\n \r\n \r\n \r\n \r\n \r\n Units :\r\n \r\n \r\n \r\n {response.units}\r\n \r\n \r\n \r\n \r\n \r\n Voucher PIN :\r\n \r\n \r\n \r\n {response.voucherPin}\r\n \r\n \r\n \r\n \r\n \r\n Amount :\r\n \r\n \r\n \r\n \r\n Le {getAmt(response.denomination)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Status :\r\n \r\n \r\n \r\n \r\n {statusFormat(response.statusDescription)}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n sendNotification(response.transactionID)\r\n }\r\n disabled={loading}\r\n >\r\n Send Notification\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EDSATransactionsMerchant;","export default __webpack_public_path__ + \"static/media/UserRolesFlow.f550ba3c.jpg\";","export default __webpack_public_path__ + \"static/media/AccessRights.aeeb3467.png\";","/* eslint-disable react/no-unescaped-entities */\r\nimport UserFlowImg from \"../../assets/kb/UserRolesFlow.jpg\";\r\nimport AccessRightsImg from \"../../assets/kb/AccessRights.png\";\r\nconst overviewPageListItems = [\r\n {\r\n heading: \"Super Admin\",\r\n list: [\r\n \"Manages the entire application and its user roles.\",\r\n \"Creates and supervises Master Agents, Super Agents, Sub Agents, Merchants, Subscribers, and Bank Users.\",\r\n \"Gains insight into all transactions occurring between the various roles.\",\r\n \"Controls and adjusts commissions related to financial activities.\",\r\n ],\r\n },\r\n {\r\n heading: \"Master Agent\",\r\n list: [\r\n \"Initiates wallet top-ups, verified through the integrated bank user system.\",\r\n \"Ensures that verified top-up amounts are accurately reflected in the wallet balance.\",\r\n \"Facilitates transfers of wallet balance to Super Agents.\",\r\n ],\r\n },\r\n {\r\n heading: \"Super Agent\",\r\n list: [\r\n \"Transfers wallet balance to Sub Agents to facilitate their financial operations.\",\r\n \"Holds the authority to create, modify, and view Sub Agent profiles.\",\r\n \"Monitors and reviews transactional records attributed to their activities.\",\r\n ],\r\n },\r\n {\r\n heading: \"Sub Agent\",\r\n list: [\r\n \"Manages wallet balance and enables fund transfers to Subscribers.\",\r\n \"Facilitates payments for third-party services, contributing to a seamless financial ecosystem.\",\r\n \"Accesses a comprehensive transaction history to stay informed about their financial interactions.\",\r\n ],\r\n },\r\n {\r\n heading: \"Merchant\",\r\n list: [\r\n \"Facilitates the cashing out of funds to Super Agents, strengthening the liquidity of the system.\",\r\n \"Reviews an extensive log of transactional data, ensuring transparency in their financial operations.\",\r\n \"Tracks incoming payments for services provided to Subscribers and Sub Agents.\",\r\n ],\r\n },\r\n {\r\n heading: \"Bank User\",\r\n list: [\r\n \"Divided into two types: Collection Bank and Settlement Bank.\",\r\n \"Collection Bank verifies the authenticity of Subscribers and Master Agents, ensuring secure access to the system.\",\r\n \"Settlement Bank holds the authority to approve payments for Merchants, while also monitoring commission structures.\",\r\n ],\r\n },\r\n {\r\n heading: \"Subscriber\",\r\n list: [\r\n \"Empowered to make payments for Merchant bills and third-party services.\",\r\n \"Enables easy wallet top-ups using various methods, including MMO, VISA (Credit and Debit) cards and Agents.\",\r\n \"Facilitates the transfer of wallet balance to other Subscribers, promoting peer-to-peer transactions.\",\r\n \"Offers the flexibility to cash out funds to Sub Agents, enhancing the financial flow within the system.\",\r\n ],\r\n },\r\n];\r\nconst Overview = () => {\r\n return (\r\n <>\r\n
\r\n

\r\n Smart Pay Application Overview\r\n

\r\n

\r\n Smart Pay is a comprehensive financial management application designed\r\n to streamline and simplify transactions across various user roles.\r\n With a user-friendly interface, administrators can efficiently create\r\n and manage a hierarchy of roles, including Master Agents, Super\r\n Agents, Sub Agents, Merchants, Subscribers, and Bank Users. This\r\n powerful platform empowers administrators to oversee and analyze\r\n transactional data between these roles, while also offering the\r\n flexibility to manage commissions associated with fund transfers.\r\n

\r\n

\r\n In addition to its core functionalities, Smart Pay offers a seamless\r\n integration option for other platforms through an extensive set of\r\n APIs. This integration capability allows external platforms to\r\n incorporate Smart Pay as a payment option, enhancing the overall\r\n versatility of the financial ecosystem. Smart Pay's robust API\r\n endpoints provide third-party developers with the means to seamlessly\r\n integrate payment functionalities, ensuring a consistent and efficient\r\n user experience across platforms.\r\n

\r\n
\r\n

\r\n Key Features and Responsibilities of Each Role\r\n

\r\n
\r\n

User Roles

\r\n
\r\n \"user\r\n
\r\n {overviewPageListItems.map(({ heading, list }) => (\r\n
\r\n

{heading}

\r\n
    \r\n {list.map((item, idx) => (\r\n
  • {item}
  • \r\n ))}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n

Access permission Chart

\r\n
\r\n \r\n
\r\n
\r\n

Smart Pay

\r\n

\r\n Serves as a centralized platform that revolutionizes financial\r\n interactions among Master Agents, Super Agents, Sub Agents, Merchants,\r\n Subscribers, and Bank Users. With its robust capabilities, Smart Pay\r\n ensures secure, efficient, and transparent financial management for all\r\n users involved. Furthermore, its extensive API endpoints enable seamless\r\n integration for third-party platforms, expanding the reach and impact of\r\n Smart Pay's payment ecosystem.\r\n

\r\n \r\n );\r\n};\r\n\r\nexport default Overview;\r\n","export default __webpack_public_path__ + \"static/media/HTTPs.b6637571.jpg\";","export default __webpack_public_path__ + \"static/media/JWT.a5ff7300.jpg\";","/* eslint-disable react/no-unescaped-entities */\r\nimport HTTPsImg from \"../../assets/kb/HTTPs.jpg\";\r\nimport JWTImg from \"../../assets/kb/JWT.jpg\";\r\n\r\nconst TechnicalBackground = () => {\r\n return (\r\n
\r\n

\r\n Technical Background of the Smart Pay Application\r\n

\r\n
\r\n

Introduction

\r\n

\r\n The Smart Pay application is constructed with a sophisticated\r\n technical architecture, comprising three interconnected elements: the\r\n Mobile Application, the Front-End Website, and a set of structured\r\n APIs supported by a robust database. This comprehensive approach\r\n ensures a seamless user experience across diverse platforms while\r\n harnessing advanced technologies to uphold modern security standards.\r\n

\r\n
\r\n
\r\n

1. Mobile Application

\r\n

\r\n The mobile application facet of Smart Pay is meticulously developed\r\n using a strategic blend of technologies that prioritize performance\r\n and user engagement. The application is crafted using the{\" \"}\r\n React Native framework, enabling it to be seamlessly\r\n cross-platform, guaranteeing a consistent user experience across both\r\n iOS and Android devices. React Native's component-driven architecture\r\n empowers developers to craft dynamic, responsive, and engaging user\r\n interfaces.\r\n

\r\n
\r\n
\r\n

2. Front-End Website

\r\n

\r\n he Smart Pay front-end website is skillfully engineered with the{\" \"}\r\n React JavaScript library. React's inherent\r\n flexibility allows developers to craft interactive and adaptive user\r\n interfaces through modular, reusable components. This choice ensures a\r\n smooth, intuitive user interaction for individuals accessing Smart Pay\r\n through web browsers, effectively mirroring the capabilities of the\r\n mobile application.\r\n

\r\n
\r\n
\r\n

3. API with Structured Database

\r\n

\r\n Central to Smart Pay's operation is a well-designed set of structured\r\n APIs, acting as a vital link between user interfaces and the\r\n underlying database. Developed using Microsoft .NET{\" \"}\r\n and C#, these APIs facilitate seamless communication,\r\n data retrieval, and updates. By opting for .NET and C#, Smart Pay\r\n achieves robustness and scalability, enabling efficient handling of\r\n user requests and data transactions.\r\n

\r\n

\r\n At the core of the application, the structured database is powered by{\" \"}\r\n SQL Server, serving as a foundation for data\r\n integrity, security, and reliable data storage. SQL Server's\r\n relational database management capabilities ensure organized storage\r\n and retrieval of crucial data elements, including user information and\r\n transaction records.\r\n

\r\n
\r\n

Security Standards

\r\n
\r\n

\r\n Smart Pay is uncompromising in its dedication to security, implemented\r\n through several comprehensive measures:\r\n

\r\n
    \r\n
  • \r\n HTTPS (Hypertext Transfer Protocol Secure): All\r\n communication between users and the application is fortified with\r\n HTTPS, encrypting data during transmission and thwarting\r\n unauthorized access to sensitive information.\r\n
    \r\n \"https\"\r\n
    \r\n
  • \r\n
  • \r\n JWT Authorization (JSON Web Tokens): Smart Pay\r\n employs JWT for robust authorization and authentication. This\r\n industry-standard practice enables users to access designated\r\n functionalities confidently, while unauthorized access attempts are\r\n thwarted.\r\n
    \r\n \"JWT\"\r\n
    \r\n
  • \r\n
  • \r\n TLS 1.2 and 1.3 (Transport Layer Security): Smart\r\n Pay adopts TLS protocols 1.2 and 1.3 to establish secure connections\r\n between users and the server, encrypting data transmission and\r\n mitigating the risk of eavesdropping and tampering.\r\n
  • \r\n
\r\n
\r\n

\r\n Secure Code Management\r\n

\r\n

\r\n Smart Pay's codebase is meticulously managed within a secure environment\r\n on GitHub, a widely recognized and trusted platform for\r\n version control and collaborative software development. This ensures the\r\n code's integrity, version history, and collaborative enhancements are\r\n securely managed.\r\n

\r\n

\r\n Personal Information Security\r\n

\r\n

\r\n In line with stringent data protection practices, sensitive user\r\n information such as Email, Password, and PIN is stored with the highest\r\n degree of security. Smart Pay employs the SHA-256{\" \"}\r\n encryption algorithm to secure this data, rendering it virtually\r\n irreversible. This cryptographic technique ensures that even in the\r\n unlikely event of data exposure, personal information remains\r\n safeguarded against unauthorized access.\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default TechnicalBackground;\r\n","export default __webpack_public_path__ + \"static/media/Login.3e7ad95e.png\";","export default __webpack_public_path__ + \"static/media/SelfRegister.3833aed9.png\";","export default __webpack_public_path__ + \"static/media/OTPEmail.6bc9d250.png\";","export default __webpack_public_path__ + \"static/media/SleftRegOTPVerify.1352f20f.png\";","export default __webpack_public_path__ + \"static/media/1FA and bank.1529c389.png\";","export default __webpack_public_path__ + \"static/media/Preview.6e624845.png\";","export default __webpack_public_path__ + \"static/media/regsuccessfull.a1412fc4.png\";","export default __webpack_public_path__ + \"static/media/credentialemail.3f362695.png\";","export default __webpack_public_path__ + \"static/media/SubscriberFlow.b4b3ad96.png\";","export default __webpack_public_path__ + \"static/media/1.05c4763a.png\";","export default __webpack_public_path__ + \"static/media/2.ef4882ab.png\";","export default __webpack_public_path__ + \"static/media/3.d3d467d1.png\";","export default __webpack_public_path__ + \"static/media/4.3eecf2f6.png\";","export default __webpack_public_path__ + \"static/media/6.d5f715e2.png\";","export default __webpack_public_path__ + \"static/media/7.353d0be1.png\";","export default __webpack_public_path__ + \"static/media/8.f5c5c78a.png\";","export default __webpack_public_path__ + \"static/media/9.270b4afa.png\";","export default __webpack_public_path__ + \"static/media/10.69e739ff.png\";","export default __webpack_public_path__ + \"static/media/11.323e99f8.png\";","export default __webpack_public_path__ + \"static/media/12.469ed397.png\";","export default __webpack_public_path__ + \"static/media/13.e418b718.png\";","export default __webpack_public_path__ + \"static/media/14.538d76f0.png\";","/* eslint-disable react/no-unescaped-entities */\r\n\r\nimport LoginImg from \"../../assets/kb/Login.png\";\r\nimport SelfRegisterImg from \"../../assets/kb/SelfRegister.png\";\r\nimport OTPEmail from \"../../assets/kb/OTPEmail.png\";\r\nimport SelfRegOTP from \"../../assets/kb/SelfRegOTP.png\";\r\nimport SleftRegOTPVerify from \"../../assets/kb/SleftRegOTPVerify.png\";\r\nimport FA1Img from \"../../assets/kb/1FA and bank.png\";\r\nimport PreviewImg from \"../../assets/kb/Preview.png\";\r\nimport regsuccessfullImg from \"../../assets/kb/regsuccessfull.png\";\r\nimport credentialemailImg from \"../../assets/kb/credentialemail.png\";\r\nimport SubscriberFlowImg from \"../../assets/kb/SubscriberFlow.png\";\r\nimport Img1 from \"../../assets/kb/1.png\";\r\nimport Img2 from \"../../assets/kb/2.png\";\r\nimport Img3 from \"../../assets/kb/3.png\";\r\nimport Img4 from \"../../assets/kb/4.png\";\r\nimport Img6 from \"../../assets/kb/6.png\";\r\nimport Img7 from \"../../assets/kb/7.png\";\r\nimport Img8 from \"../../assets/kb/8.png\";\r\nimport Img9 from \"../../assets/kb/9.png\";\r\nimport Img10 from \"../../assets/kb/10.png\";\r\nimport Img11 from \"../../assets/kb/11.png\";\r\nimport Img12 from \"../../assets/kb/12.png\";\r\nimport Img13 from \"../../assets/kb/13.png\";\r\nimport Img14 from \"../../assets/kb/14.png\";\r\n\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst SubscriberJourney = () => {\r\n return (\r\n
\r\n

User Process

\r\n
\r\n

\r\n Welcome to the SmartPay Self-Signup Process!\r\n

\r\n
\r\n
\r\n

\r\n Step 1: Access SmartPay\r\n

\r\n

\r\n Visit our website at{\" \"}\r\n \r\n https://smartpaysl.com\r\n {\" \"}\r\n to get started.\r\n

\r\n
\r\n
\r\n

\r\n Step 2: Click \"Signup\"\r\n

\r\n

\r\n On the login dialog, you'll find the \"Signup\" button located at the\r\n bottom left corner. Click on it to begin your signup journey.\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n Step 3: Choose Account Type\r\n

\r\n

\r\n As a subscriber, you have the option to sign up as an \"Individual\" or\r\n as part of an \"Organization.\" Select \"Individual\" to proceed.\r\n

\r\n
\r\n
\r\n

\r\n Step 4: Fill in Your Information\r\n

\r\n

It's time to provide your details:

\r\n
    \r\n
  • First Name
  • \r\n
  • Last Name
  • \r\n
  • Email
  • \r\n
  • Phone Number
  • \r\n
  • Create a Password and Confirm it
  • \r\n
  • \r\n Set a 4-digit PIN (Personal Identification Number)\r\n
    \r\n \r\n
    \r\n
  • \r\n
\r\n

\r\n Once you've filled in your information, click \"Save and Next\" to move\r\n forward.\r\n

\r\n
\r\n
\r\n

\r\n Step 5: Verify with OTP\r\n

\r\n

\r\n An OTP (One-Time Password) will be sent to both your email and phone.\r\n

\r\n
\r\n \"OTPEmail\"\r\n
\r\n

\r\n Enter the OTP to verify your contact information. If you miss the OTP,\r\n you can request a new one within 10 minutes.\r\n

\r\n
\r\n \r\n \"SleftRegOTPVerify\"\r\n
\r\n
\r\n\r\n
\r\n

\r\n Step 6: Non-Editable Details\r\n

\r\n

You'll now see some non-editable information:

\r\n
    \r\n
  • Default Bank (NO BANK initially)
  • \r\n
  • \r\n Bank Account Number (by default, it's your registered mobile/phone\r\n number)\r\n
  • \r\n
  • \r\n Authentication Type (default is 1FA - One-Factor Authentication)\r\n
  • \r\n
  • \r\n Initial Transaction Amount using 1FA (default: 50000 SLE)\r\n
    \r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n Step 7: Save and Preview\r\n

\r\n

\r\n Click \"Save and Preview\" to review all the information you've entered.\r\n This is your chance to double-check and make sure everything is\r\n accurate. Preview\r\n

\r\n
\r\n \"Preview\"\r\n
\r\n
\r\n
\r\n

\r\n Step 8: Submission\r\n

\r\n

\r\n Once you're satisfied with the details, hit \"Submit.\" You'll receive a\r\n confirmation email/SMS with your account credentials.\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n

\r\n Subscriber Flowchart\r\n

\r\n
\r\n \"SubscriberFlow\"\r\n
\r\n
\r\n

\r\n Step 9: Account Activation\r\n

\r\n

\r\n Your account will be fully activated once it's personally verified by\r\n a BANK user in the SmartPay system.\r\n

\r\n

\r\n Congratulations! You're now well on your way to using SmartPay for\r\n seamless transactions.\r\n

\r\n
\r\n
\r\n

\r\n Subscriber Journey\r\n

\r\n

\r\n Dashboard Overview\r\n

\r\n

\r\n The SmartPay dashboard provides a comprehensive overview of your\r\n financial activities and balance. Here's what you can find on your\r\n dashboard:\r\n

\r\n
    \r\n
  • \r\n Available Balance: The available balance of your wallet is displayed\r\n prominently on the dashboard. This balance reflects the funds you\r\n have available for transactions and payments.\r\n
  • \r\n
  • \r\n Bank Withdrawals: This section allows you to initiate withdrawals\r\n from your SmartPay wallet to your associated bank account. You can\r\n manage your financial liquidity by making secure transfers.\r\n
  • \r\n
  • \r\n MMO Withdrawals: If you prefer to use mobile money services for\r\n withdrawals, this section enables you to initiate MMO withdrawals\r\n directly from your SmartPay wallet.\r\n
  • \r\n
  • \r\n Payments: The Payments section facilitates secure payments for\r\n various services, bills, and utilities. You can conveniently make\r\n payments within the SmartPay platform.\r\n
  • \r\n
  • \r\n Wallet Transfer: Transfer money to another SmartPay subscriber's\r\n wallet seamlessly. Whether you want to share funds with friends or\r\n family, this feature simplifies the process.\r\n
  • \r\n
  • \r\n Wallet Received: Keep track of funds received from other SmartPay\r\n subscribers. This section helps you monitor incoming transactions.\r\n
  • \r\n
  • \r\n Visual Graphs for Better Insights: The dashboard includes visual\r\n graphs that offer insights into your financial trends and\r\n activities. These graphs help you understand your transactions and\r\n balance fluctuations more effectively.\r\n
    \r\n \"Img1\"\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n Top-Up Process\r\n

\r\n

\r\n The top-up process allows you to add funds to your SmartPay wallet\r\n quickly and securely. There are two options available:\r\n

\r\n

Self Wallet Top-Up

\r\n
    \r\n
  • Self Wallet Top-Up
  • \r\n
  • Select \"Own Wallet\" and proceed.
  • \r\n
  • \r\n Choose your preferred payment method: MMO or Credit/Debit Card.\r\n
  • \r\n
  • \r\n Provide the necessary financial details as per your chosen payment\r\n method and confirm.\r\n
    \r\n \"Img2\"\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n

Other Wallet Top-Up

\r\n
    \r\n
  1. Click on \"Top-Up\" in the dashboard.
  2. \r\n
  3. \r\n Select \"Other Wallet\" and enter the recipient's wallet number\r\n (SmartPay).\r\n
  4. \r\n
  5. \r\n Choose your preferred payment method: MMO or Credit/Debit Card.\r\n
  6. \r\n
  7. \r\n Fill in the recipient's financial details and confirm the top-up.\r\n
    \r\n \"Img3\"\r\n
    \r\n
  8. \r\n
\r\n

\r\n Payment Options (MMO, Credit/Debit Card): Depending on your chosen\r\n payment method, enter the required information. For MMO, provide\r\n mobile money details. For Credit/Debit Card, enter card details.\r\n

\r\n

Transaction Confirmation and Notifications:

\r\n
    \r\n
  1. \r\n After confirming the top-up, you will be redirected to the SmartPay\r\n home page.\r\n
  2. \r\n
  3. A transaction ID and success message will be provided to you.
  4. \r\n
  5. \r\n SMS and email notifications will also be sent to confirm the\r\n transaction.\r\n
    \r\n \"Img4\"\r\n
    \r\n
    \r\n \"Img6\"\r\n
    \r\n
  6. \r\n
\r\n
\r\n
\r\n

\r\n Transactions History\r\n

\r\n

\r\n View All Transaction Details\r\n

\r\n
    \r\n
  1. \r\n Access your transaction history by clicking on \"Transactions\" in the\r\n dashboard.\r\n
  2. \r\n
  3. \r\n The transaction history provides a detailed record of all your\r\n financial activities within the SmartPay platform.\r\n
  4. \r\n
\r\n

\r\n Transaction Status and Information\r\n

\r\n
    \r\n
  1. \r\n Each transaction entry includes essential details such as the date\r\n of the transaction, recipient information, transaction amount, and\r\n status.\r\n
  2. \r\n
  3. \r\n By checking the transaction status, you can stay informed about the\r\n progress of each financial activity.\r\n
    \r\n \"Img7\"\r\n
    \r\n
  4. \r\n
\r\n
\r\n
\r\n

\r\n Transfer Money\r\n

\r\n

\r\n Wallet-to-Wallet Transfer\r\n

\r\n
    \r\n
  1. Navigate to the \"Transfer Money\" section in the dashboard.
  2. \r\n
  3. \r\n Enter the recipient's wallet number (phone number) for the transfer.\r\n
  4. \r\n
  5. \r\n The system will automatically populate the recipient's details.\r\n
  6. \r\n
  7. \r\n Provide the transfer amount and your associated PIN for\r\n verification.\r\n
  8. \r\n
  9. Verify and confirm the transaction.
  10. \r\n
\r\n

\r\n Automatic Population of Receiver Details: The SmartPay system\r\n conveniently auto-populates receiver details based on the provided\r\n wallet number.\r\n

\r\n
\r\n \"Img8\"\r\n
\r\n

Transaction Completion and Notifications:

\r\n
    \r\n
  1. \r\n Once the transfer is verified, the funds will be transferred to the\r\n recipient's wallet. .\r\n
  2. \r\n
  3. \r\n Both the sender and receiver will receive SMS and email\r\n notifications to confirm the successful transfer.\r\n
  4. \r\n
\r\n
\r\n
\r\n

\r\n Cash Out\r\n

\r\n

Cash Out to Sub Agent

\r\n
    \r\n
  1. Visit the \"Cash Out\" section on the dashboard.
  2. \r\n
  3. \r\n Enter the sub agent's wallet number (phone number) for the\r\n transaction.\r\n
  4. \r\n
  5. \r\n Receiver details will be automatically populated by the system.\r\n
  6. \r\n
  7. \r\n Provide the amount you wish to cash out and your associated PIN.\r\n
  8. \r\n
  9. Verify and confirm the cash out transaction.
  10. \r\n
\r\n

\r\n Automatic Population of Receiver Details: The system streamlines the\r\n process by automatically filling in the receiver's details.\r\n

\r\n

Transaction Completion and Notifications:

\r\n
    \r\n
  1. \r\n Once the transaction is verified, the cash will be successfully\r\n transferred to the sub agent's wallet.\r\n
  2. \r\n
  3. \r\n Both the sender and sub agent will receive SMS and email\r\n notifications confirming the transaction.\r\n
    \r\n \"Img9\"\r\n
    \r\n
  4. \r\n
\r\n
\r\n
\r\n

\r\n Make Payment\r\n

\r\n

Payment to Services

\r\n
    \r\n
  1. Access the \"Make Payment\" option in the dashboard.
  2. \r\n
  3. \r\n Choose the type of service you intend to make a payment for:\r\n SmartBills, University Fees, or Other Services.\r\n
  4. \r\n
\r\n

\r\n Service Types (SmartBills, University Fees, Other Services)\r\n

\r\n
\r\n \"Img10\"\r\n
\r\n
    \r\n
  1. \r\n Based on your selection, further specify the service you are making\r\n a payment for. Options include EDSA, NRA, ITS, and Others.\r\n
  2. \r\n
\r\n
\r\n
\r\n

Pay Smart bills

\r\n
\r\n \"Img11\"\r\n
\r\n
\r\n
\r\n

Pay University Fees

\r\n
\r\n \"Img12\"\r\n
\r\n
\r\n
\r\n

Pay Other Services

\r\n
\r\n \"Img12\"\r\n
\r\n
\r\n

Payment Confirmation and Notifications:

\r\n
    \r\n
  1. Confirm the payment details.
  2. \r\n
  3. \r\n Receive a payment confirmation along with SMS and email notifications\r\n to verify the successful payment.\r\n
  4. \r\n
\r\n
\r\n

\r\n Top-Up History\r\n

\r\n

View Top-Up History

\r\n
    \r\n
  1. Navigate to the \"Top-Up History\" section in the dashboard.
  2. \r\n
  3. \r\n Gain insights into your top-up history, including details of top-ups\r\n made to your own wallet and to other wallets.\r\n
    \r\n \"Img14\"\r\n
    \r\n
  4. \r\n
\r\n

\r\n If you have any questions or need assistance, our support team is here\r\n to help. Happy SmartPaying!\r\n

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SubscriberJourney;\r\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/M1.8b6c92a0.png\";","export default __webpack_public_path__ + \"static/media/M2.68f6a5e4.png\";","export default __webpack_public_path__ + \"static/media/M3.ed2fa8e2.png\";","export default __webpack_public_path__ + \"static/media/M4.729f881a.png\";","export default __webpack_public_path__ + \"static/media/MasterAgentFlow.e76293d2.png\";","/* eslint-disable react/no-unescaped-entities */\r\n\r\nimport M1Img from \"../../assets/kb/M1.png\";\r\nimport M2Img from \"../../assets/kb/M2.png\";\r\nimport M3Img from \"../../assets/kb/M3.png\";\r\nimport M4Img from \"../../assets/kb/M4.png\";\r\nimport MasterAgentFlowImg from \"../../assets/kb/MasterAgentFlow.png\";\r\n\r\nconst MasterAgentJourney = () => {\r\n return (\r\n
\r\n
\r\n

Introduction

\r\n

\r\n Welcome to the Master Agent's role in the SmartPay ecosystem. As a\r\n Master Agent, you play a vital role in managing and overseeing\r\n transactions within the platform. This guide will walk you through\r\n your responsibilities and capabilities.\r\n

\r\n
\r\n
\r\n

\r\n Registration and Access\r\n

\r\n

\r\n As a Master Agent, your account is registered by the Super Admin. Once\r\n registered, you'll gain access to a range of functionalities to\r\n facilitate and monitor financial activities.\r\n

\r\n
\r\n
\r\n

\r\n Top-Up Balance\r\n

\r\n

\r\n Your Master Agent account enables you to top up your own wallet\r\n balance using an associated bank account. The process involves the\r\n following steps:\r\n

\r\n
    \r\n
  1. \r\n Wallet Balance: Monitor the balance in your own wallet, reflecting\r\n your available funds.\r\n
  2. \r\n
  3. \r\n Commission: Stay updated on the commissions associated with\r\n transactions.\r\n
  4. \r\n
  5. \r\n Super Agent Balances: Access the balances of Super Agents in your\r\n network.\r\n
  6. \r\n
  7. \r\n Sub Agent Balances: Review the balances of Sub Agents linked to your\r\n operations.\r\n
    \r\n \"transfer\r\n
    \r\n
  8. \r\n
\r\n
\r\n
\r\n

\r\n Transfer to Super Agents\r\n

\r\n

\r\n One of your key responsibilities is facilitating financial\r\n transactions between Master Agents and Super Agents. You can initiate\r\n money transfers to Super Agent wallets using the SmartPay platform.\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n Transaction Monitoring\r\n

\r\n

\r\n Your Master Agent account allows you to keep track of all transactions\r\n that take place within the platform. This includes transactions\r\n initiated by Super Agents, Sub Agents, and other users. CC\r\n

\r\n
\r\n \"Monitoring\"\r\n
\r\n
\r\n
\r\n

\r\n Dashboard Overview\r\n

\r\n

\r\n Your dashboard provides a comprehensive view of your financial\r\n operations:\r\n

\r\n
    \r\n
  • Wallet Balance: Keep track of the balance in your own wallet.
  • \r\n
  • \r\n Commission: Stay informed about the commissions associated with\r\n transactions.\r\n
  • \r\n
  • \r\n Sub Agent Balances: Access the balances of Sub Agents under your\r\n management.\r\n
    \r\n \"Insights\"\r\n
    \r\n
  • \r\n
\r\n
\r\n

\r\n Master Agent Flowchart\r\n

\r\n
\r\n \r\n
\r\n

\r\n Conclusion\r\n

\r\n

\r\n As a Master Agent, you play a pivotal role in the SmartPay financial\r\n ecosystem. Your responsibilities include managing transactions,\r\n facilitating transfers, and monitoring financial activities. By\r\n utilizing your dashboard and the functionalities provided, you\r\n contribute to the seamless functioning of the platform.\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default MasterAgentJourney;\r\n","export default __webpack_public_path__ + \"static/media/SP1.f10dcb93.png\";","export default __webpack_public_path__ + \"static/media/SP2.60f28d26.png\";","export default __webpack_public_path__ + \"static/media/SP3.e3a76507.png\";","export default __webpack_public_path__ + \"static/media/SP4.7a34c019.png\";","export default __webpack_public_path__ + \"static/media/SP5.8dcc12d4.png\";","export default __webpack_public_path__ + \"static/media/SuperAgent.08a4a7d5.png\";","/* eslint-disable react/no-unescaped-entities */\r\n\r\nimport SP1Img from \"../../assets/kb/SP1.png\";\r\nimport SP2Img from \"../../assets/kb/SP2.png\";\r\nimport SP3Img from \"../../assets/kb/SP3.png\";\r\nimport SP4Img from \"../../assets/kb/SP4.png\";\r\nimport SP5Img from \"../../assets/kb/SP5.png\";\r\nimport SuperAgentImg from \"../../assets/kb/SuperAgent.png\";\r\n\r\nconst SuperAgentJourney = () => {\r\n return (\r\n
\r\n
\r\n

Introduction

\r\n

\r\n Welcome to the Super Agent's role within the SmartPay platform. As a\r\n Super Agent, you play a pivotal role in managing and facilitating\r\n financial activities. This guide will provide you with an overview of\r\n your responsibilities and capabilities.\r\n

\r\n
\r\n
\r\n

\r\n Registration and Access\r\n

\r\n

\r\n As a Super Agent, your account is registered and authorized by the\r\n Super Admin. Once registered, you gain access to a range of\r\n functionalities that allow you to oversee financial transactions.\r\n

\r\n
\r\n \"transfer\r\n
\r\n
\r\n
\r\n

\r\n Create Sub Agents\r\n

\r\n

\r\n One of your key roles as a Super Agent is the ability to create Sub\r\n Agents under your supervision. This process involves:\r\n

\r\n
    \r\n
  1. Initiating the creation of a Sub Agent from your dashboard.
  2. \r\n
  3. Providing necessary details for the Sub Agent account.
  4. \r\n
  5. Verifying and confirming the creation.
  6. \r\n
  7. \r\n The newly created Sub Agent will be under your management.\r\n
    \r\n \"transfer\r\n
    \r\n
  8. \r\n
\r\n
\r\n
\r\n

\r\n Transfer to Sub Agents\r\n

\r\n

\r\n As a Super Agent, you have the authority to transfer funds to Sub\r\n Agents when required. This enables you to support and facilitate their\r\n financial operations.\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n Transaction Monitoring\r\n

\r\n

\r\n Your Super Agent account allows you to monitor all transactions taking\r\n place within your network. This includes transactions initiated by Sub\r\n Agents and other users.\r\n

\r\n
\r\n \"Monitoring\"\r\n
\r\n
\r\n
\r\n

\r\n Dashboard Overview\r\n

\r\n

\r\n Your dashboard provides a comprehensive view of your financial\r\n operations:\r\n

\r\n
    \r\n
  • Wallet Balance: Keep track of the balance in your own wallet.
  • \r\n
  • \r\n Commission: Stay informed about the commissions associated with\r\n transactions.\r\n
  • \r\n
  • \r\n Sub Agent Balances: Access the balances of Sub Agents under your\r\n management.\r\n
    \r\n \"Insights\"\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n Transfer to Created Sub Agents\r\n

\r\n

\r\n It's important to note that you can transfer funds exclusively to Sub\r\n Agents you have created. This ensures controlled financial management\r\n within your network.\r\n

\r\n
\r\n

\r\n Super Agent Flowchart\r\n

\r\n
\r\n \r\n
\r\n

\r\n Conclusion\r\n

\r\n

\r\n As a Super Agent, you play a crucial role in the SmartPay financial\r\n ecosystem. Your responsibilities encompass creating and managing Sub\r\n Agents, overseeing transactions, and facilitating transfers. Utilizing\r\n your dashboard and provided functionalities, you contribute to the\r\n efficient functioning of the platform.\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default SuperAgentJourney;\r\n","export default __webpack_public_path__ + \"static/media/SA1.4cbf398b.png\";","export default __webpack_public_path__ + \"static/media/SA3.ad9c83e4.png\";","export default __webpack_public_path__ + \"static/media/SA4.7b897282.png\";","export default __webpack_public_path__ + \"static/media/SA5.438b2498.png\";","export default __webpack_public_path__ + \"static/media/SA6.c9e3db53.png\";","export default __webpack_public_path__ + \"static/media/SA7.4b31f04d.png\";","export default __webpack_public_path__ + \"static/media/SA8.78de33b8.png\";","export default __webpack_public_path__ + \"static/media/SubAgent.e9046898.png\";","/* eslint-disable react/no-unescaped-entities */\r\nimport SA1Img from \"../../assets/kb/SA1.png\";\r\nimport SA3Img from \"../../assets/kb/SA3.png\";\r\nimport SA4Img from \"../../assets/kb/SA4.png\";\r\nimport SA5Img from \"../../assets/kb/SA5.png\";\r\nimport SA6Img from \"../../assets/kb/SA6.png\";\r\nimport SA7Img from \"../../assets/kb/SA7.png\";\r\nimport SA8Img from \"../../assets/kb/SA8.png\";\r\nimport SubAgentImg from \"../../assets/kb/SubAgent.png\";\r\n\r\nconst SubAgentJourney = () => {\r\n return (\r\n
\r\n
\r\n

Introduction

\r\n

\r\n Welcome to the role of Sub Agent within the SmartPay platform. As a\r\n Sub Agent, you have a crucial role in facilitating financial\r\n transactions and offering essential services. This guide will provide\r\n you with insights into your responsibilities and capabilities.\r\n

\r\n
\r\n
\r\n

\r\n Top Up Money to Subscribers\r\n

\r\n

\r\n One of your primary functions is to Top the wallet money to\r\n Subscribers within the SmartPay network. This process involves:\r\n

\r\n
    \r\n
  1. Initiating a money transfer from your dashboard.
  2. \r\n
  3. Selecting the desired Subscriber to receive the funds.
  4. \r\n
  5. \r\n Providing the required details, including the amount and any\r\n necessary verification.\r\n
  6. \r\n
  7. \r\n Completing the transfer, ensuring the funds are accurately received\r\n by the intended Subscriber.\r\n
    \r\n \"transfer\r\n
    \r\n
  8. \r\n
\r\n
\r\n
\r\n

Cash Out to Super Agents

\r\n

\r\n As a Sub Agent, you have the ability to perform cash outs to Super\r\n Agents. This feature allows you to return funds to the Super Agents as\r\n needed.\r\n

\r\n
\r\n \"Sub\r\n
\r\n
\r\n
\r\n

Transaction Monitoring

\r\n

\r\n Your Sub Agent account provides access to a transaction monitoring\r\n feature, allowing you to review and track all transactions within your\r\n network.\r\n

\r\n
\r\n \"monitoring\"\r\n
\r\n
\r\n
\r\n

Payment Services

\r\n

\r\n Within your role as a Sub Agent, you can offer various payment\r\n services to Subscribers:\r\n

\r\n
    \r\n
  • \r\n EDSA - Electricity Pin Purchase\r\n
    \r\n \"EDSA\"\r\n
    \r\n
  • \r\n
  • \r\n SmartKorpor Services\r\n
    \r\n \"SmartKorpor\"\r\n
    \r\n
  • \r\n
  • \r\n Betting Platform Tickets\r\n
    \r\n \"Betting\"\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n

Dashboard Insights

\r\n

\r\n Your dashboard provides a comprehensive overview of your financial\r\n activities:\r\n

\r\n
    \r\n
  • Transfer: Initiate money transfers to Subscribers.
  • \r\n
  • Receive: Receive funds from Super Agents and other sources.
  • \r\n
  • \r\n Other Insights: Access key information related to your transactions\r\n and activities.\r\n
    \r\n \"Insights\"\r\n
    \r\n
  • \r\n
\r\n
\r\n

Sub-Agent flowchart

\r\n
\r\n \"Sub-Agent\r\n
\r\n

Conclusion

\r\n

\r\n As a Sub Agent, you play an essential role in the SmartPay financial\r\n ecosystem. Your responsibilities include transferring money to\r\n Subscribers, performing cash outs, offering payment services, and\r\n overseeing transactions. Utilizing your dashboard and provided\r\n functionalities, you contribute to the seamless functioning of the\r\n platform.\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default SubAgentJourney;\r\n","export default __webpack_public_path__ + \"static/media/MR1.b2ee91d6.png\";","export default __webpack_public_path__ + \"static/media/MR2.c9ddcc89.png\";","export default __webpack_public_path__ + \"static/media/MR3.e34aa866.png\";","export default __webpack_public_path__ + \"static/media/MR4.333d9910.png\";","export default __webpack_public_path__ + \"static/media/Merchant.da921112.png\";","/* eslint-disable react/no-unescaped-entities */\r\nimport MR1Img from \"../../assets/kb/MR1.png\";\r\nimport MR2Img from \"../../assets/kb/MR2.png\";\r\nimport MR3Img from \"../../assets/kb/MR3.png\";\r\nimport MR4Img from \"../../assets/kb/MR4.png\";\r\nimport MerchantImg from \"../../assets/kb/Merchant.png\";\r\n\r\nconst MerchantJourney = () => {\r\n return (\r\n
\r\n
\r\n

Introduction

\r\n

\r\n The Merchant role within the Smart Pay system comes with a set of\r\n functionalities designed to facilitate financial interactions and\r\n streamline operations. This section outlines the key features and\r\n capabilities available to a Merchant user.\r\n

\r\n
\r\n
\r\n

\r\n Cash Out by Super Agent\r\n

\r\n

\r\n As a Merchant user, you have the ability to initiate a cash-out\r\n request through the Super Agent. This enables you to withdraw funds\r\n from your wallet as needed, enhancing the liquidity of your financial\r\n activities.\r\n

\r\n
\r\n
\r\n

\r\n Payment Receipt Tracking\r\n

\r\n

\r\n Through your Merchant account, you can efficiently track and monitor\r\n the payments received against bills and services. The system provides\r\n you with valuable insights into the status of these payments. Once the\r\n Settlement Bank user settles the amount, you will receive the\r\n corresponding funds into your account.\r\n

\r\n
\r\n
\r\n

\r\n Transaction Search\r\n

\r\n

\r\n To enhance your record-keeping capabilities, the Smart Pay platform\r\n allows you to search for specific transactions. This functionality\r\n enables you to easily locate and review transaction details,\r\n contributing to a comprehensive overview of your financial\r\n interactions.\r\n

\r\n
\r\n
\r\n

\r\n Daily End Reports\r\n

\r\n

\r\n Stay informed about your daily financial activities with the Daily End\r\n Reports feature. By selecting a specific date, you can generate a\r\n report that summarizes the transactions and activities for that day.\r\n This provides you with a clear snapshot of your financial performance,\r\n aiding in your decision-making process.\r\n

\r\n
\r\n
\r\n

\r\n Getting Started\r\n

\r\n
    \r\n
  1. \r\n Access the Smart Pay platform using your Merchant credentials.\r\n
  2. \r\n
  3. \r\n Navigate to the dashboard to access the various features outlined\r\n above.\r\n
  4. \r\n
  5. \r\n Use the \"Cash Withdraw\" option to initiate a cash withdrawal through\r\n the Super Agent.\r\n
    \r\n \"Withdraw\r\n
    \r\n
  6. \r\n
  7. \r\n Monitor your payment receipts and their statuses to stay informed\r\n about your financial transactions.\r\n
    \r\n \"receipts\r\n
    \r\n
  8. \r\n
  9. \r\n Utilize the transaction search feature to locate and review specific\r\n transactions.\r\n
    \r\n \"search\r\n
    \r\n
  10. \r\n
  11. \r\n Generate Daily End Reports by selecting a date to gain insights into\r\n your daily financial activities. Also Merchant can export the report\r\n in the excel or PDF.\r\n
    \r\n \"Reports\r\n
    \r\n
  12. \r\n
\r\n
\r\n

\r\n Merchant Flowchart\r\n

\r\n
\r\n \"Account\r\n
\r\n

Conclusion

\r\n

\r\n As a Merchant user, the Smart Pay platform offers you a range of tools\r\n to effectively manage your financial operations. By leveraging the\r\n capabilities outlined in this manual, you can enhance your financial\r\n visibility, streamline transactions, and make informed decisions to\r\n optimize your financial activities.\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default MerchantJourney;\r\n","export default __webpack_public_path__ + \"static/media/CB1.8ec9d791.png\";","export default __webpack_public_path__ + \"static/media/CB2.bfc5c5b8.png\";","export default __webpack_public_path__ + \"static/media/CB3.dd804b6a.png\";","export default __webpack_public_path__ + \"static/media/CB4.d72b7037.png\";","export default __webpack_public_path__ + \"static/media/SB1.2e03764e.png\";","export default __webpack_public_path__ + \"static/media/SB2.b4407675.png\";","import React, { useState } from \"react\";\r\nimport {\r\n TabContent,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Card,\r\n Container,\r\n CardBody,\r\n TabPane,\r\n CardHeader,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport classnames from \"classnames\";\r\nimport Header from \"components/Headers/Header.js\";\r\nimport { knowledgeBaseItems } from \"appConfig\";\r\nimport Overview from \"./Overview\";\r\nimport TechnicalBackground from \"./TechnicalBackground\";\r\nimport SubscriberJourney from \"./SubscriberJourney\";\r\nimport MasterAgentJourney from \"./MasterAgentJourney\";\r\nimport SuperAgentJourney from \"./SuperAgentJourney\";\r\nimport SubAgentJourney from \"./SubAgentJourney\";\r\nimport MerchantJourney from \"./MerchantJourney\";\r\nimport BankUserJourney from \"./BankUserJourney\";\r\nimport LegalInformation from \"./LegalInformation\";\r\nimport ContactUs from \"./ContactUs\";\r\n\r\nconst cardHeaderCls = {\r\n backgroundColor: \"#6490CA\",\r\n};\r\nconst All_TABS = [\r\n Overview,\r\n TechnicalBackground,\r\n SubscriberJourney,\r\n MasterAgentJourney,\r\n SuperAgentJourney,\r\n SubAgentJourney,\r\n MerchantJourney,\r\n BankUserJourney,\r\n LegalInformation,\r\n ContactUs,\r\n];\r\nconst AddSubscriber = (props) => {\r\n const [activeTab, setActiveTab] = useState(1);\r\n const [activeTabName, setActiveTabName] = useState(\r\n knowledgeBaseItems[0].label\r\n );\r\n\r\n const toggle = (tab) => {\r\n if (activeTab !== tab) setActiveTab(tab);\r\n };\r\n\r\n const getActiveTabContent = (tab) => {\r\n const CurrentTab = All_TABS[tab - 1];\r\n return ;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {knowledgeBaseItems.map((item, idx) => (\r\n \r\n {\r\n setActiveTabName(item.label);\r\n toggle(idx + 1);\r\n }}\r\n style={{\r\n padding: \"10px\",\r\n whiteSpace: \"nowrap\",\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n {item.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n {activeTabName}\r\n

\r\n \r\n
\r\n
\r\n {getActiveTabContent(activeTab)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddSubscriber;\r\n","/* eslint-disable react/no-unescaped-entities */\r\nimport CB1Img from \"../../assets/kb/CB1.png\";\r\nimport CB2Img from \"../../assets/kb/CB2.png\";\r\nimport CB3Img from \"../../assets/kb/CB3.png\";\r\nimport CB4Img from \"../../assets/kb/CB4.png\";\r\nimport SB1Img from \"../../assets/kb/SB1.png\";\r\nimport SB2Img from \"../../assets/kb/SB2.png\";\r\n\r\nconst BankUserJourney = () => {\r\n return (\r\n
\r\n
\r\n

\r\n This guide will help you navigate and utilize the features of both\r\n Collection Bank and Settlement Bank effectively.\r\n

\r\n
\r\n

\r\n Collection Bank\r\n

\r\n
\r\n

Dashboard

\r\n
    \r\n
  • \r\n Total COLLECTION: View the total collection amount\r\n for the current period.\r\n
  • \r\n
  • \r\n TOTAL SUBSCRIBER: Monitor the total number of\r\n subscribers registered.\r\n
  • {\" \"}\r\n
  • \r\n VERIFIED SUBSCRIBER: Keep track of the count of\r\n verified subscribers.\r\n
  • {\" \"}\r\n
  • \r\n UNVERIFIED SUBSCRIBER: Track the number of\r\n subscribers awaiting verification.\r\n
  • {\" \"}\r\n
  • \r\n MTD Commissions: See the total commissions earned\r\n month-to-date.\r\n
  • {\" \"}\r\n
  • \r\n MTD Customer Transfers: Review the total customer\r\n transfers for the current month.\r\n
  • {\" \"}\r\n
\r\n
\r\n \"Dashboard\"\r\n
\r\n
\r\n
\r\n

Features

\r\n
    \r\n
  • \r\n Subscriber Account Approval: As a Collection Bank\r\n user, you have the authority to approve subscriber accounts. Once\r\n approved, subscribers can access and use their accounts.\r\n
    \r\n \"Account\r\n
    \r\n
  • \r\n
  • \r\n Master Agent Top-Up Approval: You also have the\r\n ability to approve top-up amounts for master agents. This\r\n facilitates smooth transactions within the system.\r\n
    \r\n \"Top-Up\"\r\n
    \r\n
  • \r\n
  • \r\n Commission Collection: You can view the collected\r\n commissions through a dedicated section, allowing you to keep track\r\n of earnings accurately.\r\n
    \r\n \"Commission\"\r\n
    \r\n
  • \r\n
  • \r\n Transaction Search: To find specific transactions,\r\n use the transaction search feature. This helps in quickly locating\r\n and reviewing particular transaction details.\r\n
  • \r\n
\r\n
\r\n

\r\n Settlement Bank\r\n

\r\n
    \r\n
  • \r\n Dashboard Overview: Upon logging in, you'll be\r\n greeted with an informative dashboard. This dashboard displays\r\n essential information, including Settlement Balance, Collection\r\n Accounts Balance, and Merchant Settlement Amounts.\r\n
    \r\n \"Overview\r\n
    \r\n
  • \r\n
  • \r\n Merchant Settlement: Within the dashboard, you'll\r\n find a dedicated tab for Merchant Settlements. Use this tab to approve\r\n and settle merchant bills, ensuring timely and accurate payments.\r\n
    \r\n \"Overview\r\n
    \r\n
  • \r\n
  • \r\n Search Transactions: The Search Transaction tab\r\n allows you to search for detailed transaction information. This\r\n feature is particularly useful for tracking down specific transactions\r\n and their associated details.\r\n
  • \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BankUserJourney;\r\n","/* eslint-disable react/no-unescaped-entities */\r\nimport React from \"react\";\r\n\r\nconst LegalInformation = () => {\r\n return (\r\n
\r\n

\r\n Welcome to the Smart Pay System Copyright Notice. This section outlines\r\n the legal information and rights associated with the Smart Pay\r\n application, its content, and its services. Please take a moment to\r\n review the following details regarding copyright, usage, and legal\r\n responsibilities.\r\n

\r\n
\r\n

Ownership of Content

\r\n

\r\n The Smart Pay System, including its website, mobile application,\r\n graphics, text, images, and other content, is protected by\r\n international copyright laws and intellectual property rights. All\r\n rights, including copyrights, trademarks, and proprietary information,\r\n are owned by Smart Systems Ltd. Any unauthorized reproduction,\r\n distribution, or use of the Smart Pay content is strictly prohibited\r\n and may result in legal action.\r\n

\r\n
\r\n
\r\n

Usage Rights

\r\n

\r\n Smart Systems Ltd. grants users limited, non-exclusive, and\r\n non-transferable rights to access and use the Smart Pay System for\r\n personal or internal business purposes. This includes the ability to\r\n interact with the system, access information, and perform authorized\r\n transactions. However, users are explicitly prohibited from modifying,\r\n reproducing, distributing, displaying, transmitting, or creating\r\n derivative works based on the Smart Pay content without prior written\r\n consent from Smart Systems Ltd.\r\n

\r\n
\r\n
\r\n

Restrictions

\r\n

\r\n Users must adhere to the terms and conditions set forth by Smart\r\n Systems Ltd. Unauthorized use, copying, distribution, or modification\r\n of the Smart Pay content may violate copyright and trademark laws and\r\n could result in legal consequences. Users are advised to respect the\r\n rights of Smart Systems Ltd. and other parties who hold proprietary\r\n interests in the content available through the Smart Pay System.\r\n

\r\n
\r\n
\r\n

Third-Party Content and Links

\r\n

\r\n The Smart Pay System may include links to third-party websites,\r\n services, or content that are not owned or controlled by Smart Systems\r\n Ltd. These links are provided for users' convenience and do not imply\r\n endorsement or affiliation. Smart Systems Ltd. is not responsible for\r\n the content, privacy practices, or terms of use of any third-party\r\n websites or services.\r\n

\r\n
\r\n
\r\n

Reporting Copyright Infringements

\r\n

\r\n Smart Systems Ltd. takes copyright and intellectual property rights\r\n seriously. If you believe that any content on the Smart Pay System\r\n infringes your copyright or violates your intellectual property\r\n rights, please contact us immediately using the provided contact\r\n information below.\r\n

\r\n
\r\n
\r\n

Contact Us

\r\n

\r\n For inquiries related to copyright, legal matters, or any questions\r\n regarding the Smart Pay System's terms of use, please reach out to us\r\n at:\r\n

\r\n
    \r\n
  • \r\n Email:{\" \"}\r\n \r\n legal@smartpay.com\r\n \r\n
  • \r\n
  • \r\n Phone: 3737\r\n
  • \r\n
\r\n
\r\n
\r\n

Changes to Copyright Notice

\r\n

\r\n Smart Systems Ltd. reserves the right to update, modify, or amend this\r\n Copyright Notice from time to time without prior notice. Users are\r\n advised to review this section periodically to stay informed about any\r\n changes in copyright and usage rights.\r\n

\r\n

\r\n Thank you for choosing the Smart Pay System. We appreciate your\r\n compliance with these terms and your respectful use of our services.\r\n

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LegalInformation;\r\n","const ContactUs = () => {\r\n return (\r\n
\r\n
\r\n

Call 3737

\r\n
\r\n
\r\n

8 Regent Road, Hill station, Freetown

\r\n
\r\n
\r\n \r\n Fill form\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ContactUs;\r\n","/* eslint-disable eqeqeq */\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport Header from \"components/Headers/Header\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Container,\r\n FormGroup,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Row,\r\n Table,\r\n} from \"reactstrap\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { getUserId } from \"services/httpServices\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { getSortCls } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst sortIS = {\r\n sortPOSID: 0,\r\n sortRegisteredDate: 0,\r\n sortRegisteredLocation: 0,\r\n sortTodaysSales: 0,\r\n sortMtdSales: 0,\r\n sortYtdSales: 0,\r\n};\r\n\r\nfunction Tellers() {\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [sort, setSort] = useState(sortIS);\r\n const [sortBy, setSortBy] = useState(\"\");\r\n const [sortDirection, setSortDirection] = useState(\"asc\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [currentPage, setCurrentPage] = useState(0);\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n function fetchData() {\r\n setLoading(true);\r\n getMethod(\r\n \"/api/MerchantProfile/TellerLandingPage?MerchantId=\" + getUserId()\r\n )\r\n .then((res) => {\r\n if (res.data?.result?.length) {\r\n setData(res.data.result);\r\n }\r\n })\r\n .catch(console.log)\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const sortHandle = (fieldValue, fieldName, sortBy) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\r\n setSortBy(sortBy);\r\n };\r\n\r\n let filteredData = data.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\r\n : a[sortBy] - b[sortBy];\r\n } else if (sortDirection === \"desc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\r\n : b[sortBy] - a[sortBy];\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n if (searchText) {\r\n filteredData = filteredData.filter((item) =>\r\n String(item?.tellerName).includes(searchText?.trim())\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortRegisteredLocation,\r\n \"sortRegisteredDate\",\r\n \"registeredDate\"\r\n )\r\n }\r\n >\r\n Date Registered{\" \"}\r\n \r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortTodaysSales,\r\n \"sortTodaysSales\",\r\n \"todaysSales\"\r\n )\r\n }\r\n >\r\n Today's Sales{\" \"}\r\n \r\n \r\n \r\n sortHandle(sort.sortMtdSales, \"sortMtdSales\", \"mtdSales\")\r\n }\r\n >\r\n MTD Sales{\" \"}\r\n \r\n \r\n \r\n sortHandle(sort.sortYtdSales, \"sortYtdSales\", \"ytdSales\")\r\n }\r\n >\r\n YTD Sales{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n {filteredData.length > 0 &&\r\n filteredData\r\n .slice(currentPage * 10, (currentPage + 1) * 10)\r\n .map((teller, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredData.length && }\r\n
Teller ID Teller Name
{teller.tellerId ?? \"-\"}{teller.registeredDate ?? \"-\"}{teller.tellerName ?? \"-\"}{teller.todaysSales ?? \"-\"}{teller.mtdSales ?? \"-\"}{teller.ytdSales ?? \"-\"}
\r\n \r\n {filteredData.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {filteredData.length}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
{\" \"}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Tellers;\r\n","/* eslint-disable eqeqeq */\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport Header from \"components/Headers/Header\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Container,\r\n FormGroup,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Row,\r\n Table,\r\n} from \"reactstrap\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { getUserId } from \"services/httpServices\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { getSortCls } from \"services/util\";\r\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\r\nimport moment from \"moment\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst sortIS = {\r\n sortPOSID: 0,\r\n sortRegisteredDate: 0,\r\n sortRegisteredLocation: 0,\r\n sortTodaysSales: 0,\r\n sortMtdSales: 0,\r\n sortYtdSales: 0,\r\n};\r\n\r\nfunction Statements() {\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [sort, setSort] = useState(sortIS);\r\n const [sortBy, setSortBy] = useState(\"\");\r\n const [sortDirection, setSortDirection] = useState(\"asc\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [posDeviceData, setPosDeviceData] = useState([]);\r\n const [allUsers, setAllUsers] = useState([]);\r\n const [startDate, setStartDate] = useState(null);\r\n const [endDate, setEndDate] = useState(null);\r\n const [users, setUsers] = useState([]);\r\n const [devices, setDevices] = useState([]);\r\n const [statements, setStatements] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n function fetchPosDeviceData() {\r\n getMethod(\"/api/POS/GetAllDevice\")\r\n .then((res) => {\r\n if (res.data?.length) {\r\n setPosDeviceData(res.data);\r\n }\r\n })\r\n .catch(console.log);\r\n }\r\n\r\n function fetchAllUsers() {\r\n getMethod(\"/api/User/all\")\r\n .then((res) => {\r\n if (res.data?.result?.length) {\r\n setAllUsers(res.data.result.filter((i) => i.roleName === \"POSAgent\"));\r\n }\r\n })\r\n .catch(console.log);\r\n }\r\n\r\n useEffect(() => {\r\n fetchPosDeviceData();\r\n fetchAllUsers();\r\n }, []);\r\n\r\n const sortHandle = (fieldValue, fieldName, sortBy) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\r\n setSortBy(sortBy);\r\n };\r\n\r\n const getAllData = () => {\r\n setLoading(true);\r\n postMethod(\r\n \"/api/MerchantProfile/GetTransactionDetails\",\r\n {\r\n merchantId: getUserId(),\r\n startDate: startDate,\r\n endDate: endDate,\r\n posMacIds: devices,\r\n posAgentUseIds: users,\r\n },\r\n \"post\"\r\n )\r\n .then((res) => {\r\n if (res?.data?.result?.length) {\r\n setStatements(res.data?.result);\r\n }\r\n })\r\n .catch(console.log)\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n let filteredData = statements.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\r\n : a[sortBy] - b[sortBy];\r\n } else if (sortDirection === \"desc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\r\n : b[sortBy] - a[sortBy];\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n if (searchText) {\r\n filteredData = filteredData.filter((item) =>\r\n String(item?.tellerName).includes(searchText?.trim())\r\n );\r\n }\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Start Date
\r\n
\r\n setStartDate(e.target.value)}\r\n >\r\n
\r\n
\r\n
\r\n
End Date
\r\n
\r\n setEndDate(e.target.value)}\r\n >\r\n
\r\n
\r\n
\r\n
Select User
\r\n ({\r\n key: i.userId,\r\n value: i.fullName,\r\n }))}\r\n onSelect={(e) => setUsers([...users, e.key])}\r\n />\r\n
\r\n
\r\n
Select POS
\r\n ({\r\n key: i.posSerialNumber,\r\n value: i.posDeviceName,\r\n }))}\r\n onSelect={(e) => setDevices([...devices, e.key])}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredData.length > 0 &&\r\n filteredData\r\n .slice(currentPage * 10, (currentPage + 1) * 10)\r\n .map((teller, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !statements.length && }\r\n
Transaction Time/DateTransaction Ref Amount (Le)CustomerTellerLocation
\r\n {new Date(teller.createdDate).toLocaleString() ?? \"-\"}\r\n {teller.transactionId ?? \"-\"}{teller.amount ?? \"-\"}{teller.fromPaymentName ?? \"-\"}{teller.collectedBy ?? \"-\"}{teller.ytdSales ?? \"-\"}
\r\n \r\n {filteredData.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {filteredData.length}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
{\" \"}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Statements;\r\n","/* eslint-disable eqeqeq */\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport Header from \"components/Headers/Header\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Container,\r\n FormGroup,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Row,\r\n Table,\r\n} from \"reactstrap\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { getUserId } from \"services/httpServices\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { getSortCls } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst sortIS = {\r\n sortPOSID: 0,\r\n sortRegisteredDate: 0,\r\n sortTransactionDate: 0,\r\n sortNoOfTransactions: 0,\r\n sortTodaysSales: 0,\r\n sortMtdSales: 0,\r\n sortYtdSales: 0,\r\n};\r\n\r\nfunction Sales() {\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [sort, setSort] = useState(sortIS);\r\n const [sortBy, setSortBy] = useState(\"\");\r\n const [sortDirection, setSortDirection] = useState(\"asc\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [currentPage, setCurrentPage] = useState(0);\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n function fetchData() {\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/SalesLandingPage?MerchantId=\" + getUserId())\r\n .then((res) => {\r\n if (res.data?.result?.length) {\r\n setData(res.data.result);\r\n }\r\n })\r\n .catch(console.log)\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const sortHandle = (fieldValue, fieldName, sortBy) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\r\n setSortBy(sortBy);\r\n };\r\n\r\n let filteredData = data.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\r\n : a[sortBy] - b[sortBy];\r\n } else if (sortDirection === \"desc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\r\n : b[sortBy] - a[sortBy];\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n if (searchText) {\r\n filteredData = filteredData.filter((item) =>\r\n String(item?.tellerName).includes(searchText?.trim())\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortTransactionDate,\r\n \"sortTransactionDate\",\r\n \"transactionDate\"\r\n )\r\n }\r\n >\r\n Date\r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortNoOfTransactions,\r\n \"sortNoOfTransactions\",\r\n \"noOfTransactions\"\r\n )\r\n }\r\n >\r\n No. of Txns\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredData.length > 0 &&\r\n filteredData\r\n .slice(currentPage * 10, (currentPage + 1) * 10)\r\n .map((teller, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredData.length && }\r\n
No. of POSNo. of Tellers No. of LocationsTotals Sales (Le)
\r\n {new Date(teller.transactionDate).toLocaleString() ??\r\n \"-\"}\r\n {teller.noOfTransactions ?? \"-\"}{teller?.noOfPOS ?? \"-\"}{teller?.noOfTellers ?? \"-\"}{teller?.noOfLocations ?? \"-\"}{teller.totalSales ?? \"-\"}
\r\n \r\n {filteredData.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {filteredData.length}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Sales;\r\n","import Header from \"components/Headers/Header\";\r\nimport React from \"react\";\r\nimport { Card, CardHeader, Container } from \"reactstrap\";\r\n\r\nfunction Maps() {\r\n return (\r\n
\r\n {\" \"}\r\n
\r\n \r\n \r\n Coming soon.\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Maps;\r\n","/* eslint-disable eqeqeq */\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport Header from \"components/Headers/Header\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Container,\r\n FormGroup,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Row,\r\n Table,\r\n} from \"reactstrap\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { getUserId } from \"services/httpServices\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { getSortCls } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\n\r\nconst sortIS = {\r\n sortTellerID: 0,\r\n sortRegisteredDate: 0,\r\n sortTellerName: 0,\r\n sortTodaysSales: 0,\r\n sortMtdSales: 0,\r\n sortYtdSales: 0,\r\n};\r\n\r\nfunction POS() {\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [sort, setSort] = useState(sortIS);\r\n const [sortBy, setSortBy] = useState(\"\");\r\n const [sortDirection, setSortDirection] = useState(\"asc\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [currentPage, setCurrentPage] = useState(0);\r\n\r\n function fetchData() {\r\n setLoading(true);\r\n getMethod(\"/api/MerchantProfile/POSLandingPage?MerchantId=\" + getUserId())\r\n .then((res) => {\r\n if (res.data?.result?.length) {\r\n setData(res.data.result);\r\n }\r\n })\r\n .catch(console.log)\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const sortHandle = (fieldValue, fieldName, sortBy) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\r\n setSortBy(sortBy);\r\n };\r\n\r\n let filteredData = data.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\r\n : a[sortBy] - b[sortBy];\r\n } else if (sortDirection === \"desc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\r\n : b[sortBy] - a[sortBy];\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n if (searchText) {\r\n filteredData = filteredData.filter((item) =>\r\n String(item?.registeredLocation).includes(searchText?.trim())\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortRegisteredLocation,\r\n \"sortRegisteredDate\",\r\n \"registeredDate\"\r\n )\r\n }\r\n >\r\n Date Registered{\" \"}\r\n \r\n \r\n \r\n \r\n sortHandle(\r\n sort.sortTodaysSales,\r\n \"sortTodaysSales\",\r\n \"todaysSales\"\r\n )\r\n }\r\n >\r\n Today's Sales{\" \"}\r\n \r\n \r\n \r\n sortHandle(sort.sortMtdSales, \"sortMtdSales\", \"mtdSales\")\r\n }\r\n >\r\n MTD Sales{\" \"}\r\n \r\n \r\n \r\n sortHandle(sort.sortYtdSales, \"sortYtdSales\", \"ytdSales\")\r\n }\r\n >\r\n YTD Sales{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n {filteredData.length > 0 &&\r\n filteredData\r\n .slice(currentPage * 10, (currentPage + 1) * 10)\r\n .map((teller, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredData.length && }\r\n
POS ID Registered Location
{teller.pos ?? \"-\"}{teller.registeredDate ?? \"-\"}{teller.registeredLocation ?? \"-\"}{teller.todaysSales ?? \"-\"}{teller.mtdSales ?? \"-\"}{teller.ytdSales ?? \"-\"}
\r\n \r\n {filteredData.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {filteredData.length}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
{\" \"}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default POS;\r\n","export default __webpack_public_path__ + \"static/media/Apex-logo.7b071ba0.jpeg\";","export default __webpack_public_path__ + \"static/media/link-logo.ab656a24.png\";","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Input,\r\n InputGroupText,\r\n InputGroupAddon,\r\n InputGroup,\r\n Container,\r\n Row,\r\n Col,\r\n Label,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n} from \"reactstrap\";\r\nimport Header from \"../../components/Headers/Header\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\r\nimport { useHistory } from \"react-router\";\r\nimport swal from \"sweetalert\";\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport { getUserEmail } from \"services/httpServices\";\r\nimport PhoneInput from \"react-phone-input-2\";\r\nimport \"react-phone-input-2/lib/style.css\";\r\nimport { MOBILE_ONLY_COUNTRY } from \"appConfig\";\r\nimport { getAmt } from \"services/util\";\r\nimport { getLoginType } from \"services/httpServices\";\r\nimport { getSuperAgentId } from \"services/httpServices\";\r\nimport { useLocation, useParams } from \"react-router-dom/cjs/react-router-dom\";\r\nimport LapoLogo from \"../../assets/img/brand/lapologo.PNG\";\r\nimport NacsaLogo from \"../../assets/img/brand/nacsaLogo.png\";\r\nimport WellbodiLogo from \"../../assets/img/brand/wellbodi-logo.jpg\";\r\nimport SpayLogo from \"../../assets/img/brand/project_logo.png\";\r\nimport ApexLogo from \"../../assets/img/brand/Apex-logo.jpeg\";\r\nimport LinkLogo from \"../../assets/img/brand/link-logo.png\";\r\nimport { getUserName } from \"services/httpServices\";\r\n\r\nconst initialValue = {\r\n toMobWithCC: \"\",\r\n toMobWithoutCC: \"\",\r\n toMobCC: \"\",\r\n amount: \"\",\r\n pin: \"\",\r\n otp: \"\",\r\n};\r\nconst STR = `Please enter the mobile number whom you want to transfer`;\r\n\r\nconst paymentToOptions = [\r\n {\r\n name: \"Lapo\",\r\n value: \"Lapo\",\r\n logo: LapoLogo,\r\n },\r\n {\r\n name: \"NaCSA\",\r\n value: \"Nacsa\",\r\n logo: NacsaLogo,\r\n },\r\n {\r\n name: \"Wellbodi\",\r\n value: \"wellbodi\",\r\n logo: WellbodiLogo,\r\n },\r\n {\r\n name: \"SmartPay\",\r\n value: \"SmartPay\",\r\n logo: SpayLogo,\r\n },\r\n {\r\n name: \"Apex\",\r\n value: \"Apex\",\r\n logo: ApexLogo,\r\n },\r\n {\r\n name: \"Link\",\r\n value: \"Link\",\r\n logo: LinkLogo,\r\n },\r\n];\r\n\r\nconst CashoutSubAgent = (props) => {\r\n const [values, setValues] = useState(initialValue);\r\n const [subsInfo, setSubsInfo] = React.useState({});\r\n const [SubscriberDetails, setSubscriberDetails] = React.useState({});\r\n const [toUserInfo, setToUserInfo] = React.useState({});\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [spinner, setSpinner] = React.useState(false);\r\n const [use1FA, set1FA] = React.useState(false);\r\n const [use2FA, set2FA] = React.useState(false);\r\n const [showPswd, setShowPswd] = React.useState(false);\r\n const [form, setForm] = React.useState(1);\r\n const [resendLoader, setResendLoader] = React.useState(false);\r\n const [paymentTo, setPaymentTo] = useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const routeName = useLocation();\r\n let loginType = getLoginType();\r\n // console.log(routeName.pathname);\r\n\r\n /**======================== React Hooks ==========================*/\r\n\r\n useEffect(() => {\r\n if (paymentTo === \"SmartPay\") {\r\n fetchSubs();\r\n }\r\n }, [paymentTo]);\r\n\r\n /**======================== File Functions ==========================*/\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const openModal = (msg) => {\r\n swal({\r\n // title: msg,\r\n icon: \"success\",\r\n text: msg,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n closeOnClickOutside: false,\r\n buttons: {\r\n confirm: {\r\n text: \"Ok\",\r\n visible: true,\r\n closeModal: true,\r\n className: \"sweet-btn\",\r\n },\r\n },\r\n }).then((confirm) => {\r\n setSpinner(false);\r\n if (confirm) {\r\n setForm(3);\r\n } else {\r\n setForm(3);\r\n }\r\n });\r\n };\r\n\r\n const phoneChange = (value, data, event, formattedValue) => {\r\n if (data.dialCode && data.dialCode.length) {\r\n setValues({\r\n ...values,\r\n toMobWithCC: value,\r\n toMobCC: data.dialCode,\r\n toMobWithoutCC: value.substring(data.dialCode.length),\r\n });\r\n }\r\n return;\r\n };\r\n\r\n const goBack1 = () => {\r\n setValues(initialValue);\r\n setToUserInfo({});\r\n setForm(1);\r\n };\r\n\r\n const goBack2 = () => {\r\n setValues({ ...values, otp: \"\", pin: \"\" });\r\n setForm(2);\r\n };\r\n\r\n const resendOtp = (e) => {\r\n e.preventDefault();\r\n setValues({ ...values, otp: \"\" });\r\n setResendLoader(true);\r\n genOtp();\r\n };\r\n\r\n const checkForm = () => {\r\n if (form == 2 || form == 3) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n /**======================== Form Validation function ==========================*/\r\n\r\n const handleSubmit1 = (e) => {\r\n e?.preventDefault();\r\n const validationErrors = validate1(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n setOpenDelModal(true);\r\n // handleCashout();\r\n }\r\n };\r\n\r\n const validate1 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.toMobWithCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n } else if (!inputs.toMobWithoutCC) {\r\n errors.toMobWithCC = \"Phone number is required\";\r\n }\r\n\r\n if (!inputs.amount) {\r\n errors.amount = \"amount is required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const handleSubmit2 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate2(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n verifyPinV2();\r\n }\r\n };\r\n\r\n const validate2 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"Pin is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleSubmit3 = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate3(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n transferMoney();\r\n }\r\n };\r\n\r\n const validate3 = (inputs) => {\r\n var errors = {};\r\n if (!inputs.amount) {\r\n errors.amount = \"Amount is required\";\r\n }\r\n if (!inputs.pin) {\r\n errors.pin = \"Pin is required\";\r\n }\r\n if (use2FA && !inputs.otp) {\r\n errors.otp = \"OTP is required\";\r\n }\r\n if (!toUserInfo || !toUserInfo.userId) {\r\n errors.toUserId = \"To userid is required\";\r\n }\r\n return errors;\r\n };\r\n\r\n const handleInputChange = (ev) => {\r\n var { name, value } = ev.target;\r\n value = value.trim();\r\n if (name === \"amount\") {\r\n if (value == \"\") {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n if (checkNumberOnly(value)) {\r\n setValues({ ...values, [name]: value });\r\n } else {\r\n setValues({ ...values, [name]: \"\" });\r\n }\r\n }\r\n } else if (name === \"password\") {\r\n if (pinValidation(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else if (name === \"otp\") {\r\n if (checkOTP(value)) {\r\n setValues({ ...values, [name]: value });\r\n }\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n\r\n const checkOTP = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n if (value.length <= 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const pinValidation = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 4) {\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const checkNumberOnly = (value) => {\r\n // let digiRegex = /^[0-9]*$/;\r\n let digiRegex = /^[+-]?([1-9]+\\.?[0-9]*|\\.[0-9]+)$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n /**======================== API Calls ==========================*/\r\n\r\n const fetchSubs = () => {\r\n let errorMsg = \"\";\r\n let id = getUserId();\r\n\r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/agent/GetSuperAgent/\" + id;\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Agent/GetMasterAgentById/\" + id;\r\n } else if (loginType === \"Agent\") {\r\n setForm(2);\r\n checkToMob();\r\n return;\r\n } else {\r\n url = \"/api/Subscriber/GetByUserId/\" + id;\r\n }\r\n setLoading(true);\r\n postMethod(url, null, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setSubsInfo(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching subscriber info\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching subscriber info\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const checkToMob = () => {\r\n let errorMsg = \"\";\r\n setSpinner(true);\r\n\r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/Transactions/validateSubAgent/\";\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Transactions/validateSuperAgent/\";\r\n } else if (loginType === \"Agent\") {\r\n url = \"/api/Agent/GetSuperAgent/\" + getSuperAgentId();\r\n } else {\r\n if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\r\n // url = \"/api/Transactions/validateSubAgent-Subscriber/\";\r\n url = \"/api/Transactions/CashOutToOtherPlatform\";\r\n } else {\r\n url = \"/api/Transactions/validateSubscriber/\";\r\n }\r\n }\r\n postMethod(url + values.toMobWithCC, {}, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n setToUserInfo({\r\n ...res.data.result,\r\n userId:\r\n res.data.result?.userId || res.data?.result?.userProfileId,\r\n });\r\n setForm(2);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg =\r\n res.data.responseMessage || \"Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching user info\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n const verifyPinV2 = () => {\r\n var errorMsg = \"\";\r\n // var data = {\r\n // \"PaymentAmount\": Number(values.amount),\r\n // \"Password\": values.pin,\r\n // \"Email\": getUserEmail().trim(),\r\n // \"PaymentType\": \"BalanceTransfer\"\r\n // };\r\n\r\n var data = {\r\n PaymentAmount: Number(values.amount),\r\n Password: values.pin,\r\n Email: getUserEmail().trim(),\r\n PaymentType: \"BalanceTransfer\",\r\n };\r\n let url = \"\";\r\n\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/agent/GetSubAgentDetails\";\r\n data.Email = subsInfo.mobNumber;\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Agent/GetSuperAgentDetails\";\r\n data.Email = subsInfo.mobNumber;\r\n } else if (loginType === \"Agent\") {\r\n url = \"/api/Agent/GetSuperAgent/\" + getSuperAgentId();\r\n } else {\r\n if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\r\n url = \"/api/Subscriber/GetSubscriberDetailsForCashout/\";\r\n } else {\r\n url = \"/api/Subscriber/GetSubscriberDetails/\";\r\n }\r\n }\r\n setSpinner(true);\r\n // let url = '/api/pos/PaymentPinVerification';\r\n postMethod(url, JSON.stringify(data), \"post\")\r\n .then((res) => {\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let result = res.data.result;\r\n setSubscriberDetails(result);\r\n if (result.authFactorType == \"1FA\") {\r\n set1FA(true);\r\n set2FA(false);\r\n } else if (result.authFactorType == \"2FA\") {\r\n set1FA(false);\r\n set2FA(true);\r\n } else {\r\n set1FA(false);\r\n set2FA(false);\r\n }\r\n verifyPinHandle(result);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n } else {\r\n errorMsg = \"Unknown error in validating pin\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n })\r\n .catch((err) => {\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n });\r\n };\r\n\r\n const verifyPinHandle = (result) => {\r\n if (result.authFactorType == \"2FA\") {\r\n genOtp();\r\n } else {\r\n setSpinner(false);\r\n setForm(3);\r\n }\r\n };\r\n\r\n const genOtp = () => {\r\n var errorMsg = \"\";\r\n var data = JSON.stringify({\r\n UserId: getUserId(),\r\n OtpType: \"BalanceTransfer\",\r\n });\r\n let url = \"/api/Transactions/Sendotp\";\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n setResendLoader(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Otp sent\";\r\n // notifySuccess(msg);\r\n openModal(msg);\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg = res.data.responseMessage || \"Error in generating otp\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n } else {\r\n errorMsg = \"Unknown error in generating otp\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n setSpinner(false);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n setResendLoader(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const transferMoney = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n ToUserId: toUserInfo.userId,\r\n Amount: Number(values.amount),\r\n PIN: values.pin,\r\n };\r\n if (use2FA) {\r\n data[\"Otp\"] = values.otp;\r\n }\r\n setSpinner(true);\r\n\r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSubAgent\";\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSuperAgent\";\r\n } else if (loginType === \"Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSuperAgentReverse\";\r\n data.ToUserId = getSuperAgentId();\r\n } else {\r\n if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSubAgentFromSubscriber\";\r\n } else {\r\n url = \"/api/Transactions/walletBalanceTransfer\";\r\n }\r\n }\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Amount Transferred\";\r\n notifySuccess(msg);\r\n history.push(\"/index\");\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const handleCashout = () => {\r\n var errorMsg = \"\";\r\n var data = {\r\n walletOrAccount: values.toMobWithoutCC,\r\n subAgentName: getUserName(),\r\n amount: Number(values.amount),\r\n platform: paymentTo === \"Nacsa\" ? \"NACSA\" : paymentTo,\r\n };\r\n\r\n setSpinner(true);\r\n\r\n let url = \"\";\r\n if (loginType === \"Super Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSubAgent\";\r\n } else if (loginType === \"Master Agent\") {\r\n url = \"/api/Transactions/walletBalanceTransferToSuperAgent\";\r\n } else if (loginType === \"Agent\") {\r\n // url = \"/api/Transactions/walletBalanceTransferToSuperAgentReverse\";\r\n // data.ToUserId = getSuperAgentId();\r\n url = \"/api/Transactions/CashOutToOtherPlatform\";\r\n } else {\r\n // if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\r\n // url = \"/api/Transactions/walletBalanceTransferToSubAgentFromSubscriber\";\r\n // } else {\r\n url = \"/api/Transactions/walletBalanceTransfer\";\r\n // }\r\n }\r\n postMethod(url, data, \"post\")\r\n .then((res) => {\r\n setSpinner(false);\r\n if (res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n let msg = res.data.responseMessage || \"Amount Transferred\";\r\n notifySuccess(msg);\r\n history.push(\"/index\");\r\n } else if (res.data.responseCode === \"400\") {\r\n errorMsg =\r\n res.data.responseMessage || \"Error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n errorMsg = \"Unknown error in transferring amount\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setSpinner(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Confirm Cashout

\r\n
\r\n\r\n \r\n
\r\n
\r\n

\r\n are you sure want to cashout Amount Le. {values.amount}\r\n

\r\n
\r\n \r\n Yes {spinner && }\r\n {\" \"}\r\n setOpenDelModal(false)}\r\n disabled={spinner}\r\n >\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Cash Out

\r\n \r\n
\r\n
\r\n \r\n {loading && }\r\n {paymentTo === null && (\r\n \r\n {paymentToOptions.map((item) => (\r\n \r\n setPaymentTo(item.value)}\r\n className=\"h-25 w-100 flex shadow--hover bg-white-original justify-content-center align-items-center p-4 border pointer-event\"\r\n >\r\n \r\n
{item.name}
\r\n
\r\n \r\n ))}\r\n
\r\n )}\r\n {!loading && (\r\n <>\r\n {form == 1 &&\r\n loginType === \"Agent\" &&\r\n (paymentTo === \"Lapo\" ||\r\n paymentTo === \"Nacsa\" ||\r\n paymentTo === \"wellbodi\" ||\r\n paymentTo === \"Apex\" ||\r\n paymentTo === \"Link\") && (\r\n
\r\n \r\n \r\n \r\n \r\n {paymentTo} Wallet Id\r\n \r\n \r\n\r\n {errors.toMobWithCC && (\r\n
\r\n * {errors.toMobWithCC}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {\r\n setPaymentTo(null);\r\n setForm(1);\r\n }}\r\n >\r\n Back{\" \"}\r\n \r\n \r\n Submit{\" \"}\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {checkForm() && (\r\n \r\n \r\n User Details\r\n
\r\n
\r\n \r\n Transfer to -{\" \"}\r\n {toUserInfo.subscriberName ||\r\n toUserInfo?.fullName}\r\n \r\n
\r\n
\r\n \r\n Mobile Number -{\" \"}\r\n {`(${\r\n toUserInfo.mobileCodeId ||\r\n toUserInfo?.mobileCode\r\n }) - ${\r\n loginType === \"Agent\"\r\n ? toUserInfo?.mobileNumber\r\n : toUserInfo?.mobNumber\r\n }`}\r\n \r\n
\r\n
\r\n \r\n Email - {toUserInfo.email}\r\n \r\n
\r\n {form == 3 && (\r\n
\r\n \r\n Amount -  \r\n Le  \r\n {getAmt(values.amount)}\r\n \r\n
\r\n )}\r\n
\r\n {routeName.pathname.includes(\"cash-out\") ? (\r\n \r\n Fees - Le {SubscriberDetails.fees}\r\n  (Sub Agent Commission:{\" \"}\r\n \r\n {SubscriberDetails.commissionWillCredit}\r\n {\" \"}\r\n & Subscriber Commission:{\" \"}\r\n {SubscriberDetails.actualCommission})\r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n
\r\n )}\r\n\r\n {form == 2 && (\r\n
\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n {errors.amount && (\r\n
\r\n * {errors.amount}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n\r\n \r\n \r\n {!showPswd && (\r\n \r\n \r\n setShowPswd(true)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {showPswd && (\r\n \r\n \r\n setShowPswd(false)}\r\n />\r\n \r\n \r\n )}\r\n \r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n {loginType !== \"Agent\" && (\r\n \r\n
\r\n \r\n \r\n   Back\r\n \r\n
\r\n \r\n )}\r\n\r\n \r\n
\r\n {\r\n setPaymentTo(null);\r\n setForm(1);\r\n }}\r\n >\r\n Back{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {form == 3 && (\r\n
\r\n {use2FA && (\r\n \r\n \r\n \r\n \r\n OTP\r\n \r\n\r\n
\r\n \r\n \r\n Resend\r\n {\" \"}\r\n    \r\n {resendLoader && (\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n * we have sent you an OTP on your\r\n registered mobile number / email\r\n \r\n \r\n
\r\n {errors.otp && (\r\n
\r\n * {errors.otp}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n\r\n \r\n \r\n
\r\n \r\n   Back\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Submit{\" \"}\r\n {spinner && (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CashoutSubAgent;\r\n","import React from \"react\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n FormGroup,\r\n Form,\r\n Row,\r\n Col,\r\n FormText,\r\n} from \"reactstrap\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport CryptoJS from \"crypto-js\";\r\nimport OTPInput from \"react-otp-input\";\r\n\r\nfunction FSPCustomerResetPin({ closeModal, customerId }) {\r\n const [values, setValues] = React.useState({ pin: \"\", confirmPin: \"\" });\r\n const [errors, setErrors] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const validate = (inputs) => {\r\n let errors = {};\r\n if (\r\n !String(inputs.pin)?.trim().length ||\r\n String(inputs.pin)?.trim().length !== 4\r\n ) {\r\n errors.pin = \"Pin must be 4 digits long\";\r\n }\r\n if (inputs.pin !== inputs.confirmPin) {\r\n errors.confirmPin = \"Pin and Confirm pin mismatch\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const encryptText = (textToEncrypt, key = \"PaymentPIN\") => {\r\n const keyBytes = CryptoJS.enc.Utf8.parse(\r\n key.padEnd(16, \" \").substring(0, 16)\r\n );\r\n const iv = keyBytes;\r\n\r\n const encrypted = CryptoJS.AES.encrypt(textToEncrypt, keyBytes, {\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n\r\n return encrypted.toString();\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n const validationErrors = validate(values);\r\n setErrors(validationErrors);\r\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\r\n if (isNoError) {\r\n const payload = {\r\n pin: encryptText(values.pin),\r\n id: customerId,\r\n };\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n postMethod(\"/api/FSP/Customer/ResetPin\", payload, \"post\")\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n notifySuccess(\"Saved Successfully\");\r\n closeModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error while saving\r\n errorMsg = res.data.responseMessage || \"Error while saving\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in saving\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n // Not valid response from server\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Reset FSP Customer PIN

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n PIN\r\n \r\n setValues({ ...values, pin: e })}\r\n inputStyle={{\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius: \"12px\",\r\n border: \"1px solid #ddd\",\r\n marginRight: \"8px\",\r\n }}\r\n inputType=\"password\"\r\n numInputs={4}\r\n renderSeparator={ }\r\n renderInput={(props) => }\r\n />\r\n {errors.pin && (\r\n
\r\n * {errors.pin}\r\n
\r\n )}{\" \"}\r\n
\r\n \r\n \r\n \r\n \r\n Confirm PIN\r\n \r\n \r\n setValues({ ...values, confirmPin: e })\r\n }\r\n inputStyle={{\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius: \"12px\",\r\n border: \"1px solid #ddd\",\r\n marginRight: \"8px\",\r\n }}\r\n numInputs={4}\r\n inputType=\"password\"\r\n renderSeparator={ }\r\n renderInput={(props) => }\r\n />\r\n {errors.confirmPin && (\r\n
\r\n * {errors.confirmPin}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n {loading ? \"Loading...\" : \"Submit\"}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FSPCustomerResetPin;\r\n","/* eslint-disable no-mixed-operators */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable eqeqeq */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n// reactstrap components\r\nimport { Card, CardHeader, Table, Row, Button, Col } from \"reactstrap\";\r\n// core components\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { postMethod } from \"../../services/httpServices\";\r\n\r\nconst CardsList = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [filteredList, setFilteredList] = useState([]);\r\n\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n if (props?.customerId) {\r\n fetchNFC(props?.customerId);\r\n }\r\n }, []);\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const fetchNFC = async (customerId) => {\r\n let errorMsg = \"\";\r\n setLoading(true);\r\n\r\n postMethod(\r\n \"/api/POS/Search/GetSmartPayCardByCustomerId?Id=\" + customerId,\r\n {},\r\n \"post\"\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n if (!res.data.result || !res.data.result.length) {\r\n res.data.result = [];\r\n }\r\n setFilteredList(res.data.result);\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n notifyFailed(\"Something went wrong!, Please call 3737\");\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {/* Page content */}\r\n
\r\n {/* Table */}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

Customer Cards List

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredList.length > 0 ? (\r\n filteredList.map((mmo, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {/* */}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n {\" \"}\r\n {loading ? \"Loading...\" : \"No Cards Available!\"}\r\n \r\n \r\n )}\r\n \r\n
Card NameIDSerial NumberStatuscreatedBycreatedDate
{mmo.nfcCardName}{mmo.nfcCardID}{mmo.nfcCardClientID}\r\n \r\n {mmo.createdBy}\r\n {new Date(mmo.createdDate).toLocaleDateString()}\r\n \r\n {privileges.edit && (\r\n {\r\n setEditObj(mmo);\r\n setOpenEditModal(true);\r\n }}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Edit\"\r\n >\r\n \r\n \r\n )}\r\n {!mmo.isBlock ? (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n ) : (\r\n openDelete(mmo)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CardsList;\r\n","/* eslint-disable eqeqeq */\r\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\r\nimport Header from \"components/Headers/Header\";\r\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n Col,\r\n Container,\r\n FormGroup,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Modal,\r\n ModalBody,\r\n ModalHeader,\r\n Row,\r\n Table,\r\n} from \"reactstrap\";\r\nimport { getMethod } from \"services/httpServices\";\r\nimport { btnCss, iconCss } from \"../../appConfig\";\r\nimport { getSortCls } from \"services/util\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport { postMethod } from \"services/httpServices\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport FSPCustomerResetPin from \"./fsp-customer-reset-pin\";\r\nimport CardsList from \"./cards-list\";\r\n\r\nconst sortIS = {\r\n sortFullName: 0,\r\n};\r\n\r\nfunction FSPCustomersList() {\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [sort, setSort] = useState(sortIS);\r\n const [sortBy, setSortBy] = useState(\"\");\r\n const [sortDirection, setSortDirection] = useState(\"asc\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [deleteObj, setDeleteObj] = React.useState(null);\r\n const [openDelModal, setOpenDelModal] = React.useState(false);\r\n const [isCardModalOpen, setIsOpenCardModal] = React.useState(false);\r\n const [openReset, setOpenReset] = React.useState(false);\r\n const [modalLoading, setModalLoading] = React.useState(false);\r\n\r\n const { addToast } = useToasts();\r\n\r\n function fetchData() {\r\n setLoading(true);\r\n getMethod(\"/api/FSP/Profile/Customers\")\r\n .then((res) => {\r\n if (res.data?.result?.length) {\r\n setData(res.data.result);\r\n }\r\n })\r\n .catch(console.log)\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const handlePageClick = ({ selected: selectedPage }) => {\r\n setCurrentPage(selectedPage);\r\n };\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const sortHandle = (fieldValue, fieldName, sortBy) => {\r\n let newValue = 0;\r\n if (fieldValue == \"0\") {\r\n newValue = \"1\";\r\n } else if (fieldValue == \"1\") {\r\n newValue = \"2\";\r\n } else if (fieldValue == \"2\") {\r\n newValue = \"1\";\r\n }\r\n setSort({ ...sortIS, [fieldName]: newValue });\r\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\r\n setSortBy(sortBy);\r\n };\r\n\r\n let filteredData = data.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\r\n : a[sortBy] - b[sortBy];\r\n } else if (sortDirection === \"desc\") {\r\n return typeof a[sortBy] === \"string\"\r\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\r\n : b[sortBy] - a[sortBy];\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n if (searchText) {\r\n filteredData = filteredData.filter((item) =>\r\n String(item?.fullName)\r\n .toLocaleLowerCase()\r\n .includes(searchText?.trim().toLocaleLowerCase())\r\n );\r\n }\r\n\r\n const notifySuccess = (text) => {\r\n if (!text) {\r\n text = \"Save successfully\";\r\n }\r\n addToast(text, {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const closeDeleteModal = () => {\r\n setDeleteObj(null);\r\n fetchData();\r\n setOpenDelModal(false);\r\n setOpenReset(false);\r\n setIsOpenCardModal(false)\r\n };\r\n\r\n const notifyFailed = (text) => {\r\n if (!text) {\r\n text = \"Error in saving\";\r\n }\r\n addToast(text, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n });\r\n };\r\n\r\n const deleteFsp = () => {\r\n let errorMsg = \"\";\r\n setModalLoading(true);\r\n let url = \"/api/FSP/Customer/Block/\" + deleteObj.id;\r\n postMethod(url, {}, \"post\")\r\n .then((res) => {\r\n setModalLoading(false);\r\n if (typeof res.data === \"string\") {\r\n let text = deleteObj.isBlocked\r\n ? \"FSP Customer unblocked successfully\"\r\n : \"FSP Customer blocked successfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n return;\r\n }\r\n if (res && res.data) {\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n let text = deleteObj.isBlocked\r\n ? \"FSP Customer unblocked successfully\"\r\n : \"FSP Customer blocked successfully\";\r\n notifySuccess(text);\r\n closeDeleteModal();\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\r\n notifyFailed(errorMsg);\r\n } else {\r\n // Unknown Error\r\n errorMsg = \"Unknown Error in fetching\";\r\n notifyFailed(errorMsg);\r\n }\r\n } else {\r\n errorMsg = \"Unknown Error\";\r\n notifyFailed(errorMsg);\r\n }\r\n })\r\n .catch((err) => {\r\n setModalLoading(false);\r\n errorMsg = \"Something went wrong!, Please call 3737\";\r\n notifyFailed(errorMsg);\r\n });\r\n };\r\n\r\n const openDelete = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenDelModal(true);\r\n };\r\n\r\n const openResetModal = (mmo) => {\r\n setDeleteObj(mmo);\r\n setOpenReset(true);\r\n };\r\n\r\n const openCardsModal = (mmo) => {\r\n setDeleteObj(mmo);\r\n setIsOpenCardModal(true);\r\n };\r\n\r\n const getBlockText = () => {\r\n let str = \"block\";\r\n if (deleteObj.isBlocked) {\r\n str = \"unblock\";\r\n }\r\n\r\n return `Are you sure you want to ${str} ${deleteObj?.fullName} FSP Customer ?`;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n

\r\n {deleteObj && deleteObj.isBlocked\r\n ? \"Unblock FSP Customer\"\r\n : \"Block FSP Customer\"}\r\n

\r\n
\r\n\r\n \r\n
\r\n {deleteObj && deleteObj.fullName ? (\r\n
\r\n {deleteObj?.isBlocked && (\r\n

\r\n You have verified all the personal information from the\r\n customer and after verification it's being unblock\r\n

\r\n )}\r\n

{getBlockText()}

\r\n
\r\n \r\n Yes{\" \"}\r\n {modalLoading && }\r\n {\" \"}\r\n \r\n No\r\n \r\n
\r\n
\r\n ) : (\r\n <> \r\n )}\r\n
\r\n
\r\n
\r\n {openReset && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {isCardModalOpen && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n sortHandle(sort.sortFullName, \"sortFullName\", \"fullName\")\r\n }\r\n >\r\n Full Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredData.length > 0 &&\r\n filteredData\r\n .slice(currentPage * 10, (currentPage + 1) * 10)\r\n .map((teller, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {teller.verificationStatus === \"Verified\" ? (\r\n \r\n ) : teller.verificationStatus === \"Pending\" ? (\r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n \r\n\r\n \r\n \r\n );\r\n })}\r\n \r\n {loading && }\r\n {!loading && !filteredData.length && }\r\n
Customer IdEmailGenderDOBVerification StatusActions
{teller.customerId ?? \"-\"}{teller.fullName ?? \"-\"}{teller.email ?? \"-\"}\r\n {teller.gender === \"M\" ? (\r\n \r\n ) : teller.gender === \"F\" ? (\r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n \r\n {new Date(teller.dateOfBirth).toLocaleDateString() ??\r\n \"-\"}\r\n \r\n {!teller.isBlocked ? (\r\n openDelete(teller)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Block\"\r\n >\r\n \r\n \r\n ) : (\r\n openDelete(teller)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Unblock\"\r\n >\r\n \r\n \r\n )}\r\n openResetModal(teller)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"Reset PIN\"\r\n >\r\n \r\n \r\n openCardsModal(teller)}\r\n size=\"sm\"\r\n style={btnCss}\r\n data-toggle=\"tooltip\"\r\n title=\"View Cards\"\r\n >\r\n \r\n \r\n
\r\n \r\n {filteredData.length > 0 && (\r\n \r\n \r\n
\r\n \r\n Total Records : {filteredData.length}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
{\" \"}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FSPCustomersList;\r\n","import Index from \"views/Index.js\";\r\nimport Login from \"views/examples/Login.js\";\r\n// import MobileMoneyList from \"views/mobile-money-list\";\r\n// import BankList from \"views/bank/bank-list\";\r\nimport MerchantList from \"views/merchant/merchant-list\";\r\nimport MerchantUsersList from \"views/merchant-users/merchant-users-list\";\r\nimport MerchantLocationsList from \"views/merchant-locations/merchant-locations-list\";\r\nimport NFCList from \"views/nfc/nfc-list\";\r\n// import AddSubscriber from \"views/add-subscriber\";\r\nimport ChangePassword from \"views/change-password\";\r\nimport ForgotPassword from \"views/examples/forgot-pswd\";\r\n// import SubscriberList from \"views/subscriber/subscriber-list\";\r\nimport FSPList from \"views/fsp/fsp-list\";\r\nimport FSPUsersList from \"views/fsp-users/fsp-users-list\";\r\nimport SettlementProcessList from \"views/settlement-process/settlement-process-list\";\r\nimport MerchantSettlementTransactionHistoryList from \"views/merchant-settlement-transaction-history/merchant-settlement-transaction-history-list\";\r\nimport CustomerWhiteList from \"views/customer-whitelist\";\r\nimport UserList from \"views/users/user-list\";\r\n// import BankPaymentList from \"views/bank/payment-list\";\r\nimport TopUpWallet from \"views/subscriber/top-up-new\";\r\nimport SubsTransaction from \"views/subscriber/subs-trans\";\r\nimport MakePayment from \"views/subscriber/make-payment\";\r\nimport AgentMakePayment from \"views/sub-agent/make-payment\";\r\nimport CollectionList from \"views/finance-user/collection-list\";\r\nimport SettlementList from \"views/settlement-bank/settle-merchant-payment\";\r\nimport PayWithVoucher from \"views/examples/pay-with-voucher\";\r\nimport TopUpHistory from \"views/subscriber/topup-history-list\";\r\nimport SHOWMSG from \"views/examples/show-msg\";\r\nimport MerchantPaymentList from \"views/merchant/payments\";\r\nimport SearchTransaction from \"views/examples/search-transaction\";\r\n// import DayEndReport from \"views/merchant/day-end-report\";\r\nimport Reports from \"views/report/reports\";\r\nimport SignupSubscriber from \"views/sign-up/signup-subscriber\";\r\nimport ChangePin from \"views/subscriber/change-pin\";\r\nimport PosTerminalList from \"views/pos-terminal/pos-terminal-list\";\r\nimport CommissionList from \"views/commission/commission-list\";\r\nimport AgentList from \"views/commission//agent-commission-list\";\r\n// import BankCommission from \"views/commission/bank-commission-list\";\r\n// import MMOCommission from \"views/commission/mmo-commission-list\";\r\nimport MerchantCommission from \"views/commission/merchant-commission\";\r\nimport CollectionCommission from \"views/finance-user/commission-list\";\r\nimport BankCollectionCommission from \"views/bank/commission-list\";\r\nimport SubscriberVerificationList from \"views/bank/subscriber-verification\";\r\n// import CheckBal from \"views/merchant/check-balance\";\r\nimport TransferMoney from \"views/subscriber/transfer-money\";\r\nimport TopUpSubscriberList from \"views/top-up-subscriber/top-up-subscriber-list\";\r\nimport Logs from \"views/logs/logs\";\r\nimport privacyPolicy from \"views/examples/privacy-policy\";\r\nimport WhiteListCustomer from \"views/examples/whiteListCustomer\";\r\nimport WhiteListCustomerLink from \"views/examples/whiteListCustomerLink\";\r\nimport PaymentInfo from \"views/payment-info\";\r\nimport AddSuperAgent from \"views/super-agent/add-super-agent\";\r\nimport SuperAgentList from \"views/super-agent/super-agent-list\";\r\nimport AddSubAgent from \"views/sub-agent/add-sub-agent\";\r\nimport SubAgentsList from \"views/sub-agent/sub-agent-list\";\r\nimport MasterAgentsList from \"views/master-agent/master-agent-list\";\r\nimport AddMasterAgent from \"views/master-agent/add-master-agent\";\r\nimport topUp from \"views/subscriber/top-up\";\r\nimport EDSATransactionsMerchant from \"views/merchant/EDSATransactionsMerchant\";\r\nimport KnowledgeBase from \"views/knowledge-base\";\r\nimport Tellers from \"views/tellers\";\r\nimport Statements from \"views/statements\";\r\nimport Sales from \"views/sales\";\r\nimport Maps from \"views/maps\";\r\nimport POS from \"views/pos\";\r\nimport CashoutSubAgent from \"views/sub-agent/Cashout\";\r\nimport FSPCustomersList from \"views/fsp-customers/fsp-customers-list\";\r\n\r\nconst routes = [\r\n {\r\n path: \"/index\",\r\n name: \"Dashboard\",\r\n icon: \"ni ni-tv-2\",\r\n component: Index,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Admin\",\r\n \"Finance\",\r\n \"Bank\",\r\n \"SettlementBank\",\r\n \"Subscriber\",\r\n \"Super Agent\",\r\n \"Agent\",\r\n \"Master Agent\",\r\n \"Merchant\",\r\n ],\r\n },\r\n {\r\n path: \"/user-list\",\r\n name: \"Users\",\r\n icon: \"fa fa-users\",\r\n component: UserList,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Admin\",\r\n \"Finance\",\r\n \"Operations Officer\",\r\n \"Customer Support Supervisor\",\r\n \"Audits and Compliance\",\r\n \"Sales Supervisor\",\r\n \"Sales Representative\",\r\n \"Customer Support Representative\",\r\n \"Operation supervisor\",\r\n ],\r\n },\r\n {\r\n path: \"/login\",\r\n name: \"Login\",\r\n icon: \"ni ni-key-25\",\r\n component: Login,\r\n layout: \"/auth\",\r\n },\r\n {\r\n //Privay-policy\r\n path: \"/privacy-policy\",\r\n name: \"Privacy policy\",\r\n layout: \"/auth\",\r\n icon: \"ni ni-key-25\",\r\n component: privacyPolicy,\r\n },\r\n // {\r\n // path: \"/mobile-money\",\r\n // name: \"MM Operators\",\r\n // icon: \"ni ni-bullet-list-67\",\r\n // component: MobileMoneyList,\r\n // layout: \"/admin\",\r\n // allow: [\r\n // \"Admin\",\r\n // \"Finance\",\r\n // \"Operations Officer\",\r\n // \"Customer Support Supervisor\",\r\n // \"Audits and Compliance\",\r\n // \"Sales Supervisor\",\r\n // \"Sales Representative\",\r\n // \"Customer Support Representative\",\r\n // \"Operation supervisor\",\r\n // ],\r\n // },\r\n // {\r\n // path: \"/banks\",\r\n // name: \"Banks\",\r\n // icon: \"ni ni-bag-17\",\r\n // component: BankList,\r\n // layout: \"/admin\",\r\n // allow: [\r\n // \"Admin\",\r\n // \"Finance\",\r\n // \"Operations Officer\",\r\n // \"Customer Support Supervisor\",\r\n // \"Audits and Compliance\",\r\n // \"Sales Supervisor\",\r\n // \"Sales Representative\",\r\n // \"Customer Support Representative\",\r\n // \"Operation supervisor\",\r\n // ],\r\n // },\r\n {\r\n path: \"/merchant\",\r\n name: \"Merchants\",\r\n icon: \"ni ni-single-02\",\r\n component: MerchantList,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Admin\",\r\n \"Finance\",\r\n \"Operations Officer\",\r\n \"Customer Support Supervisor\",\r\n \"Audits and Compliance\",\r\n \"Sales Supervisor\",\r\n \"Sales Representative\",\r\n \"Customer Support Representative\",\r\n \"Operation supervisor\",\r\n ],\r\n },\r\n {\r\n path: \"/merchant-users\",\r\n name: \"Merchant users\",\r\n icon: \"ni ni-single-02\",\r\n component: MerchantUsersList,\r\n layout: \"/admin\",\r\n title: \"POS Agent\",\r\n allow: [\"Admin\"],\r\n },\r\n {\r\n path: \"/merchant-locations\",\r\n name: \"Merchant Locations\",\r\n icon: \"fas fa-map\",\r\n component: MerchantLocationsList,\r\n layout: \"/admin\",\r\n allow: [\"Admin\"],\r\n },\r\n {\r\n path: \"/fsp\",\r\n name: \"FSP\",\r\n icon: \"ni ni-single-02\",\r\n component: FSPList,\r\n layout: \"/admin\",\r\n allow: [\"Admin\"],\r\n },\r\n {\r\n path: \"/fsp-users\",\r\n name: \"FSP Users\",\r\n icon: \"ni ni-single-02\",\r\n component: FSPUsersList,\r\n layout: \"/admin\",\r\n allow: [\"Admin\"],\r\n },\r\n {\r\n path: \"/fsp-customers\",\r\n name: \"FSP Customers\",\r\n icon: \"ni ni-single-02\",\r\n component: FSPCustomersList,\r\n layout: \"/admin\",\r\n allow: [\"Admin\"],\r\n },\r\n {\r\n path: \"/customer-whitelist\",\r\n name: \"Customer Whitelist\",\r\n icon: \"fas fa-user-shield\",\r\n component: CustomerWhiteList,\r\n layout: \"/admin\",\r\n },\r\n {\r\n path: \"/WhitelistCustomer/:id\",\r\n name: \"Whitelist Customer\",\r\n layout: \"/auth\",\r\n icon: \"ni ni-key-25\",\r\n component: WhiteListCustomer,\r\n },\r\n {\r\n path: \"/CustomerWhitelist/:id\",\r\n name: \"Whitelist Customer\",\r\n layout: \"/auth\",\r\n icon: \"ni ni-key-25\",\r\n component: WhiteListCustomerLink,\r\n },\r\n {\r\n path: \"/nfc\",\r\n name: \"Card Management (NFC)\",\r\n icon: \"far fa-credit-card\",\r\n component: NFCList,\r\n layout: \"/admin\",\r\n allow: [\"Admin\"],\r\n },\r\n {\r\n path: \"/pos-terminals\",\r\n name: \"POS Terminals\",\r\n icon: \"fas fa-mobile-alt\",\r\n component: PosTerminalList,\r\n layout: \"/admin\",\r\n },\r\n {\r\n path: \"/settlement-process\",\r\n name: \"Settlement Process\",\r\n icon: \"fas fa-handshake\",\r\n component: SettlementProcessList,\r\n allow: [\"Finance\"],\r\n layout: \"/finance\",\r\n },\r\n {\r\n path: \"/merchant-settlement-transaction-history\",\r\n name: \"Merchant Settlement Transaction History\",\r\n icon: \"fas fa-history\",\r\n component: MerchantSettlementTransactionHistoryList,\r\n allow: [\"Finance\"],\r\n layout: \"/finance\",\r\n },\r\n {\r\n path: \"/commissions\",\r\n name: \"Commissions\",\r\n icon: \"fas fa-wallet\",\r\n component: CommissionList,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Admin\",\r\n \"Finance\",\r\n \"Operations Officer\",\r\n \"Customer Support Supervisor\",\r\n \"Audits and Compliance\",\r\n \"Sales Supervisor\",\r\n \"Sales Representative\",\r\n \"Customer Support Representative\",\r\n \"Operation supervisor\",\r\n ],\r\n },\r\n // {\r\n // path: \"/AgentCommissions\",\r\n // name: \"Agent Commission\",\r\n // icon: \"fas fa-wallet\",\r\n // component: AgentList,\r\n // layout: \"/admin\",\r\n // allow: [\"Admin\", \"Finance\", \"Agent\"],\r\n // },\r\n // {\r\n // path: \"/bank-commissions\",\r\n // name: \"Bank Commission\",\r\n // icon: \"fas fa-university\",\r\n // component: BankCommission,\r\n // layout: \"/admin\",\r\n // allow: [\r\n // \"Finance\",\r\n // \"Operations Officer\",\r\n // \"Customer Support Supervisor\",\r\n // \"Audits and Compliance\",\r\n // \"Sales Supervisor\",\r\n // \"Customer Support Representative\",\r\n // \"Operation supervisor\",\r\n // ],\r\n // },\r\n // {\r\n // path: \"/mmo-commissions\",\r\n // name: \"MMO Commission\",\r\n // icon: \"fas fa-money-check\",\r\n // component: MMOCommission,\r\n // layout: \"/admin\",\r\n // allow: [\r\n // \"Finance\",\r\n // \"Operations Officer\",\r\n // \"Customer Support Supervisor\",\r\n // \"Audits and Compliance\",\r\n // \"Sales Supervisor\",\r\n // \"Customer Support Representative\",\r\n // \"Operation supervisor\",\r\n // ],\r\n // },\r\n {\r\n path: \"/merchant-commissions\",\r\n name: \"Merchant Commission\",\r\n icon: \"fas fa-money-check-alt\",\r\n component: MerchantCommission,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Finance\",\r\n \"Operations Officer\",\r\n \"Audits and Compliance\",\r\n \"Customer Support Supervisor\",\r\n \"Sales Supervisor\",\r\n \"Customer Support Representative\",\r\n \"Operation supervisor\",\r\n ],\r\n },\r\n // {\r\n // path: \"/subscriber\",\r\n // name: \"Register Subscriber\",\r\n // icon: \"ni ni-circle-08\",\r\n // component: AddSubscriber,\r\n // layout: \"/admin\",\r\n // allow: [\r\n // \"Operations Officer\",\r\n // \"Customer Support Supervisor\",\r\n // \"Sales Supervisor\",\r\n // \"Customer Support Representative\",\r\n // \"Operation supervisor\",\r\n // ],\r\n // },\r\n // {\r\n // path: \"/master-agent\",\r\n // name: \"Register Master Agent\",\r\n // icon: \"ni ni-circle-08\",\r\n // component: AddMasterAgent,\r\n // layout: \"/admin\",\r\n // allow: [\"Admin\"],\r\n // },\r\n // {\r\n // path: \"/super-agent\",\r\n // name: \"Register Super Agent\",\r\n // icon: \"ni ni-circle-08\",\r\n // component: AddSuperAgent,\r\n // layout: \"/admin\",\r\n // allow: [\"Admin\", \"Master Agent\"],\r\n // },\r\n // {\r\n // path: \"/sub-agent\",\r\n // name: \"Register Sub Agent\",\r\n // icon: \"ni ni-circle-08\",\r\n // component: AddSubAgent,\r\n // layout: \"/super-agent\",\r\n // allow: [\"Super Agent\"],\r\n // },\r\n {\r\n path: \"/change-password\",\r\n name: \"Change Password\",\r\n icon: \"ni ni-lock-circle-open\",\r\n component: ChangePassword,\r\n layout: \"/admin\",\r\n common: true,\r\n hideFromMenu: true,\r\n },\r\n {\r\n path: \"/forgot-password\",\r\n name: \"Forgot Password\",\r\n icon: \"ni ni-lock-circle-open\",\r\n component: ForgotPassword,\r\n layout: \"/auth\",\r\n },\r\n // {\r\n // path: \"/subscriber-list\",\r\n // name: \"Subscribers\",\r\n // icon: \"ni ni-chart-pie-35\",\r\n // component: SubscriberList,\r\n // layout: \"/admin\",\r\n // allow: [\r\n // \"Admin\",\r\n // \"Finance\",\r\n // \"Operations Officer\",\r\n // \"Customer Support Supervisor\",\r\n // \"Audits and Compliance\",\r\n // \"Sales Supervisor\",\r\n // \"Sales Representative\",\r\n // \"Customer Support Representative\",\r\n // \"Operation supervisor\",\r\n // ],\r\n // },\r\n // {\r\n // path: \"/master-agent-list\",\r\n // name: \"Master Agents\",\r\n // icon: \"ni ni-chart-pie-35\",\r\n // component: MasterAgentsList,\r\n // layout: \"/admin\",\r\n // allow: [\"Admin\"],\r\n // },\r\n // {\r\n // path: \"/super-agent-list\",\r\n // name: \"Super Agents\",\r\n // icon: \"ni ni-chart-pie-35\",\r\n // component: SuperAgentList,\r\n // layout: \"/admin\",\r\n // allow: [\"Admin\", \"Master Agent\"],\r\n // },\r\n // {\r\n // path: \"/sub-agent-list\",\r\n // name: \"Sub Agents\",\r\n // icon: \"ni ni-chart-pie-35\",\r\n // component: SubAgentsList,\r\n // layout: \"/super-agent\",\r\n // allow: [\"Super Agent\", \"Admin\"],\r\n // },\r\n // {\r\n // path: \"/bank-payment-list\",\r\n // name: \"Payments\",\r\n // icon: \"fa fa-money-check\",\r\n // component: BankPaymentList,\r\n // layout: \"/bank\",\r\n // allow: [\"Admin\", \"Finance\", \"Bank\"],\r\n // },\r\n // {\r\n // path: \"/bank-commission-list\",\r\n // name: \"Commission Collection\",\r\n // icon: \"fa fa-money-check-alt\",\r\n // component: BankCollectionCommission,\r\n // layout: \"/bank\",\r\n // allow: [\"Admin\", \"Finance\", \"Bank\"],\r\n // },\r\n {\r\n path: \"/bank-subscriber-list\",\r\n name: \"Subscribers\",\r\n icon: \"fa fa-user-friends\",\r\n component: SubscriberVerificationList,\r\n layout: \"/bank\",\r\n },\r\n {\r\n path: \"/top-up\",\r\n name: \"Top-Up\",\r\n icon: \"fa fa-money-check\",\r\n component: TopUpWallet,\r\n layout: \"/subscriber\",\r\n },\r\n // {\r\n // path: \"/top-up-old\",\r\n // name: \"Top-Up old\",\r\n // icon: \"fa fa-money-check\",\r\n // component: topUp,\r\n // layout: \"/subscriber\",\r\n // },\r\n {\r\n path: \"/top-up\",\r\n name: \"Top-Up\",\r\n icon: \"fa fa-money-check\",\r\n component: topUp,\r\n layout: \"/master-agent\",\r\n },\r\n {\r\n path: \"/subscriber-transaction\",\r\n name: \"Transactions\",\r\n icon: \"fa fa-address-card\",\r\n component: SubsTransaction,\r\n layout: \"/subscriber\",\r\n },\r\n {\r\n path: \"/transfer-money\",\r\n name: \"Transfer Money\",\r\n icon: \"fa fa-money-check-alt\",\r\n component: TransferMoney,\r\n layout: \"/subscriber\",\r\n allow: [\"Super Agent\", \"Subscriber\", \"Master Agent\", \"Agent\"],\r\n },\r\n {\r\n path: \"/cash-out\",\r\n name: \"Cash out\",\r\n icon: \"fa fa-money-check-alt\",\r\n component: TransferMoney,\r\n layout: \"/subscriber\",\r\n allow: [\"Subscriber\"],\r\n },\r\n {\r\n path: \"/cash-out\",\r\n name: \"Cash out\",\r\n icon: \"fa fa-money-check-alt\",\r\n component: CashoutSubAgent,\r\n layout: \"/subscriber\",\r\n allow: [\"Agent\"],\r\n },\r\n {\r\n path: \"/agent-transaction\",\r\n name: \"Transactions\",\r\n icon: \"fa fa-address-card\",\r\n component: SubsTransaction,\r\n layout: \"/master-agent\",\r\n },\r\n {\r\n path: \"/make-payment\",\r\n name: \"Make Payment\",\r\n icon: \"fa fa-money-bill\",\r\n component: MakePayment,\r\n layout: \"/subscriber\",\r\n },\r\n {\r\n path: \"/make-payment\",\r\n name: \"Make Payment\",\r\n icon: \"fa fa-money-bill\",\r\n component: AgentMakePayment,\r\n layout: \"/sub-agent\",\r\n },\r\n {\r\n path: \"/collection-list\",\r\n name: \"Collection\",\r\n icon: \"fa fa-money-bill\",\r\n component: CollectionList,\r\n layout: \"/finance\",\r\n },\r\n // {\r\n // path: \"/commision-collection-list\",\r\n // name: \"Commission\",\r\n // icon: \"fa fa-money-check-alt\",\r\n // component: CollectionCommission,\r\n // layout: \"/finance\",\r\n // allow: [\"Finance\", \"Admin\"],\r\n // },\r\n // {\r\n // path: \"/merchant-settlement\",\r\n // name: \"Merchant Settlements\",\r\n // icon: \"fa fa-money-bill\",\r\n // component: SettlementList,\r\n // layout: \"/settlementBank\",\r\n // allow: [\"Finance\", \"Admin\", \"SettlementBank\"],\r\n // },\r\n {\r\n path: \"/paywith-voucher/:id\",\r\n name: \"Paywith Voucher\",\r\n icon: \"ni ni-key-25\",\r\n component: PayWithVoucher,\r\n layout: \"/auth\",\r\n },\r\n {\r\n path: \"/topup-history\",\r\n name: \"Top-up History\",\r\n icon: \"fa fa-money-bill\",\r\n component: TopUpHistory,\r\n layout: \"/subscriber\",\r\n },\r\n {\r\n path: \"/show-msg\",\r\n name: \"Show message\",\r\n icon: \"fa fa-money-bill\",\r\n component: SHOWMSG,\r\n layout: \"/auth\",\r\n },\r\n {\r\n path: \"/tellers\",\r\n name: \"Tellers\",\r\n icon: \"fas fa-cash-register\",\r\n component: Tellers,\r\n layout: \"/merchant\",\r\n },\r\n {\r\n path: \"/pos\",\r\n name: \"POS\",\r\n icon: \"fas fa-vote-yea\",\r\n component: POS,\r\n layout: \"/merchant\",\r\n },\r\n {\r\n path: \"/sales\",\r\n name: \"Sales\",\r\n icon: \"fas fa-money-check\",\r\n component: Sales,\r\n layout: \"/merchant\",\r\n },\r\n {\r\n path: \"/statements\",\r\n name: \"Statements\",\r\n icon: \"fas fa-file-invoice-dollar\",\r\n component: Statements,\r\n layout: \"/merchant\",\r\n },\r\n {\r\n path: \"/maps\",\r\n name: \"Maps\",\r\n icon: \"fas fa-map-marked-alt\",\r\n component: Maps,\r\n layout: \"/merchant\",\r\n },\r\n // {\r\n // path: \"/top-up-list\",\r\n // name: \"Withdraw cash\",\r\n // icon: \"fa fa-money-bill\",\r\n // component: TopUpSubscriberList,\r\n // layout: \"/merchant\",\r\n // },\r\n {\r\n path: \"/top-up-agent\",\r\n name: \"Topup List\",\r\n icon: \"fa fa-money-bill\",\r\n component: TopUpSubscriberList,\r\n layout: \"/sub-agent\",\r\n },\r\n {\r\n path: \"/agent-transaction\",\r\n name: \"Transactions\",\r\n icon: \"fa fa-address-card\",\r\n component: SubsTransaction,\r\n layout: \"/sub-agent\",\r\n },\r\n {\r\n path: \"/super-agent-transaction\",\r\n name: \"Transactions\",\r\n icon: \"fa fa-address-card\",\r\n component: SubsTransaction,\r\n layout: \"/super-agent\",\r\n },\r\n // {\r\n // path: \"/merchant-payment\",\r\n // name: \"Payment List\",\r\n // icon: \"fa fa-money-bill\",\r\n // component: MerchantPaymentList,\r\n // layout: \"/merchant\",\r\n // },\r\n // {\r\n // path: \"/check-balance\",\r\n // name: \"Check Balance\",\r\n // icon: \"fa fa-wallet\",\r\n // component: CheckBal,\r\n // layout: \"/merchant\",\r\n // },\r\n\r\n {\r\n path: \"/search-transaction\",\r\n name: \"Search Transaction\",\r\n icon: \"fas fa-address-card\",\r\n component: SearchTransaction,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Admin\",\r\n // \"Merchant\",\r\n \"Bank\",\r\n \"SettlementBank\",\r\n \"Operations Officer\",\r\n \"Finance\",\r\n \"Customer Support Supervisor\",\r\n \"Audits and Compliance\",\r\n \"Customer Support Representative\",\r\n \"Operation supervisor\",\r\n ],\r\n },\r\n {\r\n path: \"/EDSATransactionsMerchant\",\r\n name: \"Search EDSA Transaction\",\r\n icon: \"fas fa-address-card\",\r\n component: EDSATransactionsMerchant,\r\n layout: \"/merchant\",\r\n },\r\n // {\r\n // path: \"/day-end-report\",\r\n // name: \"Day End Report\",\r\n // icon: \"fas fa-archive\",\r\n // component: DayEndReport,\r\n // layout: \"/merchant\",\r\n // },\r\n {\r\n path: \"/reports\",\r\n name: \"Reports\",\r\n icon: \"fas fa-archive\",\r\n component: Reports,\r\n layout: \"/admin\",\r\n allow: [\"Finance\", \"Audits and Compliance\", \"Operation supervisor\"],\r\n },\r\n {\r\n path: \"/sign-up\",\r\n name: \"Register Subscriber\",\r\n icon: \"ni ni-key-25\",\r\n component: SignupSubscriber,\r\n layout: \"/auth\",\r\n },\r\n {\r\n path: \"/change-Pin\",\r\n name: \"Change Pin\",\r\n icon: \"ni ni-lock-circle-open\",\r\n component: ChangePin,\r\n layout: \"/admin\",\r\n common: true,\r\n hideFromMenu: true,\r\n },\r\n {\r\n path: \"/logs\",\r\n name: \"Logs\",\r\n icon: \"fas fa-book\",\r\n component: Logs,\r\n layout: \"/admin\",\r\n allow: [\"Audits and Compliance\", \"Finance\", \"Operation supervisor\"],\r\n },\r\n {\r\n path: \"/payment-status\",\r\n name: \"Payment status\",\r\n icon: \"ni ni-key-25\",\r\n component: PaymentInfo,\r\n layout: \"/auth\",\r\n },\r\n {\r\n path: \"/knowledge-base\",\r\n name: \"Knowledge base\",\r\n icon: \"fa fa-book\",\r\n component: KnowledgeBase,\r\n layout: \"/admin\",\r\n allow: [\r\n \"Admin\",\r\n \"Finance\",\r\n \"Bank\",\r\n \"SettlementBank\",\r\n \"Subscriber\",\r\n \"Super Agent\",\r\n \"Agent\",\r\n \"Master Agent\",\r\n \"Merchant\",\r\n ],\r\n },\r\n];\r\n\r\nexport default routes;\r\n","import React from \"react\";\r\nimport { useLocation, Route, Switch, Redirect } from \"react-router-dom\";\r\nimport { Container } from \"reactstrap\";\r\nimport AdminNavbar from \"components/Navbars/AdminNavbar.js\";\r\nimport Sidebar from \"components/Sidebar/Sidebar.js\";\r\nimport routes from \"routes.js\";\r\nimport { getLoginType } from \"../services/httpServices\";\r\nimport { routePermissions } from \"services/util\";\r\n\r\nconst Admin = (props) => {\r\n const mainContent = React.useRef(null);\r\n const location = useLocation();\r\n\r\n React.useEffect(() => {\r\n document.documentElement.scrollTop = 0;\r\n document.scrollingElement.scrollTop = 0;\r\n mainContent.current.scrollTop = 0;\r\n }, [location]);\r\n\r\n const getRoutes = (routes) => {\r\n return routes.map((prop, key) => {\r\n let layout = null;\r\n let route = routePermissions.find((i) => i.name === getLoginType());\r\n if (prop.common === true) {\r\n layout = (\r\n \r\n );\r\n } else if (route?.name) {\r\n if (\r\n prop.layout === route.layout ||\r\n (prop.allow &&\r\n prop.allow.length &&\r\n prop.allow.indexOf(route.name) > -1)\r\n ) {\r\n layout = (\r\n \r\n );\r\n } else {\r\n layout = null;\r\n }\r\n }\r\n return layout;\r\n });\r\n };\r\n\r\n const getBrandText = (path) => {\r\n for (let i = 0; i < routes.length; i++) {\r\n if (props.location.pathname === routes[i].path) {\r\n return routes[i].name;\r\n }\r\n }\r\n return \"Brand\";\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n {getRoutes(routes)}\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Admin;\r\n","import React from \"react\";\r\nimport { useLocation, Route, Switch, Redirect } from \"react-router-dom\";\r\n// reactstrap components\r\nimport { Container, Row, Col } from \"reactstrap\";\r\n\r\n// core components\r\nimport AuthNavbar from \"components/Navbars/AuthNavbar.js\";\r\n\r\nimport routes from \"routes.js\";\r\n\r\nconst Auth = (props) => {\r\n const mainContent = React.useRef(null);\r\n const location = useLocation();\r\n\r\n React.useEffect(() => {\r\n document.body.classList.add(\"bg-dark-green\");\r\n return () => {\r\n document.body.classList.remove(\"bg-dark-green\");\r\n };\r\n }, []);\r\n React.useEffect(() => {\r\n document.documentElement.scrollTop = 0;\r\n document.scrollingElement.scrollTop = 0;\r\n mainContent.current.scrollTop = 0;\r\n }, [location]);\r\n\r\n const getRoutes = (routes) => {\r\n let r = routes.map((prop, key) => {\r\n if (prop.layout === \"/auth\") {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n });\r\n return r;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {/* */}\r\n
\r\n \r\n
\r\n \r\n \r\n (window.location.href = \"/login\")}\r\n >\r\n Welcome to Smart Pay!\r\n \r\n \r\n \r\n
\r\n
\r\n {/* \r\n \r\n \r\n \r\n
*/}\r\n
\r\n {/* Page content */}\r\n \r\n \r\n \r\n {getRoutes(routes)}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nexport default Auth;\r\n","import { \r\n PAYMENT_FECTH_LIST, PAYMENT_SET_LIST,\r\n PAYMENT_FETCH_ERROR, RESET_PAYMENT_LIST,\r\n COLLECTION_BANK_ERROR, COLLECTION_BANK_LIST, \r\n COLLECTION_BANK_SET_LIST, \r\n RESET_COLLECTION_BANK_LIST\r\n} from './constant';\r\nimport { DEFAULT_ACTION } from './constant';\r\n\r\nexport const paymentInitialState = {\r\n loading: false,\r\n list: [],\r\n error: false,\r\n totalRec: 0\r\n};\r\n\r\nexport const paymentReducer = (state = paymentInitialState, action) => {\r\n switch (action.type) {\r\n case DEFAULT_ACTION:\r\n break;\r\n case PAYMENT_FECTH_LIST:\r\n return { ...state, loading: true}\r\n case PAYMENT_SET_LIST:\r\n return { \r\n ...state, \r\n list: action.payload.list, \r\n totalRec: action.payload.totalRecords, \r\n loading: false\r\n }\r\n case PAYMENT_FETCH_ERROR:\r\n return {\r\n ...state, loading: false, list: [],\r\n error: true, errorMsg: action.payload\r\n }\r\n case RESET_PAYMENT_LIST: \r\n return {\r\n ...state, loading: false, list: [], error: false\r\n }\r\n default:\r\n return { ...state };\r\n }\r\n};\r\n\r\nexport const cbankListIS = {\r\n loading: false,\r\n list: [],\r\n error: false\r\n};\r\n\r\nexport const cBankListReducer = (state = cbankListIS, action) => {\r\n switch (action.type) {\r\n case DEFAULT_ACTION:\r\n break;\r\n case COLLECTION_BANK_LIST:\r\n return { ...state, loading: true}\r\n case COLLECTION_BANK_SET_LIST:\r\n return { ...state, list: action.payload, loading: false}\r\n case COLLECTION_BANK_ERROR:\r\n return {\r\n ...state, loading: false, list: [],\r\n error: true, errorMsg: action.payload\r\n }\r\n case RESET_COLLECTION_BANK_LIST: \r\n return {\r\n ...state, loading: false, list: [], error: false\r\n }\r\n default:\r\n return { ...state };\r\n }\r\n};","import { combineReducers } from \"redux\";\r\nimport { paymentReducer, cBankListReducer } from \"../../views/bank/reducer\";\r\n\r\nexport default combineReducers({ \r\n paymentList: paymentReducer , cBankList: cBankListReducer\r\n});\r\n","import { \r\n FETCH_SETTLEMENT_BANK, SETTLEMENT_BANK_ERROR,\r\n SET_SETTLEMENT_BANK \r\n} from \"./constant\";\r\n\r\nexport const settlementBankIs = {\r\n loading: false,\r\n list: [],\r\n error: null,\r\n errorMsg: null\r\n};\r\n\r\nexport const settlementReducer = (state = settlementBankIs, action) => {\r\n switch(action.type) {\r\n case FETCH_SETTLEMENT_BANK : \r\n return {...state, loading: true};\r\n case SET_SETTLEMENT_BANK : \r\n return {...state, loading: false, list: action.payload};\r\n case SETTLEMENT_BANK_ERROR : \r\n return {...state, loading: false, error: true, errorMsg: action.payload};\r\n default : \r\n return {...settlementBankIs};\r\n }\r\n}","import { combineReducers } from \"redux\";\r\nimport { settlementReducer } from '../../views/finance-user/reducer';\r\n\r\nexport default combineReducers({\r\n settlementBankInfo: settlementReducer\r\n});","import { SET_LOGIN_USER_IMAGE } from \"./constant\";\r\n\r\nexport const loginIS = {\r\n image: null\r\n}\r\n\r\nexport const LoginReducer = (state = loginIS, action) => {\r\n switch (action.type) {\r\n case SET_LOGIN_USER_IMAGE:\r\n return { ...state, image: action.payload}\r\n default:\r\n return { ...state };\r\n }\r\n};\r\n","import { combineReducers } from \"redux\";\r\nimport { LoginReducer } from \"views/examples/reducer\";\r\n\r\nexport default combineReducers({ user: LoginReducer });\r\n","import { \r\n FETCH_SUBSCRIBER_INFO,\r\n SET_SUBSCRIBER_INFO,\r\n SET_ERROR,\r\n ADD_VOUCHER,\r\n ADD_VOUCHER_SUCCESS,\r\n ADD_VOUCHER_FAILED,\r\n RESET_VOUCHER,\r\n FETCH_MERCHANT,\r\n FETCH_MERCHANT_ERROR,\r\n SET_MERCHANT,\r\n RESET_MERCHANT,\r\n FETCH_PAYABLE_AMT,\r\n PAYABLE_AMT_ERROR,\r\n SET_PAYABLE_AMT,\r\n RESET_PAYABLE_AMT\r\n} from './constant';\r\n\r\nexport const SubscriberIS = {\r\n loading: false,\r\n data: {},\r\n error: false,\r\n errorMsg: null\r\n};\r\n\r\nexport const VoucherIS = {\r\n loading: false,\r\n data: {},\r\n error: false,\r\n errorMsg: null,\r\n successMsg: null,\r\n success: false\r\n}\r\n\r\nexport const makePaymentIS = {\r\n loading: false,\r\n list: [],\r\n error: false,\r\n errorMsg: null,\r\n successMsg: null,\r\n success: false\r\n}\r\n\r\nexport const payableAmtIS = {\r\n loading: false,\r\n error: false,\r\n errorMsg: null,\r\n successMsg: null,\r\n success: false,\r\n data: {}\r\n}\r\n\r\nexport const topUpReducer = (state = SubscriberIS, action) => {\r\n switch (action.type) {\r\n case FETCH_SUBSCRIBER_INFO:\r\n return { ...state, loading: true}\r\n case SET_SUBSCRIBER_INFO:\r\n return { ...state, data: action.payload, loading: false}\r\n case SET_ERROR: \r\n return {...state, errorMsg: action.payload, error: true}\r\n default:\r\n return { ...state };\r\n }\r\n};\r\n\r\nexport const voucherReducer = (state = VoucherIS, action) => {\r\n switch (action.type) {\r\n case ADD_VOUCHER:\r\n return { ...state, loading: true}\r\n case ADD_VOUCHER_FAILED:\r\n return { ...state, error: true, errorMsg: action.payload, loading: false}\r\n case ADD_VOUCHER_SUCCESS: \r\n return {...state, success: true, successMsg: 'Top Up is added successfully'}\r\n case RESET_VOUCHER: \r\n return {...VoucherIS}\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nexport const makePaymentReducer = (state = makePaymentIS, action) => {\r\n switch (action.type) {\r\n case FETCH_MERCHANT :\r\n return { ...state, loading: true}\r\n case FETCH_MERCHANT_ERROR : \r\n return { ...state, error: true, errorMsg: action.payload, loading: false}\r\n case SET_MERCHANT : \r\n return {...state, success: true, error: false, loading: false, list: action.payload}\r\n case RESET_MERCHANT : \r\n return {...makePaymentIS}\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nexport const payableAmtReducer = (state = payableAmtIS, action) => {\r\n switch (action.type) {\r\n case FETCH_PAYABLE_AMT :\r\n return { ...state, loading: true}\r\n case PAYABLE_AMT_ERROR : \r\n return { ...state, error: true, errorMsg: action.payload, loading: false,\r\n success: false}\r\n case SET_PAYABLE_AMT : \r\n return {\r\n ...state, success: true, error: false,\r\n loading: false, data: action.payload\r\n }\r\n case RESET_PAYABLE_AMT : \r\n return {...makePaymentIS}\r\n default:\r\n return { ...state };\r\n }\r\n}","import { combineReducers } from \"redux\";\r\nimport { \r\n makePaymentReducer,\r\n payableAmtReducer,\r\n topUpReducer,\r\n voucherReducer \r\n} from \"../../views/subscriber/reducer\";\r\n\r\nexport default combineReducers({ \r\n subsInfo: topUpReducer, \r\n voucherInfo: voucherReducer,\r\n makePaymentInfo: makePaymentReducer,\r\n amountInfo: payableAmtReducer \r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport rootBankReducer from \"./bank/rootBankReducer\";\r\nimport rootFinanceReducer from \"./finance/rootFinanceReducer\";\r\nimport rootLoginReducer from \"./login/rootLoginReducer\";\r\nimport rootSubsReducer from \"./subscriber/rootSubsReducer\";\r\nexport default combineReducers({\r\n bank: rootBankReducer,\r\n subscriber: rootSubsReducer,\r\n finance: rootFinanceReducer,\r\n login: rootLoginReducer\r\n});","import { \r\n PAYMENT_FECTH_LIST, PAYMENT_SET_LIST, PAYMENT_FETCH_ERROR, RESET_PAYMENT_LIST,\r\n COLLECTION_BANK_ERROR, COLLECTION_BANK_LIST, COLLECTION_BANK_SET_LIST, \r\n RESET_COLLECTION_BANK_LIST } from './constant';\r\n\r\nexport function paymentList(data) {\r\n return {\r\n type: PAYMENT_FECTH_LIST,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function setPaymentList(data) {\r\n return {\r\n type: PAYMENT_SET_LIST,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function paymentListError(data) {\r\n return {\r\n type: PAYMENT_FETCH_ERROR,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function resetPaymentList() {\r\n return {\r\n type: RESET_PAYMENT_LIST\r\n };\r\n}\r\n\r\nexport function cBankList() {\r\n return {\r\n type: COLLECTION_BANK_LIST\r\n };\r\n}\r\n\r\nexport function setCbankList(data) {\r\n return {\r\n type: COLLECTION_BANK_SET_LIST,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function cBankListError(data) {\r\n return {\r\n type: COLLECTION_BANK_ERROR,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function resetCbankList() {\r\n return {\r\n type: RESET_COLLECTION_BANK_LIST\r\n };\r\n}","import { call, put, takeLatest } from 'redux-saga/effects';\r\n// import request from 'utils/request';\r\nimport { API_ENDPOINTS } from '../../appConfig';\r\nimport { getMethod, getUserId, postMethod } from '../../services/httpServices';\r\nimport { PAYMENT_FECTH_LIST, COLLECTION_BANK_LIST } from './constant';\r\nimport { \r\n paymentList, setPaymentList, paymentListError, resetPaymentList,\r\n cBankList, setCbankList, cBankListError, resetCbankList\r\n} from './action';\r\n\r\nexport function* fetchPaymentList(data) {\r\n var errorMsg = '';\r\n try {\r\n const userId = getUserId();\r\n const res = yield postMethod('/api/Transactions/BankTransactionForMasterAgent/', data.payload, 'post');\r\n if (res.data.responseCode === \"200\" && res.data.result) {\r\n // Success\r\n yield put(setPaymentList(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching bank transactions';\r\n yield put(paymentListError(errorMsg));\r\n yield put(resetPaymentList());\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching bank transactions';\r\n yield put(paymentListError(errorMsg));\r\n yield put(resetPaymentList());\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(paymentListError(errorMsg));\r\n yield put(resetPaymentList());\r\n }\r\n}\r\n\r\nexport function* fetchCBankList() {\r\n var errorMsg = '';\r\n try {\r\n const res = yield getMethod('/api/bankProfile/ddllist?Accounttype=Collection', 'get');\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n yield put(setCbankList(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching colection bank';\r\n yield put(cBankListError(errorMsg));\r\n yield put(resetCbankList());\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching bank transactions';\r\n yield put(cBankListError(errorMsg));\r\n yield put(resetCbankList());\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(cBankListError(errorMsg));\r\n yield put(resetCbankList());\r\n }\r\n}\r\n\r\nexport default function* bankSaga() {\r\n yield takeLatest(PAYMENT_FECTH_LIST, fetchPaymentList);\r\n yield takeLatest(COLLECTION_BANK_LIST, fetchCBankList);\r\n}\r\n","import { all, fork } from \"redux-saga/effects\";\r\nimport bankSaga from \"../../views/bank/saga\";\r\n// import { fetchPaymentList } from \"../../views/bank/saga\";\r\n// import bankSage from \"../../views/bank/saga\";\r\n\r\nexport default function* rootBankSaga() {\r\n // yield all([fork(fetchPaymentList())]);\r\n yield all([fork(bankSaga)]);\r\n\r\n}","import { getMethod } from \"services/httpServices\";\r\nimport { setSettlementBank, settlementBankError, resetSettleError } from \"./action\";\r\nimport { FETCH_SETTLEMENT_BANK } from \"./constant\";\r\nimport { call, put, takeLatest } from 'redux-saga/effects';\r\n\r\n\r\nexport function* fetchSettleBank() {\r\n var errorMsg = '';\r\n try {\r\n const res = yield getMethod('/api/bankProfile/ddllist?Accounttype=Settlement', 'get');\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n yield put(setSettlementBank(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching bank transactions';\r\n yield put(settlementBankError(errorMsg));\r\n yield put(resetSettleError());\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching bank transactions';\r\n yield put(settlementBankError(errorMsg));\r\n yield put(resetSettleError());\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(settlementBankError(errorMsg));\r\n yield put(resetSettleError());\r\n }\r\n}\r\n\r\nexport default function* financeSaga() {\r\n yield takeLatest(FETCH_SETTLEMENT_BANK, fetchSettleBank);\r\n}\r\n","import { all, fork } from \"redux-saga/effects\";\r\nimport financeSaga from '../../views/finance-user/saga';\r\n\r\nexport default function* rootFinaceSaga() {\r\n // yield all([fork(fetchPaymentList())]);\r\n yield all([fork(financeSaga)]);\r\n}","import { call, put, takeLatest } from 'redux-saga/effects';\r\nimport { getLoginType, getMethod, getUserId, postMethod } from '../../services/httpServices';\r\nimport { ADD_VOUCHER, FETCH_MERCHANT, FETCH_PAYABLE_AMT, FETCH_SUBSCRIBER_INFO, SET_SUBSCRIBER_INFO } from './constant';\r\nimport { \r\n fetchSubs, setSubs,\r\n setError, addVoucherFailed,\r\n addVoucherSuccess, \r\n resetVoucher,\r\n setMerchant,\r\n fetchMerchantError,\r\n resetMerchant,\r\n setPayableAmt,\r\n fetchPayableAmtErro,\r\n resetPayableAmt\r\n} from './action';\r\n\r\nexport function* fetchSubscriberInfo() {\r\n let errorMsg = null;\r\n let userId = getUserId();\r\n let loginType = getLoginType()\r\n let url = loginType === \"Master Agent\" ? '/api/Agent/GetMasterAgentById/' : '/api/Subscriber/GetByUserId/';\r\n try {\r\n const res = yield postMethod(url + userId, {}, 'post');\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n yield put(setSubs(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching subscriber info';\r\n yield put(setError(errorMsg));\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching subscriber info';\r\n yield put(setError(errorMsg));\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(setError(errorMsg));\r\n }\r\n}\r\n\r\nexport function* addVoucher(obj) {\r\n let errorMsg = null;\r\n let data = obj.data;\r\n try {\r\n const res = yield postMethod('/api/Transactions/Save' , data , 'post');\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n yield put(addVoucherSuccess(res.data.result));\r\n yield put(resetVoucher());\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching subscriber info';\r\n yield put(addVoucherFailed(errorMsg));\r\n yield put(resetVoucher());\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching subscriber info';\r\n yield put(addVoucherFailed(errorMsg));\r\n yield put(resetVoucher());\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(addVoucherFailed(errorMsg));\r\n yield put(resetVoucher());\r\n }\r\n}\r\n\r\nexport function* fetchMerchantInfo() {\r\n let errorMsg = null;\r\n try {\r\n const res = yield getMethod('/api/MerchantProfile/all', 'get');\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n yield put(setMerchant(res.data.result));\r\n } else if (res.data.responseCode === \"400\") {\r\n // Error\r\n errorMsg = res.data.responseMessage || 'Error in fetching merchant info';\r\n yield put(fetchMerchantError(errorMsg));\r\n yield put(resetMerchant());\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in fetching subscriber info';\r\n yield put(fetchMerchantError(errorMsg));\r\n yield put(resetMerchant());\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(fetchMerchantError(errorMsg));\r\n yield put(resetMerchant());\r\n }\r\n}\r\n\r\nexport function* fetchPayableAmount(obj) {\r\n let errorMsg = null;\r\n let data = obj.data;\r\n var errObj = {};\r\n try {\r\n const res = yield postMethod('/api/Transactions/validateproduct', data, 'post');\r\n if (res.data.responseCode === \"200\") {\r\n // Success\r\n yield put(setPayableAmt(res.data.result));\r\n yield put(resetPayableAmt());\r\n } else if (\r\n res.data.responseCode === \"400\" ||\r\n res.data.responseCode === \"500\"\r\n ) {\r\n if (res.data && res.data.responseMessage) {\r\n errorMsg = res.data.responseMessage;\r\n } else {\r\n errorMsg = 'Error in validating';\r\n }\r\n yield put(fetchPayableAmtErro(errorMsg));\r\n yield put(resetPayableAmt());\r\n } else {\r\n // Unknown Error\r\n errorMsg = 'Unknown Error in validating';\r\n yield put(fetchPayableAmtErro(errorMsg));\r\n yield put(resetPayableAmt());\r\n }\r\n } catch (err) {\r\n errorMsg = 'Something went wrong!, Please call 3737';\r\n yield put(fetchPayableAmtErro(errorMsg));\r\n yield put(resetPayableAmt());\r\n }\r\n}\r\n\r\nexport default function* subsSaga() {\r\n yield takeLatest(FETCH_SUBSCRIBER_INFO, fetchSubscriberInfo);\r\n yield takeLatest(ADD_VOUCHER, addVoucher);\r\n yield takeLatest(FETCH_MERCHANT, fetchMerchantInfo);\r\n yield takeLatest(FETCH_PAYABLE_AMT, fetchPayableAmount);\r\n}\r\n","import { all, fork } from \"redux-saga/effects\";\r\nimport subsSaga from \"../../views/subscriber/saga\";\r\n\r\n\r\nexport default function* rootSubsSaga() {\r\n // yield all([fork(fetchPaymentList())]);\r\n yield all([fork(subsSaga)]);\r\n\r\n}","import { all } from \"redux-saga/effects\";\r\nimport rootBankSaga from \"./bank/rootBankSaga\";\r\nimport rootFinaceSaga from \"./finance/rootFinaceSaga\";\r\nimport rootSubsSaga from \"./subscriber/rootSubsSaga\";\r\nexport default function* rootSaga() {\r\n yield all([rootBankSaga(), rootSubsSaga(), rootFinaceSaga()]);\r\n}","import { createStore, applyMiddleware } from \"redux\";\r\nimport createSagaMiddleware from \"redux-saga\";\r\nimport reducers from \"./reducers\";\r\nimport sagas from \"./sagas\";\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst middlewares = [sagaMiddleware];\r\n\r\nexport function configureStore(initialState) {\r\n const store = createStore(\r\n reducers,\r\n initialState,\r\n applyMiddleware(...middlewares)\r\n );\r\n sagaMiddleware.run(sagas);\r\n return store;\r\n}","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { BrowserRouter, Route, Switch, Redirect } from \"react-router-dom\";\r\n\r\nimport \"assets/plugins/nucleo/css/nucleo.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport \"assets/scss/argon-dashboard-react.scss\";\r\nimport \"assets/css/app.css\";\r\nimport \"assets/css/app.scss\";\r\n\r\nimport AdminLayout from \"layouts/Admin.js\";\r\nimport AuthLayout from \"layouts/Auth.js\";\r\nimport { ToastProvider } from 'react-toast-notifications';\r\nimport { getLoggedIn } from \"./services/httpServices\";\r\nimport routes from \"routes.js\";\r\nimport { Provider } from \"react-redux\";\r\nimport { configureStore } from \"./redux/store\";\r\n\r\nconst validLayouts = [\r\n \"/admin\", \"/bank\", \"/subscriber\", \"/finance\",\r\n \"/settlementBank\", \"/merchant\", \"/super-agent\", \"/sub-agent\"];\r\n \r\nconst getRoutes = (routes) => {\r\n return routes.map((prop, key) => {\r\n if (validLayouts.indexOf(prop.layout) > -1) {\r\n return (\r\n getLoggedIn() ? :\r\n }\r\n key={key}\r\n />\r\n )\r\n } else {\r\n return null\r\n }\r\n });\r\n}\r\n\r\nReactDOM.render(\r\n
\r\n \r\n \r\n \r\n \r\n {/* \r\n getLoggedIn() ? :\r\n \r\n } /> */}\r\n {getRoutes(routes)}\r\n } />\r\n {/* */}\r\n \r\n \r\n \r\n \r\n
,\r\n document.getElementById(\"root\")\r\n);\r\n","import { getLoginType } from \"./httpServices\";\r\n\r\nexport const setUserDetails = (props) => {\r\n const initialValue = {\r\n 'firstName': props.userDetails && props.userDetails.firstName ? \r\n props.userDetails.firstName.trim() : '',\r\n 'lastName': props.userDetails && props.userDetails.lastName ? \r\n props.userDetails.lastName.trim() : '',\r\n 'organisationName': props.userDetails.organisationName ? \r\n props.userDetails.organisationName.trim() : '',\r\n 'subscriberType': props.userDetails.subscriberType ? \r\n props.userDetails.subscriberType : '',\r\n 'mobileCode': props.userDetails && props.userDetails.mobileCode ? \r\n props.userDetails.mobileCode : 23225,\r\n 'phone': props.userDetails && props.userDetails.phone ? \r\n props.userDetails.phone : '',\r\n 'mobWithoutCC': props.userDetails && props.userDetails.mobWithoutCC ? \r\n props.userDetails.mobWithoutCC : '',\r\n 'email': props.userDetails && props.userDetails.email ? \r\n props.userDetails.email : '',\r\n 'password': props.userDetails && props.userDetails.password ? \r\n props.userDetails.password : '',\r\n 'oneFAAmt': props.userDetails && props.userDetails.oneFAAmt ? \r\n props.userDetails.oneFAAmt : '50000',\r\n 'authMode': props.userDetails && props.userDetails.authMode ? \r\n props.userDetails.authMode : '1FA',\r\n 'confirmpswd': props.userDetails && props.userDetails.confirmpswd ? \r\n props.userDetails.confirmpswd : '',\r\n 'bank': props.userDetails && props.userDetails.bank ? props.userDetails.bank : '22',\r\n 'bban': props.userDetails && props.userDetails.bban ? props.userDetails.bban : '',\r\n 'bankLinkedMobileCode': props.userDetails && props.userDetails.bankLinkedMobileCode ?\r\n props.userDetails.bankLinkedMobileCode : 23225,\r\n 'bankLinkedPhone': props.userDetails && props.userDetails.bankLinkedPhone ?\r\n props.userDetails.bankLinkedPhone : '',\r\n 'bankMobWithoutCC': props.userDetails && props.userDetails.bankMobWithoutCC ? \r\n props.userDetails.bankMobWithoutCC : '',\r\n 'mobileMoney': props.userDetails && props.userDetails.mobileMoney ? props.userDetails.mobileMoney : '',\r\n 'mobileMoneyAccNo': props.userDetails.mobileMoneyAccNo ? \r\n props.userDetails.mobileMoneyAccNo : '',\r\n 'pin': props.userDetails && props.userDetails.pin ? props.userDetails.pin : '',\r\n 'confirmpin': props.userDetails && props.userDetails.confirmpin ? props.userDetails.confirmpin :\r\n '',\r\n 'bankAccNo': props.userDetails && props.userDetails.bankAccNo ? props.userDetails.bankAccNo : props?.userDetails?.mobWithoutCC || '',\r\n };\r\n\r\n return initialValue;\r\n};\r\n\r\nexport const getMobCodes = () => {\r\n return [23225, 23230, 23231, 23232,\r\n 23233, 23234, 23244, 23275, 23276, 23277,\r\n 23278, 23279, 23280, 23288, 23299];\r\n}\r\n\r\nexport const checkMacAddress = (value) => {\r\n let regex = /^([0-9a-f]{1,2}[\\.:-]){5}([0-9a-f]{1,2})$/i\r\n if (regex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const checkDigit2Decimal = (value) => {\r\n // let regex = /^\\d+(\\.\\d{0,2})?$/;\r\n let regex = /^[0-9]*(\\.\\d{0,2})?$/;\r\n if (regex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const subscriberType = () => {\r\n return [\r\n {key: 'Individual', value: 'Individual'},\r\n {key: 'Organisation', value: 'Organisation'}\r\n ];\r\n}\r\n\r\nexport const checkPercentage = (value) => {\r\n const regex = /^100(\\.0{0,2}?)?$|^\\d{0,2}(\\.\\d{0,2})?$/;\r\n if (regex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const getAmt = (amt) => {\r\n return Number(amt).toLocaleString();\r\n}\r\n\r\nexport const getPaymentType = (type) => {\r\n if (type == 'topup') {\r\n return 'Top-Up';\r\n } else if (type == 'Merchant') {\r\n return 'Merchant Payment';\r\n } else {\r\n return type;\r\n }\r\n}\r\n\r\nexport const checkDigitOnly = (value) => {\r\n let digiRegex = /^[0-9]*$/;\r\n if (digiRegex.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const checkBankAccNo = (value) => {\r\n // let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 18) {\r\n // if (digiRegex.test(value)) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n return true\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\nexport const checkMMOBankAccNo = (value) => {\r\n // let digiRegex = /^[0-9]*$/;\r\n // if (value.length <= 11) {\r\n // if (digiRegex.test(value)) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n return true\r\n // } else {\r\n // return false;\r\n // }\r\n}\r\n\r\nexport const getSortCls = (fieldName) => {\r\n if (fieldName == \"0\") {\r\n return 'fas fa-sort fa-lg';\r\n } else if (fieldName == \"1\") {\r\n return 'fas fa-sort-up fa-lg';\r\n } else if (fieldName == \"2\") {\r\n return 'fas fa-sort-down fa-lg';\r\n }\r\n}\r\n\r\nexport const reportloaderContainer = {\r\n position: 'absolute',\r\n top: '270px',\r\n left: 0,\r\n width: '100%',\r\n heigth: '100%',\r\n backgroundColor: '#F8F8F8AD',\r\n // display: 'none'\r\n};\r\n\r\nexport const reportloader = {\r\n left: '40%',\r\n top: '50%',\r\n zIndex: '1000',\r\n position: 'absolute'\r\n};\r\n\r\nexport const paymentType = [\r\n {key: 'Wallet', value: 'Wallet'},\r\n {key: 'Bank', value: 'Bank'}\r\n];\r\nexport const bankPaymentType = [\r\n {key: 'topup', value: 'Top Up'},\r\n {key: 'Merchant', value: 'Merchant Payment'}\r\n];\r\nexport const daysInMonth = (month, year) => {\r\n return new Date(year, month, 0).getDate();\r\n}\r\n\r\nexport const daysInArray = (num) => {\r\n let arr = [];\r\n for (let i = 1; i <= num; i++) {\r\n arr.push(i);\r\n }\r\n return arr;\r\n}\r\n\r\nexport const MonthArraySM = [\r\n \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\",\r\n \"Jul\",\"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"\r\n];\r\n\r\nexport const MonthArrayCAP = [\r\n {key:0, value: \"January\"},\r\n {key:1, value: \"February\"},\r\n {key:2, value: \"March\"},\r\n {key:3, value: \"April\"},\r\n {key:4, value: \"May\"},\r\n {key:5, value: \"June\"},\r\n {key:6, value: \"July\"},\r\n {key:7, value: \"August\"},\r\n {key:8, value: \"September\"},\r\n {key:9, value: \"October\"},\r\n {key:10, value: \"November\"},\r\n {key:11, value: \"December\"}\r\n];\r\n\r\nexport const YearArray = () => {\r\n const currentYear = new Date().getFullYear();\r\n let arr = [];\r\n for (let i = 2021; i <= currentYear; i++) {\r\n arr.push({key: i, value: i});\r\n }\r\n return arr;\r\n}\r\n\r\nexport const checkName = (value) => {\r\n // let charRegex = /^[A-Za-z. ]*$/;\r\n // if (charRegex.test(value)) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n return true\r\n}\r\n\r\nexport const checkBbanValidation = (value) => {\r\n // let digiRegex = /^[0-9]*$/;\r\n if (value.length <= 18) {\r\n // if (digiRegex.test(value)) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n return true\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const DUMMY_USER = {\r\n \"id\": 8,\r\n \"pin\": null,\r\n \"subscriberUID\": \"232326572835\",\r\n \"userProfileId\": \"28275f9f-1a96-4060-ac75-c1d9ed60cb56\",\r\n \"subscriberName\": \"Kavita Rana\",\r\n \"firstName\": \"Kavita\",\r\n \"lastName\": \"Rana\",\r\n \"organizationName\": null,\r\n \"subscriberType\": \"Individual\",\r\n \"mobileCode\": 232,\r\n \"mobileCodeId\": 232,\r\n \"mobileNumber\": \"326572835\",\r\n \"mobNumber\": \"326572835\",\r\n \"email\": \"kr@gmail.com\",\r\n \"isVerifiedByAdmin\": true,\r\n \"mmoId\": 2,\r\n \"mmoAccountNumber\": \"12345678908\",\r\n \"bankProfileId\": 4,\r\n \"bban\": \"345678909876545678\",\r\n \"isBankVerifiedAPI\": false,\r\n \"isBankVerified\": true,\r\n \"bbanLinkMobileNumber\": \"876576487654\",\r\n \"bbanLinkMobileCode\": 232,\r\n \"bankAccountNumber\": \"7328265876457\",\r\n \"accountCreateedBy\": \"Admin\",\r\n \"balanceAmount\": 97500.00,\r\n \"authFactorType\": \"2FA\",\r\n \"excidedPaymentAmount\": 0.00,\r\n \"mmoName\": \"Test MMO\",\r\n \"bankName\": \"SCB\",\r\n \"isBankApiAvailable\": false,\r\n \"isCardAssigned\": false,\r\n \"createdAt\": \"2021-08-10T08:28:53.6355799\",\r\n \"createdBy\": null,\r\n \"updatedAt\": null,\r\n \"updatedBy\": null,\r\n \"isDeleted\": false,\r\n \"isBlocked\": false,\r\n \"password\": null\r\n};\r\n\r\nexport const getPrivileges = (module) => {\r\n const role = getLoginType();\r\n const previleges = {\r\n 'add': true,\r\n 'view': true,\r\n 'edit': true,\r\n 'block': true,\r\n 'unblock': true\r\n };\r\n if (role == 'Admin') {\r\n return previleges;\r\n } else {\r\n if (module == 'user') {\r\n return getUserPrivileges(role, previleges);\r\n } else if (module == 'mmo') {\r\n return getMMOPrivileges(role, previleges);\r\n } else if (module == 'bank') {\r\n return getBanksPrivileges(role, previleges);\r\n } else if (module == 'merchant') {\r\n return getMerchantPrivileges(role, previleges);\r\n } else if (module == 'subscriber') {\r\n return getSubscriberPrivileges(role, previleges);\r\n } else if (module == 'commission') {\r\n return getCommissionPrivileges(role, previleges);\r\n } else if (module == 'super_agent') {\r\n return getSuperAgentPrivileges(role, previleges);\r\n } else {\r\n return previleges;\r\n }\r\n }\r\n};\r\n\r\nexport const getSuperAgentPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = false;\r\n privileges['view'] = false;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = false;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = false;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Super Agent') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n } else if (role == 'Sub Agent') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n } else {\r\n privileges['add'] = false;\r\n privileges['view'] = false;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const getUserPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const getMMOPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if(role === 'Operation supervisor') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n privileges['unblock'] = true;\r\n } else {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const getBanksPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n privileges['unblock'] = true;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const getMerchantPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n privileges['unblock'] = true;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if(role === 'Operation supervisor') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n privileges['unblock'] = true;\r\n } else {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const getSubscriberPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = false;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Operation supervisor') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = true;\r\n }\r\n else {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const getCommissionPrivileges = (role, privileges) => {\r\n privileges['unblock'] = false;\r\n if (role == 'Finance') {\r\n privileges['add'] = true;\r\n privileges['view'] = true;\r\n privileges['edit'] = true;\r\n privileges['block'] = false;\r\n } else if (role == 'Operations Officer') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Customer Support Supervisor') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else if (role == 'Audits and Compliance') {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n } else {\r\n privileges['add'] = false;\r\n privileges['view'] = true;\r\n privileges['edit'] = false;\r\n privileges['block'] = false;\r\n }\r\n return privileges;\r\n}\r\n\r\nexport const Transaction_Log_Action_Type = [\r\n {key : 1, value: 'Balance Transfer' , id: 'BalanceTransfer'},\r\n {key : 2, value: 'Cash Top Up' , id: 'CashTopUp'},\r\n {key : 3, value: 'Merchant Payment' , id: 'MerchantPayment'},\r\n {key : 4, value: 'Top Up' , id: 'topup'},\r\n {key : 5, value: 'Wallet Payment' , id: 'WalletPayment'},\r\n {key: 6, value: 'Bank Approved', id: 'BankApproved'},\r\n {key: 7, value: 'Bank Rejected', id: 'BankRejected'},\r\n {key: 7, value: 'Top Up Transfer', id: 'TopUpTransfer'},\r\n {key: 8, value: 'Bank Payment Transfer', id: 'BankPaymentTransfer'},\r\n {key: 9, value: 'Merchant Settlement', id: 'MerchantSettlement'},\r\n {key: 10, value: 'Bank Commission Transfer', id: 'BankCommissionTransfer'}\r\n];\r\n\r\nexport const User_Log_Action_Type = [\r\n { key: 1, value: 'Add User' , id: 'AddUser'},\r\n { key: 2, value: 'Edit User', id: 'EditUser'},\r\n { key: 3, value: 'Block User', id: 'BlockedUser'},\r\n { key: 4, value: 'Unblock User', id: 'UnBlockedUser'},\r\n // { key: 5, value: 'Delete User', id: 'DeleteUser },\r\n { key: 6, value: 'Bank Verification', id: 'BankVerification'},\r\n { key: 7, value: 'Log in', id: 'Login'},\r\n { key: 8, value: 'Log out', id: 'LogOut'},\r\n { key: 9, value: 'Add Commission', id: 'AddCommission'},\r\n { key: 10, value: 'Edit Commission', id: 'EditCommission'},\r\n // { key: 11, value: 'Block Commission', id: 'BlockCommission'}\r\n]\r\n\r\nexport const routePermissions = [\r\n {\r\n name: \"Admin\",\r\n layout: \"/admin\",\r\n },\r\n {\r\n name: \"Bank\",\r\n layout: \"/bank\",\r\n },\r\n {\r\n name: \"Subscriber\",\r\n layout: \"/subscriber\",\r\n },\r\n {\r\n name: \"Merchant\",\r\n layout: \"/merchant\",\r\n },\r\n {\r\n name: \"Finance\",\r\n layout: \"/finance\",\r\n },\r\n {\r\n name: \"SettlementBank\",\r\n layout: \"/settlementBank\",\r\n },\r\n {\r\n name: \"Operations Officer\",\r\n layout: \"/operationOfficer\",\r\n },\r\n {\r\n name: \"Customer Support Supervisor\",\r\n layout: \"/customerSupportSupervisor\",\r\n },\r\n {\r\n name: \"Audits and Compliance\",\r\n layout: \"/auditCompliance\",\r\n },\r\n {\r\n name: \"Super Agent\",\r\n layout: \"/super-agent\",\r\n },\r\n {\r\n name: \"Agent\",\r\n layout: \"/sub-agent\",\r\n },\r\n {\r\n name: 'Master Agent',\r\n layout: '/master-agent'\r\n },\r\n {\r\n name: \"Sales Supervisor\",\r\n },\r\n {\r\n name: \"MMO\",\r\n },\r\n {\r\n name: \"Sales Representative\",\r\n },\r\n {\r\n name: \"Customer Support Representative\",\r\n },\r\n {\r\n name: \"Operation supervisor\",\r\n }\r\n];\r\n\r\nexport const getCurrentDateTime = () => {\r\n const now = new Date();\r\n const year = now.getFullYear();\r\n const month = ('0' + (now.getMonth() + 1)).slice(-2); // add leading zero\r\n const date = ('0' + now.getDate()).slice(-2); // add leading zero\r\n const hours = ('0' + now.getHours()).slice(-2); // add leading zero\r\n const minutes = ('0' + now.getMinutes()).slice(-2); // add leading zero\r\n const seconds = ('0' + now.getSeconds()).slice(-2); // add leading zero\r\n return `${date}${month}${year}-${hours}${minutes}${seconds}`;\r\n}\r\n\r\nexport default {\r\n setUserDetails,\r\n getMobCodes,\r\n checkMacAddress,\r\n subscriberType,\r\n getAmt,\r\n getPaymentType,\r\n checkDigitOnly,\r\n checkBankAccNo,\r\n getSortCls,\r\n reportloaderContainer,\r\n reportloader,\r\n paymentType,\r\n daysInMonth,\r\n daysInArray,\r\n MonthArraySM,\r\n MonthArrayCAP,\r\n YearArray,\r\n checkName,\r\n DUMMY_USER,\r\n checkMMOBankAccNo,\r\n getPrivileges,\r\n bankPaymentType,\r\n Transaction_Log_Action_Type,\r\n User_Log_Action_Type\r\n};\r\n","export default __webpack_public_path__ + \"static/media/right-checkmark-removebg-preview.88824f2f.png\";"],"sourceRoot":""}