{"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","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","components/dropdown/SearchDropdown.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","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/super-agent/view-super-agent.js","views/super-agent/super-agent-list.js","views/sub-agent/add-sub-agent.js","views/sub-agent/view-sub-agent.js","views/sub-agent/edit-sub-agent.js","views/sub-agent/sub-agent-list.js","views/master-agent/edit-master-agent.js","views/master-agent/view-master-agent.js","views/master-agent/master-agent-list.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","assets/img/brand/vult-logo.png","views/sub-agent/Cashout.js","views/fsp-customers/cards-list.js","views/fsp-customers/fsp-customer-reset-pin.js","views/fsp-customers/fsp-customers-list.js","views/card-schemes/add-scheme.js","views/card-schemes/edit-scheme.js","views/card-schemes/card-scheme-list.js","views/nfc/add-nfc.js","views/nfc/edit-nfc.js","views/nfc/nfc-list.js","views/card-schemes/card-assignment-instructions.js","views/nfc/card-management.js","views/pos-group/add-pos-group.js","views/pos-group/view-pos-group.js","views/pos-group/edit-pos-group.js","views/pos-group/pos-group-list.js","views/pos-terminal/add-pos-terminal.js","services/pos-terminal-service.js","views/pos-terminal/edit-post-terminal.js","views/pos-terminal/view-pos-terminal.js","views/pos-terminal/pos-terminal-list.js","views/pos-terminal/pos-terminal.js","views/fsp-transaction-fees/add-fsp-transaction-fees.js","views/fsp-transaction-fees/fsp-transaction-fees-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","FinanceDoughnutChart2","cashAmount","walletAmount","financeMTDCollectionWallet","totalCollectionWallet","financeMTDCollectionCash","totalCollectionCash","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","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","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","_apiResponse$totalCas","_apiResponse$totalWal","_apiResponse$transact","_apiResponse$fspFeePo","_apiResponse$smartPay","totalMasterAgentBalance","setTotalMasterAgentBalance","totalSuperAgentBalance","setTotalSuperAgentBalance","totalSubAgentBalance","setTotalSubAgentBalance","customerTopupCumulative","setCustomerTopupCumulative","totalWalletAmt","setWalletAmt","setTotalCommission","subagentList","setSubagentList","superagentList","setSuperagentList","masteragentList","setMasteragentList","showSuperAgentsList","setShowSuperAgentsList","showSubAgentsList","setShowSubAgentsList","showMasterAgentsList","setShowMasterAgentsList","apiResponse","setApiResponse","_res$data","totalWalletBalance","setCharts","setChartData","setCollectedChartData","commissionAmount","pendingChart","showPendingChart","fetchMTDCommission","Year","financeMTDCommYear","Month","financeMTDCommMonth","list","financeMTDColltnMonth","financeMTDColltnYear","showFinanceMTDComm","showFinanceMTDCommLoader","showFinanceMTDColltnLoader2","fetchMTDCollection","financeMTDColltnMonth2","financeMTDColltnYear2","showCollectedChart","valArr1","valArr2","mtdChart1","mtdChart2","chart1","chart2","showFinanceMTDColltn2","showAdminMTDWalletTransLoader","setAdminMTDWalletTrans","adminMTDWalletTransMonth","adminMTDWalletTransYear","showSubAgentMTDWalletTransLoader","setSubAgentMTDWalletTrans","subAgentMTDWalletTransMonth","subAgentMTDWalletTransYear","Status","transferFrom","transferTo","showAdminMTDWalletTrans","showSubAgentMTDWalletTrans","showAgentsList","idx","firstName","lastName","balance","totalCashCollection","totalWalletCollection","transactionFees","fspFeePortion","smartPayFeePortion","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","_paymentTypes$cashAmo","_paymentTypes$walletA","settleBal","setSettleBal","collBal","setCollBal","setWalletComm","paymentTypes","setPaymentTypes","showFinancePieLoader","fetchPieChart","financePieMonth","financePieYear","showFinanceMTDColltnLoader","fetchMTDCollectionPieChart","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","_financeMTDColltn2$ch","_financeMTDColltn2$ch2","_financeMTDColltn2$ch3","_financeMTDColltn2$ch4","_financeMTDColltn2$ch5","_financeMTDColltn2$ch6","_financeMTDColltn2$ch7","_financeMTDColltn2$ch8","_financeMTDColltn2$ch9","_financeMTDColltn2$ch10","_financeMTDColltn2$ch11","_financeMTDColltn2$ch12","_financeMTDColltn2$ch13","_financeMTDColltn2$ch14","_financeMTDColltn2$ch15","_financeMTDColltn2$ch16","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","financeMTDColltn2","setFinanceMTDColltn2","setFinanceMTDColltnMonth2","setFinanceMTDColltnYear2","financeMTDColltnLoading2","setFinanceMTDColltnLoading2","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","changeFinanceMTDColltnYear2","changeFinanceMTDColltnMonth2","changeFinanceMTDCommMonth","changeFinanceMTDCommYear","CardHeader","Input","onChange","Bar","changeAdminMTDWalletTransMonth","changeAdminMTDWalletTransYear","changeSubsMTDWithDrawMonth","changeSubsMTDWithDrawYear","changeSubsMTDPaymentMonth","changeSubsMTDPaymentYear","changeSubsMTDWalletTransMonth","changeSubsMTDWalletTransYear","changeBankCommMonth","changeBankCommYear","changeBankCTMonth","changeBankCTYear","changeFinancePieMonth","changeFinancePieYear","Doughnut","changeFinanceMTDColltnMonth","changeFinanceMTDColltnYear","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","checkMobValidation","changeState","checkBbanValidation","checkName","checkBankAccNo","digiRegex","closeModal","onAccChange","updated","structuredClone","_fsps$find","fontSize","_values$bban","_values$commissionId","_values$bankAccNo","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","spinner","setSpinner","marginTop","downloadFile","config","validateUrlId","updateStatusUrlId","EditMerchant","_props$address","_props$merchantBankAc","bank","toString","_values$bankName","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","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","feesID","fspPortion","smartPayPortion","createBy","isDeleted","AddPOS","methods","setMethods","entries","check","inline","Label","overflow","bordered","feeId","feeType","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","toLowerCase","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","autoTable","save","exportPDF","k","settlementPendingAmount","collectionAccountBalance","SearchableSelect","onSelect","defaultValue","dropdownVersion","setIsOpen","searchValue","setSearchValue","selectedOption","setSelectedOption","filteredOptions","option","Dropdown","direction","caret","textAlign","maxHeight","overflowX","handleOptionSelect","MerchantSettlementTransactionHistoryList","metaInfo","setMetaInfo","serttlementList","_Date$toLocaleString","_mmo$fromName","_mmo$toName","_mmo$settledBy","_mmo$settlementType","_mmo$settledAmount","_mmo$remainingAmount","_mmo$settlementStatus","fromName","settlementStatus","fspid","customerId","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","linkMsg","setLinkMsg","handleSubmit","_accounts$find","hasAnyField","rest","_res$data4$result$cus","customerAcct","_res$data6","_res$data6$result","message","errMsg","findAcc","_res$data7","_res$data7$result","_res$data8","_res$data9","_res$data10","_res$data11","justifyContent","alignItems","flexDirection","_item$accountName","_item$accountNo","_item$email","_item$avlBal","_item$product","accountName","avlBal","product","ShieldGif","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","accountNumber","applicantName","applicantPhone","applicantEmail","universityName","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$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","maxLength","SmartKorporPaymentTab","values1","handleSubmit1","handleInputChange1","formState1","errors1","userResponse1","setValues1","initialValue1","loading1","setFormState1","refNo","minLength","currency","customername","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","account","accountID","_res$data$responseMes2","_res$data20","_res$data$responseMes","_res$data21","_res$data22","_res$data23","_res$data23$data","_res$data24","_res$data24$data","_res$data25","_res$data$message","_res$data26","_res$data27","_res$data28","_res$data29","_res$data30","_res$data31","_res$data32","_res$data33","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","submit","reset","transationFrom","transationTo","fspFee","smartPayFee","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","_values$paymentType5","posData","setPosData","transactionStatus","posMacID","collectedBy","merchantID","dateRange","isFirst","setIsFirst","setPdfLoading","setXlLoading","fullName","_values$transactionSt","_values$paymentType","_values$collectionTyp","_values$posMacID","_values$merchantID","_values$fspid","_values$collectedBy","onSubmitAllReport","_values$transactionSt2","_values$paymentType2","_values$collectionTyp2","_values$posMacID2","_values$merchantID2","_values$fspid2","_values$collectedBy2","_response$data","_response$data$result","ReactSelect","isMulti","isSearchable","fsp","_values$paymentType3","allData","_mmo$collectionType","_mmo$collectedBy","_getAmt2","_mmo$transactionStatu","commission","_mmo$toPaymentName","_getAmt3","_getAmt4","_mmo$transactionStatu2","fromPaymentName","toPaymentName","nfcCardId","thirdPartyRefId","sum","el","_values$paymentType4","wb","XLSX","book_new","_mmo$collectionType2","_mmo$collectedBy2","_getAmt5","_getAmt6","_mmo$transactionStatu3","Commission","Description","_mmo$collectionType3","_mmo$collectedBy3","_mmo$toPaymentName2","_getAmt7","_getAmt8","_mmo$transactionStatu4","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","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","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","bankLinkedPhone","bankMobWithoutCC","navItemCls","cardHeaderCls","AddSuperAgent","setDisableTab2","disableTab3","setDisableTab3","checkDigitOnly","tabs","validateProfile","validateBank","EditSuperAgent","excidedPaymentAmount","_inputs$bban","_inputs$bban2","_inputs$bban3","ViewSuperAgent","SuperAgentList","verifyObj","setVerifyObj","openVerifyModal","setOpenVerifyModal","subsLoading","setSubsLoading","blockLoading","setBlockLoading","fetchSubsHandle","closeVerifyModal","pointerEvents","deleteSub","verifySub","Verify","fetchSupAgentById","AddSubAgent","ViewSubAgent","EditSubAgent","SubAgentsList","fetchSubAgentById","EditMasterAgent","ViewMasterAgent","MasterAgentsList","AddMasterAgent","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","All_TABS","BankUserJourney","CB1Img","CB4Img","CB2Img","CB3Img","SB1Img","SB2Img","LegalInformation","ContactUs","rel","AddSubscriber","activeTabName","setActiveTabName","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","posDeviceName","getAllData","posMacIds","posAgentUseIds","_allUsers$find$fullNa","_allUsers$find","_moment$format","_teller$transactionId","_teller$fromPaymentNa","_teller$collectedBy","_teller$description","settlementAmout","downloadPDF","fileName","extraInfo","_extraInfo$merchat","_extraInfo$username","_extraInfo$posId","logoUrl","Logo","addImage","setFont","setDrawColor","setLineWidth","titleWidth","getTextWidth","centerX","internal","currentY","merchat","username","posId","field","tableStartY","theme","textColor","headStyles","fontStyle","didDrawPage","pageHeight","pageWidth","timestamp","getNumberOfPages","textWidth","_moment$format2","_mmo$transactionId","_mmo$fromPaymentName","_mmo$description","Customer","_moment$format3","_teller$transactionId2","_getAmt9","_teller$fromPaymentNa2","_teller$collectedBy2","_teller$description2","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","VultLogo","CashoutSubAgent","setPaymentTo","sm","CardsList","fetchNFC","nfcCardName","nfcCardID","nfcCardClientID","FSPCustomerResetPin","encryptText","textToEncrypt","keyBytes","padEnd","_String2","sortFullName","FSPCustomersList","isCardModalOpen","setIsOpenCardModal","openReset","setOpenReset","selectedFsp","setSelectedFsp","toLocaleLowerCase","_teller$customerId","_teller$fullName","_teller$email","_teller$mobileCode","_teller$mobileNumber","_Date$toLocaleDateStr","_teller$verificationS","verificationStatus","cardSchemeName","issuerName","issuerAddress","issuerPhone","issuerEmail","accountStatus","cardApplication","groupId","groupName","pinRule","AddNFC","_groups$filter","groups","setGroups","fetchGroups","cardApps","pinRules","cardApps2","_pinRules$filter","_cardApps$filter","_cardApps2$filter","_groups$filter2","CardSchemeList","SortingOn","IsDescending","AddScheme","EditScheme","isBlock","deleteNFC","isDelete","_mmo$cardSchemeName","_mmo$issuerName","_mmo$issuerPhone","_mmo$groupName","schemeId","_cardGroups$filter","_fsps$filter","_customers$filter","customers","setCustomers","allCards","setAllCards","cardGroups","setCardGroups","fetchCardNames","fetchGroupNames","fetchCustomers","cardName","_i$mobileCode","EditNFC","_allCards$filter","_allCards$filter$map","_customers$filter2","_customers$filter2$ma","_i$mobileCode2","NFCList","_mmo$customerName","_mmo$nfcCardName","CardAssignmentInstructions","CardManagement","posid","posDevice","AddPOSGroup","allGroups","setAllGroups","setAllPosDevices","fetchAllDevice","fetchAllGroups","_i$groupName","_values$groupName","ViewPOSGroup","_values$details","details","isDisabled","EditPOSGroup","_props$values$details","_props$values$details2","f","action","removedValue","removedValues","POSGroupList","setEdit","fetchGroupSchemes","posMake","posModel","posManufactureYear","posMacAddress","isNFCEnabled","isMagStripeEnabled","isChipEnabled","NFC","setPosTerminalvalues","make","model","manufactureYear","macAddress","serialNo","nfc","chip","magStrip","deviceName","EditPOS","checkMacAddress","ViewPOS","PosTerminalList","fetchPOS","totalPages","deletePOS","fetchPOSById","feeCalculateMethod","feeName","feeValue","AddFspTransactionFees","_inputs$feeType","feeAmount","_values$feeType","_methods$find","methodId","component","Login","MerchantList","FSPUsersList","addFeeOpen","setAddFeeOpen","some","_teller$feeType","_teller$feeName","CustomerWhiteList","WhiteListCustomerLink","POSTerminal","TopUpWallet","MakePayment","AgentMakePayment","CollectionList","KnowledgeBase","Admin","mainContent","documentElement","scrollingElement","AdminNavbar","getBrandText","Switch","Route","Redirect","from","Auth","classList","remove","paymentInitialState","cbankListIS","combineReducers","paymentList","cBankList","settlementBankIs","loginIS","SubscriberIS","VoucherIS","makePaymentIS","payableAmtIS","rootBankReducer","rootSubsReducer","rootFinanceReducer","rootLoginReducer","paymentListError","resetPaymentList","cBankListError","resetCbankList","fetchPaymentList","put","setPaymentList","fetchCBankList","bankSaga","takeLatest","rootBankSaga","all","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","checkMMOBankAccNo","DUMMY_USER","previleges","getUserPrivileges","getMMOPrivileges","getBanksPrivileges","getMerchantPrivileges","getSubscriberPrivileges","getCommissionPrivileges","getSuperAgentPrivileges","now","getHours","getMinutes","getSeconds"],"mappings":"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","file":"static/js/main.87e1d891.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';\nimport { API_ENDPOINTS, TOKEN, LOGIN_API_ENDPOINTS } from '../appConfig';\n\n\naxios.interceptors.request.use(\n (req) => {\n // Add configurations here\n if (req.data) {\n if (req.data instanceof FormData) {\n req.data.append('LoggedInUserId', getUserId());\n } else if (typeof(req.data) === 'string') {\n if (checkJSON(req.data)) {\n req.data = addLoggedInUserId(req.data);\n }\n } else if (typeof(req.data) === 'object') {\n if (\n req.data.hasOwnProperty('SearchText') &&\n req.data.SearchText.length\n ) {\n req.data.SearchText = req.data.SearchText.trim();\n }\n req.data['LoggedInUserId'] = getUserId();\n }\n } \n return req;\n\n // const CancelToken = axios.CancelToken;\n // return {\n // ...req,\n // cancelToken: new CancelToken((cancel) => cancel('Cancel repeated request'))\n // };\n },\n (err) => {\n return Promise.reject(err);\n }\n);\n\naxios.interceptors.response.use(\n (res) => {\n if (\n res && \n res.data && \n res.data.responseCode !== '200' &&\n res.data.responseMessage\n ) {\n let ob = {\n data: {\n ...res.data\n }\n };\n return Promise.resolve(ob);\n } else {\n return Promise.resolve(res);\n }\n }, \n (error) => {\n\n const expectedError =\n error.response &&\n error.response.status >= 400 &&\n error.response.status < 500;\n if (!expectedError) {\n console.log(\"Oops!\", \"Something went wrong!\", \"error\");\n }\n if (error && error.response && error.response.status === 401) {\n window.localStorage.clear();\n window.location = \"/\";\n let ob = {\n data: {\n responseCode: '400',\n responseMessage: 'Session Expires'\n }\n };\n return Promise.resolve(ob);\n } else if (error && error.response && error.response.status === 400) {\n let ob = {\n data: {\n responseCode: '400',\n responseMessage: error.response.data.responseMessage ? \n error.response.data.responseMessage : typeof error.response.data?.result === \"string\" ? error.response.data?.result : 'Bad Request'\n }\n };\n return Promise.resolve(ob);\n } else {\n return Promise.reject(error);\n }\n});\n\n\nconst checkJSON = (str) => {\n try {\n let ob = JSON.parse(str);\n if (typeof ob === 'object') {\n return true;\n } else {\n return false;\n }\n } catch (e) {\n return false;\n } \n}\n\nconst addLoggedInUserId = (str) => {\n try {\n let ob = JSON.parse(str);\n ob.LoggedInUserId = getUserId();\n if (\n ob.hasOwnProperty('SearchText') &&\n ob.SearchText.length\n ) {\n ob.SearchText = ob.SearchText.trim();\n }\n return JSON.stringify(ob);\n } catch (e) {\n return str;\n }\n}\n\nlet isLoggedIn = null;\nlet loginType = null;\nlet loginUserEmail = null;\nlet loginUserName = null;\nlet loginUserImageB64 = null;\nlet loginUserId = null;\nlet loginSuperAgentId = null;\nlet loginPswd = null;\n// const setAuthTokenHeader = () => {\n// const token = authService.getAuthToken();\n// if (!token || token === \"undefined\") {\n// window.location = \"/\";\n// logout();\n// return null;\n// } else {\n// return {\n// access_token: token,\n// };\n// }\n// };\n\n// export const fetchMethod = (url, data, method) => axios({\n// url: `${API_ENDPOINTS}${url}`,\n// method,\n// data,\n// // headers: isAuthToken ? { ...setAuthTokenHeader() } : null,\n// });\n\nconst setAuthTokenHeader = () => {\n // const token = window.localStorage.getItem(\"token\");\n // if (!token) {\n // window.location = \"/\";\n // return null;\n // }\n return {\n Authorization: `Bearer ${TOKEN}`,\n };\n};\n\nconst getAuthToken = () => {\n const token = window.localStorage.getItem(\"token\");\n if (!token) {\n window.location = \"/\";\n return null;\n }\n return token;\n}\nexport const fetchMethod = (url, data, method, isAuthToken) => {\n return axios({\n url: `${API_ENDPOINTS}${url}`,\n method,\n data,\n headers: isAuthToken ? { ...setAuthTokenHeader() } : null,\n });\n};\n\n\nexport const postMethod = async (url, data, method) => {\n const token = getAuthToken();\n return axios({\n url: `${API_ENDPOINTS}${url}`,\n method,\n data,\n headers: {\n \"Content-Type\": \"application/json\",\n // \"Authorization\": `Bearer ${TOKEN}`\n \"Authorization\": 'Bearer ' + token\n },\n });\n}\n\nexport const getMethod = async (url, method) => {\n const token = getAuthToken();\n return await axios({\n url: `${API_ENDPOINTS}${url}`,\n method,\n // data,\n headers: {\n \"Content-Type\": \"application/json\",\n // \"Authorization\": `Bearer ${TOKEN}`\n \"Authorization\": 'Bearer ' + token\n },\n });\n}\n\nexport const getMethodDefaultToken = (url, method) => {\n // const token = getAuthToken();\n return axios({\n url: `${API_ENDPOINTS}${url}`,\n method,\n // data,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${TOKEN}`\n // \"Authorization\": 'Bearer ' + token\n },\n });\n}\n\nexport const postMethodDefaultToken = (url, data, method) => {\n // const token = getAuthToken();\n return axios({\n url: `${API_ENDPOINTS}${url}`,\n method,\n data,\n headers: {\n \"Content-Type\": \"application/json\",\n // \"Authorization\": `Bearer ${TOKEN}`\n // \"Authorization\": 'Bearer ' + token\n },\n });\n}\n\nexport const loginMethod = (url, data, method) => {\n return axios({\n url: `${API_ENDPOINTS}${url}`,\n method,\n data,\n headers: {\n \"Content-Type\": \"application/json\"\n },\n });\n}\n\nexport const adminMethod = (url, data, method) => {\n const token = getAuthToken();\n return axios({\n url: `${LOGIN_API_ENDPOINTS}${url}`,\n method,\n data,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": 'Bearer ' + token\n },\n });\n}\n\n// export const handleError = (error) => {\n\n// if (error && error.response) {\n// if (error.response.status == 401) {\n// window. window.localStorage.clear();\n// window.location = \"/\";\n// }\n// } else {\n\n// }\n// }\n\nexport const getLoggedIn = () => {\n if (\n !isLoggedIn &&\n window.localStorage.getItem('validUser') === \"true\"\n ) {\n return true\n }\n return isLoggedIn;\n}\n\nexport const setLoggedIn = (value) => {\n isLoggedIn = value;\n}\n\nexport const getLoginType = () => {\n if (!loginType && window.localStorage.getItem('userType') !== \"null\") {\n return window.localStorage.getItem('userType');\n }\n return loginType;\n}\n\nexport const setLoginType = (type) => {\n loginType = type;\n window.localStorage.setItem('userType', type);\n}\n\nexport const getUserEmail = () => {\n if (!loginUserEmail && window.localStorage.getItem('userEmail') !== \"null\") {\n return window.localStorage.getItem('userEmail');\n }\n return loginUserEmail;\n}\n\nexport const setUserEmail = (email) => {\n loginUserEmail = email.trim();\n window.localStorage.setItem('userEmail', loginUserEmail);\n}\n\nexport const setUserName = (name) => {\n loginUserName = name;\n window.localStorage.setItem('userName', name);\n}\n\nexport const getUserName = () => {\n if (!loginUserName && window.localStorage.getItem('userName') !== \"null\") {\n return window.localStorage.getItem('userName');\n }\n return loginUserName;\n}\n\nexport const setUserB64 = (b64) => {\n loginUserImageB64 = b64;\n window.localStorage.setItem('userImg', b64);\n}\n\nexport const getUserB64 = () => {\n if (!loginUserImageB64 && window.localStorage.getItem('userImg') !== \"null\") {\n return window.localStorage.getItem('userImg');\n }\n return loginUserImageB64;\n}\n\nexport const setUserId = (id) => {\n loginUserId = id;\n window.localStorage.setItem('userId', id);\n}\n\nexport const setSuperAgentId = (id) => {\n loginSuperAgentId = id;\n window.localStorage.setItem('loginSuperAgentId', id);\n}\n\nexport const getUserId = () => {\n if (!loginUserId && window.localStorage.getItem('userId') !== \"null\") {\n return window.localStorage.getItem('userId');\n }\n return loginUserId;\n}\n\nexport const getSuperAgentId = () => {\n if (!loginSuperAgentId && window.localStorage.getItem('loginSuperAgentId') !== \"null\") {\n return window.localStorage.getItem('loginSuperAgentId');\n }\n return loginSuperAgentId;\n}\n\nexport const checkSpace = (value) => {\n const spaceRegex = /^\\s*$/;\n if (!spaceRegex.test(value) || !value.length) {\n return true;\n } else {\n return false;\n }\n}\n\nexport const setPswd = (value) => {\n loginPswd = value;\n window.localStorage.setItem('pswd', value);\n}\n\nexport const getPswd = () => {\n if (!loginPswd && window.localStorage.getItem('pswd') !== \"null\") {\n return window.localStorage.getItem('pswd');\n }\n return loginPswd;\n}\n\nexport default {\n fetchMethod,\n postMethod,\n getMethod,\n loginMethod,\n setLoggedIn,\n getLoggedIn,\n getLoginType,\n setLoginType,\n getUserEmail,\n setUserEmail,\n adminMethod,\n getUserB64,\n setUserB64,\n getUserName,\n checkSpace,\n setPswd,\n getPswd,\n getMethodDefaultToken,\n postMethodDefaultToken\n};\n","/*!\n\n=========================================================\n* Argon Dashboard React - v1.2.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/argon-dashboard-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard-react/blob/master/LICENSE.md)\n\n* Coded by Creative Tim\n\n=========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n*/\nconst Chart = require(\"chart.js\");\nconst { getAmt } = require(\"services/util\");\n//\n// Chart extension for making the bars rounded\n// Code from: https://codepen.io/jedtrow/full/ygRYgo\n//\n\nChart.elements.Rectangle.prototype.draw = function () {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var left, right, top, bottom, signX, signY, borderSkipped, radius;\n var borderWidth = vm.borderWidth;\n // Set Radius Here\n // If radius is large enough to cause drawing errors a max radius is imposed\n var cornerRadius = 6;\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || \"bottom\";\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || \"left\";\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n var barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n var halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n var borderLeft = left + (borderSkipped !== \"left\" ? halfStroke * signX : 0);\n var borderRight =\n right + (borderSkipped !== \"right\" ? -halfStroke * signX : 0);\n var borderTop = top + (borderSkipped !== \"top\" ? halfStroke * signY : 0);\n var borderBottom =\n bottom + (borderSkipped !== \"bottom\" ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n var corners = [\n [left, bottom],\n [left, top],\n [right, top],\n [right, bottom],\n ];\n\n // Find first (starting) corner with fallback to 'bottom'\n var borders = [\"bottom\", \"left\", \"top\", \"right\"];\n var startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n var corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (var i = 1; i < 4; i++) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId === 4) {\n nextCornerId = 0;\n }\n\n // let nextCorner = cornerAt(nextCornerId);\n\n let width = corners[2][0] - corners[1][0];\n let height = corners[0][1] - corners[1][1];\n let x = corners[1][0];\n let y = corners[1][1];\n // eslint-disable-next-line\n var radius = cornerRadius;\n\n // Fix radius being too large\n if (radius > height / 2) {\n radius = height / 2;\n }\n if (radius > width / 2) {\n radius = width / 2;\n }\n\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n};\n\nvar mode = \"light\"; //(themeMode) ? themeMode : 'light';\nvar fonts = {\n base: \"Open Sans\",\n};\n\n// Colors\nvar colors = {\n gray: {\n 100: \"#f6f9fc\",\n 200: \"#e9ecef\",\n 300: \"#dee2e6\",\n 400: \"#ced4da\",\n 500: \"#adb5bd\",\n 600: \"#8898aa\",\n 700: \"#525f7f\",\n 800: \"#32325d\",\n 900: \"#212529\",\n },\n theme: {\n default: \"#172b4d\",\n primary: \"#5e72e4\",\n secondary: \"#f4f5f7\",\n info: \"#11cdef\",\n success: \"#2dce89\",\n danger: \"#f5365c\",\n warning: \"#fb6340\",\n },\n black: \"#12263F\",\n white: \"#FFFFFF\",\n transparent: \"transparent\",\n};\n\n// Methods\n\n// Chart.js global options\nfunction chartOptions() {\n // Options\n var options = {\n defaults: {\n global: {\n responsive: true,\n maintainAspectRatio: false,\n defaultColor: mode === \"dark\" ? colors.gray[700] : colors.gray[600],\n defaultFontColor: mode === \"dark\" ? colors.gray[700] : colors.gray[600],\n defaultFontFamily: fonts.base,\n defaultFontSize: 13,\n layout: {\n padding: 0,\n },\n legend: {\n display: false,\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 16,\n },\n },\n elements: {\n point: {\n radius: 0,\n backgroundColor: colors.theme[\"primary\"],\n },\n line: {\n tension: 0.4,\n borderWidth: 4,\n borderColor: colors.theme[\"primary\"],\n backgroundColor: colors.transparent,\n borderCapStyle: \"rounded\",\n },\n rectangle: {\n backgroundColor: colors.theme[\"warning\"],\n },\n arc: {\n backgroundColor: colors.theme[\"primary\"],\n borderColor: mode === \"dark\" ? colors.gray[800] : colors.white,\n borderWidth: 4,\n },\n },\n tooltips: {\n enabled: true,\n mode: \"index\",\n intersect: false,\n },\n },\n doughnut: {\n cutoutPercentage: 83,\n legendCallback: function (chart) {\n var data = chart.data;\n var content = \"\";\n\n data.labels.forEach(function (label, index) {\n var bgColor = data.datasets[0].backgroundColor[index];\n\n content += '';\n content +=\n '';\n content += label;\n content += \"\";\n });\n\n return content;\n },\n },\n },\n };\n\n // yAxes\n Chart.scaleService.updateScaleDefaults(\"linear\", {\n gridLines: {\n borderDash: [2],\n borderDashOffset: [2],\n color: mode === \"dark\" ? colors.gray[900] : colors.gray[300],\n drawBorder: false,\n drawTicks: false,\n lineWidth: 0,\n zeroLineWidth: 0,\n zeroLineColor: mode === \"dark\" ? colors.gray[900] : colors.gray[300],\n zeroLineBorderDash: [2],\n zeroLineBorderDashOffset: [2],\n },\n ticks: {\n beginAtZero: true,\n padding: 10,\n callback: function (value) {\n if (!(value % 10)) {\n return value;\n }\n },\n },\n });\n\n // xAxes\n Chart.scaleService.updateScaleDefaults(\"category\", {\n gridLines: {\n drawBorder: false,\n drawOnChartArea: false,\n drawTicks: false,\n },\n ticks: {\n padding: 20,\n },\n });\n\n return options;\n}\n\n// Parse global options\nfunction parseOptions(parent, options) {\n for (var item in options) {\n if (typeof options[item] !== \"object\") {\n parent[item] = options[item];\n } else {\n parseOptions(parent[item], options[item]);\n }\n }\n}\n\n// Example 1 of Chart inside src/views/Index.js (Sales value - Card)\nlet chartExample1 = {\n options: {\n scales: {\n yAxes: [\n {\n gridLines: {\n color: colors.gray[900],\n zeroLineColor: colors.gray[900],\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n return \"$\" + value + \"k\";\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = item.yLabel;\n var content = \"\";\n\n if (data.datasets.length > 1) {\n content += label;\n }\n\n content += \"$\" + yLabel + \"k\";\n return content;\n },\n },\n },\n },\n data1: (canvas) => {\n return {\n labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n datasets: [\n {\n label: \"Performance\",\n data: [0, 20, 10, 30, 15, 40, 20, 60, 60],\n },\n ],\n };\n },\n data2: (canvas) => {\n return {\n labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n datasets: [\n {\n label: \"Performance\",\n data: [0, 20, 5, 25, 10, 30, 15, 40, 40],\n },\n ],\n };\n },\n};\n\n// Example 2 of Chart inside src/views/Index.js (Total orders - Card)\nlet chartExample2 = {\n options: {\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return value;\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = item.yLabel;\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: [\"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n datasets: [\n {\n label: \"Sales\",\n data: [25, 20, 30, 22, 17, 29],\n maxBarThickness: 10,\n },\n ],\n },\n};\n\nconst PendingChartData = () => {\n let pendingChart = {\n options: {\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return value;\n }\n },\n },\n gridLines: {\n display: false,\n },\n },\n ],\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = item.yLabel;\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: [\"Merchat\", \"Bank\", \"MMO\"],\n datasets: [\n {\n label: \"Commission\",\n data: [],\n maxBarThickness: 10,\n backgroundColor: \"Yellow\",\n },\n ],\n },\n };\n return pendingChart;\n};\n\nconst PendingChartData2 = (ob) => {\n const data = {\n labels: [\n \"Merchant : \" + getAmt(ob.merchantCommission),\n \"Bank : \" + getAmt(ob.bankCommission),\n \"MMO : \" + 100,\n ],\n datasets: [\n {\n label: \"# of Votes\",\n data: [ob.merchantCommission, ob.bankCommission, 100],\n backgroundColor: [\n \"rgba(221, 160, 221, 0.2)\",\n \"rgba(54, 162, 235, 0.2)\",\n \"rgba(255, 206, 86, 0.2)\",\n ],\n borderColor: [\n \"rgba(221, 160, 221, 1)\",\n \"rgba(54, 162, 235, 1)\",\n \"rgba(255, 206, 86, 1)\",\n ],\n borderWidth: 1,\n },\n ],\n };\n return data;\n};\n\nconst CollectedChartData2 = (ob) => {\n const data = {\n labels: [\n \"Merchant : \" + getAmt(ob.merchantCommission),\n \"Bank : \" + getAmt(ob.bankCommission),\n \"MMO : \" + getAmt(ob.mmoCommission),\n ],\n datasets: [\n {\n label: \"# of Votes\",\n data: [],\n backgroundColor: [\n \"rgba(75, 192, 192, 0.2)\",\n \"rgba(153, 102, 255, 0.2)\",\n \"rgba(189, 183, 107, 0.2)\",\n ],\n borderColor: [\n \"rgba(75, 192, 192, 1)\",\n \"rgba(153, 102, 255, 1)\",\n \"rgba(189, 183, 107, 1)\",\n ],\n borderWidth: 1,\n },\n ],\n };\n return data;\n};\n\nconst CollectedChartData = () => {\n let pendingChart = {\n options: {\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value) {\n if (!(value % 100)) {\n //return '$' + value + 'k'\n return value;\n }\n },\n },\n gridLines: {\n display: false,\n },\n },\n ],\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = item.yLabel;\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: [\"Merchat\", \"Bank\", \"MMO\"],\n datasets: [\n {\n label: \"Commission\",\n data: [],\n maxBarThickness: 10,\n backgroundColor: \"Green\",\n },\n ],\n },\n };\n return pendingChart;\n};\n\nconst merchantMTDChartData = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Sales\",\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst merchantYTDChartData = (ob) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: ob.monthArr,\n datasets: [\n {\n label: \"Sales\",\n data: ob.dataArr,\n backgroundColor: \"#9e067c \",\n borderColor: \"#9e067c \",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst SubscriberChartData = () => {\n const data = {\n labels: [\"Merchant\", \"Bank\", \"MMO\"],\n datasets: [\n {\n label: \"# of Votes\",\n data: [],\n backgroundColor: [\n \"rgba(255, 99, 132, 0.2)\",\n \"rgba(54, 162, 235, 0.2)\",\n \"rgba(255, 206, 86, 0.2)\",\n ],\n borderColor: [\n \"rgba(255, 99, 132, 1)\",\n \"rgba(54, 162, 235, 1)\",\n \"rgba(255, 206, 86, 1)\",\n ],\n borderWidth: 1,\n },\n ],\n };\n return data;\n};\n\nconst subsMTDWithDrawal = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n barPercentage: 2,\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Bank \",\n data: obj.bankArr,\n backgroundColor: \"#FFF00A\",\n borderColor: \"#FFF00A\",\n maxBarThickness: 10,\n },\n {\n label: \"MMO \",\n data: obj.mmoArr,\n backgroundColor: \"#FF0AF4\",\n borderColor: \"#FF0AF4\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst subsMTDPayment = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n barPercentage: 2,\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Payment using bank \",\n data: obj.bankArr,\n backgroundColor: \"#0A2BFF\",\n borderColor: \"#0A2BFF\",\n maxBarThickness: 10,\n },\n {\n label: \"Payment using wallet \",\n data: obj.walletArr,\n backgroundColor: \"#0AFFF8\",\n borderColor: \"#0AFFF8\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst subsMTDWalletTrans = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n barPercentage: 2,\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Transfer \",\n data: obj.getArr,\n backgroundColor: \"#52D416\",\n borderColor: \"#52D416\",\n maxBarThickness: 10,\n },\n {\n label: \"Receipt \",\n data: obj.sendArr,\n backgroundColor: \"#314D24\",\n borderColor: \"#314D24\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst bankCommMTDChartData = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Commissions : \" + getAmt(obj.totalComm),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst bankCT_MTD = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n barPercentage: 2,\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n label = label.split(\":\")[0];\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Top-Up : \" + getAmt(obj.totalTopUp),\n data: obj.topUpArr,\n backgroundColor: \"#52D416\",\n borderColor: \"#52D416\",\n maxBarThickness: 10,\n },\n {\n label: \"Direct Payment : \" + getAmt(obj.totalPayment),\n data: obj.paymentArr,\n backgroundColor: \"#314D24\",\n borderColor: \"#314D24\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst FinancePieChart = (obj) => {\n const data = {\n labels: [\n \"Collection : \" + getAmt(obj.collectionAmt),\n \"Bank Settlement : \" + getAmt(obj.settlementAmt),\n \"Total Commission : \" + getAmt(obj.walletComm),\n \"Merchant Transfers : \" + getAmt(obj.transfer),\n ],\n datasets: [\n {\n label: \"# of Votes\",\n data: [\n obj.collectionAmt,\n obj.settlementAmt,\n obj.walletComm,\n obj.transfer,\n ],\n backgroundColor: [\n \"rgba(255, 99, 132, 0.2)\",\n \"rgba(54, 162, 235, 0.2)\",\n \"rgba(255, 206, 86, 0.2)\",\n \"rgba(128, 0, 128, 0.2)\",\n ],\n borderColor: [\n \"rgba(255, 99, 132, 1)\",\n \"rgba(54, 162, 235, 1)\",\n \"rgba(255, 206, 86, 1)\",\n \"rgba(128, 0, 128, 1)\",\n ],\n borderWidth: 1,\n },\n ],\n };\n return data;\n};\n\nconst financeMTDCollection = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // // autoSkip: false\n // beginAtZero: true,\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Collections : \" + getAmt(obj.totalComm),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n // minBarLength: 3\n },\n ],\n },\n };\n return chart;\n};\n\nconst financeMTDCollectionWallet = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // // autoSkip: false\n // beginAtZero: true,\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Wallet Amount : \" + getAmt(obj.totalCollectionWallet),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n // minBarLength: 3\n },\n ],\n },\n };\n return chart;\n};\n\nconst financeMTDCollectionCash = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // // autoSkip: false\n // beginAtZero: true,\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Cash Amount : \" + getAmt(obj.totalCollectionCash),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n // minBarLength: 3\n },\n ],\n },\n };\n return chart;\n};\n\nconst financeMTDCollectionLC = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n // return \"$\" + value + \"k\";\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = item.yLabel;\n var content = \"\";\n\n if (data.datasets.length > 1) {\n content += label;\n }\n\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: (canvas) => {\n return {\n // labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n // datasets: [\n // {\n // label: \"Performance\",\n // data: [0, 20, 10, 30, 15, 40, 20, 60, 60],\n // },\n // ],\n\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Settlements : \" + getAmt(obj.totalComm),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n },\n ],\n };\n },\n data2: (canvas) => {\n return {\n labels: [\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n datasets: [\n {\n label: \"Performance\",\n data: [0, 20, 5, 25, 10, 30, 15, 40, 40],\n },\n ],\n };\n },\n };\n return chart;\n};\n\nconst financeMTDCommission = (obj) => {\n console.log({obj})\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Commissions : \" + getAmt(obj.totalComm),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst settlementMTDMerchant = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Settlements : \" + getAmt(obj.totalComm),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst SettlementPieChart = (obj) => {\n const data = {\n labels: [\n \"Settlement Bank Balance : \" + getAmt(obj.settlementAmt),\n \"Merchant Settlement : \" + getAmt(obj.transfer),\n ],\n datasets: [\n {\n label: \"# of Votes\",\n data: [obj.settlementAmt, obj.transfer],\n backgroundColor: [\n \"rgba(255, 99, 132, 0.2)\",\n \"rgba(54, 162, 235, 0.2)\",\n // 'rgba(255, 206, 86, 0.2)',\n // 'rgba(128, 0, 128, 0.2)'\n ],\n borderColor: [\n \"rgba(255, 99, 132, 1)\",\n \"rgba(54, 162, 235, 1)\",\n // 'rgba(255, 206, 86, 1)',\n // 'rgba(128, 0, 128, 1)'\n ],\n borderWidth: 1,\n },\n ],\n };\n return data;\n};\n\nconst settlementMTDTransfer = (obj) => {\n let chart = {\n options: {\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n // ticks: {\n // autoSkip: false\n // }\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n ticks: {\n callback: function (value) {\n if (!(value % 10)) {\n //return '$' + value + 'k'\n return getAmt(value);\n }\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (item, data) {\n var label = data.datasets[item.datasetIndex].label || \"\";\n var yLabel = getAmt(item.yLabel);\n var content = \"\";\n if (data.datasets.length > 1) {\n content += label;\n }\n content += yLabel;\n return content;\n },\n },\n },\n },\n data: {\n labels: obj.daysArr,\n datasets: [\n {\n label: \"Transfers : \" + getAmt(obj.totalComm),\n data: obj.dataArr,\n backgroundColor: \"#fb6340\",\n borderColor: \"#fb6340\",\n maxBarThickness: 10,\n },\n ],\n },\n };\n return chart;\n};\n\nconst doughnutCollectionChart = (ob) => {\n // ob.mmoCommission = 1;\n let seriesData = [\n ob.merchantCommission,\n ob.bankCommission,\n ob.mmoCommission,\n ob?.subAgentCommissionCumulative,\n ];\n var total = seriesData.reduce((a, v) => a + v);\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\n // var inPercent = seriesData.map(v => (v / total * 100));\n var labelsData = [\n \"Merchant : \" + getAmt(ob.merchantCommission),\n \"Bank : \" + getAmt(ob.bankCommission),\n \"MMO : \" + getAmt(ob.mmoCommission),\n \"Sub Agent :\" + getAmt(ob.subAgentCommissionCumulative),\n ];\n let chart = {\n data: {\n labels: labelsData,\n datasets: [\n {\n data: inPercent,\n backgroundColor: [\"#FF6384\", \"#36A2EB\", \"#FFCE56\", \"#2dce89\"],\n hoverBackgroundColor: [\"#FF6384\", \"#36A2EB\", \"#FFCE56\", \"#2dce89\"],\n },\n ],\n text: \"23%\",\n },\n options: {\n cutoutPercentage: 65,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n plugins: {\n datalabels: {\n display: false,\n },\n },\n tooltips: {\n enabled: true,\n mode: \"nearest\",\n callbacks: {\n label: function (tooltipItem, data) {\n var label = labelsData[tooltipItem.index];\n return `${label}`;\n },\n },\n },\n },\n };\n return chart;\n};\n\nconst doughnutTransferredChartChart = (ob) => {\n // ob.mmoCommission = 1;\n let seriesData = [ob.merchantCommission, ob.bankCommission, ob.mmoCommission];\n var total = seriesData.reduce((a, v) => a + v);\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\n var labelsData = [\n \"Merchant : \" + getAmt(ob.merchantCommission),\n \"Bank : \" + getAmt(ob.bankCommission),\n \"MMO : \" + getAmt(ob.mmoCommission),\n ];\n let chart = {\n data: {\n labels: labelsData,\n datasets: [\n {\n data: inPercent,\n backgroundColor: [\"#314D24\", \"#A3EC2A\", \"#E92AEC\"],\n hoverBackgroundColor: [\"#314D24\", \"#A3EC2A\", \"#E92AEC\"],\n },\n ],\n text: \"23%\",\n },\n options: {\n cutoutPercentage: 65,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n plugins: {\n datalabels: {\n display: false,\n },\n },\n tooltips: {\n enabled: true,\n mode: \"nearest\",\n callbacks: {\n label: function (tooltipItem, data) {\n var label = labelsData[tooltipItem.index];\n return `${label}`;\n },\n },\n },\n },\n };\n return chart;\n};\n\nconst FinanceDoughnutChart = (ob) => {\n // ob.mmoCommission = 1;\n let seriesData = [\n ob.totalCollection,\n ob.totalCommission,\n // ob.walletComm,\n // ob.transfer\n ].map((i) => parseFloat(i.replace(/,/g, \"\")));\n var total = seriesData.reduce((a, v) => a + v);\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\n var labelsData = [\n \"Total Collection : \" + ob.totalCollection,\n // 'Bank Settlement : ' + getAmt(ob.settlementAmt),\n \"Total Commission : \" + ob.totalCommission,\n // 'Merchant Transfers : ' + getAmt(ob.transfer)\n ];\n let chart = {\n data: {\n labels: labelsData,\n datasets: [\n {\n data: inPercent,\n backgroundColor: [\n \"#314D24\",\n \"#A3EC2A\",\n \"#E92AEC\",\n // '#764E9E'\n ],\n hoverBackgroundColor: [\n \"#314D24\",\n \"#A3EC2A\",\n \"#E92AEC\",\n // '#764E9E'\n ],\n },\n ],\n text: \"23%\",\n },\n options: {\n cutoutPercentage: 65,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n plugins: {\n datalabels: {\n display: false,\n },\n },\n tooltips: {\n enabled: true,\n mode: \"nearest\",\n callbacks: {\n label: function (tooltipItem, data) {\n var label = labelsData[tooltipItem.index];\n return `${label}`;\n },\n },\n },\n },\n };\n return chart;\n};\n\nconst FinanceDoughnutChart2 = (ob) => {\n // ob.mmoCommission = 1;\n let seriesData = [\n ob.cashAmount,\n ob.walletAmount,\n // ob.walletComm,\n // ob.transfer\n ].map((i) => parseFloat(i.replace(/,/g, \"\")));\n var total = seriesData.reduce((a, v) => a + v);\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\n var labelsData = [\n \"Cash Amount : \" + (ob.cashAmount),\n // 'Bank Settlement : ' + getAmt(ob.settlementAmt),\n \"Wallet Amount : \" + (ob.walletAmount),\n // 'Merchant Transfers : ' + getAmt(ob.transfer)\n ];\n let chart = {\n data: {\n labels: labelsData,\n datasets: [\n {\n data: inPercent,\n backgroundColor: [\n \"#314D24\",\n \"#A3EC2A\",\n \"#E92AEC\",\n // '#764E9E'\n ],\n hoverBackgroundColor: [\n \"#314D24\",\n \"#A3EC2A\",\n \"#E92AEC\",\n // '#764E9E'\n ],\n },\n ],\n text: \"23%\",\n },\n options: {\n cutoutPercentage: 65,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n plugins: {\n datalabels: {\n display: false,\n },\n },\n tooltips: {\n enabled: true,\n mode: \"nearest\",\n callbacks: {\n label: function (tooltipItem, data) {\n var label = labelsData[tooltipItem.index];\n return `${label}`;\n },\n },\n },\n },\n };\n return chart;\n};\n\nconst SettlementDoughnutChart = (ob) => {\n // ob.mmoCommission = 1;\n let seriesData = [ob.settlementAmt, ob.transfer];\n var total = seriesData.reduce((a, v) => a + v);\n var inPercent = seriesData.map((v) => Math.max((v / total) * 100, 1));\n var labelsData = [\n \"Settlement Bank Balance : \" + getAmt(ob.settlementAmt),\n \"Merchant Settlement : \" + getAmt(ob.transfer),\n ];\n let chart = {\n data: {\n labels: labelsData,\n datasets: [\n {\n data: inPercent,\n backgroundColor: [\"#FF6384\", \"#36A2EB\"],\n hoverBackgroundColor: [\"#FF6384\", \"#36A2EB\"],\n },\n ],\n text: \"23%\",\n },\n options: {\n cutoutPercentage: 65,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n plugins: {\n datalabels: {\n display: false,\n },\n },\n tooltips: {\n enabled: true,\n mode: \"nearest\",\n callbacks: {\n label: function (tooltipItem, data) {\n var label = labelsData[tooltipItem.index];\n return `${label}`;\n },\n },\n },\n },\n };\n return chart;\n};\n\nmodule.exports = {\n chartOptions, // used inside src/views/Index.js\n parseOptions, // used inside src/views/Index.js\n chartExample1, // used inside src/views/Index.js\n chartExample2, // used inside src/views/Index.js\n PendingChartData,\n CollectedChartData,\n PendingChartData2,\n CollectedChartData2,\n merchantMTDChartData,\n merchantYTDChartData,\n SubscriberChartData,\n subsMTDPayment,\n subsMTDWithDrawal,\n subsMTDWalletTrans,\n bankCommMTDChartData,\n bankCT_MTD,\n FinancePieChart,\n financeMTDCollection,\n financeMTDCommission,\n settlementMTDMerchant,\n SettlementPieChart,\n settlementMTDTransfer,\n doughnutCollectionChart,\n doughnutTransferredChartChart,\n FinanceDoughnutChart,\n SettlementDoughnutChart,\n financeMTDCollectionLC,\n FinanceDoughnutChart2,\n financeMTDCollectionWallet,\n financeMTDCollectionCash\n};\n","// export const API_ENDPOINTS = \"https://smartpayapi.smartsystemsserver.xyz\";\n// export const LOGIN_API_ENDPOINTS = \"https://smartpayapi.smartsystemsserver.xyz\";\nexport const API_ENDPOINTS = \"https://api.smartpaysl.com\"; // prod\nexport const LOGIN_API_ENDPOINTS = \"https://api.smartpaysl.com\"; // prod\n// export const TOKEN = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyUm9sZSI6IkFkbWluIiwiVXNl\n// clR5cGUiOiJBZG1pbiIsImp0aSI6ImU5NDhkMzJkLTM4NzktNDU4Ny1hOTM5LTI1NmRhODUwZWU3ZSIsIm5iZiI6MTYxO\n// DMwMDk0NSwiZXhwIjoxNjQ5ODM2OTQ1LCJpc3MiOiJodHRwOi8vdGVzdC5jb20iLCJhdWQiOiJKVXRjZE1oZTZ4WDVtd0l\n// 3MXZiMnNCaVpaYjUzUm9ZUiJ9.XsnsHTEEsu03LMvVao-3BentRRWlDUVRHnJrYqm1Eik`;\n// export const API_ENDPOINTS = 'http://localhost:4800'; // Production Api url\nexport const TOKEN =\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyUm9sZSI6IkFkbWluIiwiVXNlclR5cGUiOiJBZG1pbiIsImp0aSI6ImU5NDhkMzJkLTM4NzktNDU4Ny1hOTM5LTI1NmRhODUwZWU3ZSIsIm5iZiI6MTYxODMwMDk0NSwiZXhwIjoxNjQ5ODM2OTQ1LCJpc3MiOiJodHRwOi8vdGVzdC5jb20iLCJhdWQiOiJKVXRjZE1oZTZ4WDVtd0l3MXZiMnNCaVpaYjUzUm9ZUiJ9.XsnsHTEEsu03LMvVao-3BentRRWlDUVRHnJrYqm1Eik\";\nexport const iconCss = {\n color: \"#6490CA\",\n};\n\nexport const btnCss = {\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n boxShadow: \"none\",\n border: \"none\",\n};\n\nexport const roles = [{ key: \"Finance\", value: \"Finance\" }];\n\nexport const bankType = [\n { key: \"Collection\", value: \"Collection Account\" },\n { key: \"Settlement\", value: \"Settlement Account\" },\n];\n\nexport const subsStatus = [\n { key: \"\", value: \"All\", className: \"bg-yellow\" },\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\n // {key: 'SendForApproval', value: 'Send for approval', className: 'bg-blue'},\n { key: \"Approved\", value: \"Approved\", className: \"bg-cyan\" },\n { key: \"Rejected\", value: \"Rejected\", className: \"bg-danger\" },\n // {key: 'Paid', value: 'Paid', className: 'bg-success'}\n];\n\nexport const collBankStatus = [\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\n // {key: 'SendForApproval', value: 'Send for approval', className: 'bg-blue'},\n { key: \"Approved\", value: \"Approved\", className: \"bg-cyan\" },\n { key: \"Rejected\", value: \"Rejected\", className: \"bg-danger\" },\n // {key: 'Paid', value: 'Paid', className: 'bg-success'}\n];\n\nexport const ReportStatus = [\n { key: \"Collected\", value: \"Collected\", className: \"bg-yellow\" },\n { key: \"InProcess\", value: \"In Process\", className: \"bg-orange\" },\n { key: \"Transferred\", value: \"Transferred\", className: \"bg-cyan\" },\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\n {\n key: \"CashTopUpSetteled\",\n value: \"Cash Topup Settled\",\n className: \"bg-success\",\n },\n {\n key: \"CashTopUpApproved\",\n value: \"Cash Topup Approved\",\n className: \"bg-blue\",\n },\n];\n\nexport const FinanceUserStatus = [\n { key: \"Collected\", value: \"Collected\", className: \"bg-yellow\" },\n { key: \"InProcess\", value: \"In Process\", className: \"bg-orange\" },\n // {key: 'SendForApproval', value: 'Send for approval', className: 'bg-blue'},\n { key: \"Transferred\", value: \"Transferred\", className: \"bg-cyan\" },\n // {key: 'Rejected', value: 'Rejected', className: 'bg-danger'},\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\n];\n\nexport const SettleBankUserStatus = [\n { key: \"\", value: \"All\", className: \"bg-yellow\" },\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\n];\n\nexport const DayEndReportStatus = [\n { key: \"\", value: \"All\", className: \"bg-yellow\" },\n { key: \"Pending\", value: \"Pending\", className: \"bg-yellow\" },\n { key: \"Paid\", value: \"Paid\", className: \"bg-success\" },\n {\n key: \"CashTopUpSetteled\",\n value: \"Cash Topup Settled\",\n className: \"bg-success\",\n },\n {\n key: \"CashTopUpApproved\",\n value: \"Cash Topup Approved\",\n className: \"bg-blue\",\n },\n];\n\nexport const AUTH_MODE = [\n { key: \"1FA\", value: \"1FA\" },\n { key: \"2FA\", value: \"2FA\" },\n];\n\nexport const MERCHANT_TYPE = [\n { key: \"Online\", value: \"Online\" },\n { key: \"POS\", value: \"POS\" },\n];\n\nexport const getFspCategories = () => {\n const arr = [\n ,\n ];\n [\n { key: \"Bank\", value: \"Bank\" },\n { key: \"MMO\", value: \"MMO\" },\n { key: \"EWO\", value: \"EWO\" },\n ].forEach((i) => {\n arr.push(\n \n );\n });\n\n return arr;\n};\n\nexport const NFC_OPTION = [\n { key: true, value: \"Enable\" },\n { key: false, value: \"Disable\" },\n];\n\nexport const getConfirmOptions = () => {\n const arr = [\n ,\n ];\n [\n { key: \"Yes\", value: \"Yes\" },\n { key: \"No\", value: \"No\" },\n ].forEach((i) => {\n arr.push(\n \n );\n });\n\n return arr;\n};\n\nexport const GET_YEAR_LIST = () => {\n const year = new Date().getFullYear();\n const arr = [\n ,\n ];\n const max = 50;\n for (let i = 0; i < max; i++) {\n arr.push(\n \n );\n }\n return arr;\n};\n\nexport const AMOUNT_HINT = `While making payment of less than or equal this\namount your PIN is required, more than this amount PIN and OTP is required.`;\n\nexport const PIN_HINT = \"Used for making payment\";\n\nexport const PASSWORD_HINT = \"Used for login\";\n\nexport const SECRET_KEY = \"NICHEVOUCHERENCRYPTION\";\n\nexport const MOBILE_ONLY_COUNTRY = [\"sl\"];\n\nexport const CASH_TOPUP_HINT =\n \"* This commission will be applicable while doing top-up to the subscriber\";\n\nexport const knowledgeBaseItems = [\n {\n label: \"Overview\",\n },\n {\n label: \"Technical Background\",\n },\n {\n label: \"Subscriber Journey\",\n },\n {\n label: \"Master Agent Journey\",\n },\n {\n label: \"Super Agent Journey\",\n },\n {\n label: \"Sub Agent Journey\",\n },\n {\n label: \"Merchant Journey\",\n },\n {\n label: \"Bank User Journey\",\n },\n // {\n // label: \"API Informations\",\n // },\n {\n label: \"Legal Information\",\n },\n {\n label: \"Contact Us\",\n },\n];\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\";\nimport {\n DropdownMenu,\n DropdownItem,\n UncontrolledDropdown,\n DropdownToggle,\n Navbar,\n Nav,\n Container,\n Media,\n} from \"reactstrap\";\nimport { useHistory } from \"react-router\";\nimport {\n getLoginType,\n getUserB64,\n getUserEmail,\n getUserName,\n postMethod,\n setUserB64,\n} from \"../../services/httpServices\";\nimport { connect } from \"react-redux\";\nimport swal from \"sweetalert2\";\nimport { useToasts } from \"react-toast-notifications\";\n\nconst AdminNavbar = (props) => {\n const history = useHistory();\n const profileImage = getUserB64();\n const userName = getUserName();\n const userEmail = getUserEmail();\n const loginType = getLoginType();\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const logout = (e) => {\n e.preventDefault();\n // window.localStorage.clear();\n // setUserB64(null);\n // history.push('/auth/login');\n // postMethod('/api/auth/LogOff', {}, 'post')\n // .then(()=> {\n // }).catch(e => {\n // console.log('Error', e);\n // })\n openModal(\"Please wait system is logging out...\");\n };\n\n const openModal = (msg) => {\n swal.fire({\n // title: 'Uploading...',\n html: msg,\n customClass: \"logout-modal\",\n allowEscapeKey: false,\n allowOutsideClick: false,\n didOpen: () => {\n swal.showLoading();\n },\n });\n postMethod(\"/api/auth/LogOff\", {}, \"post\")\n .then((res) => {\n let errorMsg = \"\";\n swal.close();\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n window.localStorage.clear();\n setUserB64(null);\n history.push(\"/auth/login\");\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in log out\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in log out\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((e) => {\n swal.close();\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const changepswd = (e) => {\n e.preventDefault();\n history.push(\"/change-password\");\n };\n\n const changepin = (e) => {\n e.preventDefault();\n history.push(\"/change-pin\");\n };\n\n return (\n <>\n \n \n \n {props.brandText}\n \n {/* \n \n */}\n\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return { ...state };\n};\n// const mapDispatchToProps = (dispatch) => {\n// return {\n// setImg: (data) => dispatch(setUserImage(data)),\n// };\n// };\n\nexport default connect(mapStateToProps)(AdminNavbar);","/*!\n\n=========================================================\n* Argon Dashboard React - v1.2.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/argon-dashboard-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard-react/blob/master/LICENSE.md)\n\n* Coded by Creative Tim\n\n=========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n*/\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { NavLink as NavLinkRRD, Link } from \"react-router-dom\";\n// nodejs library to set properties for components\nimport { PropTypes } from \"prop-types\";\n\n// reactstrap components\nimport {\n Collapse,\n Form,\n NavbarBrand,\n Navbar,\n NavItem,\n NavLink,\n Nav,\n Container,\n Row,\n Col,\n} from \"reactstrap\";\nimport { getLoginType, getUserName } from \"../../services/httpServices\";\nimport { routePermissions } from \"services/util\";\n\nconst COLOR = \"#6490CA\";\nconst Sidebar = (props) => {\n const [collapseOpen, setCollapseOpen] = useState();\n const navbarRef = useRef(null);\n // verifies if routeName is the one active (in browser input)\n // const activeRoute = (routeName) => {\n // return props.location.pathname.indexOf(routeName) > -1 ? \"active\" : \"\";\n // };\n // toggles collapse between opened and closed (true/false)\n\n useEffect(() => {\n let scrollPosition = localStorage.getItem(\"scrollPosition\");\n if (scrollPosition) {\n document.getElementById(\"sidenav-main\").scrollTop = scrollPosition;\n }\n }, []);\n\n const handleScroll = (e) => {\n if (navbarRef.current) {\n localStorage.setItem(\"scrollPosition\", e?.target?.scrollTop);\n }\n };\n const toggleCollapse = () => {\n setCollapseOpen((data) => !data);\n };\n // closes the collapse\n const closeCollapse = () => {\n setCollapseOpen(false);\n };\n // creates the links that appear in the left menu / Sidebar\n const createLinks = (routes) => {\n return routes.map((prop, key) => {\n let navItem = (\n \n \n \n {prop.name}\n \n \n );\n let item = null;\n let route = routePermissions.find((i) => i.name === getLoginType());\n\n if (prop.hideFromMenu === true) {\n item = null;\n } else if (prop.common === true) {\n item = navItem;\n } else if (\n getUserName().trim() !== \"EDSA\" &&\n prop.path === \"/EDSATransactionsMerchant\"\n ) {\n item = null;\n } else if (route?.name) {\n if (\n prop.layout === route.layout ||\n (prop.allow &&\n prop.allow.length &&\n prop.allow.indexOf(route.name) > -1)\n ) {\n item = navItem;\n } else {\n item = null;\n }\n }\n return item;\n });\n };\n\n const { routes, logo } = props;\n // let navbarBrandProps;\n if (logo && logo.innerLink) {\n // navbarBrandProps = {\n // to: logo.innerLink,\n // tag: Link,\n // };\n } else if (logo && logo.outterLink) {\n // navbarBrandProps = {\n // href: logo.outterLink,\n // target: \"_blank\",\n // };\n }\n\n return (\n \n
\n \n {/* Toggler */}\n \n \n \n {/* Brand */}\n {logo ? (\n \n \n

SmartPay

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

Voucher Wallet

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

\n
\n
\n \n \n \n \n \n
\n \n Total Cash Collection\n \n
\n \n
\n \n
\n \n
\n

\n {balanceLoading ? (\n

\n
\n
\n ) : (\n \n {getAmt(apiResponse?.totalCashCollection ??0)}\n \n )}\n

\n
\n
\n \n \n \n \n \n
\n \n Total Wallet Collection\n \n
\n \n
\n \n
\n \n
\n

\n {balanceLoading ? (\n

\n
\n
\n ) : (\n \n {getAmt(apiResponse?.totalWalletCollection ??0)}\n \n )}\n

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

\n
\n
\n \n
*/}\n \n \n \n \n \n
\n \n Transaction Fees\n \n
\n \n
\n \n
\n \n
\n

\n {balanceLoading ? (\n

\n
\n
\n ) : (\n \n {apiResponse?.transactionFees ?? 0}\n \n )}\n

\n
\n \n \n\n \n \n \n \n
\n \n FSP Fees\n \n
\n \n
\n \n
\n \n
\n

\n {balanceLoading ? (\n

\n
\n
\n ) : (\n \n {apiResponse?.fspFeePortion ?? 0}\n \n )}\n

\n
\n \n \n\n \n \n \n \n
\n \n SmartPay Fees\n \n
\n \n
\n \n
\n \n
\n

\n {balanceLoading ? (\n

\n
\n
\n ) : (\n \n {apiResponse?.smartPayFeePortion ?? 0}\n \n )}\n

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? \n

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

\n
\n
\n \n\n
\n \n \n\n \n \n \n \n
\n \n Payments\n \n
\n \n
\n \n
\n \n
\n

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? \n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

\n
\n
\n\n \n\n \n \n \n \n
\n \n Total Cash Collection\n \n
\n \n
\n \n
\n \n
\n

\n {cardLoading ?\n

\n
\n
:\n \n {paymentTypes?.cashAmount?? 0}\n \n }\n

\n
\n
\n\n \n\n \n \n \n \n
\n \n Total Wallet Collection\n \n
\n \n
\n \n
\n \n
\n

\n {cardLoading ?\n

\n
\n
:\n \n {paymentTypes?.walletAmount ?? 0}\n \n }\n

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {cardLoading ?\n

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

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? \n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n {balanceLoading ? (\n

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

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

\n Collected Commission\n

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

\n Customer Topup MTD (Other platforms)\n

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

Daily Sales

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

Monthly Sales

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

MTD Withdrawals

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

MTD Payment

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

MTD Wallet Transfer

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

\n MTD Commissions\n

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

\n MTD Customer Transfers\n

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

\n MTD Collection\n

\n
\n
\n \n changeFinanceMTDColltnMonth2(e.target.value)\n }\n >\n {/* {MonthArrayCAP.map(c =>\n \n )} */}\n {getMonths(financeMTDColltnYear)}\n \n
\n\n
\n \n changeFinanceMTDColltnYear2(e.target.value)\n }\n >\n {YEARS.map((c) => (\n \n ))}\n \n
\n
\n
\n \n
\n
\n {\" \"}\n {financeMTDColltn2 &&\n financeMTDColltn2?.chart1?.data &&\n financeMTDColltn2?.chart1?.options &&\n !financeMTDColltnLoading2 && (\n \n )}\n
\n
\n {\" \"}\n {financeMTDColltn2 &&\n financeMTDColltn2?.chart2?.data &&\n financeMTDColltn2?.chart2?.options &&\n !financeMTDColltnLoading2 && (\n \n )}\n
\n\n {financeMTDColltnLoading2 && (\n \n )}\n
\n
\n
\n \n
\n \n )}\n {financeChart && (\n <>\n \n \n \n \n \n
\n

\n MTD Collection\n

\n
\n
\n \n changeFinanceMTDColltnMonth2(e.target.value)\n }\n >\n {/* {MonthArrayCAP.map(c =>\n \n )} */}\n {getMonths(financeMTDColltnYear)}\n \n
\n\n
\n \n changeFinanceMTDColltnYear2(e.target.value)\n }\n >\n {YEARS.map((c) => (\n \n ))}\n \n
\n
\n
\n \n
\n
\n {\" \"}\n {financeMTDColltn2 &&\n financeMTDColltn2?.chart1?.data &&\n financeMTDColltn2?.chart1?.options &&\n !financeMTDColltnLoading2 && (\n \n )}\n
\n
\n {\" \"}\n {financeMTDColltn2 &&\n financeMTDColltn2?.chart2?.data &&\n financeMTDColltn2?.chart2?.options &&\n !financeMTDColltnLoading2 && (\n \n )}\n
\n\n {financeMTDColltnLoading2 && (\n \n )}\n
\n
\n
\n \n
\n \n \n \n \n \n
\n

\n Collection and Commissions\n

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

\n Total Collection\n

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

\n MTD Commissions\n

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

\n MTD Merchant Settlements\n

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

\n MTD Transfers\n

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

Funds

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

\n {loading ? (\n

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

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

\n {loading ? (\n

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

\n
\n
\n \n
\n \n \n \n \n

FSP Category Distribution

\n \n
\n
\n \n \n \n \n

Customer Registration and Verification Success Rate

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

Login  

\n\n \n

\n Login using\n

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

Merchant Information

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

Merchant Information

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

Merchant Information

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

Card tables

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

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

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

\n {getBlockText()}\n

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

Merchant User Information

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

Card tables

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

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

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

{getBlockText()}

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

Merchant Location Information

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

Merchant Location Information

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

Merchant Location Information

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

Card tables

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

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

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

{getBlockText()}

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

Change Password

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

Forgot Password  

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

Verify Otp

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

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

Reset Password

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

Add FSP

\n \n \n \n \n
\n
\n \n
\n

Profile Information

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

\n Services Information (Select As Applicable)\n

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

Integration and Security Parameters

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

Commercials

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

Add FSP

\n \n \n \n \n
\n
\n \n
\n

Profile Information

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

\n Services Information (Select As Applicable)\n

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

Integration and Security Parameters

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

Commercials

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

Add FSP

\n \n \n \n \n
\n
\n \n
\n

Profile Information

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

\n Services Information (Select As Applicable)\n

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

Integration and Security Parameters

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

Commercials

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

Card tables

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

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

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

{getBlockText()}

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

Add FSP User

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

Add FSP User

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

Edit FSP User

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

Card tables

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

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

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

{getBlockText()}

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

Account Balance

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

Card tables

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

Settlement Process

\n\n \n
\n\n \n
\n

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

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

Whitelist

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

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

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

\n Direct Whitelist\n

\n
\n\n

Account Details

\n

\n Please select one account to Whitelist\n

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

\n

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

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

\n

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

\n
\n
\n \n Email\n

\n

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

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

\n

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

\n
\n
\n \n Product\n

\n

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

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

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

\n
\n\n

Account Details

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

\n

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

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

\n

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

\n
\n
\n \n Email\n

\n

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

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

\n

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

\n
\n
\n \n Product\n

\n

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

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

User Information

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

User Information

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

User Information

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

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

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

\n {getBlockText()}\n

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

Top Up

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

Card tables

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

Student Information

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Make Payment

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

{currentScreenName}

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

Name: {userResponse?.name}

\n

Surname: {userResponse?.surname}

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

Agent Name: {userResponse?.name}

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

Loan Details

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

Make Payment

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

Make Payment

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

{currentScreenName}

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

Card tables

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

\n Approve Payment\n

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

\n Reject Payment\n

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

\n Approve Payment\n

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

Card tables

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

\n Approve Payment\n

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

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

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

Make Payment

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

Welcome !

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

Card tables

*/}\n\n
{ e.preventDefault(); }}>\n \n \n \n Status\n \n    \n\n
\n changeStatus(e.target.value)}\n >\n {STATUS.map(c => \n \n )}\n \n
\n \n
\n\n    \n \n \n \n \n \n \n \n \n getSearch(e.target.value)}\n />\n \n \n\n   \n \n \n \n\n \n\n
\n\n\n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {loading && }\n {!loading && !filteredList.length && }\n
sortHandle(sort.sortPaymentMethodName, 'sortPaymentMethodName')}>\n Payment From\n \n sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\n Date\n \n sortHandle(sort.sortProductId, 'sortProductId')}>\n Product Id\n \n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\n Smart Pay Id\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Amount\n \n sortHandle(sort.sortCommissionAmount, 'sortCommissionAmount')}>\n Fees\n \n Status
\n {mmo.paymentMethodName}\n {moment(mmo.createdAt).format('lll')}{mmo.productId ? mmo.productId : '--'}{mmo.referenceId}{getAmt(mmo.amount)}{mmo.commissionAmount}{statusFormat(mmo.status)}
\n \n {filteredList.length > 0 &&\n \n \n
\n \n \n Total Records : {totalRec}\n \n \n
\n \n\n \n \n\n \n
}\n
\n
\n
\n
\n
\n \n )\n\n}\n\nexport default MerchantPaymentList;","import React, { useState } from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n Container,\n Row,\n Col,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n Table,\n Badge,\n Label,\n} from \"reactstrap\";\n// core components\n\nimport { useToasts } from \"react-toast-notifications\";\nimport Header from \"components/Headers/Header\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport { collBankStatus } from \"appConfig\";\nimport { getMethod } from \"services/httpServices\";\nimport jsPDF from \"jspdf\";\nimport \"jspdf-autotable\";\nimport * as FileSaver from \"file-saver\";\nimport * as XLSX from \"xlsx\";\n\nconst initialValue = [\n { name: \"Keanu Reeves\", profession: \"Actor\" },\n { name: \"Lionel Messi\", profession: \"Football Player\" },\n { name: \"Cristiano Ronaldo\", profession: \"Football Player\" },\n { name: \"Jack Nicklaus\", profession: \"Golf Player\" },\n];\n\nconst STATUS = collBankStatus;\n\nconst SearchTransaction = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const [searchText, setSearchText] = React.useState(\"\");\n const [error, setError] = React.useState(null);\n const [response, setResponse] = React.useState({});\n const [isPOS, setIsPOS] = useState(true);\n\n const { addToast } = useToasts();\n\n const [people, setPeople] = React.useState(initialValue);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const submit = () => {\n if (!searchText) {\n setError(\"Please Enter Transaction ID\");\n setLoading(false);\n setResponse({});\n } else {\n setError(null);\n setLoading(true);\n setResponse({});\n fetchTrans(searchText);\n }\n };\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n // return ob && ob.value ? ob.value : val;\n return ob && ob.value ? ob.value : val;\n };\n\n const fetchTrans = async (id) => {\n let errorMsg = \"\";\n const url = isPOS\n ? \"/api/Reports/TrackPOSTransaction/\"\n : \"/api/Reports/TrackTransaction/\";\n getMethod(url + id, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result) {\n setError(\"No transaction found\");\n } else {\n setResponse(res.data.result);\n }\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n setError(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n setError(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n setError(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setError(errorMsg);\n });\n };\n\n const getAmt = (amount) => {\n let amt = Number(amount);\n return amt.toLocaleString();\n };\n\n const reset = () => {\n setLoading(false);\n setResponse({});\n setSearchText(\"\");\n };\n return (\n <>\n {/* Page content */}\n
\n {/* Page content */}\n \n \n \n \n \n {\n e.preventDefault();\n }}\n >\n \n \n \n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n    \n \n \n \n \n \n {loading && }\n\n {error && (\n
{error}
\n )}\n\n {response && response.transactionId && (\n
\n \n \n Transaction Details\n \n \n
\n
\n \n \n \n Transaction ID :\n \n \n \n {response.transactionId}\n \n \n\n \n \n \n Payment From : \n \n \n \n {response.transationFrom}\n \n \n \n \n \n Payment To :\n \n \n \n {response.transationTo}\n \n \n \n \n \n Amount :\n \n \n \n Le {getAmt(response.amount)}\n \n \n \n \n \n \n {isPOS\n ? \"Merchant Commission:\"\n : \"Transaction Fees\"}\n \n \n \n \n Le {getAmt(response.fees)}\n \n \n \n \n \n FSP Fees :\n \n \n \n Le {getAmt(response.fspFee)}\n \n \n \n \n \n Smart Pay Fees :\n \n \n \n Le {getAmt(response.smartPayFee)}\n \n \n {isPOS && (\n <>\n \n \n \n POS Serial Number:\n \n \n \n {response.posSerialNumber}\n \n \n \n \n \n GPS Location:\n \n \n \n {response.gpsLocation}\n \n \n \n \n \n Date\n \n \n \n {response.date}\n \n \n \n )}\n \n \n \n Status :\n \n \n \n \n {statusFormat(response.currentStatus)}\n \n \n \n \n \n \n Description :\n \n \n \n {response.description}\n \n \n
\n
\n
\n )}\n
\n
\n \n
\n
\n \n );\n};\n\nexport default SearchTransaction;\n","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\nimport { paymentType } from \"services/util\";\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\n\nconst PAYMENT_TYPE = paymentType;\n\n\nconst CollectionReport = (props) => {\n\n const [merchants, setMerchant] = React.useState([]);\n const [merchantFilter, setMerchantFilter] = React.useState('');\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [minEndDate, setMinEndDate] = React.useState('');\n const [bank, setBank] = React.useState([]);\n const [bankCode, setBankCodeFilter] = React.useState('');\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [paymentType, setPaymentType] = React.useState('');\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n\n useEffect(() => {\n setMerchant(props.merchant);\n }, [props.merchant]);\n\n useEffect(() => {\n setBank(props.bank);\n }, [props.bank]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n useEffect(() => {\n if (\n endDate &&\n moment(new Date(endDate)).isBefore(new Date(startDate))\n ) {\n setEndDate('');\n }\n }, [startDate]);\n\n const changeMerchant = (val) => {\n setMerchantFilter(val);\n }\n\n const changeBankCode = (val) => {\n setBankCodeFilter(val);\n }\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n if (!endDate) {\n error.endDate = 'Please select end date';\n }\n if (paymentType == 'Bank' && bankCode == 0) {\n error.bankCode = 'Please select bank';\n }\n // if (!merchantFilter) {\n // error.merchant = 'Please select merchant';\n // }\n return error;\n }\n\n const changePaymentFilter = (val) => {\n setPaymentType(val);\n setBankCodeFilter('');\n }\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n if (paymentType != '') {\n data['PaymentMethod'] = paymentType;\n }\n\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"1\") {\n data['SortingOn'] = 'SubscriberMobileNumber';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"2\") {\n data['SortingOn'] = 'SubscriberMobileNumber';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortUpdatedat == \"1\") {\n data['SortingOn'] = 'Updatedat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortUpdatedat == \"2\") {\n data['SortingOn'] = 'Updatedat';\n data['IsDescending'] = true;\n }\n postMethod('/api/Reports/CollectionReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n if (paymentType != '') {\n data['PaymentMethod'] = paymentType;\n }\n\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"1\") {\n data['SortingOn'] = 'SubscriberMobileNumber';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortSubscriberMobileNumber == \"2\") {\n data['SortingOn'] = 'SubscriberMobileNumber';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortUpdatedat == \"1\") {\n data['SortingOn'] = 'Updatedat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortUpdatedat == \"2\") {\n data['SortingOn'] = 'Updatedat';\n data['IsDescending'] = true;\n }\n postMethod('/api/Reports/CollectionReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n const getLoading = () => {\n let str = false;\n if (loading && props.currentPage == 1) {\n str = true;\n }\n return str;\n }\n\n return (\n <>\n        \n\n \n \n\n \n \n\n Start Date\n \n \n\n \n \n\n\n \n\n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n\n \n \n\n End Date\n \n \n\n \n \n\n \n\n
\n setEndDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.endDate &&
\n * {errors.endDate}\n
}\n\n \n
\n\n \n\n
\n \n \n \n \n \n\n Merchant\n \n \n \n \n \n changeMerchant(e.uid)}\n />\n \n {/* \n
\n changeMerchant(e.target.value)}\n >\n \n {merchants.map(c =>\n \n )}\n \n
\n
*/}\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n\n \n \n \n Payment type\n \n \n \n \n \n
\n changePaymentFilter(e.target.value)}\n >\n \n {PAYMENT_TYPE.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n\n\n {paymentType == 'Bank' &&\n \n \n \n Bank\n \n \n \n \n \n
\n changeBankCode(e.target.value)}\n >\n \n {bank.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n \n {errors.bankCode &&
\n * {errors.bankCode}\n
}\n \n
\n \n }\n\n \n \n \n \n \n \n \n
\n\n {/*    */}\n\n \n )\n}\n\nexport default CollectionReport;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, iconCss } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\n\nconst sortIS = {\n sortCreatedat: 0,\n sortMerchantName: 0,\n sortBank_MMOCode: 0,\n sortSubscriberMobileNumber: 0,\n sortAmount: 0,\n sortProductId: 0,\n sortReferenceId: 0,\n sortStatus: 0,\n sortUpdatedat: 0\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '280px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n // display: 'none'\n};\n\nconst CollectionReportTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\n Instruction Date/Time\n \n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\n Merchant Name\n \n sortHandle(sort.sortBank_MMOCode, 'sortBank_MMOCode')}>\n Bank/MMO Code\n \n sortHandle(sort.sortSubscriberMobileNumber, 'sortSubscriberMobileNumber')}>\n Customer UID\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Transaction Amount\n \n sortHandle(sort.sortProductId, 'sortProductId')}>\n Reference Code\n \n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\n Transaction Ref\n \n sortHandle(sort.sortStatus, 'sortStatus')}>\n Status\n \n sortHandle(sort.sortUpdatedat, 'sortUpdatedat')}>\n Clearing Date/Time\n \n
\n {moment(mmo.createdat).format('lll')}\n {mmo.merchantName}{mmo.bank_MMOCode}{mmo.subscriberMobileNumber}{getAmt(mmo.amount)}{mmo.productId}{mmo.referenceId}{mmo.status}{mmo.updatedat ? moment(mmo.updatedat).format('lll') : '--'}
\n \n )\n}\n\nexport default CollectionReportTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\n\n\n\nconst CollectionSummaryReport = (props) => {\n\n const [merchants, setMerchant] = React.useState([]);\n const [merchantFilter, setMerchantFilter] = React.useState('');\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [minEndDate, setMinEndDate] = React.useState('');\n const [bank, setBank] = React.useState([]);\n const [bankCode, setBankCodeFilter] = React.useState('');\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n\n useEffect(() => {\n setMerchant(props.merchant);\n }, [props.merchant]);\n\n useEffect(() => {\n setBank(props.bank);\n }, [props.bank]);\n\n useEffect(()=> {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(()=> {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(()=> {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(()=> {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(()=> {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n\n // useEffect(() => {\n // if (\n // endDate &&\n // moment(new Date(endDate)).isBefore(new Date(startDate)) \n // ) {\n // setEndDate('');\n // }\n // }, [startDate]);\n\n const changeMerchant = (val) => {\n setMerchantFilter(val);\n }\n\n const changeBankCode = (val) => {\n setBankCodeFilter(val);\n }\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n // if (!merchantFilter) {\n // error.merchant = 'Please select merchant';\n // }\n return error;\n }\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n }\n\n postMethod('/api/Reports/DailyCollectionReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n }\n\n postMethod('/api/Reports/DailyCollectionReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n return (\n <>\n        \n \n \n \n \n Merchant\n \n \n \n \n \n changeMerchant(e.uid)}\n />\n \n {/* \n
\n changeMerchant(e.target.value)}\n >\n \n {merchants.map(c =>\n \n )}\n \n
\n
*/}\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n\n \n \n \n Bank\n \n \n \n \n \n
\n changeBankCode(e.target.value)}\n >\n \n {bank.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n
\n\n {/*    */}\n\n \n \n\n \n \n Select Date\n \n \n \n \n\n\n \n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n \n \n
\n \n )\n}\n\nexport default CollectionSummaryReport;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, iconCss } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortCreatedat: 0,\n sortMerchantName: 0,\n sortBank_MMOCode: 0,\n sortAmount: 0\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '240px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n // display: 'none'\n};\n\nconst CollectionSummaryReportTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\n Date\n \n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\n Merchant Name\n \n sortHandle(sort.sortBank_MMOCode, 'sortBank_MMOCode')}>\n Bank Code\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Total Amount\n \n
\n {moment(mmo.createdat).format('MMM Do, YYYY')}\n {mmo.merchantName}{mmo.bank_MMOCode}{getAmt(mmo.amount)}
\n \n )\n}\n\nexport default CollectionSummaryReportTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\n\n\n\nconst SettlementSummaryReport = (props) => {\n\n const [merchants, setMerchant] = React.useState([]);\n const [merchantFilter, setMerchantFilter] = React.useState('');\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [minEndDate, setMinEndDate] = React.useState('');\n const [bank, setBank] = React.useState([]);\n const [bankCode, setBankCodeFilter] = React.useState('');\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n\n useEffect(() => {\n setMerchant(props.merchant);\n }, [props.merchant]);\n\n useEffect(() => {\n setBank(props.bank);\n }, [props.bank]);\n\n useEffect(() => {\n if (\n endDate &&\n moment(new Date(endDate)).isBefore(new Date(startDate))\n ) {\n setEndDate('');\n }\n }, [startDate]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n\n const changeMerchant = (val) => {\n setMerchantFilter(val);\n }\n\n const changeBankCode = (val) => {\n setBankCodeFilter(val);\n }\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n // if (!endDate) {\n // error.endDate = 'Please select end date';\n // }\n // if (!merchantFilter) {\n // error.merchant = 'Please select merchant';\n // }\n return error;\n }\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n }\n postMethod('/api/Reports/DailySettlementReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n }\n postMethod('/api/Reports/DailySettlementReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n return (\n <>\n        \n \n \n \n \n Merchant\n \n \n \n \n \n changeMerchant(e.uid)}\n />\n \n {/* \n
\n changeMerchant(e.target.value)}\n >\n \n {merchants.map(c =>\n \n )}\n \n
\n
*/}\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n\n \n \n \n Bank\n \n \n \n \n \n
\n changeBankCode(e.target.value)}\n >\n \n {bank.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n
\n\n {/*    */}\n\n \n\n \n\n \n \n Select Date\n \n \n\n \n \n\n\n \n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n \n \n
\n \n )\n}\n\nexport default SettlementSummaryReport;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, iconCss } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortCreatedAt: 0,\n sortMerchantName: 0,\n sortPayingBankCode: 0,\n sortAmount: 0,\n sortFeesAmount: 0\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '235px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n // display: 'none'\n};\n\nconst SettlementSummaryReportTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n return (\n <>\n \n \n \n \n \n \n \n\n \n\n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n \n
sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\n Date\n \n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\n Merchant Name\n \n sortHandle(sort.sortPayingBankCode, 'sortPayingBankCode')}>\n Bank Code\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Total Amount\n \n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\n Fees Amount\n \n
\n {moment(mmo.createdat).format('MMM Do, YYYY')}\n {mmo.merchantName}{mmo.payingBankCode}{getAmt(mmo.amount)}{getAmt(mmo.feesAmount)}
\n \n )\n}\n\nexport default SettlementSummaryReportTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\nimport { paymentType } from \"services/util\";\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\n\nconst PAYMENT_TYPE = paymentType;\nconst SettlementReport = (props) => {\n\n const [merchants, setMerchant] = React.useState([]);\n const [merchantFilter, setMerchantFilter] = React.useState('');\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [minEndDate, setMinEndDate] = React.useState('');\n const [bank, setBank] = React.useState([]);\n const [bankCode, setBankCodeFilter] = React.useState('');\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [paymentType, setPaymentType] = React.useState('');\n const [submitButton, setSubmitButton] = React.useState(false);\n\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n\n useEffect(() => {\n setMerchant(props.merchant);\n }, [props.merchant]);\n\n useEffect(() => {\n setBank(props.bank);\n }, [props.bank]);\n\n useEffect(() => {\n if (\n endDate &&\n moment(new Date(endDate)).isBefore(new Date(startDate))\n ) {\n setEndDate('');\n }\n }, [startDate]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n\n const changeMerchant = (val) => {\n setMerchantFilter(val);\n }\n\n const changeBankCode = (val) => {\n setBankCodeFilter(val);\n }\n\n const changePaymentFilter = (val) => {\n setPaymentType(val);\n setBankCodeFilter('');\n }\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n if (!endDate) {\n error.endDate = 'Please select end date';\n }\n if (paymentType == 'Bank' && bankCode == 0) {\n error.bankCode = 'Please select bank';\n }\n // if (!merchantFilter) {\n // error.merchant = 'Please select merchant';\n // }\n return error;\n }\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n if (paymentType != '') {\n data['PaymentMethod'] = paymentType;\n }\n\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReceivingBank == \"1\") {\n data['SortingOn'] = 'ReceivingBank';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReceivingBank == \"2\") {\n data['SortingOn'] = 'ReceivingBank';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortUpdatedAt == \"1\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortUpdatedAt == \"2\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = true;\n }\n\n\n postMethod('/api/Reports/SettlementReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\"\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantProfileId'] = merchantFilter;\n }\n\n if (bankCode && bankCode != '0') {\n data['BankProfileId'] = bankCode;\n }\n\n if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data['SortingOn'] = 'Createdat';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"1\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBank_MMOCode == \"2\") {\n data['SortingOn'] = 'Bank_MMOCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPayingBankCode == \"1\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPayingBankCode == \"2\") {\n data['SortingOn'] = 'PayingBankCode';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReceivingBank == \"1\") {\n data['SortingOn'] = 'ReceivingBank';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReceivingBank == \"2\") {\n data['SortingOn'] = 'ReceivingBank';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortUpdatedAt == \"1\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortUpdatedAt == \"2\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = true;\n }\n\n if (paymentType != '') {\n data['PaymentMethod'] = paymentType;\n }\n\n postMethod('/api/Reports/SettlementReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n return (\n <>\n        \n\n\n \n\n \n \n \n Start Date\n \n \n \n \n\n\n \n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n\n \n \n End Date\n \n \n\n \n \n\n \n
\n setEndDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.endDate &&
\n * {errors.endDate}\n
}\n\n \n
\n\n \n
\n\n\n \n \n \n \n Merchant\n \n \n \n \n \n changeMerchant(e.uid)}\n />\n \n {/* \n
\n changeMerchant(e.target.value)}\n >\n \n {merchants.map(c =>\n \n )}\n \n
\n
*/}\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n\n \n \n \n Payment type\n \n \n \n \n \n
\n changePaymentFilter(e.target.value)}\n >\n \n {PAYMENT_TYPE.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n\n {paymentType == 'Bank' &&\n \n \n \n Bank\n \n \n \n \n \n
\n changeBankCode(e.target.value)}\n >\n \n {bank.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n \n {errors.bankCode &&
\n * {errors.bankCode}\n
}\n \n
\n \n }\n\n
\n\n \n \n \n \n \n\n \n )\n}\n\nexport default SettlementReport;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, iconCss, ReportStatus } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\n\nconst sortIS = {\n sortCreatedAt: 0,\n sortMerchantName: 0,\n sortBank_MMOCode: 0,\n sortPayingBankCode: 0,\n sortReceivingBank: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortReferenceId: 0,\n sortStatus: 0,\n sortUpdatedAt: 0\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '280px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n // display: 'none'\n};\n\nconst STATUS = ReportStatus;\n\n\nconst SettlementReportTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n return ob && ob.value ? ob.value : val \n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\n Instruction Date/Time\n \n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\n Merchant Name\n \n sortHandle(sort.sortPayingBankCode, 'sortPayingBankCode')}>\n Paying Bank Code\n \n sortHandle(sort.sortReceivingBank, 'sortReceivingBank')}>\n Receving Bank Code\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Transaction Amount\n \n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\n Transaction Fees\n \n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\n Transaction Ref\n \n sortHandle(sort.sortStatus, 'sortStatus')}>\n Status\n \n sortHandle(sort.sortUpdatedAt, 'sortUpdatedAt')}>\n Clearing Date/Time\n \n
\n {moment(mmo.createdat).format('lll')}\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') : '--'}
\n \n )\n}\n\nexport default SettlementReportTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\n\nconst TransactionReport = (props) => {\n\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n useEffect(() => {\n if (\n endDate &&\n moment(new Date(endDate)).isBefore(new Date(startDate))\n ) {\n setEndDate('');\n }\n }, [startDate]);\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n if (!endDate) {\n error.endDate = 'Please select end date';\n }\n return error;\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\n data['SortingOn'] = 'PaymentTo';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\n data['SortingOn'] = 'PaymentTo';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = true;\n }\n \n postMethod('/api/reports/GetTransactionsReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec\n }\n\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\n data['SortingOn'] = 'PaymentTo';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\n data['SortingOn'] = 'PaymentTo';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data['SortingOn'] = 'ProductId';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = true;\n }\n \n postMethod('/api/reports/GetTransactionsReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n return (\n <>\n        \n\n \n \n\n \n \n\n Start Date\n \n \n\n \n \n\n\n \n\n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n\n \n \n\n End Date\n \n \n\n \n \n\n \n\n
\n setEndDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.endDate &&
\n * {errors.endDate}\n
}\n\n \n
\n\n \n\n
\n\n        \n\n \n \n \n \n \n\n {/*    */}\n\n \n )\n};\n\nexport default TransactionReport;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table,\n Badge\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, subsStatus } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortPaymentTo: 0,\n sortPaymentFrom: 0,\n sortReferenceId: 0,\n sortProductId: 0,\n sortCreatedAt: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortStatus: 0,\n sortPaymentMethod: 0,\n sortPaymentType: 0\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '240px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n // display: 'none'\n};\n\nconst STATUS = subsStatus;\n\nconst TransactionReportTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(() => {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(() => {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(() => {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(() => {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n const getPaymentType = (type) => {\n let str = type;\n if (type == 'topup') {\n str = 'Top Up'\n } else if (type == 'BalanceTransfer') {\n str = 'Balance Transfer';\n } else if (type == 'Merchant') {\n str = 'Merchant Payment';\n } else if (type == 'WalletPayment') {\n str = 'Wallet Payment';\n } else if (type == 'CashTopUp') {\n str = 'Cash Top Up';\n }\n return str;\n };\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s)=> s.key === val);\n // return ob && ob.value ? ob.value : val;\n return ob && ob.value ? (\n \n \n {ob.value}\n \n ) : val\n };\n\n return (\n <>\n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortPaymentMethod, 'sortPaymentMethod')}>\n Payment Type\n \n sortHandle(sort.sortPaymentTo, 'sortPaymentTo')}>\n Payment To\n \n sortHandle(sort.sortPaymentFrom, 'sortPaymentFrom')}>\n Payment From\n \n sortHandle(sort.sortPaymentMethod, 'sortPaymentMethod')}>\n Payment Using\n \n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\n Smart Pay Id\n \n sortHandle(sort.sortProductId, 'sortProductId')}>\n Product Id\n \n sortHandle(sort.sortCreatedAt, 'sortCreatedAt')}>\n Date\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Amount\n \n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\n Fees Amount\n \n \n Description\n sortHandle(sort.sortStatus, 'sortStatus')}>\n Status\n \n
{getPaymentType(mmo.paymentType)}\n {mmo.paymentTo}\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)}
\n \n )\n}\nexport default TransactionReportTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\nimport { bankPaymentType } from \"services/util\";\nimport { getMethod } from \"services/httpServices\";\n\nconst PAYMENT_TYPE = bankPaymentType;\n\nconst BankReport = (props) => {\n\n const [startDate, setStartDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const [bankId, setBankId] = React.useState('');\n const [paymentType, setPaymentType] = React.useState('');\n const [banklist, setBankList] = React.useState([]);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n useEffect(()=> {\n fetchBankList();\n }, []);\n\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n return error;\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n const changePaymentFilter = (val) => {\n setPaymentType(val);\n }\n\n const changeBank = (val) => {\n setBankId(val);\n }\n\n const fetchBankList = () => {\n let errorMsg = '';\n getMethod('/api/bankProfile/nonapiddllist', 'get')\n .then(res => {\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (\n !res.data.result ||\n !res.data.result.length\n ) {\n res.data.result = [];\n }\n setBankList(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching bank list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching bank list';\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n }\n }).catch(err => {\n notifyFailed('Something went wrong!, Please call 3737');\n });\n }\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n // 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n if (bankId) {\n data['BankId'] = Number(bankId);\n }\n if (paymentType) {\n data['PaymentType'] = paymentType;\n }\n\n if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortDate == \"1\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortDate == \"2\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n }\n\n postMethod('/api/Reports/BankTransactionReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n // 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec\n }\n\n if (bankId) {\n data['BankId'] = Number(bankId);\n }\n if (paymentType) {\n data['PaymentType'] = paymentType;\n }\n\n if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data['SortingOn'] = 'PaymentFrom';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortDate == \"1\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortDate == \"2\") {\n data['SortingOn'] = 'UpdatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'Amount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'FeesAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data['SortingOn'] = 'Status';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data['SortingOn'] = 'PaymentMethod';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'MerchantName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data['SortingOn'] = 'ReferenceId';\n data['IsDescending'] = true;\n }\n\n postMethod('/api/Reports/BankTransactionReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n return (\n <>\n        \n\n \n \n\n \n \n\n Select Date\n \n \n\n \n \n\n\n \n\n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n \n \n Bank\n \n \n \n \n \n
\n changeBank(e.target.value)}\n >\n \n {banklist.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n \n {errors.bankId &&
\n * {errors.bankId}\n
}\n \n
\n \n\n \n \n \n Payment type\n \n \n \n \n \n
\n changePaymentFilter(e.target.value)}\n >\n \n {PAYMENT_TYPE.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n\n
\n\n \n\n \n \n \n\n \n\n {/*    */}\n\n \n )\n};\n\nexport default BankReport;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, iconCss, ReportStatus } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\n\nconst sortIS = {\n sortPaymentFrom: 0,\n sortSubscriberName: 0,\n sortPaymentType: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortReferenceId: 0,\n sortMerchantName: 0,\n sortDate: 0,\n sortStatus: 0,\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '280px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n // display: 'none'\n};\n\nconst STATUS = ReportStatus;\n\n\nconst BankReportTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n return ob && ob.value ? ob.value : val \n };\n\n const getPaymentType = (type) => {\n if (type == 'topup') {\n return 'Top Up';\n } else if (type == 'Merchant') {\n return 'Merchant Payment';\n } else {\n return type;\n }\n\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortPaymentFrom, 'sortPaymentFrom')}>\n Bank Name\n \n sortHandle(sort.sortSubscriberName, 'sortSubscriberName')}>\n Subscriber Name\n \n sortHandle(sort.sortDate, 'sortDate')}>\n Date\n \n sortHandle(sort.sortPaymentType, 'sortPaymentType')}>\n Payment Type\n \n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\n Merchant Name\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Amount\n \n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\n Transaction Fees\n \n sortHandle(sort.sortReferenceId, 'sortReferenceId')}>\n Transaction Ref\n \n sortHandle(sort.sortStatus, 'sortStatus')}>\n Status\n \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)}
\n \n )\n}\n\nexport default BankReportTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\n\nconst MerchantCommission = (props) => {\n\n const [merchants, setMerchant] = React.useState([]);\n const [merchantFilter, setMerchantFilter] = React.useState('');\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [minEndDate, setMinEndDate] = React.useState('');\n const [bank, setBank] = React.useState([]);\n const [bankCode, setBankCodeFilter] = React.useState('');\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n /**====================== Redux Hook ========================= */\n\n useEffect(() => {\n setMerchant(props.merchant);\n }, [props.merchant]);\n\n useEffect(() => {\n setBank(props.bank);\n }, [props.bank]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n useEffect(() => {\n if (\n endDate &&\n moment(new Date(endDate)).isBefore(new Date(startDate))\n ) {\n setEndDate('');\n }\n }, [startDate]);\n\n\n /**====================== File Function ========================= */\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n const changeMerchant = (val) => {\n setMerchantFilter(val);\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n /**====================== Form Validation ========================= */\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n if (!endDate) {\n error.endDate = 'Please select end date';\n }\n\n return error;\n }\n\n /**====================== API Calls ========================= */\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantId'] = Number(merchantFilter);\n }\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'UserName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'UserName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = true;\n } \n\n postMethod('/api/reports/MerchantCommissionReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec\n }\n if (merchantFilter && merchantFilter != '0') {\n data['MerchantId'] = Number(merchantFilter);\n }\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortMerchantName == \"1\") {\n data['SortingOn'] = 'UserName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data['SortingOn'] = 'UserName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = true;\n } \n postMethod('/api/reports/MerchantCommissionReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n\n return (\n <>\n        \n\n \n \n\n \n \n\n Start Date\n \n \n\n \n \n\n\n \n\n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n\n \n \n\n End Date\n \n \n\n \n \n\n \n\n
\n setEndDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.endDate &&
\n * {errors.endDate}\n
}\n\n \n
\n\n \n\n \n \n \n\n Merchant\n \n \n \n \n \n changeMerchant(e.key)}\n />\n \n {/* \n
\n changeMerchant(e.target.value)}\n >\n \n {merchants.map(c =>\n \n )}\n \n
\n
*/}\n\n \n
\n\n \n \n {errors.merchant &&
\n * {errors.merchant}\n
}\n \n
\n \n\n
\n      \n \n \n \n \n \n \n \n \n \n\n \n );\n}\n\nexport default MerchantCommission\n\n","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, iconCss } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortCreatedat: 0,\n sortMerchantName: 0,\n sortAmount: 0,\n sortFeesAmount: 0\n};\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '280px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n};\n\nconst MerchantCommissionTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n /**========================== Redux Hook ====================== */\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n /**========================== File Function ====================== */\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n }\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\n Instruction Date/Time\n \n sortHandle(sort.sortMerchantName, 'sortMerchantName')}>\n Merchant Name\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Transaction Amount\n \n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\n Commission Amount\n \n
\n {moment(mmo.createdAt).format('lll')}\n {mmo.userName}{getAmt(mmo.paymentAmount)}{getAmt(mmo.commissionAmount)}
\n \n );\n}\nexport default MerchantCommissionTable;","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport {\n Table\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader, getAmt } from \"services/util\";\nimport { btnCss, iconCss } from '../../appConfig';\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortCreatedat: 0,\n sortSubscriberName: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortBankName: 0,\n sortTransactionType: 0\n};\n\n\nconst reportloaderContainer = {\n position: 'absolute',\n top: '280px',\n left: 0,\n width: '100%',\n heigth: '100%',\n backgroundColor: '#F8F8F8AD',\n};\n\nconst WalletCommissionTable = (props) => {\n\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n /**========================== Redux Hook ====================== */\n\n useEffect(()=> {\n setFilteredList(props.datalist)\n }, [props.datalist]);\n\n useEffect(()=> {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(()=> {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(()=> {\n props.setParentSort(sort);\n }, [sort]);\n\n /**=========================== File Function ======================= */\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = '1';\n } else if (fieldValue == \"1\") {\n newValue = '2';\n } else if (fieldValue == \"2\") {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n }\n\n const getTransactionType = (type) => {\n if (type === 'topup') {\n return 'Top Up';\n } \n return type;\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 && filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n\n )\n }\n )}\n \n {props.loading && \n \n }\n {!props.loading && !filteredList.length && \n \n }\n
sortHandle(sort.sortCreatedat, 'sortCreatedat')}>\n Instruction Date/Time\n \n sortHandle(sort.sortBankName, 'sortBankName')}>\n Bank Name\n \n sortHandle(sort.sortSubscriberName, 'sortSubscriberName')}>\n Subscriber Name\n \n sortHandle(sort.sortAmount, 'sortAmount')}>\n Transaction Amount\n \n sortHandle(sort.sortTransactionType, 'sortTransactionType')}>\n Transaction Type\n \n sortHandle(sort.sortFeesAmount, 'sortFeesAmount')}>\n Commission Amount\n \n
\n {moment(mmo.createdAt).format('lll')}\n {mmo.bankName}{mmo.subscriberName}{getAmt(mmo.paymentAmount)}{getTransactionType(mmo.paymentType)}{getAmt(mmo.commissionAmount)}
\n \n );\n};\nexport default WalletCommissionTable;","import React, { useEffect } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from 'react-toast-notifications';\n\nconst WalletCommission = (props) => {\n\n const [startDate, setStartDate] = React.useState('');\n const [endDate, setEndDate] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [minEndDate, setMinEndDate] = React.useState('');\n const [bank, setBank] = React.useState([]);\n const [bankCode, setBankCodeFilter] = React.useState('');\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [paymentType, setPaymentType] = React.useState('');\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n /**================================= Redux Hook ============================ */\n\n useEffect(() => {\n setBank(props.bank);\n }, [props.bank]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading])\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading])\n\n useEffect(() => {\n if (\n endDate &&\n moment(new Date(endDate)).isBefore(new Date(startDate))\n ) {\n setEndDate('');\n }\n }, [startDate]);\n\n\n /**================================= File Function ============================ */\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n const changeBankCode = (val) => {\n setBankCodeFilter(val);\n }\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n }\n\n /**================================= Validation ============================ */\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = 'Please select start date';\n }\n if (!endDate) {\n error.endDate = 'Please select end date';\n }\n\n return error;\n }\n\n /**================================= API Calls ============================ */\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n setLoading(true);\n let id = getUserId();\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n 'PageNumber': Number(props.currentPage + 1),\n 'PerPage': pageSize,\n 'CommissionUserType': 'Bank',\n 'PaymentType': 'topup'\n }\n\n if (bankCode && bankCode != '0') {\n data['UserIntId'] = Number(bankCode);\n }\n\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBankName == \"1\") {\n data['SortingOn'] = 'BankName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBankName == \"2\") {\n data['SortingOn'] = 'BankName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortTransactionType == \"1\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortTransactionType == \"2\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = true;\n } \n\n\n postMethod('/api/reports/WalletCommissionReport', JSON.stringify(data), 'post')\n .then(res => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n }\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every(x => x === '');\n if (isNoError) {\n let errorMsg = '';\n let data = {\n 'FromDate': moment(new Date(startDate)).format('DD/MM/YYYY'),\n 'ToDate': moment(new Date(endDate)).format('DD/MM/YYYY'),\n \"Status\": \"\",\n 'PageNumber': 1,\n 'PerPage': props.totalRec,\n 'CommissionUserType': 'Bank',\n 'PaymentType': 'topup'\n }\n\n if (bankCode && bankCode != '0') {\n data['UserIntId'] = Number(bankCode);\n }\n\n if (props.sort && props.sort.sortCreatedat == \"1\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortCreatedat == \"2\") {\n data['SortingOn'] = 'CreatedAt';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortBankName == \"1\") {\n data['SortingOn'] = 'BankName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortBankName == \"2\") {\n data['SortingOn'] = 'BankName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortSubscriberName == \"1\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortSubscriberName == \"2\") {\n data['SortingOn'] = 'SubscriberName';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data['SortingOn'] = 'PaymentAmount';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortTransactionType == \"1\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortTransactionType == \"2\") {\n data['SortingOn'] = 'PaymentType';\n data['IsDescending'] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data['SortingOn'] = 'CommissionAmount';\n data['IsDescending'] = true;\n } \n\n postMethod('/api/reports/WalletCommissionReport', JSON.stringify(data), 'post')\n .then(res => {\n setIsMounted(true);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\" &&\n res.data.result) {\n // Success\n if (\n !res.data.result.list ||\n !res.data.result.list.length\n ) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n }).catch(err => {\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n props.errorReportData();\n })\n }\n }\n\n return (\n <>\n        \n\n \n \n\n \n \n\n Start Date\n \n \n\n \n \n\n\n \n\n
\n setStartDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.startDate &&
\n * {errors.startDate}\n
}\n\n \n
\n \n\n \n\n \n \n\n End Date\n \n \n\n \n \n\n \n\n
\n setEndDate(e.target.value)}\n >\n \n
\n
\n\n\n \n
\n\n \n \n\n {errors.endDate &&
\n * {errors.endDate}\n
}\n\n \n
\n\n \n\n \n \n \n Bank\n \n \n \n \n \n
\n changeBankCode(e.target.value)}\n >\n \n {bank.map(c =>\n \n )}\n \n
\n
\n\n \n
\n\n \n \n {errors.bankCode &&
\n * {errors.bankCode}\n
}\n \n
\n \n\n
\n\n \n\n \n \n \n \n \n \n \n \n \n );\n\n};\nexport default WalletCommission;","import React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n Container,\n Row,\n Col,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n Table,\n Badge,\n} from \"reactstrap\";\n// core components\n\nimport { useToasts } from \"react-toast-notifications\";\nimport Header from \"components/Headers/Header\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport { collBankStatus } from \"appConfig\";\nimport { getMethod } from \"services/httpServices\";\nimport jsPDF from \"jspdf\";\nimport \"jspdf-autotable\";\nimport * as FileSaver from \"file-saver\";\nimport * as XLSX from \"xlsx\";\nimport { postMethod } from \"services/httpServices\";\n\nconst initialValue = [\n { name: \"Keanu Reeves\", profession: \"Actor\" },\n { name: \"Lionel Messi\", profession: \"Football Player\" },\n { name: \"Cristiano Ronaldo\", profession: \"Football Player\" },\n { name: \"Jack Nicklaus\", profession: \"Golf Player\" },\n];\n\nconst STATUS = collBankStatus;\n\nconst EDSATransaction = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const [searchText, setSearchText] = React.useState(\"\");\n const [error, setError] = React.useState(null);\n const [response, setResponse] = React.useState({});\n\n const { addToast } = useToasts();\n\n const [people, setPeople] = React.useState(initialValue);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const submit = () => {\n if (!searchText) {\n setError(\"Please Enter Transaction ID\");\n setLoading(false);\n setResponse({});\n } else {\n setError(null);\n setLoading(true);\n setResponse({});\n fetchTrans(searchText);\n }\n };\n\n \n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n // return ob && ob.value ? ob.value : val;\n return ob && ob.value ? ob.value : val;\n };\n\n const sendNotification = async (id) => {\n setLoading(true);\n let errorMsg = \"\";\n postMethod(\"/api/Transactions/SendNotificationEDSATransaction?transactionId=\" + id, {}, \"post\")\n .then((res) => {\n setLoading(false);\n notifySuccess(\"Email and SMS sent again successfully\");\n })\n .catch((err) => {\n console.log(err);\n setLoading(false);\n setError(errorMsg);\n notifyFailed(\"Try Again After Sometime\");\n });\n };\n\n const fetchTrans = async (id) => {\n let errorMsg = \"\";\n getMethod(\"/api/Transactions/CheckEDSATransaction/\" + id, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n \n // Success\n if (!res.data.content) {\n setError(\"No transaction found\");\n } else {\n setResponse(res.data.content);\n } \n } else {\n errorMsg = \"Unknown Error\";\n setError(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setError(errorMsg);\n });\n };\n\n const getAmt = (amount) => {\n let amt = Number(amount);\n return amt.toLocaleString();\n };\n\n const reset = () => {\n setLoading(false);\n setResponse({});\n setSearchText(\"\");\n };\n return (\n <>\n
\n {\n e.preventDefault();\n }}\n >\n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n    \n \n \n \n\n {loading && }\n
\n {error &&
{error}
}\n\n {response && response?.transactionID && (\n
\n \n \n EDSA Transaction Details\n \n \n
\n
\n \n \n \n Transaction ID :\n \n \n \n {response.transactionID}\n \n \n\n \n \n \n Meter Number: \n \n \n \n {response.meterNumber}\n \n \n \n \n \n Units :\n \n \n \n {response.units}\n \n \n \n \n \n Voucher PIN :\n \n \n \n {response.voucherPin}\n \n \n \n \n \n Amount :\n \n \n \n Le {getAmt(response.denomination)}\n \n \n \n \n \n Status :\n \n \n \n {statusFormat(response.statusDescription)}\n \n \n \n
\n
\n\n \n \n \n \n \n\n
\n )}\n
\n
\n \n );\n};\n\nexport default EDSATransaction;","import React, { useEffect } from \"react\";\nimport { Button, Row, Col } from \"reactstrap\";\nimport { postMethod } from \"services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\nimport moment from \"moment\";\n\nconst PendingSettlementsReport = (props) => {\n const [startDate, setStartDate] = React.useState(\"\");\n const [endDate, setEndDate] = React.useState(\"\");\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading]);\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading]);\n\n useEffect(() => {\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\n setEndDate(\"\");\n }\n }, [startDate]);\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = \"Please select start date\";\n }\n if (!endDate) {\n error.endDate = \"Please select end date\";\n }\n return error;\n };\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n };\n\n const fetchReport = () => {\n // const validationErrors = validate();\n const validationErrors = {};\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n let errorMsg = \"\";\n setLoading(true);\n let data = {\n Status: \"\",\n PageNumber: Number(props.currentPage + 1),\n PerPage: pageSize,\n };\n\n if (props.sort && props.sort.sortMerchantName == \"1\") {\n data[\"SortingOn\"] = \"MerchantName\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortMerchantName == \"2\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortBankName == \"1\") {\n data[\"SortingOn\"] = \"BankName\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortBankName == \"2\") {\n data[\"SortingOn\"] = \"BankName\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortAccountNo == \"1\") {\n data[\"SortingOn\"] = \"AccountNo\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortAccountNo == \"2\") {\n data[\"SortingOn\"] = \"AccountNo\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortAmountDue == \"1\") {\n data[\"SortingOn\"] = \"AmountDue\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortAmountDue == \"2\") {\n data[\"SortingOn\"] = \"AmountDue\";\n data[\"IsDescending\"] = true;\n }\n\n postMethod(\n \"/api/reports/MerchantPendingSettlementReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n }\n };\n\n const fetchReportData = () => {\n // const validationErrors = validate();\n const validationErrors = {};\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n let errorMsg = \"\";\n let data = {\n Status: \"\",\n PageNumber: 1,\n PerPage: props.totalRec,\n };\n\n postMethod(\n \"/api/reports/MerchantPendingSettlementReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n })\n .catch((err) => {\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n props.errorReportData();\n });\n }\n };\n\n return (\n <>\n \n \n \n Submit    \n {loading && submitButton && }\n \n \n \n \n );\n};\n\nexport default PendingSettlementsReport;\n","import React, { useEffect } from \"react\";\nimport { FormGroup, Input, Button, Row, Col } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\n\nconst SubscriberBalanceAnalysisReport = (props) => {\n const [startDate, setStartDate] = React.useState(\"\");\n const [endDate, setEndDate] = React.useState(\"\");\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading]);\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading]);\n\n useEffect(() => {\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\n setEndDate(\"\");\n }\n }, [startDate]);\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = \"Please select start date\";\n }\n if (!endDate) {\n error.endDate = \"Please select end date\";\n }\n return error;\n };\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n };\n\n const renameKey = (key) => {\n switch (key) {\n case \"balance0\":\n return \"0\";\n case \"balance1to100\":\n return \">Le 0.00 – Le 100.00\";\n case \"balance101to500\":\n return \">Le 100.00 – Le 500.00\";\n case \"balance501to1000\":\n return \">Le 500.00 – Le 1,000.00\";\n case \"balance1001to10000\":\n return \">Le 1,000.00 – Le 10,000.00\";\n case \"balance10001to25000\":\n return \">Le 10,000.00 – Le 25,000.00\";\n case \"balance25001to50000\":\n return \">Le 25,000.00 – Le 50,000.00\";\n case \"balance50001to1lk\":\n return \">Le 50,000.00 – Le 100,000.00\";\n case \"balance1lkplus\":\n return \">Le 100,000.00\";\n default:\n return;\n }\n };\n\n const resultFilter = (data) => {\n if (!data) return data;\n const list = [];\n Object.entries(data).forEach(([key, value], idx) => {\n if (typeof value === \"object\" && Array.isArray(value) && value?.length) {\n list.push({ name: renameKey(key), ...value[0] });\n }\n });\n const obj = {\n list,\n data,\n };\n return obj;\n };\n\n const fetchReport = () => {\n let errorMsg = \"\";\n setLoading(true);\n let id = getUserId();\n let data = {\n Status: \"\",\n PageNumber: Number(props.currentPage + 1),\n PerPage: pageSize,\n };\n\n postMethod(\n \"/api/reports/SubscriberBalanceAnalysisReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentCallback(resultFilter(res.data.result));\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchReportData = () => {\n let errorMsg = \"\";\n let data = {\n Status: \"\",\n PageNumber: 1,\n PerPage: props.totalRec,\n };\n\n postMethod(\n \"/api/reports/SubscriberBalanceAnalysisReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentReportData(resultFilter(res.data.result));\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n })\n .catch((err) => {\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n props.errorReportData();\n });\n };\n\n return (\n <>\n        \n \n \n \n Submit    \n {loading && submitButton && }\n \n \n \n {/*    */}\n \n );\n};\n\nexport default SubscriberBalanceAnalysisReport;\n","import React, { useEffect } from \"react\";\nimport { Button, Row, Col } from \"reactstrap\";\nimport { postMethod } from \"services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\n\nconst SettlementLiquidityAnalysisReport = (props) => {\n const [loading, setLoading] = React.useState(false);\n const [isMounted, setIsMounted] = React.useState(false);\n const [submitButton, setSubmitButton] = React.useState(false);\n const [pageSize] = React.useState(10);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading]);\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading]);\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n };\n\n const fetchReport = () => {\n let errorMsg = \"\";\n setLoading(true);\n let data = {\n Status: \"\",\n PageNumber: Number(props.currentPage + 1),\n PerPage: pageSize,\n };\n\n postMethod(\n \"/api/reports/SettlementLiquidityAnalysisReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchReportData = () => {\n let errorMsg = \"\";\n let data = {\n Status: \"\",\n PageNumber: 1,\n PerPage: props.totalRec,\n };\n\n postMethod(\n \"/api/reports/SettlementLiquidityAnalysisReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n })\n .catch((err) => {\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n props.errorReportData();\n });\n };\n\n return (\n <>\n        \n \n \n \n Submit    \n {loading && submitButton && }\n \n \n \n \n );\n};\n\nexport default SettlementLiquidityAnalysisReport;\n","import React, { useEffect } from \"react\";\nimport { FormGroup, Input, Button, Row, Col } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\n\nconst CommissionsGrowthAnalysisReport = (props) => {\n const [startDate, setStartDate] = React.useState(\"\");\n const [endDate, setEndDate] = React.useState(\"\");\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading]);\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading]);\n\n useEffect(() => {\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\n setEndDate(\"\");\n }\n }, [startDate]);\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = \"Please select start date\";\n }\n if (!endDate) {\n error.endDate = \"Please select end date\";\n }\n return error;\n };\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n };\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n let errorMsg = \"\";\n setLoading(true);\n let id = getUserId();\n let data = {\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\n Status: \"\",\n PageNumber: Number(props.currentPage + 1),\n PerPage: pageSize,\n };\n\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = true;\n }\n\n postMethod(\n \"/api/reports/GetTransactionsReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n }\n };\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n let errorMsg = \"\";\n let data = {\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\n Status: \"\",\n PageNumber: 1,\n PerPage: props.totalRec,\n };\n\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = true;\n }\n\n postMethod(\n \"/api/reports/GetTransactionsReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n })\n .catch((err) => {\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n props.errorReportData();\n });\n }\n };\n\n return (\n <>\n        \n \n \n \n \n \n Start Date\n \n \n \n\n \n \n \n
\n setStartDate(e.target.value)}\n >\n
\n
\n \n
\n\n \n \n {errors.startDate && (\n
\n * {errors.startDate}\n
\n )}\n \n
\n \n\n \n \n \n \n End Date\n \n \n \n\n \n \n \n
\n setEndDate(e.target.value)}\n >\n
\n
\n \n
\n\n \n \n {errors.endDate && (\n
\n * {errors.endDate}\n
\n )}\n \n
\n \n
\n        \n \n \n \n Submit    \n {loading && submitButton && }\n \n \n \n {/*    */}\n \n );\n};\n\nexport default CommissionsGrowthAnalysisReport;\n","import React, { useEffect } from \"react\";\nimport { FormGroup, Input, Button, Row, Col } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getUserId, postMethod } from \"services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\n\nconst AgentCommissionsReport = (props) => {\n const [startDate, setStartDate] = React.useState(\"\");\n const [endDate, setEndDate] = React.useState(\"\");\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [isMounted, setIsMounted] = React.useState(false);\n const [pageSize, setPageSize] = React.useState(10);\n const [submitButton, setSubmitButton] = React.useState(false);\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.currentPage]);\n\n useEffect(() => {\n if (isMounted) {\n fetchReport();\n }\n }, [props.sort]);\n\n useEffect(() => {\n props.parentLoading(loading);\n }, [loading]);\n\n useEffect(() => {\n if (props.pdfLoading && isMounted) {\n fetchReportData();\n }\n }, [props.pdfLoading]);\n\n useEffect(() => {\n if (props.xlLoading && isMounted) {\n fetchReportData();\n }\n }, [props.xlLoading]);\n\n useEffect(() => {\n if (endDate && moment(new Date(endDate)).isBefore(new Date(startDate))) {\n setEndDate(\"\");\n }\n }, [startDate]);\n\n const validate = () => {\n var error = {};\n if (!startDate) {\n error.startDate = \"Please select start date\";\n }\n if (!endDate) {\n error.endDate = \"Please select end date\";\n }\n return error;\n };\n\n const onSubmitReport = () => {\n setSubmitButton(true);\n if (props.currentPage != 0) {\n props.changePage(0);\n } else {\n fetchReport();\n }\n };\n\n const fetchReport = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n let errorMsg = \"\";\n setLoading(true);\n let id = getUserId();\n let data = {\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\n Status: \"\",\n PageNumber: Number(props.currentPage + 1),\n PerPage: pageSize,\n };\n\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = true;\n }\n\n postMethod(\n \"/api/reports/GetTransactionsReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n setIsMounted(true);\n setSubmitButton(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentCallback(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n }\n };\n\n const fetchReportData = () => {\n const validationErrors = validate();\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n let errorMsg = \"\";\n let data = {\n FromDate: moment(new Date(startDate)).format(\"DD/MM/YYYY\"),\n ToDate: moment(new Date(endDate)).format(\"DD/MM/YYYY\"),\n Status: \"\",\n PageNumber: 1,\n PerPage: props.totalRec,\n };\n\n if (props.sort && props.sort.sortPaymentTo == \"1\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentTo == \"2\") {\n data[\"SortingOn\"] = \"PaymentTo\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentFrom == \"1\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentFrom == \"2\") {\n data[\"SortingOn\"] = \"PaymentFrom\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortReferenceId == \"1\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortReferenceId == \"2\") {\n data[\"SortingOn\"] = \"ReferenceId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortProductId == \"1\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortProductId == \"2\") {\n data[\"SortingOn\"] = \"ProductId\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortCreatedAt == \"1\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortCreatedAt == \"2\") {\n data[\"SortingOn\"] = \"CreatedAt\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortAmount == \"1\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortAmount == \"2\") {\n data[\"SortingOn\"] = \"Amount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortFeesAmount == \"1\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortFeesAmount == \"2\") {\n data[\"SortingOn\"] = \"FeesAmount\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortStatus == \"1\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortStatus == \"2\") {\n data[\"SortingOn\"] = \"Status\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentMethod == \"1\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentMethod == \"2\") {\n data[\"SortingOn\"] = \"PaymentMethod\";\n data[\"IsDescending\"] = true;\n } else if (props.sort && props.sort.sortPaymentType == \"1\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = false;\n } else if (props.sort && props.sort.sortPaymentType == \"2\") {\n data[\"SortingOn\"] = \"PaymentType\";\n data[\"IsDescending\"] = true;\n }\n\n postMethod(\n \"/api/reports/GetTransactionsReport\",\n JSON.stringify(data),\n \"post\"\n )\n .then((res) => {\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n props.parentReportData(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n props.errorReportData();\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n props.errorReportData();\n }\n })\n .catch((err) => {\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n props.errorReportData();\n });\n }\n };\n\n return (\n <>\n        \n \n \n \n \n \n Start Date\n \n \n \n\n \n \n \n
\n setStartDate(e.target.value)}\n >\n
\n
\n \n
\n\n \n \n {errors.startDate && (\n
\n * {errors.startDate}\n
\n )}\n \n
\n \n\n \n \n \n \n End Date\n \n \n \n\n \n \n \n
\n setEndDate(e.target.value)}\n >\n
\n
\n \n
\n\n \n \n {errors.endDate && (\n
\n * {errors.endDate}\n
\n )}\n \n
\n \n
\n        \n \n \n \n Submit    \n {loading && submitButton && }\n \n \n \n {/*    */}\n \n );\n};\n\nexport default AgentCommissionsReport;\n","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { Table } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss } from \"../../appConfig\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport { getLoginType } from \"services/httpServices\";\nimport { getAmt } from \"services/util\";\n\n//change props\nconst sortIS = {\n sortMerchantName: 0,\n sortBankName: 0,\n sortAccountNo: 0,\n sortAmountDue: 0,\n sortCreatedAt: 0,\n sortStatus: 0,\n};\n\nconst reportloaderContainer = {\n position: \"absolute\",\n top: \"240px\",\n left: 0,\n width: \"100%\",\n heigth: \"100%\",\n backgroundColor: \"#F8F8F8AD\",\n // display: 'none'\n};\n\nconst PendingSettlementsReportTable = (props) => {\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(() => {\n setFilteredList(props.datalist);\n }, [props.datalist]);\n\n useEffect(() => {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(() => {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(() => {\n props.setParentSort(sort);\n }, [sort]);\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n return (\n <>\n \n
\n
\n Report Date: {moment().format(\"Do MMMM, YYYY\")}\n
\n
\n Time Generated: {moment().format(\"HH:mm\")}\n
\n
\n\n
\n
\n No. of merchants:{\" \"}\n {props?.headings?.numberofMerchants}\n
\n
\n Activity Ratio:{\" \"}\n {props?.headings?.activityRatio &&\n props?.headings?.activityRatio?.toFixed(2)}%\n
\n
\n\n
\n
\n Total Amount Due:{\" \"}\n {getAmt(props?.headings?.overallDueAmount || 0)}\n
\n
\n Generated By: {getLoginType()}\n
\n
\n \n \n \n \n \n sortHandle(sort.sortMerchantName, \"sortMerchantName\")\n }\n >\n Merchant Name\n \n \n\n sortHandle(sort.sortBankName, \"sortBankName\")}\n >\n Bank Name\n \n \n sortHandle(sort.sortAccountNo, \"sortAccountNo\")}\n >\n Account No.\n \n \n sortHandle(sort.sortAmountDue, \"sortAmountDue\")}\n >\n Amount Due\n \n \n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n {props.loading && (\n \n )}\n {!props.loading && !filteredList.length && (\n \n )}\n
{mmo?.merchantName}{mmo?.merchantBankName}{mmo?.merchantAccountNo}{getAmt(mmo?.amount + mmo?.commissionAmount || 0)}
\n \n );\n};\nexport default PendingSettlementsReportTable;\n","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { Table } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, subsStatus } from \"../../appConfig\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\n//TODO: modify sort props\nconst sortIS = {\n sortPaymentTo: 0,\n sortPaymentFrom: 0,\n sortReferenceId: 0,\n sortProductId: 0,\n sortCreatedAt: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortStatus: 0,\n sortPaymentMethod: 0,\n sortPaymentType: 0,\n};\n\nconst reportloaderContainer = {\n position: \"absolute\",\n top: \"240px\",\n left: 0,\n width: \"100%\",\n heigth: \"100%\",\n backgroundColor: \"#F8F8F8AD\",\n // display: 'none'\n};\n\nconst STATUS = subsStatus;\n\nconst SubscriberBalanceAnalysisReportTable = (props) => {\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(() => {\n setFilteredList(props.datalist);\n }, [props.datalist]);\n\n useEffect(() => {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(() => {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(() => {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n return (\n <>\n \n
\n
\n Report Date: {moment().format(\"Do MMMM, YYYY\")}\n
\n
\n Time Generated: {moment().format(\"HH:mm\")}\n
\n
\n\n
\n
\n Total Subscriber Balance:{\" \"}\n {getAmt(props?.headings?.data?.totalSubscriberBalanceAmount || 0)}\n
\n
\n I-C Ratio: {props?.headings?.data?.icRatio}\n
\n
\n \n \n \n \n \n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\n }\n >\n Balance Range (Le)\n \n \n\n sortHandle(sort.sortPaymentTo, \"sortPaymentTo\")}\n >\n I.S. Count\n \n \n \n sortHandle(sort.sortPaymentFrom, \"sortPaymentFrom\")\n }\n >\n C.S. Count\n \n \n \n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\n }\n >\n Total Count\n \n \n\n \n sortHandle(sort.sortReferenceId, \"sortReferenceId\")\n }\n >\n Percent Share\n \n \n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n );\n })}\n \n {props.loading && (\n \n )}\n {!props.loading && !filteredList.length && (\n \n )}\n
{mmo.name}{mmo.individualSubscriber}{mmo.corporateSubscriber}{mmo.totalSubscriberCount}{mmo.percentShare?.toFixed(2)}%
\n \n );\n};\nexport default SubscriberBalanceAnalysisReportTable;\n","import React from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { Table } from \"reactstrap\";\nimport moment from \"moment\";\nimport { reportloader } from \"services/util\";\nimport { btnCss } from \"../../appConfig\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport { getAmt } from \"services/util\";\n\nconst reportloaderContainer = {\n position: \"absolute\",\n top: \"240px\",\n left: 0,\n width: \"100%\",\n heigth: \"100%\",\n backgroundColor: \"#F8F8F8AD\",\n};\n\nconst SettlementLiquidityAnalysisReportTable = (props) => {\n return (\n <>\n \n
\n
\n Report Date: {moment().format(\"Do MMMM, YYYY\")}\n
\n
\n Time: {moment().format(\"HH:mm\")}\n
\n
\n\n
\n
\n Total Bank Balances:{\" \"}\n {getAmt(props?.datalist?.totalBankBalance || 0)}\n
\n
\n SL Ratio: {props?.datalist?.slRatio}\n
\n
\n\n
\n
\n Pending Settlements:{\" \"}\n {getAmt(props?.datalist?.overallPendingsettlement || 0)}\n
\n
\n Net Position:{\" \"}\n \n {props?.datalist?.netPosition}\n \n
\n
\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {props.loading && (\n \n )}\n {!Object.entries(props?.datalist)?.length && (\n \n )}\n
\n Bank Type\n \n \n Amount\n \n \n Percent Share\n \n Required Action
Settlement Bank{getAmt(props?.datalist?.settlemenetBankBalance || 0)}{props?.datalist?.percentagesettlementshare?.toFixed(2)}%\n {props?.datalist?.netPosition < 0\n ? \"Please transfer funds from Collection to Settlement Account to meet the settlement cash requirements\"\n : \"Liquidity position OK\"}\n
Collection Bank{getAmt(props?.datalist?.collectionBankBalance || 0)}{props?.datalist?.percentagecollectionshare?.toFixed(2)}%
\n \n );\n};\nexport default SettlementLiquidityAnalysisReportTable;\n","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { Table, Badge } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, subsStatus } from \"../../appConfig\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortPaymentTo: 0,\n sortPaymentFrom: 0,\n sortReferenceId: 0,\n sortProductId: 0,\n sortCreatedAt: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortStatus: 0,\n sortPaymentMethod: 0,\n sortPaymentType: 0,\n};\n\nconst reportloaderContainer = {\n position: \"absolute\",\n top: \"240px\",\n left: 0,\n width: \"100%\",\n heigth: \"100%\",\n backgroundColor: \"#F8F8F8AD\",\n // display: 'none'\n};\n\nconst STATUS = subsStatus;\n\nconst AgentCommissionsReportTable = (props) => {\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(() => {\n setFilteredList(props.datalist);\n }, [props.datalist]);\n\n useEffect(() => {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(() => {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(() => {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n const getPaymentType = (type) => {\n let str = type;\n if (type == \"topup\") {\n str = \"Top Up\";\n } else if (type == \"BalanceTransfer\") {\n str = \"Balance Transfer\";\n } else if (type == \"Merchant\") {\n str = \"Merchant Payment\";\n } else if (type == \"WalletPayment\") {\n str = \"Wallet Payment\";\n } else if (type == \"CashTopUp\") {\n str = \"Cash Top Up\";\n }\n return str;\n };\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n // return ob && ob.value ? ob.value : val;\n return ob && ob.value ? (\n \n \n {ob.value}\n \n ) : (\n val\n );\n };\n\n return (\n <>\n \n \n \n \n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\n }\n >\n Sub-Agent Name\n \n \n\n sortHandle(sort.sortPaymentTo, \"sortPaymentTo\")}\n >\n Period Commission\n \n \n \n sortHandle(sort.sortPaymentFrom, \"sortPaymentFrom\")\n }\n >\n Period % Share\n \n \n \n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\n }\n >\n Cumulative % Share\n \n \n\n {/* \n sortHandle(sort.sortReferenceId, \"sortReferenceId\")\n }\n >\n Smart Pay Id\n \n \n sortHandle(sort.sortProductId, \"sortProductId\")}\n >\n Product Id\n \n \n sortHandle(sort.sortCreatedAt, \"sortCreatedAt\")}\n >\n Date\n \n \n sortHandle(sort.sortAmount, \"sortAmount\")}\n >\n Amount\n \n \n sortHandle(sort.sortFeesAmount, \"sortFeesAmount\")}\n >\n Fees Amount\n \n \n \n sortHandle(sort.sortStatus, \"sortStatus\")}\n >\n Status\n \n */}\n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n {/* \n \n \n \n \n \n */}\n \n );\n })}\n \n {props.loading && (\n \n )}\n {!props.loading && !filteredList.length && (\n \n )}\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)}
\n \n );\n};\nexport default AgentCommissionsReportTable;\n","import React, { useEffect } from \"react\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { Table, Badge } from \"reactstrap\";\nimport moment from \"moment\";\nimport { getSortCls, reportloader } from \"services/util\";\nimport { btnCss, subsStatus } from \"../../appConfig\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\n\nconst sortIS = {\n sortPaymentTo: 0,\n sortPaymentFrom: 0,\n sortReferenceId: 0,\n sortProductId: 0,\n sortCreatedAt: 0,\n sortAmount: 0,\n sortFeesAmount: 0,\n sortStatus: 0,\n sortPaymentMethod: 0,\n sortPaymentType: 0,\n};\n\nconst reportloaderContainer = {\n position: \"absolute\",\n top: \"240px\",\n left: 0,\n width: \"100%\",\n heigth: \"100%\",\n backgroundColor: \"#F8F8F8AD\",\n // display: 'none'\n};\n\nconst STATUS = subsStatus;\n\nconst CommissionsGrowthAnalysisReportTable = (props) => {\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [sort, setSort] = React.useState(sortIS);\n\n useEffect(() => {\n setFilteredList(props.datalist);\n }, [props.datalist]);\n\n useEffect(() => {\n setCurrentPage(props.currentPage);\n }, [props.currentPage]);\n\n useEffect(() => {\n setPageSize(props.pageSize);\n }, [props.pageSize]);\n\n useEffect(() => {\n props.setParentSort(sort);\n }, [sort]);\n\n const getAmt = (amt) => {\n return amt.toLocaleString();\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n const getPaymentType = (type) => {\n let str = type;\n if (type == \"topup\") {\n str = \"Top Up\";\n } else if (type == \"BalanceTransfer\") {\n str = \"Balance Transfer\";\n } else if (type == \"Merchant\") {\n str = \"Merchant Payment\";\n } else if (type == \"WalletPayment\") {\n str = \"Wallet Payment\";\n } else if (type == \"CashTopUp\") {\n str = \"Cash Top Up\";\n }\n return str;\n };\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n // return ob && ob.value ? ob.value : val;\n return ob && ob.value ? (\n \n \n {ob.value}\n \n ) : (\n val\n );\n };\n\n return (\n <>\n \n \n \n \n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\n }\n >\n Month\n \n \n\n sortHandle(sort.sortPaymentTo, \"sortPaymentTo\")}\n >\n Total Commission (Le)\n \n \n \n sortHandle(sort.sortPaymentFrom, \"sortPaymentFrom\")\n }\n >\n MGR (%)\n \n \n \n sortHandle(sort.sortPaymentMethod, \"sortPaymentMethod\")\n }\n >\n CAGR (%)\n \n \n\n {/* \n sortHandle(sort.sortReferenceId, \"sortReferenceId\")\n }\n >\n Smart Pay Id\n \n \n sortHandle(sort.sortProductId, \"sortProductId\")}\n >\n Product Id\n \n \n sortHandle(sort.sortCreatedAt, \"sortCreatedAt\")}\n >\n Date\n \n \n sortHandle(sort.sortAmount, \"sortAmount\")}\n >\n Amount\n \n \n sortHandle(sort.sortFeesAmount, \"sortFeesAmount\")}\n >\n Fees Amount\n \n \n \n sortHandle(sort.sortStatus, \"sortStatus\")}\n >\n Status\n \n */}\n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n {/* \n \n \n \n \n \n */}\n \n );\n })}\n \n {props.loading && (\n \n )}\n {!props.loading && !filteredList.length && (\n \n )}\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)}
\n \n );\n};\nexport default CommissionsGrowthAnalysisReportTable;\n","import React, { useEffect, useState } from \"react\";\nimport {\n FormGroup,\n Input,\n Button,\n Row,\n Col,\n Table,\n CardFooter,\n} from \"reactstrap\";\nimport moment from \"moment\";\nimport { postMethod } from \"services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { getMethod } from \"services/httpServices\";\nimport { getAmt } from \"services/util\";\nimport ReactPaginate from \"react-paginate\";\nimport ReactSelect from \"react-select\";\nimport jsPDF from \"jspdf\";\nimport * as XLSX from \"xlsx\";\nconst AllTransactionReport = (props) => {\n const [merchants, setMerchants] = React.useState([]);\n const [merchantUsers, setMerchantUsers] = React.useState([]);\n const [fsps, setFsps] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [pageSize, setPageSize] = React.useState(10);\n const [posData, setPosData] = React.useState([]);\n const [filteredList, setFilteredList] = React.useState([]);\n const [totalRec, setTotalRec] = React.useState(0);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pagesCount, setPageCount] = React.useState(0);\n const [values, setValues] = useState({\n isDescending: true,\n pageNumber: 1,\n perPage: 10,\n searchText: \"\",\n sortingOn: \"\",\n transactionStatus: [],\n collectionType: [],\n posMacID: [],\n collectedBy: [],\n merchantID: [],\n fspid: [],\n dateRange: [],\n startDate: \"\",\n endDate: \"\",\n paymentType: [],\n });\n const [isFirst, setIsFirst] = useState(true);\n const [pdfLoading, setPdfLoading] = React.useState(false);\n const [xlLoading, setXlLoading] = React.useState(false);\n\n const { addToast } = useToasts();\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const fetchAllMerchant = () => {\n setLoading(true);\n getMethod(\"/api/MerchantProfile/all\", \"get\")\n .then((res) => {\n if (res.data.responseCode === \"200\") {\n setMerchants(\n res.data.result.map((i) => ({\n label: i.name,\n value: i.id,\n }))\n );\n }\n })\n .catch(() => {\n notifyFailed(\"Something went wrong!\");\n })\n .finally(() => setLoading(false));\n };\n\n const fetchAllFsps = () => {\n setLoading(true);\n getMethod(\"/api/FSP/GetAll\", \"get\")\n .then((res) => {\n if (res.data.responseCode === \"200\") {\n setFsps(\n res.data.result.map((i) => ({\n value: i.id,\n label: i.fspName,\n }))\n );\n }\n })\n .catch(() => {\n notifyFailed(\"Something went wrong!\");\n })\n .finally(() => setLoading(false));\n };\n\n const fetchAllMerchantUsers = () => {\n setLoading(true);\n getMethod(\"/api/User/all\", \"get\")\n .then((res) => {\n if (res.data.responseCode === \"200\") {\n setMerchantUsers(\n res.data.result\n .filter((i) => i.roleName === \"POSAgent\")\n .map((i) => ({\n value: i.fullName,\n label: i.fullName,\n }))\n );\n }\n })\n .catch(() => {\n notifyFailed(\"Something went wrong!\");\n })\n .finally(() => setLoading(false));\n };\n\n function fetchPosDeviceData() {\n getMethod(\"/api/POS/GetAllDevice\")\n .then((res) => {\n if (res.data?.length) {\n setPosData(\n res.data?.map((i) => ({\n label: i.posSerialNumber,\n value: i.posSerialNumber,\n }))\n );\n }\n })\n .catch(console.log);\n }\n\n useEffect(() => {\n fetchPosDeviceData();\n fetchAllMerchant();\n fetchAllFsps();\n fetchAllMerchant();\n fetchAllMerchantUsers();\n }, []);\n\n useEffect(() => {\n if (!isFirst) {\n onSubmitReport();\n }\n }, [currentPage]);\n\n const validate = (payload) => {\n var error = {};\n // if (!payload.transactionStatus?.length) {\n // error.transactionStatus = \"Please select transaction status\";\n // }\n // if (!payload.collectedBy?.length) {\n // error.collectedBy = \"Please select collected by\";\n // }\n return error;\n };\n\n const onSubmitReport = () => {\n setIsFirst(false);\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n const payload = {\n ...values,\n transactionStatus: values?.transactionStatus?.map((i) => i.value),\n paymentType: values?.paymentType?.map((i) => i.value),\n collectionType: values?.collectionType?.map((i) => i.value),\n posMacID: values?.posMacID?.map((i) => i.value),\n merchantID: values?.merchantID?.map((i) => String(i.value)),\n fspid: values?.fspid?.map((i) => String(i.value)),\n collectedBy: values?.collectedBy?.map((i) => i.value),\n };\n if (values.startDate) {\n payload.dateRange = [new Date(values.startDate).toISOString()];\n }\n if (payload.endDate) {\n payload.dateRange = [\n new Date(values.startDate).toISOString(),\n new Date(values.endDate).toISOString(),\n ];\n }\n\n payload.pageNumber = currentPage + 1;\n setLoading(true);\n postMethod(\n \"/api/Reports/v2/Transaction/GetAll\",\n JSON.stringify(payload),\n \"post\"\n )\n .then((res) => {\n setFilteredList(res.data.result.list);\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\n setTotalRec(res.data.result.totalRecords);\n setPageCount(pc);\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n };\n\n const onSubmitAllReport = async () => {\n try {\n setIsFirst(false);\n const validationErrors = validate(values);\n setErrors(validationErrors);\n\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n\n const payload = {\n ...values,\n transactionStatus: values?.transactionStatus?.map((i) => i.value),\n paymentType: values?.paymentType?.map((i) => i.value),\n collectionType: values?.collectionType?.map((i) => i.value),\n posMacID: values?.posMacID?.map((i) => i.value),\n merchantID: values?.merchantID?.map((i) => String(i.value)),\n fspid: values?.fspid?.map((i) => String(i.value)),\n collectedBy: values?.collectedBy?.map((i) => i.value),\n perPage: totalRec,\n };\n\n if (values.startDate) {\n payload.dateRange = [new Date(values.startDate).toISOString()];\n }\n if (values.endDate) {\n payload.dateRange = [\n new Date(values.startDate).toISOString(),\n new Date(values.endDate).toISOString(),\n ];\n }\n\n payload.pageNumber = currentPage + 1;\n setLoading(true);\n\n const response = await postMethod(\n \"/api/Reports/v2/Transaction/GetAll\",\n JSON.stringify(payload),\n \"post\"\n );\n\n return response?.data?.result?.list;\n } catch (error) {\n console.error(error);\n } finally {\n setLoading(false);\n }\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setValues({ ...values, [name]: value });\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n\n const exportPDF = async () => {\n const allData = await onSubmitAllReport();\n setPdfLoading(true);\n const unit = \"pt\";\n const size = \"A4\"; // Use A1, A2, A3 or A4\n const orientation = \"landscape\"; // portrait or landscape\n\n const marginLeft = 10;\n const doc = new jsPDF(orientation, unit, size);\n\n doc.setFontSize(10);\n\n const paymentTypes = values.paymentType?.map((i) => i?.value);\n\n const title = \"Transactions\";\n let headers = [\n [\n \"Date\",\n \"Collection Type\",\n \"Collected By\",\n \"Amount\",\n \"Commission\",\n \"Transaction Status\",\n \"Description\",\n \"Transaction ID\",\n ],\n ];\n\n let data = allData.map((mmo, i) => [\n new Date(mmo.createdDate).toLocaleString(),\n mmo.collectionType ?? \"-\",\n mmo.collectedBy ?? \"-\",\n getAmt(mmo.amount) ?? \"-\",\n getAmt(mmo.commission) ?? \"-\",\n mmo.transactionStatus ?? \"-\",\n mmo.description,\n mmo.transactionId,\n ]);\n\n if (!paymentTypes.includes(\"Cash\")) {\n headers = [\n [\n \"Date\",\n \"Collection Type\",\n \"Collected By\",\n \"From Payment Name\",\n \"To Payment Name\",\n \"NFC Card ID\",\n \"Third Party Ref ID\",\n \"Amount\",\n \"Commission\",\n \"Transaction Status\",\n \"Description\",\n \"Transaction ID\",\n \"Transaction Fees\",\n \"FSP Fees\",\n \"SmartPay Fees\",\n ],\n ];\n data = allData.map((mmo, i) => [\n new Date(mmo.createdDate).toLocaleString(),\n mmo.collectionType,\n mmo.collectedBy,\n mmo.fromPaymentName,\n mmo.toPaymentName ?? \"-\",\n mmo.nfcCardId,\n mmo.thirdPartyRefId,\n getAmt(mmo.amount) ?? \"-\",\n getAmt(mmo.commission) ?? \"-\",\n mmo.transactionStatus ?? \"-\",\n mmo.description,\n mmo.transactionId,\n mmo.transactionFees,\n mmo.fspPortion,\n mmo.smartPayPortion,\n ]);\n }\n\n var summaryReport = false;\n\n const COLSPAN = 0;\n const total = allData.reduce((sum, el) => sum + el.amount, 0);\n\n let content = {\n startY: 50,\n head: headers,\n margin: { left: 10, right: 10 },\n styles: {\n fontSize: 6, // Set font size for the table\n font: \"helvetica\", // Set the font family\n },\n body: summaryReport\n ? [\n ...data,\n [\n {\n content: \"Total\",\n colSpan: COLSPAN,\n styles: { fillColor: [163, 174, 169] },\n },\n {\n content: total,\n colSpan: 1,\n styles: { fillColor: [163, 174, 169] },\n },\n ],\n ]\n : data,\n };\n\n doc.text(title, marginLeft, 40);\n doc.autoTable(content);\n doc.save(\"report.pdf\");\n setTimeout(() => {\n setPdfLoading(false);\n }, 1000);\n };\n\n const exportToXlsx = async (reportData) => {\n const allData = await onSubmitAllReport();\n\n const wb = XLSX.utils.book_new();\n let data = filteredList.map((mmo, i) => {\n return {\n Date: new Date(mmo.createdDate).toLocaleString(),\n \"Collection Type\": mmo.collectionType ?? \"-\",\n \"Collected By\": mmo.collectedBy ?? \"-\",\n Amount: getAmt(mmo.amount) ?? \"-\",\n Commission: getAmt(mmo.commission) ?? \"-\",\n \"Transaction Status\": mmo.transactionStatus ?? \"-\",\n Description: mmo?.description,\n \"Transaction ID\": mmo.transactionId,\n };\n });\n\n let headings = [\n \"Date\",\n \"Collection Type\",\n \"Collected By\",\n \"Amount\",\n \"Commission\",\n \"Transaction Status\",\n \"Description\",\n \"Transaction ID\",\n ];\n const paymentTypes = values.paymentType?.map((i) => i?.value);\n if (!paymentTypes.includes(\"Cash\")) {\n headings = [\n \"Date\",\n \"Collection Type\",\n \"Collected By\",\n \"From Payment Name\",\n \"To Payment Name\",\n \"Amount\",\n \"Commission\",\n \"Transaction Status\",\n \"NFC Card ID\",\n \"Description\",\n \"Third Party Ref ID\",\n \"Transaction ID\",\n \"Transaction Fees\",\n \"FSP Fees\",\n \"SmartPay Fees\",\n ];\n data = allData.map((mmo, i) => {\n return {\n Date: new Date(mmo.createdDate).toLocaleString(),\n \"Collection Type\": mmo.collectionType ?? \"-\",\n \"Collected By\": mmo.collectedBy ?? \"-\",\n \"From Payment Name\": mmo.fromPaymentName,\n \"To Payment Name\": mmo.toPaymentName ?? \"-\",\n\n Amount: getAmt(mmo.amount) ?? \"-\",\n Commission: getAmt(mmo.commission) ?? \"-\",\n \"Transaction Status\": mmo.transactionStatus ?? \"-\",\n \"NFC Card ID\": mmo.nfcCardId,\n Description: mmo?.description,\n \"Third Party Ref ID\": mmo.thirdPartyRefId,\n \"Transaction ID\": mmo.transactionId,\n \"Transaction Fees\": mmo.transactionFees,\n \"FSP Fees\": mmo.fspPortion,\n \"SmartPay Fees\": mmo.smartPayPortion,\n };\n });\n }\n\n const ws = XLSX.utils.json_to_sheet(data);\n\n // Add the worksheet to the workbook\n XLSX.utils.book_append_sheet(wb, ws, \"Sheet1\");\n\n // Set up column headers\n ws[\"!cols\"] = headings.map((heading) => ({ wch: heading.length + 5 }));\n\n // Export the workbook to a file\n setTimeout(() => {\n setXlLoading(false);\n }, 1000);\n XLSX.writeFile(wb, \"report.xlsx\");\n };\n\n const paymentTypes = values.paymentType?.map((i) => i?.value);\n\n return (\n <>\n        \n
\n \n \n \n \n \n Start Date\n \n \n \n \n \n \n \n \n \n \n\n \n \n {errors.startDate && (\n
\n * {errors.startDate}\n
\n )}\n \n
\n \n\n \n \n \n \n End Date\n \n \n \n\n \n \n \n \n \n \n \n\n \n \n {errors.endDate && (\n
\n * {errors.endDate}\n
\n )}\n \n
\n \n\n \n \n \n \n Merchant\n \n \n \n \n \n \n setValues({ ...values, merchantID: e })}\n />\n \n \n \n\n \n \n {errors.merchant && (\n
\n * {errors.merchant}\n
\n )}\n \n
\n \n\n \n \n \n \n FSP\n \n \n \n \n \n \n setValues({ ...values, fspid: e })}\n />\n \n \n \n\n \n \n {errors.fsp && (\n
\n * {errors.fsp}\n
\n )}\n \n
\n \n
\n \n \n \n \n \n Collected By\n \n \n \n \n \n \n setValues({ ...values, collectedBy: e })}\n />\n \n \n \n\n \n \n {errors.collectedBy && (\n
\n * {errors.collectedBy}\n
\n )}\n \n
\n \n\n \n \n \n \n POS MAC ID\n \n \n \n \n \n \n setValues({ ...values, posMacID: e })}\n />\n \n \n \n \n\n \n \n \n \n Collection Type\n \n \n \n \n \n \n \n setValues({ ...values, collectionType: e })\n }\n />\n \n \n \n\n \n \n {errors.bankCode && (\n
\n * {errors.bankCode}\n
\n )}\n \n
\n \n\n \n \n \n \n Transaction Status\n \n \n \n \n \n \n \n setValues({ ...values, transactionStatus: e })\n }\n />\n \n \n \n\n \n \n {errors.transactionStatus && (\n
\n * {errors.transactionStatus}\n
\n )}\n \n
\n \n\n \n \n \n \n Payment Type\n \n \n \n \n \n \n setValues({ ...values, paymentType: e })}\n />\n \n \n \n\n \n \n {errors.transactionStatus && (\n
\n * {errors.transactionStatus}\n
\n )}\n \n
\n \n
\n \n \n \n {filteredList.length > 0 && (\n <>\n \n Download PDF\n {pdfLoading && }\n \n \n Download XLSX\n {xlLoading && }\n \n \n )}\n \n \n
\n \n \n \n \n {!paymentTypes.includes(\"Cash\") && (\n <>\n \n \n \n \n \n )}\n \n \n \n \n \n \n \n\n {!paymentTypes.includes(\"Cash\") && (\n <>\n \n \n \n \n )}\n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n {!paymentTypes.includes(\"Cash\") && (\n <>\n \n \n \n \n \n )}\n\n \n \n \n \n \n \n \n\n {!paymentTypes.includes(\"Cash\") && (\n <>\n \n \n \n \n )}\n \n );\n })}\n \n
Date From Payment NameTo Payment NameNFC Card IDThird Party Ref IDCollection TypeCollected ByAmountCommissionTransaction StatusDescriptionTransaction IDTransaction FeesFSP FeesSmartPay Fees
\n {new Date(mmo.createdDate).toLocaleString()}\n {mmo.fromPaymentName}{mmo.toPaymentName}{mmo.nfcCardId}{mmo.thirdPartyRefId}{mmo.collectionType}{mmo.collectedBy}{getAmt(mmo.amount)}{getAmt(mmo.commission)}{mmo.transactionStatus}{mmo?.description}{mmo.transactionId}{mmo?.transactionFees}{mmo?.fspPortion}{mmo?.smartPayPortion}
\n {loading && (\n
\n {\" \"}\n \n
\n )}\n {!loading && !filteredList.length && (\n
No Records Found
\n )}\n \n {filteredList.length > 0 && (\n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n )}\n
\n \n );\n};\n\nexport default AllTransactionReport;\n","import React, { useEffect } from \"react\";\nimport {\n Card,\n CardHeader,\n CardFooter,\n Container,\n Row,\n Col,\n Button,\n Form,\n FormGroup,\n Input,\n} from \"reactstrap\";\nimport Header from \"components/Headers/Header.js\";\nimport { useToasts } from \"react-toast-notifications\";\nimport moment from \"moment\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { getMethod } from \"services/httpServices\";\nimport CollectionReport from \"./collection-report\";\nimport CollectionReportTable from \"./collection-report-table\";\nimport jsPDF from \"jspdf\";\nimport \"jspdf-autotable\";\nimport * as FileSaver from \"file-saver\";\nimport * as XLSX from \"xlsx\";\nimport CollectionSummaryReport from \"./collection-summary-report\";\nimport CollectionSummaryReportTable from \"./collection-summary-table\";\nimport SettlementSummaryReport from \"./settlement-summary-report\";\nimport SettlementSummaryReportTable from \"./settlement-summary-table\";\nimport SettlementReport from \"./settlement-report\";\nimport SettlementReportTable from \"./settlement-report-table\";\nimport ReactPaginate from \"react-paginate\";\nimport { ReportStatus, subsStatus } from \"appConfig\";\nimport { getAmt } from \"services/util\";\nimport TransactionReport from \"./transaction-report\";\nimport TransactionReportTable from \"./transaction-report-table\";\nimport BankReport from \"./bank-report\";\nimport BankReportTable from \"./bank-report-table\";\nimport MerchantCommission from \"./merchant-commission\";\nimport MerchantCommissionTable from \"./merchant-commission-table\";\nimport WalletCommissionTable from \"./wallet-commission-table\";\nimport WalletCommission from \"./wallet-commission\";\nimport EDSATransaction from \"./EDSATransaction.js\";\nimport PendingSettlementsReport from \"./pending-settlements\";\nimport SubscriberBalanceAnalysisReport from \"./subscriber-balance-analysis\";\nimport SettlementLiquidityAnalysisReport from \"./settlement-liquidity-analysis\";\nimport CommissionsGrowthAnalysisReport from \"./commissions-growth-analysis\";\nimport AgentCommissionsReport from \"./agent-commissions\";\nimport PendingSettlementsReportTable from \"./pending-settlements-table\";\nimport SubscriberBalanceAnalysisReportTable from \"./subscriber-balance-analysis-table\";\nimport SettlementLiquidityAnalysisReportTable from \"./settlement-liquidity-analysis-table\";\nimport AgentCommissionsReportTable from \"./agent-commissions-table\";\nimport CommissionsGrowthAnalysisReportTable from \"./commissions-growth-analysis-table\";\nimport AllTransactionReport from \"./all-transaction-report\";\n\nconst VERSIONS = [\n { key: 1, value: \"Transactions V1\" },\n { key: 2, value: \"Transactions V2\" },\n];\n\nconst REPORTS = [\n { key: 1, value: \"Detailed Collection Reports\" },\n { key: 2, value: \"Daily Collection Summary Reports\" },\n { key: 3, value: \"Detailed Settlement Reports\" },\n { key: 4, value: \"Daily Summary Settlement Reports\" },\n { key: 5, value: \"Transaction Report\" },\n { key: 6, value: \"Daily Bank Report\" },\n { key: 7, value: \"Merchant Commissions Report\" },\n { key: 8, value: \"Wallet Commissions Report\" },\n { key: 9, value: \"EDSA Transaction Report\" },\n { key: 10, value: \"Pending Settlements Report\" },\n { key: 11, value: \"Subscriber Balance Analysis Report\" },\n { key: 12, value: \"Settlement Liquidity Analysis Report\" },\n // { key: 13, value: \"Commissions Growth Analysis Report\" },\n // { key: 14, value: \"Agent Commissions Report\" },\n];\n\nconst STATUS = ReportStatus;\nconst SUBS_STATUS = subsStatus;\n\nconst Reports = () => {\n const [reportFilter, setReportFilter] = React.useState(\"\");\n const [version, setVersion] = React.useState(\"\");\n const [merchant, setMerchant] = React.useState([]);\n const [result, setResult] = React.useState([]);\n const [collectionR, setCollectionR] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(10);\n const [pagesCount, setPageCount] = React.useState(0);\n const [response, setResponse] = React.useState(false);\n const [pdfLoading, setPdfLoading] = React.useState(false);\n const [xlLoading, setXlLoading] = React.useState(false);\n const [bank, setBank] = React.useState([]);\n const [mmo, setMMO] = React.useState([]);\n const [sort, setSort] = React.useState({});\n const [totalRec, setTotalRec] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [reportData, setReportData] = React.useState([]);\n const [reportHeadings, setReportHeadings] = React.useState();\n const [allTransactionsInfo, setAllTransactionsData] = React.useState({\n isDescending: true,\n pageNumber: 0,\n perPage: 0,\n searchText: \"\",\n sortingOn: \"\",\n transactionStatus: [],\n collectionType: [],\n posMacID: [],\n collectedBy: [],\n merchantID: [],\n fspid: [],\n dateRange: [],\n });\n\n const { addToast } = useToasts();\n\n useEffect(() => {\n fetchMerchants();\n fetchBank();\n }, []);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const getPdfHeader = () => {\n if (reportFilter === \"1\") {\n return [\n \"Instruction Date/Time\",\n \"Merchant Name\",\n \"Bank Code\",\n \"Customer UID\",\n \"Transaction Amount\",\n \"Reference Code\",\n \"Transaction Ref\",\n \"Status\",\n \"Clearing Date/Time\",\n ];\n } else if (reportFilter === \"2\") {\n return [\"Date\", \"Merchant Name\", \"Bank Code\", \"Total Amount\"];\n } else if (reportFilter === \"3\") {\n return [\n \"Instruction Date/Time\",\n \"Merchant Name\",\n \"Paying Bank Code\",\n \"Receving Bank Code\",\n \"Transaction Amount\",\n \"Transaction Fees\",\n \"Transaction Ref\",\n \"Status\",\n \"Clearing Date/Time\",\n ];\n } else if (reportFilter === \"4\") {\n return [\n \"Date\",\n \"Merchant Name\",\n \"Bank Code\",\n \"Total Amount\",\n \"Fees Amount\",\n ];\n } else if (reportFilter === \"5\") {\n return [\n \"Payment Type\",\n \"Payment To\",\n \"Payment From\",\n \"Payment Using\",\n \"Smart Pay Id\",\n \"Product Id\",\n \"Date\",\n \"Amount\",\n \"Fees Amount\",\n \"Description\",\n \"Status\",\n ];\n } else if (reportFilter == \"6\") {\n return [\n \"Bank Name\",\n \"Subscriber Name\",\n \"Date\",\n \"Payment Type\",\n \"Merchant Name\",\n \"Amount\",\n \"Transaction Fees\",\n \"Transaction Ref\",\n \"Status\",\n ];\n } else if (reportFilter == \"7\") {\n return [\n \"Instruction Date/Time\",\n \"Merchant Name\",\n \"Transaction Amount\",\n \"Commission Amount\",\n ];\n } else if (reportFilter == \"10\") {\n return [\"Merchant Name\", \"Bank Name\", \"Account Number\", \"Amount Due\"];\n } else if (reportFilter == \"11\") {\n return [\n \"Balance Range (Le)\",\n \"I.S Count\",\n \"C.S Count\",\n \"Total Count\",\n \"Percent Share\",\n ];\n } else if (reportFilter == \"12\") {\n return [\"Bank Type\", \"Amount\", \"Percent Share\", \"Required Action\"];\n } else {\n return [[]];\n }\n };\n\n const getPdfTitle = () => {\n if (reportFilter == \"1\") {\n return \"Detailed Collection Report\";\n } else if (reportFilter == \"2\") {\n return \"Daily Collection Summary Report\";\n } else if (reportFilter == \"3\") {\n return \"Detailed Settlement Reports\";\n } else if (reportFilter == \"4\") {\n return \"Daily Settlement Summary Report\";\n } else if (reportFilter == \"5\") {\n return \"Transaction Report\";\n } else if (reportFilter == \"6\") {\n return \"Daily Bank Report\";\n } else if (reportFilter == \"7\") {\n return \"Merchant Commission Report\";\n } else if (reportFilter == \"8\") {\n return \"Wallet Commission Report\";\n } else if (reportFilter == \"10\") {\n return \"Pending Settlements Report\";\n } else if (reportFilter == \"11\") {\n return \"Subscriber Balance Analysis Report\";\n } else if (reportFilter == \"12\") {\n return \"Settlement Liquidity Analysis Report\";\n } else {\n return \"\";\n }\n };\n\n const statusFormat = (val) => {\n let ob = STATUS.find((s) => s.key === val);\n return ob && ob.value ? ob.value : val;\n };\n\n const transStatusFormat = (val) => {\n let ob = SUBS_STATUS.find((s) => s.key === val);\n return ob && ob.value ? ob.value : val;\n };\n\n const getPaymentType = (type) => {\n let str = type;\n if (type == \"topup\") {\n str = \"Top Up\";\n } else if (type == \"BalanceTransfer\") {\n str = \"Balance Transfer\";\n } else if (type == \"Merchant\") {\n str = \"Merchant Payment\";\n } else if (type == \"WalletPayment\") {\n str = \"Wallet Payment\";\n } else if (type == \"CashTopUp\") {\n str = \"Cash Top Up\";\n }\n return str;\n };\n\n const getPdfData = (reportData) => {\n if (reportFilter == \"1\") {\n return reportData.map((elt) => [\n moment(elt.createdat).format(\"lll\"),\n elt.merchantName,\n elt.bank_MMOCode,\n elt.subscriberMobileNumber,\n getAmt(elt.amount),\n elt.productId,\n elt.referenceId,\n statusFormat(elt.status),\n elt.updatedat ? moment(elt.updatedat).format(\"lll\") : \"--\",\n ]);\n } else if (reportFilter == \"2\") {\n return reportData.map((elt) => [\n moment(elt.createdat).format(\"MMM Do, YYYY\"),\n elt.merchantName,\n elt.bank_MMOCode,\n getAmt(elt.amount),\n ]);\n } else if (reportFilter == \"3\") {\n return reportData.map((elt) => [\n moment(elt.createdat).format(\"lll\"),\n elt.merchantName,\n elt.payingBankCode,\n elt.receivingBank,\n getAmt(elt.amount),\n getAmt(elt.feesAmount),\n elt.referenceId,\n statusFormat(elt.status),\n elt.updatedAt ? moment(elt.updatedAt).format(\"lll\") : \"--\",\n ]);\n } else if (reportFilter == \"4\") {\n return reportData.map((elt) => [\n moment(elt.createdAt).format(\"MMM Do, YYYY\"),\n elt.merchantName,\n elt.payingBankCode,\n getAmt(elt.amount),\n getAmt(elt.feesAmount),\n ]);\n } else if (reportFilter == \"5\") {\n return reportData.map((elt) => [\n getPaymentType(elt.paymentType),\n elt.paymentTo,\n elt.paymentFrom,\n elt.paymentMethod,\n elt.referenceId,\n elt.productId ? elt.productId : \"--\",\n moment(elt.createdAt).format(\"lll\"),\n getAmt(elt.amount),\n getAmt(elt.feesAmount),\n elt.description,\n transStatusFormat(elt.status),\n ]);\n } else if (reportFilter == \"6\") {\n return reportData.map((elt) => [\n elt.paymentFrom,\n elt.subscriberName,\n moment(mmo.updatedAt).format(\"lll\"),\n getPaymentType(elt.paymentType),\n elt.merchantName ? elt.merchantName : \"--\",\n getAmt(elt.amount),\n getAmt(elt.feesAmount),\n elt.referenceId,\n elt.status,\n ]);\n } else if (reportFilter == \"7\") {\n return reportData.map((elt) => [\n moment(elt.createdAt).format(\"lll\"),\n elt.userName,\n getAmt(elt.paymentAmount),\n getAmt(elt.commissionAmount),\n ]);\n } else if (reportFilter == \"8\") {\n return reportData.map((elt) => [\n moment(elt.createdAt).format(\"lll\"),\n elt.bankName,\n elt.subscriberName,\n getAmt(elt.paymentAmount),\n getTransactionType(elt.paymentType),\n getAmt(elt.commissionAmount),\n ]);\n } else if (reportFilter == \"10\") {\n return reportData.map((elt) => [\n elt.merchantName,\n elt.merchantBankName,\n elt.merchantAccountNo,\n getAmt(elt?.amount + elt?.commissionAmount),\n ]);\n } else if (reportFilter == \"11\") {\n return reportData.map((elt) => [\n elt.name,\n elt.individualSubscriber,\n elt.corporateSubscriber,\n elt.totalSubscriberCount,\n `${elt?.percentShare?.toFixed(2)}%`,\n ]);\n } else if (reportFilter == \"12\") {\n return [\n [\n \"Settlement Bank\",\n getAmt(reportData?.settlemenetBankBalance || 0),\n `${reportData?.percentagesettlementshare}%`,\n reportData?.netPosition < 0\n ? \"Please transfer funds from Collection to Settlement Account to meet the settlement cash requirements\"\n : \"Liquidity position OK\",\n ],\n [\n \"Collection Bank\",\n getAmt(reportData?.collectionBankBalance || 0),\n `${reportData?.percentagecollectionshare}%`,\n \"\",\n ],\n ];\n } else {\n return [];\n }\n };\n\n const getTransactionType = (type) => {\n if (type === \"topup\") {\n return \"Top Up\";\n }\n return type;\n };\n\n const getPdfTotal = (reportData) => {\n let total = reportData.reduce((sum, el) => sum + el.amount, 0);\n return total > 0 ? getAmt(total) : total;\n };\n\n const exportPDF = (reportData) => {\n const unit = \"pt\";\n const size = \"A4\"; // Use A1, A2, A3 or A4\n const orientation = \"portrait\"; // portrait or landscape\n\n const marginLeft = 10;\n const doc = new jsPDF(orientation, unit, size);\n\n doc.setFontSize(15);\n\n const title = getPdfTitle();\n const headers = [getPdfHeader()];\n const data = getPdfData(reportData);\n\n var summaryReport = false;\n if ((reportFilter == \"2\" || reportFilter == \"4\") && reportData.length) {\n summaryReport = true;\n }\n const COLSPAN = summaryReport ? (reportFilter == \"2\" ? 3 : 4) : 0;\n const total = summaryReport ? getPdfTotal(reportData) : 0;\n\n let content = {\n startY: 50,\n head: headers,\n margin: { left: 10, right: 10 },\n body: summaryReport\n ? [\n ...data,\n [\n {\n content: \"Total\",\n colSpan: COLSPAN,\n styles: { fillColor: [163, 174, 169] },\n },\n {\n content: total,\n colSpan: 1,\n styles: { fillColor: [163, 174, 169] },\n },\n ],\n ]\n : data,\n };\n\n doc.text(title, marginLeft, 40);\n doc.autoTable(content);\n doc.save(\"report.pdf\");\n setTimeout(() => {\n setPdfLoading(false);\n }, 1000);\n };\n\n const getCsvHeading = () => {\n return [[getPdfTitle()], getPdfHeader()];\n };\n\n const getCsvHeader = () => {\n if (reportFilter == \"1\") {\n return [\n \"createdat\",\n \"merchantName\",\n \"bank_MMOCode\",\n \"subscriberMobileNumber\",\n \"amount\",\n \"productId\",\n \"referenceId\",\n \"status\",\n \"updatedat\",\n ];\n } else if (reportFilter == \"2\") {\n return [\"createdat\", \"merchantName\", \"bank_MMOCode\", \"amount\"];\n } else if (reportFilter == \"3\") {\n return [\n \"createdat\",\n \"merchantName\",\n \"payingBankCode\",\n \"receivingBank\",\n \"amount\",\n \"feesAmount\",\n \"referenceId\",\n \"status\",\n \"updatedAt\",\n ];\n } else if (reportFilter == \"4\") {\n return [\n \"createdAt\",\n \"merchantName\",\n \"payingBankCode\",\n \"amount\",\n \"feesAmount\",\n ];\n } else if (reportFilter == \"5\") {\n return [\n \"paymentType\",\n \"paymentTo\",\n \"paymentFrom\",\n \"paymentMethod\",\n \"referenceId\",\n \"productId\",\n \"createdAt\",\n \"amount\",\n \"feesAmount\",\n \"description\",\n \"status\",\n ];\n } else if (reportFilter == \"6\") {\n return [\n \"paymentFrom\",\n \"subscriberName\",\n \"updatedAt\",\n \"paymentType\",\n \"merchantName\",\n \"amount\",\n \"feesAmount\",\n \"referenceId\",\n \"status\",\n ];\n } else if (reportFilter == \"7\") {\n return [\"createdAt\", \"userName\", \"paymentAmount\", \"commissionAmount\"];\n } else if (reportFilter == \"8\") {\n return [\n \"createdAt\",\n \"bankName\",\n \"subscriberName\",\n \"paymentAmount\",\n \"paymentType\",\n \"commissionAmount\",\n ];\n } else if (reportFilter == \"10\") {\n return [\"Merchant Name\", \"Bank Name\", \"Account Number\", \"Amount Due\"];\n } else if (reportFilter == \"11\") {\n return [\n \"Balance Range (Le)\",\n \"I.S Count\",\n \"C.S Count\",\n \"Total Count\",\n \"Percent Share\",\n ];\n } else if (reportFilter == \"12\") {\n return [\"Bank Type\", \"Amount\", \"Percent Share\", \"Required Action\"];\n } else {\n return [];\n }\n };\n\n const getColumnName = (i) => {\n return (\n (i >= 26 ? getColumnName(Math.floor(i / 26) - 1) : \"\") +\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"[i % 26]\n );\n };\n\n const getFeesAmt = (obj) => {\n obj.feesAmount = getAmt(obj.feesAmount);\n return obj;\n };\n\n const csvFormat = (obj) => {\n if (reportFilter == \"1\") {\n obj.createdat = moment(obj.createdat).format(\"lll\");\n obj.updatedat = obj.updatedat\n ? moment(obj.updatedat).format(\"lll\")\n : \"--\";\n } else if (reportFilter == \"2\") {\n obj.createdat = moment(obj.createdat).format(\"MMM Do, YYYY\");\n } else if (reportFilter == \"3\") {\n obj.createdat = moment(obj.createdat).format(\"lll\");\n obj.updatedAt = obj.updatedAt\n ? moment(obj.updatedAt).format(\"lll\")\n : \"--\";\n } else if (reportFilter == \"4\") {\n obj.createdAt = moment(obj.createdAt).format(\"MMM Do, YYYY\");\n } else if (reportFilter == \"5\") {\n obj.status = transStatusFormat(obj.status);\n obj.description = transStatusFormat(obj.description);\n obj.paymentType = getPaymentType(obj.paymentType);\n obj.createdAt = moment(obj.createdAt).format(\"lll\");\n obj.productId = obj.productId ? obj.productId : \"--\";\n } else if (reportFilter == \"6\") {\n obj.paymentType = getPaymentType(obj.paymentType);\n obj.updatedAt = moment(obj.updatedAt).format(\"lll\");\n } else if (reportFilter == \"7\") {\n obj.createdAt = moment(obj.createdAt).format(\"lll\");\n obj.paymentAmount = getAmt(obj.paymentAmount);\n obj.commissionAmount = getAmt(obj.commissionAmount);\n } else if (reportFilter == \"8\") {\n obj.createdAt = moment(obj.createdAt).format(\"lll\");\n obj.paymentAmount = getAmt(obj.paymentAmount);\n obj.commissionAmount = getAmt(obj.commissionAmount);\n obj.paymentType = getTransactionType(obj.paymentType);\n }\n if (obj.feesAmount) {\n obj.feesAmount = getAmt(obj.feesAmount);\n }\n return obj;\n };\n\n const exportToXlsx = (reportData) => {\n const wb = XLSX.utils.book_new();\n let data = [];\n if (reportFilter == \"10\") {\n data = reportData.map((elt) => {\n const obj = {};\n obj[\"Merchant Name\"] = elt.merchantName;\n obj[\"Bank Name\"] = elt.merchantBankName;\n obj[\"Account Number\"] = elt.merchantAccountNo;\n obj[\"Amount Due\"] = getAmt(elt?.amount + elt?.commissionAmount);\n return obj;\n });\n } else if (reportFilter == \"11\") {\n data = reportData.map((elt) => {\n const obj = {};\n obj[\"Balance Range (Le)\"] = elt.name;\n obj[\"I.S Count\"] = elt.individualSubscriber;\n obj[\"C.S Count\"] = elt.corporateSubscriber;\n obj[\"Total Count\"] = elt.totalSubscriberCount;\n obj[\"Percent Share\"] = `${elt.percentShare?.toFixed(2)}%`;\n return obj;\n });\n } else if (reportFilter == \"12\") {\n data = [\n {\n \"Bank Type\": \"Settlement Bank\",\n Amount: getAmt(reportData?.settlemenetBankBalance || 0),\n \"Percent Share\": `${reportData?.percentagesettlementshare}%`,\n \"Required Action\":\n reportData?.netPosition < 0\n ? \"Please transfer funds from Collection to Settlement Account to meet the settlement cash requirements\"\n : \"Liquidity position OK\",\n },\n {\n \"Bank Type\": \"Collection Bank\",\n Amount: getAmt(reportData?.collectionBankBalance || 0),\n \"Percent Share\": `${reportData?.percentagecollectionshare}%`,\n \"Required Action\": \"\",\n },\n ];\n }\n\n const headings = getCsvHeader();\n const ws = XLSX.utils.json_to_sheet(data);\n\n // Add the worksheet to the workbook\n XLSX.utils.book_append_sheet(wb, ws, \"Sheet1\");\n\n // Set up column headers\n ws[\"!cols\"] = headings.map((heading) => ({ wch: heading.length + 5 }));\n\n // Export the workbook to a file\n setTimeout(() => {\n setXlLoading(false);\n }, 1000);\n XLSX.writeFile(wb, \"report.xlsx\");\n };\n\n const exportToCSV = (reportData) => {\n if (reportFilter == \"10\" || reportFilter === \"11\" || reportFilter == \"12\") {\n exportToXlsx(reportData);\n return;\n }\n const header = getCsvHeader();\n const originalHeader = [...header];\n\n const fileType =\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\n const fileExtension = \".xlsx\";\n\n var Heading = getCsvHeading();\n\n let newReportData = reportData.map((elt) => {\n const obj = Object.assign({}, elt);\n obj.status = statusFormat(obj.status);\n obj.amount = getAmt(obj.amount);\n // return obj.feesAmount ? getFeesAmt(obj) : obj\n return csvFormat(obj);\n });\n\n var ws = XLSX.utils.aoa_to_sheet(Heading);\n XLSX.utils.sheet_add_json(ws, newReportData, {\n header: header,\n skipHeader: true,\n origin: -1,\n });\n\n if (reportFilter == \"4\" && reportData.length) {\n XLSX.utils.sheet_add_aoa(\n ws,\n [[\"Total\", \"\", \"\", \"\", getPdfTotal(reportData)]],\n { origin: -1 }\n );\n }\n\n if (reportFilter == \"2\" && reportData.length) {\n XLSX.utils.sheet_add_aoa(\n ws,\n [[\"Total\", \"\", \"\", getPdfTotal(reportData)]],\n { origin: -1 }\n );\n }\n if (reportFilter == \"10\" && reportData.length) {\n XLSX.utils.sheet_add_aoa(\n ws,\n [[\"Total\", \"\", \"\", getPdfTotal(reportData)]],\n { origin: -1 }\n );\n }\n\n // For setting width of columns\n var wscols = [];\n for (var i = 0; i < header.length; i++) {\n // columns length added\n wscols.push({ wch: header[i].length + 10 });\n }\n ws[\"!cols\"] = wscols;\n if (ws[\"!cols\"]) {\n const original = getColumnName(\n ws[\"!cols\"].length > 0 ? ws[\"!cols\"].length - 1 : 0\n );\n const replace = getColumnName(\n originalHeader.length > 0 ? originalHeader.length - 1 : 0\n );\n\n // For removing other columns\n ws[\"!ref\"] = ws[\"!ref\"].replace(original, replace);\n }\n\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\n const data = new Blob([excelBuffer], { type: fileType });\n FileSaver.saveAs(data, \"Report\" + fileExtension);\n setTimeout(() => {\n setXlLoading(false);\n }, 1000);\n };\n\n const fetchMerchants = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/MerchantProfile/ddllist\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setMerchant(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching merchant\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchBank = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/bankProfile/ddllist?Accounttype=Collection\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setBank(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching bank\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in bank\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const changeReportType = (val) => {\n setReportFilter(val);\n setResponse(false);\n setResult([]);\n setLoading(false);\n setPdfLoading(false);\n setXlLoading(false);\n };\n\n const detailHandleCB = (resp) => {\n setResponse(true);\n setResult(resp.list);\n let pc = Math.ceil(resp.totalRecords / pageSize);\n setTotalRec(resp.totalRecords);\n // setCurrentPage(0);\n setCollectionR(resp.list);\n setPageCount(pc);\n };\n\n const detailSummaryHandleCB = (resp) => {\n setResponse(true);\n setResult(resp.list);\n let pc = Math.ceil(resp.totalRecords / pageSize);\n setTotalRec(resp.totalRecords);\n // setCurrentPage(0);\n setCollectionR(resp.list);\n setPageCount(pc);\n };\n\n const detailSummarySort = (s) => {\n setSort(s);\n };\n\n const settlementSummaryHandleCB = (resp) => {\n setResponse(true);\n setResult(resp.list);\n let pc = Math.ceil(resp.totalRecords / pageSize);\n setTotalRec(resp.totalRecords);\n // setCurrentPage(0);\n setCollectionR(resp.list);\n setPageCount(pc);\n };\n\n const transactionReportHandleCB = (resp) => {\n setResponse(true);\n setResult(reportFilter == \"12\" ? resp : resp.list);\n setReportHeadings(resp);\n let pc = Math.ceil(resp.totalRecords / pageSize);\n setTotalRec(resp.totalRecords);\n // setCurrentPage(0);\n setCollectionR(reportFilter == \"12\" ? resp : resp.list);\n setPageCount(pc);\n };\n\n const bankReportHandleCB = (resp) => {\n setResponse(true);\n setResult(resp.list);\n let pc = Math.ceil(resp.totalRecords / pageSize);\n setTotalRec(resp.totalRecords);\n // setCurrentPage(0);\n setCollectionR(resp.list);\n setPageCount(pc);\n };\n\n const summaryHandleCB = (resp) => {\n setResponse(true);\n setResult(resp.list);\n let pc = Math.ceil(resp.totalRecords / pageSize);\n setTotalRec(resp.totalRecords);\n // setCurrentPage(0);\n setCollectionR(resp.list);\n setPageCount(pc);\n };\n\n const handleClick = (e, index) => {\n e.preventDefault();\n setCurrentPage(index + 1);\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n\n const reportLoading = (loaderValue) => {\n setLoading(loaderValue);\n };\n\n const getReportData = () => {\n setPdfLoading(true);\n // setReportData([]);\n };\n\n const getXLReportData = () => {\n setXlLoading(true);\n // setReportData([]);\n };\n\n const setReportHandle = (resp) => {\n if (pdfLoading) {\n exportPDF(reportFilter == \"12\" ? resp : resp.list);\n } else if (xlLoading) {\n exportToCSV(reportFilter == \"12\" ? resp : resp.list);\n }\n };\n\n const setErrorReportData = () => {\n setPdfLoading(false);\n setXlLoading(false);\n };\n\n const changePageNo = (num) => {\n setCurrentPage(num);\n };\n\n return (\n <>\n
\n \n \n
\n \n \n {\n e.preventDefault();\n }}\n >\n \n \n \n \n \n Reports\n \n \n \n \n \n \n
\n {\n setVersion(e.target.value);\n setReportFilter(\"\");\n }}\n >\n \n {VERSIONS.map((c) => (\n \n ))}\n \n
\n
\n \n
\n {Number(version) === 1 && (\n \n \n \n
\n \n changeReportType(e.target.value)\n }\n >\n \n {REPORTS.map((c) => (\n \n ))}\n \n
\n
\n \n
\n )}\n \n
\n {/* \n
\n changeReportType(e.target.value)}\n >\n \n {REPORTS.map(c =>\n \n )}\n \n
\n\n
*/}\n\n {reportFilter === \"1\" && (\n \n )}\n\n {reportFilter === \"2\" && (\n \n )}\n\n {reportFilter === \"3\" && (\n \n )}\n\n {reportFilter === \"4\" && (\n \n )}\n\n {reportFilter === \"5\" && (\n \n )}\n\n {reportFilter === \"6\" && (\n \n )}\n\n {reportFilter === \"7\" && (\n \n )}\n\n {reportFilter === \"8\" && (\n \n )}\n {reportFilter === \"9\" && (\n \n {\" \"}\n \n \n )}\n {reportFilter === \"10\" && (\n \n )}\n {reportFilter === \"11\" && (\n \n )}\n {reportFilter === \"12\" && (\n \n )}\n {reportFilter === \"13\" && (\n \n )}\n {reportFilter === \"14\" && (\n \n )}\n\n {response && (\n <>\n
\n {/* */}\n Export      \n \n PDF{\" \"}\n {pdfLoading && }\n \n    \n \n EXCEL{\" \"}\n {xlLoading && }\n \n
\n \n )}\n \n
\n {version === \"2\" && (\n \n )}\n {response && reportFilter === \"1\" && (\n \n )}\n\n {response && reportFilter === \"2\" && (\n \n )}\n\n {response && reportFilter === \"3\" && (\n \n )}\n\n {response && reportFilter === \"4\" && (\n \n )}\n\n {response && reportFilter === \"5\" && (\n \n )}\n\n {response && reportFilter === \"6\" && (\n \n )}\n\n {response && reportFilter === \"7\" && (\n \n )}\n\n {response && reportFilter === \"8\" && (\n \n )}\n\n {response && reportFilter === \"10\" && (\n \n )}\n\n {response && reportFilter === \"11\" && (\n \n )}\n\n {response && reportFilter === \"12\" && (\n \n )}\n\n {response && reportFilter === \"13\" && (\n \n )}\n\n {response && reportFilter === \"14\" && (\n \n )}\n\n {result.length > 0 && (\n \n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default Reports;\n","import React from \"react\";\n\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Container,\n Row,\n Col,\n Label,\n InputGroupText,\n InputGroupAddon,\n InputGroup,\n} from \"reactstrap\";\nimport { checkSpace, postMethodDefaultToken } from '../../services/httpServices';\nimport { checkName, setUserDetails } from '../../services/util';\nimport { PIN_HINT, PASSWORD_HINT, MOBILE_ONLY_COUNTRY } from \"appConfig\";\nimport { useToasts } from 'react-toast-notifications';\nimport swal from 'sweetalert';\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\n\n\n\nconst codes = [23225, 23230, 23231, 23232,\n 23233, 23234, 23244, 23275, 23276, 23277,\n 23278, 23279, 23280, 23288, 23299];\n\n\nconst ProfileDetails = (props) => {\n\n // const initialValue = {\n // 'firstName': props.userDetails && props.userDetails.firstName ? \n // props.userDetails.firstName : '',\n // 'lastName': props.userDetails && props.userDetails.lastName ? \n // props.userDetails.lastName : '',\n // 'mobileCode': props.userDetails && props.userDetails.mobileCode ? \n // props.userDetails.mobileCode : codes[0],\n // 'phone': props.userDetails && props.userDetails.phone ? \n // props.userDetails.phone : '',\n // 'email': props.userDetails && props.userDetails.email ? \n // props.userDetails.email : '',\n // 'password': props.userDetails && props.userDetails.password ? \n // props.userDetails.password : '',\n // 'oneFAAmt': props.userDetails && props.userDetails.oneFAAmt ? \n // props.userDetails.oneFAAmt : '',\n // 'authMode': props.userDetails && props.userDetails.authMode ? \n // props.userDetails.authMode : '',\n // 'confirmpswd': props.userDetails && props.userDetails.confirmpswd ? \n // props.userDetails.confirmpswd : ''\n // };\n\n const initialValue = setUserDetails(props);\n const [values, setValues] = React.useState(initialValue);\n const [errors, setErrors] = React.useState({});\n const [showPswd, setShowPswd] = React.useState(false);\n const [showConfirmPswd, setComfirmPswd] = React.useState(false);\n const [showPin, setShowPin] = React.useState(false);\n const [showConfirmPin, setShowConfirmPin] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n\n const { addToast } = useToasts();\n\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n const handleInputChange = (e) => {\n var { name, value } = e.target;\n\n // value = value.trim();\n if (checkSpace(value)) {\n // if (name === 'password') {\n // if (pswdValidation(value)) {\n // setValues({ ...values, [name]: value });\n // }\n // } else \n if (name === \"confirmpswd\") {\n validateConfirmPswd(value);\n setValues({ ...values, [name]: value });\n } else if (name === 'firstName') {\n if (checkName(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === 'lastName') {\n if (checkName(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === 'organisationName') {\n if (checkName(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === 'phone') {\n if (checkMobValidation(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === \"pin\") {\n if (pinValidation(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === \"confirmpin\") {\n validateConfirmPin(value);\n setValues({ ...values, [name]: value });\n } else {\n setValues({ ...values, [name]: value });\n }\n }\n };\n\n const phoneChange = (value, data, event, formattedValue) => {\n if (data.dialCode && data.dialCode.length) {\n setValues({...values, phone: value, mobileCode: data.dialCode,\n mobWithoutCC: value.substring(data.dialCode.length)\n });\n }\n return;\n }\n\n const pinValidation = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 4) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n const validateConfirmPin = (value) => {\n let error = {};\n if (value !== values.pin) {\n error.confirmpin = 'Confirm pin should match Password';\n }\n setErrors(error);\n }\n\n const pswdValidation = (value) => {\n if (value.length <= 6) {\n return true;\n } else {\n return false;\n }\n }\n\n const checkMobValidation = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 6) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n const validateProfile = (e) => {\n e.preventDefault();\n if (checkProfileTab()) {\n // Call gen-otp api\n genotp();\n } else {\n }\n }\n\n const genotp = () => {\n setLoading(true);\n let data = {\n 'Email': values.email ? values.email : '',\n 'Mobilenumber': values.mobWithoutCC,\n 'FirstName': values.subscriberType && values.subscriberType == 'Individual' ? values.firstName.trim() :\n values.organisationName,\n 'LastName': values.lastName.trim(),\n 'MobileCode': Number(values.mobileCode)\n }\n let errorMsg = '';\n postMethodDefaultToken('/api/Auth/SelfOtp', data, 'post')\n .then(res => {\n setLoading(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\") {\n // Success\n let msg = res.data.responseMessage || 'Otp sent';\n openModal(msg);\n\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in generating otp';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in generating otp';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n\n const openModal = (msg) => {\n swal({\n // title: msg,\n icon: \"success\",\n text: msg,\n allowOutsideClick: false,\n allowEscapeKey: false,\n closeOnClickOutside: false,\n buttons:\n {\n confirm: {\n text: \"Ok\",\n visible: true,\n closeModal: true,\n className: 'sweet-btn'\n }\n }\n }).then((confirm) => {\n if (confirm) {\n props.parentCallback(values);\n } else {\n props.parentCallback(values);\n }\n });\n }\n\n const checkProfileTab = () => {\n let error = {};\n let valid = true;\n if (!values.subscriberType) {\n error.subscriberType = 'Subscriber Type is Required';\n valid = false;\n }\n if (values.subscriberType == 'Individual') {\n if (!values.firstName) {\n error.firstName = 'First Name is Required';\n valid = false\n }\n if (!values.lastName) {\n error.lastName = 'Last Name is Required';\n valid = false\n }\n } else if (values.subscriberType == 'Organisation') {\n if (!values.organisationName) {\n error.organisationName = 'Organisation Name is Required';\n valid = false;\n }\n }\n \n if (!values.mobileCode) {\n error.mobileCode = 'Mobile Code is Required';\n valid = false\n }\n if (!values.phone) {\n error.phone = 'Phone Number is Required';\n valid = false\n } else if (!values.mobWithoutCC) {\n error.phone = 'Phone Number is Required';\n valid = false\n } \n // else if (values.phone.length != 6) {\n // error.phone = 'Phone Number should have 6 digits';\n // valid = false;\n // }\n if (!values.password) {\n error.password = 'Password is Required';\n valid = false\n } else if (values.password.length < 6) {\n error.password = 'Password should have atleast 6 characters';\n valid = false\n }\n if (!values.confirmpswd) {\n error.confirmpswd = 'Confirm Password is Required';\n valid = false\n } else if (values.confirmpswd !== values.password) {\n error.confirmpswd = 'Confirm password should match Password';\n valid = false\n }\n\n if (!values.pin) {\n error.pin = 'Pin is Required';\n valid = false\n } else if (values.pin.length !== 4) {\n error.pin = 'Pin should have 4 digits';\n valid = false\n }\n if (!values.confirmpin) {\n error.confirmpin = 'Confirm Pin is Required';\n valid = false\n } else if (values.pin !== values.confirmpin) {\n error.confirmpin = 'Confirm Pin should match Pin';\n valid = false\n }\n if (values.email) {\n if (!checkEmail(values.email)) {\n error.email = 'Please enter valid email';\n valid = false;\n }\n }\n setErrors(error);\n return valid;\n }\n\n const checkEmail = (email) => {\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\n if (emailRegEx.test(email)) {\n return true;\n } else {\n return false;\n }\n }\n\n const validateConfirmPswd = (value) => {\n let error = {};\n if (value !== values.password) {\n error.confirmpswd = 'Confirm password should match Password';\n }\n setErrors(error);\n }\n\n return (\n <>\n
\n\n \n Subscriber Type\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {values.subscriberType && <>\n\n {values.subscriberType == \"Individual\" && \n \n \n \n First Name\n \n \n {errors.firstName &&
\n * {errors.firstName}\n
}\n
\n \n
}\n {values.subscriberType == 'Individual' && \n \n \n \n Last Name\n \n \n {errors.lastName &&
\n * {errors.lastName}\n
}\n
\n \n
\n }\n\n {values.subscriberType == 'Organisation' && \n \n \n \n Organisation Name\n \n \n {errors.organisationName &&
\n * {errors.organisationName}\n
}\n
\n \n
\n }\n \n \n \n \n Email\n \n \n {errors.email &&
\n * {errors.email}\n
}\n
\n \n
\n {/* \n \n \n \n Mobile Code\n \n \n {codes.map(c => )}\n \n {errors.mobileCode &&
\n * {errors.mobileCode}\n
}\n
\n \n \n \n \n Phone Number\n \n \n {errors.phone &&
\n * {errors.phone}\n
}\n
\n \n
\n */}\n\n \n \n \n \n Phone Number\n \n \n {errors.phone &&
\n * {errors.phone}\n
}\n
\n \n
\n \n \n \n \n Password\n \n \n \n {!showPswd && \n \n setShowPswd(true)} />\n \n \n }\n\n {showPswd && \n \n setShowPswd(false)} />\n \n }\n \n * {PASSWORD_HINT}\n {errors.password &&
\n * {errors.password}\n
}\n
\n \n\n\n \n \n \n Confirm Password\n \n \n \n {!showConfirmPswd && \n \n setComfirmPswd(true)} />\n \n \n }\n\n {showConfirmPswd && \n \n setComfirmPswd(false)} />\n \n }\n \n {errors.confirmpswd &&
\n * {errors.confirmpswd}\n
}\n
\n \n\n
\n\n \n \n \n \n PIN\n \n \n \n {!showPin && \n \n setShowPin(true)} />\n \n \n }\n\n {showPin && \n \n setShowPin(false)} />\n \n }\n \n * {PIN_HINT}\n {errors.pin &&
\n * {errors.pin}\n
}\n
\n \n\n\n \n \n \n Confirm PIN\n \n \n \n {!showConfirmPin && \n \n setShowConfirmPin(true)} />\n \n \n }\n\n {showConfirmPin && \n \n setShowConfirmPin(false)} />\n \n }\n \n {errors.confirmpin &&
\n * {errors.confirmpin}\n
}\n
\n \n\n \n \n \n Save and Next {loading && }\n \n \n \n
\n\n }\n\n\n \n \n )\n}\n\nexport default ProfileDetails;","import React from \"react\"\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input, InputGroupText, InputGroupAddon, InputGroup,\n Container,\n Row,\n Col,\n Label\n} from \"reactstrap\";\nimport { useToasts } from 'react-toast-notifications';\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\nimport { postMethodDefaultToken } from \"services/httpServices\";\nimport swal from 'sweetalert';\n\n\n\nconst initialValue = {\n firstName: 'Inderjeet',\n lastName: 'Kaur',\n mobileCode: '23458',\n phone: '984983',\n email: 'ik@gmail.com',\n password: 'Inder@123',\n oneFAAmt: '',\n authMode: ''\n};\n\nconst VerifyUser = (props) => {\n const [values, setValues] = React.useState(props);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const [spinner, setSpinner] = React.useState(false);\n\n const { addToast } = useToasts();\n\n\n const notifyFailed = (text) => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n }\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n if (name === \"otp\") {\n if (checkOTP(value)) {\n setValues({ ...values, [name]: value });\n }\n } else {\n setValues({ ...values, [name]: value });\n }\n }\n };\n\n const validateOTP = (e) => {\n e.preventDefault();\n if (checkOTPTab()) {\n // Call verify-otp api\n verifyotp();\n } else {\n }\n }\n\n const verifyotp = () => {\n setLoading(true);\n let data = {\n 'Email': values.email ? values.email : '',\n 'Mobilenumber': values.phone,\n 'FirstName': values.firstName,\n 'LastName': values.lastName,\n 'Otp': values.otp\n }\n let errorMsg = '';\n postMethodDefaultToken('/api/Auth/VerifySelfOtp', data, 'post')\n .then(res => {\n setLoading(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\") {\n // Success\n let msg = res.data.responseMessage || 'Otp Verified';\n openModal(msg);\n\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in verifying otp';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in verifying otp';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setLoading(false);\n notifyFailed('Something went wrong!, Please call 3737');\n });\n }\n\n const openModal = (msg) => {\n swal({\n // title: msg,\n icon: \"success\",\n text: msg,\n allowOutsideClick: false,\n allowEscapeKey: false,\n closeOnClickOutside: false,\n buttons:\n {\n confirm: {\n text: \"Ok\",\n visible: true,\n closeModal: true,\n className: 'sweet-btn'\n }\n }\n }).then((confirm) => {\n if (confirm) {\n props.parentCallback(values);\n } else {\n props.parentCallback(values);\n }\n });\n }\n\n const checkOTPTab = () => {\n let error = {};\n let valid = true;\n if (!values.otp) {\n error.otp = 'OTP is Required';\n valid = false\n }\n setErrors(error);\n return valid;\n }\n\n const checkOTP = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (digiRegex.test(value)) {\n if (value.length <= 6) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n const resendOtp = (e) => {\n e.preventDefault();\n setSpinner(true);\n setValues({...values, 'otp': ''});\n genOtp();\n }\n\n const genOtp = () => {\n let data = {\n 'Email': values.email ? values.email : '',\n 'Mobilenumber': values.mobWithoutCC,\n 'FirstName': values.subscriberType && values.subscriberType == 'Individual' ? values.firstName.trim() :\n values.organisationName,\n 'LastName': values.lastName,\n 'MobileCode': Number(values.mobileCode)\n }\n let errorMsg = '';\n postMethodDefaultToken('/api/Auth/SelfOtp', data, 'post')\n .then(res => {\n setSpinner(false);\n if (\n res && res.data\n ) {\n if (res.data.responseCode === \"200\") {\n // Success\n\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || 'Error in generating otp';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in generating otp';\n notifyFailed(errorMsg);\n\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n\n }\n }).catch(err => {\n setSpinner(false);\n notifyFailed('Something went wrong!, Please call 3737');\n })\n }\n\n const goBack = () => {\n props.goBack();\n }\n\n return (\n <>\n
\n \n \n Profile Details\n
\n
\n {values.subscriberType == 'Individual' ? \n Name : {values.firstName} {values.lastName} :\n \n Name : {values.organisationName}\n }\n
\n
\n Phone : {`(${values.mobileCode}) - ${values.mobWithoutCC}`}\n
\n
\n E-mail : {values.email}\n
\n
\n \n
\n\n \n \n \n \n OTP\n \n
\n \n \n Resend\n    \n {spinner &&\n
\n \n
}\n
\n
\n\n \n
\n *\n we have sent you an OTP on your registered mobile number / email\n
\n
\n {errors.otp &&
\n * {errors.otp}\n
}\n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n
\n\n
\n \n );\n}\n\nexport default VerifyUser;","import { data } from \"jquery\";\nimport React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Container,\n Row,\n Col,\n} from \"reactstrap\";\n// core components\nimport { postMethod, postMethodDefaultToken } from \"../services/httpServices\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { AUTH_MODE, AMOUNT_HINT } from \"appConfig\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\n\nconst MODES = AUTH_MODE;\nconst HINT = AMOUNT_HINT;\n\nconst codes = [\n 23225, 23230, 23231, 23232, 23233, 23234, 23244, 23275, 23276, 23277, 23278,\n 23279, 23280, 23288, 23299,\n];\n\nconst mobileMoney = [];\n\nconst banks = [];\n\nconst Subscriber = (props) => {\n const [values, setValues] = React.useState(props);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const { addToast } = useToasts();\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (name === \"phone\") {\n if (checkMobValidation(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === \"bban\") {\n if (checkBbanValidation(value)) {\n setValues({ ...values, [name]: value });\n }\n } else {\n setValues({ ...values, [name]: value });\n }\n // const validationErrors = validate(values);\n // setErrors(validationErrors);\n };\n\n const checkBbanValidation = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 18) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n const checkMobValidation = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 5) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const reviewModal = () => {\n props.reviewModal();\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const validate = (inputs) => {\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\n let errors = {};\n\n if (!inputs.subscriberType) {\n errors.subscriberType = \"Please select subscriber type\";\n }\n if (inputs.subscriberType == \"Individual\") {\n if (!inputs.firstName) {\n errors.firstName = \"First Name is Required\";\n }\n if (!inputs.lastName) {\n errors.lastName = \"Last Name is Required\";\n }\n }\n // else if (inputs.subscriberType == 'Organisation') {\n // if (!inputs.organisationName) {\n // errors.organisationName = 'Organsation Name is Required';\n // }\n // }\n // if (!inputs.firstName) {\n // errors.firstName = 'First Name is required';\n // }\n // if (!inputs.lastName) {\n // errors.lastName = \"Last Name is required\";\n // }\n if (!inputs.mobileCode) {\n errors.mobileCode = \"Please select mobile code\";\n }\n if (!inputs.phone) {\n errors.phone = \"Phone Number is Required\";\n }\n // else if (inputs.phone.length !== 6) {\n // errors.phone = 'Phone Number should have 6 digits';\n // }\n if (inputs.email && !emailRegEx.test(inputs.email)) {\n errors.email = \"Enter valid email\";\n }\n if (!inputs.password) {\n errors.password = \"Password is required\";\n }\n // if (!inputs.mobileMoney) {\n // errors.mobileMoney = 'Mobile Money is required';\n // }\n // if (!inputs.mobileMoneyAccNo) {\n // errors.mobileMoneyAccNo = 'Mobile Money account number is required';\n // }\n if (!inputs.bank) {\n errors.bank = \"Bank is required\";\n }\n // if (!inputs.bban) {\n // errors.bban = 'BBAN is required';\n // }\n // if (!inputs.bankLinkedMobileCode) {\n // errors.bankLinkedMobileCode = 'Mobile Code is required';\n // }\n // if (!inputs.bankLinkedPhone) {\n // errors.bankLinkedPhone = 'Phone number is required';\n // }\n return errors;\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n let url = \"/api/Subscriber/save\";\n if (isNoError) {\n var data = new FormData();\n if (props.subscriberType === \"Individual\") {\n data.append(\"FirstName\", values.firstName);\n data.append(\"LastName\", values.lastName);\n data.append(\"SubscriberType\", props.subscriberType);\n } else if (\n props.subscriberType === \"Organisation\" &&\n props?.registerType !== \"sub_agent\"\n ) {\n data.append(\"SubscriberType\", \"Organisation\");\n data.append(\"OrganizationName\", values.organisationName);\n } else {\n data.append(\"FirstName\", values.firstName);\n data.append(\"LastName\", values.lastName);\n data.append(\"SubscriberType\", props.subscriberType);\n }\n data.append(\"MobileCode\", values.mobileCode);\n data.append(\"MobileNumber\", values.mobWithoutCC);\n data.append(\"Email\", values.email);\n data.append(\"BBAN\", values.bban);\n // data.append('BBANLinkMobileNumber', Number(values.bankMobWithoutCC));\n // data.append('BBANLinkMobileCode', Number(values.bankLinkedMobileCode));\n data.append(\"BBANLinkMobileNumber\", Number(0));\n data.append(\"BBANLinkMobileCode\", Number(0));\n if (props.selfRegistered) {\n data.append(\"AccountCreatedBy\", \"Self\");\n data.append(\"IsVerifiedByAdmin\", false);\n } else {\n data.append(\"AccountCreatedBy\", \"Admin\");\n data.append(\"IsVerifiedByAdmin\", true);\n }\n data.append(\"Password\", values.password);\n if (values.mobileMoney) {\n data.append(\"MMOId\", values.mobileMoney);\n } else {\n data.append(\"MMOId\", 0);\n }\n if (values.mobileMoneyAccNo) {\n data.append(\"MMOAccountNumber\", values.mobileMoneyAccNo);\n } else {\n data.append(\"MMOAccountNumber\", \"\");\n }\n data.append(\"BankProfileId\", values.bank);\n data.append(\"AuthFactorType\", values.authMode);\n data.append(\n \"ExcidedPaymentAmount\",\n values.authMode == \"1FA\" ? values.oneFAAmt : 0\n );\n data.append(\"Pin\", values.pin);\n data.append(\"BankAccountNumber\", values.bankAccNo);\n\n if (props.registerType === \"super_agent\") {\n url = \"/api/Agent/SaveSuperAgent\";\n data.delete(\"SubscriberType\");\n }\n if (props.registerType === \"sub_agent\") {\n url = \"/api/Agent/SaveSubAgent\";\n data.append(\"Type\", Object.fromEntries(data)?.SubscriberType);\n data.append(\"TopUpCommissionId\", props.cashTopupCommId);\n data.delete(\"SubscriberType\");\n }\n if (props.registerType === \"master_agent\") {\n url = \"/api/Agent/SaveMasterAgent\";\n data.delete(\"SubscriberType\");\n }\n let errorMsg = \"\";\n setLoading(true);\n if (props.selfRegistered) {\n SubscriberSelfReg(data);\n } else {\n postMethod(url, data, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n }\n }\n };\n\n const SubscriberSelfReg = (data) => {\n let errorMsg = \"\";\n let url = \"/api/Subscriber/SelfRegistration\";\n postMethodDefaultToken(url, data, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfuly\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const getHeaderCls = () => {\n if (props.selfRegistered) {\n return \" border-0\";\n } else {\n return \"bg-white border-0\";\n }\n };\n\n const getBtnCls = () => {\n if (props.selfRegistered) {\n return \"sign-up-btn float-right\";\n } else {\n return \"btn float-right\";\n }\n };\n return (\n <>\n {/* Page content */}\n
\n \n \n \n \n \n \n

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

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

Register Subscriber

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

Change Pin

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

Add Commission

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

Commission

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

Edit Commission

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

Card tables

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

Card tables

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

Subscriber Information

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

Card tables

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

\n Verify Bank\n

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

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

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

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

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

Cash withdrawal

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

Add Cash Top-up

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

Card tables

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

\n\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.\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.\n This Privacy Policy .\n

\n

Privacy Policy

\n\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.\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.\n

\n

Information We Collect

\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):\n
    \n
  • Your name.
  • \n
  • Your date of birth.
  • \n
  • Your physical and/or postal address.
  • \n
  • Your email address.
  • \n
  • Your phone number.
  • \n
  • A copy of your passport (or other proof of identification).
  • \n
  • Credit information, such as details relating to your credit history, credit capacity, and credit eligibility.
  • \n
  • Records of our interactions with you.
  • \n
  • Your mobile money account number.
  • \n
\n

\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.\n We may collect personal information about:\n

\n
    \n
  • Contractors and suppliers.
  • \n
  • Third parties seeking or using our services.
  • \n
  • Other people who come into contact with us in the ordinary course of business\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.\n In some cases, we collect personal information from third parties including public sources, our related companies and our service providers.
  • \n
\n\n

Using Your Personal Information

\n

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

\n
    \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.
  • \n
  • To personalize your experience of our Website and services (your personal information helps us to better respond to your individual needs)..
  • \n
  • To improve customer service (your information helps us to more effectively respond to your customer service requests and support your needs)..
  • \n
  • To process transactions, or deliver purchased products or services requested.
  • \n
  • To administer the product(s) or service(s) we provide you (including by answering any question, requests or complaints you may have).
  • \n
  • To track traffic through our Website.
  • \n
  • To consider your employment or contractual engagement application.
  • \n
  • Where you have specifically consented to us doing so, to:\n

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

    \n

     Communicate with you on behalf of our business partners.

  • \n • Such other purposes that we will notify you of at the time we collect your personal information.\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.\n
\n

Sharing Your Information

\n

\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.\n We may share your personal information with third parties in the following circumstances:\n

\n
    \n
  • To the extent necessary to deliver purchased products or services requested.
  • \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.
  • \n
  • Registering a Security Interest against Smart Systems owned equipment.
  • \n
  • Where we believe in good faith that we are required to do so by law.
  • \n
  • We may provide non-personally identifiable information to other parties for marketing, advertising, or other uses.
  • \n
  • To track traffic through our Website.
  • \n
\n\n

Protecting Your Information

\n

\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.\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.\n We will take all reasonable steps to ensure that your personal information is accurate, up to date, complete, relevant and not misleading.\n Storing & Transferring Your Personal Information\n

\n

\n Smart Systems’ business is operated in and from Sierra Leone. Accordingly, information is, in the first instance, processed in Sierra Leone.\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.\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.\n

\n

\n PCI DSS\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.\n

\n\n

Cookies

\n

\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:\n

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

\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.\n

\n\n

Terms & Conditions\n

\n

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

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

\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.\n

\n\n

Your Rights to Access Information

\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.\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:

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

Privacy Complaints

\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.

\n\n

Privacy Breaches & Escalations

\n

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

\n

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

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

\n Verified!\n

\n

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

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

Loading...

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

Link expired!

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

\n
\n \n Account Name\n

\n

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

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

\n

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

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

\n

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

\n
\n
\n \n Email\n

\n

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

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

\n

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

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

\n

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

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

\n

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

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

\n

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

\n
\n
\n \n Gender\n

\n

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

\n
\n
\n \n DOB\n

\n

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

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

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

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

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

\n

Wallet Number: {search.wallet}

\n

Reference Number: {search.reference}

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

\n Profile Info\n

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

\n Bank Info\n

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

Super Agent Information

\n \n \n \n \n
\n
\n \n
\n
\n Profile Details\n
\n
\n \n {/* {values.subscriberType === \"Individual\" && ( */}\n <>\n \n \n \n First Name\n \n \n {errors.firstName && (\n
\n * {errors.firstName}\n
\n )}\n
\n \n\n \n \n \n Last Name\n \n \n {errors.lastName && (\n
\n * {errors.lastName}\n
\n )}\n
\n \n \n {/* )} */}\n
\n \n \n \n \n Phone Number\n \n \n \n \n \n \n \n Email\n \n \n {errors.email && (\n
\n * {errors.email}\n
\n )}\n
\n \n
\n\n \n \n \n \n Authentication Mode\n \n \n \n {MODES.map((c) => (\n \n ))}\n \n {errors.authMode && (\n
\n * {errors.authMode}\n
\n )}\n
\n \n\n {values.authMode === \"1FA\" && (\n \n \n \n Enter amount for using 1FA\n \n \n\n
\n \n * {HINT}\n \n
\n {errors.oneFAAmt && (\n
\n * {errors.oneFAAmt}\n
\n )}\n
\n \n )}\n
\n
\n {/*
*/}\n {/* Address */}\n {/*
\n Mobile Money Details\n
\n
\n \n \n \n \n Mobile Money (optional)\n \n \n \n {values.mobileMoneyList &&\n values.mobileMoneyList.map((c) => (\n \n ))}\n \n {errors.mmoId && (\n
\n * {errors.mmoId}\n
\n )}\n
\n \n \n \n \n MM Account Number (optional)\n \n \n {errors.mmoAccountNumber && (\n
\n * {errors.mmoAccountNumber}\n
\n )}\n
\n \n
\n
*/}\n
\n {/* Address */}\n
\n Bank Details\n
\n
\n \n \n \n \n Bank\n \n \n {values.bankList &&\n values.bankList.map((c) => (\n \n ))}\n \n {errors.bankProfileId && (\n
\n * {errors.bankProfileId}\n
\n )}\n
\n \n\n \n \n \n BBAN Number (optional)\n \n \n {errors.bban && (\n
\n * {errors.bban}\n
\n )}\n
\n \n\n \n \n \n Bank Account Number\n \n \n {errors.bankAccNo && (\n
\n * {errors.bankAccNo}\n
\n )}\n
\n \n\n \n \n \n Bank Linked Phone Number\n \n \n {errors.bbanLinkMobileNumber && (\n
\n * {errors.bbanLinkMobileNumber}\n
\n )}\n
\n \n
\n \n \n
\n \n Submit{\" \"}\n {loading && }\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n );\n};\n\nexport default EditSuperAgent;\n","import React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Container,\n Row,\n Col,\n} from \"reactstrap\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\n\nconst ViewSuperAgent = (props) => {\n const [values] = React.useState(props);\n const mobWithCC = values.mobileCode + values.mobileNumber;\n const bankMobWithCC = values.bbanLinkMobileCode + values.bbanLinkMobileNumber;\n\n const closeModal = () => {\n props.closeModal();\n };\n\n return (\n <>\n {/* Page content */}\n
\n \n \n \n \n \n \n

Super Agent Information

\n \n \n \n \n
\n
\n \n
\n
\n Profile Details\n
\n
\n \n \n \n \n First Name\n \n \n \n \n\n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n Phone Number\n \n \n \n \n \n \n \n Email\n \n \n \n \n \n
\n
\n {/* Address */}\n {/*
\n Mobile Money Details\n
\n
\n \n \n \n \n Mobile Money\n \n \n \n {values.mobileMoneyList &&\n values.mobileMoneyList.map((c) => (\n \n ))}\n \n \n \n \n \n \n MM Account Number\n \n \n \n \n \n
\n
*/}\n {/* Address */}\n
\n Bank Details\n
\n
\n \n \n \n \n Bank\n \n \n {values.bankList &&\n values.bankList.map((c) => (\n \n ))}\n \n \n \n\n \n \n \n BBAN Number\n \n \n \n \n\n \n \n \n Bank Account Number\n \n \n \n \n\n \n \n \n Bank Linked Phone Number\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n );\n};\n\nexport default ViewSuperAgent;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React from \"react\";\n\n// reactstrap components\nimport {\n Card,\n CardHeader,\n CardFooter,\n Table,\n Container,\n Row,\n Col,\n Button,\n Modal,\n ModalBody,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n ModalHeader,\n} from \"reactstrap\";\n// core components\nimport Header from \"components/Headers/Header.js\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { getMethod, postMethod } from \"services/httpServices\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport EditSuperAgent from \"./edit-super-agent\";\nimport { btnCss, iconCss } from \"appConfig\";\nimport ViewSuperAgent from \"./view-super-agent\";\nimport ReactPaginate from \"react-paginate\";\nimport { getPrivileges } from \"services/util\";\n\nconst sortIS = {\n sortName: 0,\n sortEmail: 0,\n sortPhone: 0,\n};\n\nconst SuperAgentList = () => {\n const [, setSubsList] = React.useState([]);\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize] = React.useState(10);\n const [pagesCount, setPageCount] = React.useState(0);\n const [totalRec, setTotalRec] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [subsObj, setSubsObj] = React.useState(null);\n const [view, setView] = React.useState(false);\n const [openEdit, setOpenEditModal] = React.useState(false);\n const [editObj, setEditObj] = React.useState(null);\n const [deleteObj, setDeleteObj] = React.useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n const [banks, setBanks] = React.useState(null);\n const [mobileMoney, setMMO] = React.useState(null);\n const [verifyObj, setVerifyObj] = React.useState(null);\n const [openVerifyModal, setOpenVerifyModal] = React.useState(false);\n const [searchText, setSearchText] = React.useState(\"\");\n const [subsLoading, setSubsLoading] = React.useState(false);\n const [blockLoading, setBlockLoading] = React.useState(false);\n const [verifyBankLoading, setVerifyBankLoading] = React.useState(false);\n const [verifyBankObj, setVerifyBankObj] = React.useState(null);\n const [openVerifyBankModal, setOpenVerifyBankModal] = React.useState(false);\n const [sort, setSort] = React.useState(sortIS);\n const [refresh, setRefresh] = React.useState(false);\n const [isMounted, setIsMounted] = React.useState(false);\n\n const { addToast } = useToasts();\n const privileges = getPrivileges(\"super_agent\");\n\n React.useEffect(() => {\n // fetch mobilemoney operator\n // fetchSubs();\n fetchBank();\n fetchMMO();\n }, []);\n\n React.useEffect(() => {\n if (!refresh && isMounted) {\n if ((searchText && searchText.length >= 3) || searchText.length === 0) {\n fetchSubs();\n }\n }\n }, [searchText]);\n\n React.useEffect(() => {\n fetchSubs();\n }, [currentPage]);\n\n React.useEffect(() => {\n if (!refresh && isMounted) {\n if (currentPage !== 0) {\n setCurrentPage(0);\n } else {\n fetchSubs();\n }\n }\n }, [sort]);\n\n React.useEffect(() => {\n if (refresh && isMounted) {\n setSearchText(\"\");\n setSort(sortIS);\n if (currentPage === 0) {\n fetchSubs();\n } else {\n setCurrentPage(0);\n }\n }\n }, [refresh]);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n // fetchSubs();\n };\n\n const getSearch = (val) => {\n setSearchText(val);\n // if (searchText.length == 0) {\n // fetchSubs()\n // }\n };\n\n const showSubs = (obj) => {\n setSubsObj(obj);\n setView(true);\n };\n\n const closeViewModal = () => {\n setView(false);\n setSubsObj(null);\n };\n\n const closeEditModal = () => {\n // setEditObj(null);\n setOpenEditModal(false);\n fetchSubs();\n };\n\n const openDelete = (mmo) => {\n setDeleteObj(mmo);\n setOpenDelModal(true);\n };\n\n const closeDeleteModal = () => {\n setDeleteObj(null);\n setOpenDelModal(false);\n };\n\n const fetchSubs = async () => {\n fetchSubsHandle();\n };\n\n const fetchSubsHandle = async () => {\n let errorMsg = \"\";\n setLoading(true);\n let data = {\n PageNumber: Number(currentPage + 1),\n PerPage: pageSize,\n };\n\n if (searchText && searchText.length >= 3) {\n data[\"SearchText\"] = searchText;\n }\n\n if (sort.sortName === \"1\") {\n data[\"SortingOn\"] = \"Name\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortName === \"2\") {\n data[\"SortingOn\"] = \"Name\";\n data[\"IsDescending\"] = true;\n } else if (sort.sortEmail === \"1\") {\n data[\"SortingOn\"] = \"Email\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortEmail === \"2\") {\n data[\"SortingOn\"] = \"Email\";\n data[\"IsDescending\"] = true;\n } else if (sort.sortPhone === \"1\") {\n data[\"SortingOn\"] = \"SubscriberUid\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortName === \"2\") {\n data[\"SortingOn\"] = \"SubscriberUid\";\n data[\"IsDescending\"] = true;\n }\n postMethod(\"/api/Agent/AllSuperAgent\", data, \"post\")\n .then((res) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n setSubsList(res.data.result.list);\n setFilteredList(res.data.result.list);\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\n setTotalRec(res.data.result.totalRecords);\n // let pc = res.data.result.totalRecords;\n setPageCount(pc);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchSupAgentById = (id) => {\n let errorMsg = \"\";\n postMethod(\"/api/Agent/EditSuperAgent/\" + id, {}, \"post\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n setEditObj(res.data.result);\n setOpenEditModal(true);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n // setSError();\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const deleteSub = () => {\n let errorMsg = \"\";\n setBlockLoading(true);\n let url = \"/api/User/block/\" + deleteObj.userProfileId;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setBlockLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n let text = deleteObj.isBlocked\n ? \"Super Agent unblocked successfully\"\n : \"Super Agent blocked succsessfully\";\n notifySuccess(text);\n closeDeleteModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setBlockLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const fetchBank = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/FSP/GetAll\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setBanks(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchMMO = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/MobileMoney/ddllist\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setMMO(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const closeVerifyModal = () => {\n setVerifyObj(null);\n setOpenVerifyModal(false);\n };\n\n const verifySub = () => {\n let errorMsg = \"\";\n setSubsLoading(true);\n let url = \"/api/subscriber/adminverify/\" + verifyObj.userProfileId;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setSubsLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n notifySuccess(\"Verified Successfuly\");\n closeVerifyModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setSubsLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const closeVerifyBankModal = () => {\n setVerifyBankObj(null);\n setOpenVerifyBankModal(false);\n };\n\n const verifySubsBank = () => {\n let errorMsg = \"\";\n setVerifyBankLoading(true);\n let url = `/api/User/subscriberbankverify`;\n let data = {\n UserId: verifyBankObj.userProfileId,\n Verify: true,\n };\n postMethod(url, data, \"post\")\n .then((res) => {\n setVerifyBankLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n notifySuccess(\"Verified Successfuly\");\n closeVerifyBankModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setVerifyBankLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const reloadList = () => {\n setSearchText(\"\");\n setRefresh(true);\n fetchBank();\n fetchMMO();\n };\n\n const getAmt = (amt) => {\n if (amt) {\n return amt.toLocaleString();\n } else {\n return 0;\n }\n };\n\n const getBlockText = () => {\n let str = \"block\";\n if (deleteObj.isBlocked) {\n str = \"unblock\";\n }\n\n return `Do you want to ${str} ${deleteObj.firstName} ${deleteObj.lastName} ?`;\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue === \"0\") {\n newValue = \"1\";\n } else if (fieldValue === \"1\") {\n newValue = \"2\";\n } else if (fieldValue === \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n const getSortCls = (fieldName) => {\n if (fieldName === \"0\") {\n return \"fas fa-sort fa-lg\";\n } else if (fieldName === \"1\") {\n return \"fas fa-sort-up fa-lg\";\n } else if (fieldName === \"2\") {\n return \"fas fa-sort-down fa-lg\";\n }\n };\n\n return (\n <>\n
\n {/* Page content */}\n \n {/* Table */}\n \n
\n \n \n {\n e.preventDefault();\n }}\n >\n \n \n \n \n \n \n \n getSearch(e.target.value)}\n />\n \n \n   \n \n \n \n \n \n {loading && }\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n

\n {deleteObj && deleteObj.isBlocked\n ? \"Unblock Super Agent\"\n : \"Block Super Agent\"}\n

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

{getBlockText()}

\n
\n \n Yes{\" \"}\n {blockLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n

Verify Subscriber

\n
\n \n
\n {verifyObj && verifyObj.firstName ? (\n
\n

\n Do you want to verify {verifyObj.firstName}{\" \"}\n {verifyObj.lastName} ?\n

\n
\n \n Yes{\" \"}\n {subsLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n \n\n \n \n

Verify Bank

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

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

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

\n Profile Info\n

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

\n Bank Info\n

\n \n
\n
\n \n \n \n \n \n FSP\n \n \n \n {banks &&\n banks.map((c) => (\n \n ))}\n \n {errors.bank && (\n
\n * {errors.bank}\n
\n )}\n
\n \n\n \n \n \n Bank Account Number\n \n \n {errors.bankAccNo && (\n
\n * {errors.bankAccNo}\n
\n )}\n
\n \n\n \n \n \n Authentication Mode\n \n \n \n {MODES.map((c) => (\n \n ))}\n \n {errors.authMode && (\n
\n * {errors.authMode}\n
\n )}\n
\n \n\n {values.authMode === \"1FA\" && (\n \n \n \n Enter amount for using 1FA\n \n \n\n
\n \n * {HINT}\n \n
\n {errors.oneFAAmt && (\n
\n * {errors.oneFAAmt}\n
\n )}\n
\n \n )}\n
\n \n \n
\n \n Save and Review\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default AddSubAgent;\n","import React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Container,\n Row,\n Col,\n} from \"reactstrap\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\n\nconst ViewSubAgent = (props) => {\n const [values] = React.useState(props);\n const mobWithCC = values?.mobileCode + values?.mobileNumber;\n const bankMobWithCC =\n values?.bbanLinkMobileCode +\n (values?.bbanLinkMobileNumber || ' ');\n const closeModal = () => {\n props.closeModal();\n };\n\n return (\n <>\n {/* Page content */}\n
\n \n \n \n \n \n \n

Sub Agent Information

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

Sub Agent Information

\n \n \n \n \n
\n
\n \n
\n
\n Profile Details\n
\n
\n \n {/* {values.subscriberType === \"Individual\" && ( */}\n <>\n \n \n \n First Name\n \n \n {errors.firstName && (\n
\n * {errors.firstName}\n
\n )}\n
\n \n\n \n \n \n Last Name\n \n \n {errors.lastName && (\n
\n * {errors.lastName}\n
\n )}\n
\n \n \n {/* )} */}\n
\n \n \n \n \n Phone Number\n \n \n \n \n \n \n \n Email\n \n \n {errors.email && (\n
\n * {errors.email}\n
\n )}\n
\n \n
\n\n \n \n \n \n Authentication Mode\n \n \n \n {MODES.map((c) => (\n \n ))}\n \n {errors.authMode && (\n
\n * {errors.authMode}\n
\n )}\n
\n \n\n {values.authMode === \"1FA\" && (\n \n \n \n Enter amount for using 1FA\n \n \n\n
\n \n * {HINT}\n \n
\n {errors.oneFAAmt && (\n
\n * {errors.oneFAAmt}\n
\n )}\n
\n \n )}\n
\n
\n {/*
*/}\n {/* Address */}\n {/*
\n Mobile Money Details\n
\n
\n \n \n \n \n Mobile Money (optional)\n \n \n \n {values.mobileMoneyList &&\n values.mobileMoneyList.map((c) => (\n \n ))}\n \n {errors.mmoId && (\n
\n * {errors.mmoId}\n
\n )}\n
\n \n \n \n \n MM Account Number (optional)\n \n \n {errors.mmoAccountNumber && (\n
\n * {errors.mmoAccountNumber}\n
\n )}\n
\n \n
\n
*/}\n
\n\n {/* \n \n \n \n Cash Topup Commission\n \n \n \n {props?.cashTopUpComm?.map(c => )}\n \n
\n {CASH_TOPUP_HINT}\n
\n {errors.topUpCommissionId && (\n
\n * {errors.topUpCommissionId}\n
\n )}\n
\n \n
*/}\n
\n {/* Address */}\n
\n Bank Details\n
\n
\n \n \n \n \n Bank\n \n \n {values.bankList &&\n values.bankList.map((c) => (\n \n ))}\n \n {errors.bankProfileId && (\n
\n * {errors.bankProfileId}\n
\n )}\n
\n \n\n \n \n \n BBAN Number (optional)\n \n \n {errors.bban && (\n
\n * {errors.bban}\n
\n )}\n
\n \n\n \n \n \n Bank Account Number\n \n \n {errors.bankAccNo && (\n
\n * {errors.bankAccNo}\n
\n )}\n
\n \n\n \n \n \n Bank Linked Phone Number\n \n \n {errors.bbanLinkMobileNumber && (\n
\n * {errors.bbanLinkMobileNumber}\n
\n )}\n
\n \n
\n \n \n
\n \n Submit{\" \"}\n {loading && }\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n );\n};\n\nexport default EditSubAgent;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React from \"react\";\n\n// reactstrap components\nimport {\n Card,\n CardHeader,\n CardFooter,\n Table,\n Container,\n Row,\n Col,\n Button,\n Modal,\n ModalBody,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n ModalHeader,\n} from \"reactstrap\";\n// core components\nimport Header from \"components/Headers/Header.js\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { getMethod, postMethod } from \"services/httpServices\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { btnCss, iconCss } from \"appConfig\";\nimport ReactPaginate from \"react-paginate\";\nimport { getPrivileges } from \"services/util\";\nimport ViewSubAgent from \"./view-sub-agent\";\nimport EditSubAgent from \"./edit-sub-agent\";\n\nconst sortIS = {\n sortName: 0,\n sortEmail: 0,\n sortPhone: 0,\n};\n\nconst SubAgentsList = () => {\n const [, setSubsList] = React.useState([]);\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize] = React.useState(10);\n const [pagesCount, setPageCount] = React.useState(0);\n const [totalRec, setTotalRec] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [subsObj, setSubsObj] = React.useState(null);\n const [view, setView] = React.useState(false);\n const [openEdit, setOpenEditModal] = React.useState(false);\n const [editObj, setEditObj] = React.useState(null);\n const [deleteObj, setDeleteObj] = React.useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n const [banks, setBanks] = React.useState(null);\n const [mobileMoney, setMMO] = React.useState(null);\n const [verifyObj, setVerifyObj] = React.useState(null);\n const [openVerifyModal, setOpenVerifyModal] = React.useState(false);\n const [searchText, setSearchText] = React.useState(\"\");\n const [subsLoading, setSubsLoading] = React.useState(false);\n const [blockLoading, setBlockLoading] = React.useState(false);\n const [verifyBankLoading, setVerifyBankLoading] = React.useState(false);\n const [verifyBankObj, setVerifyBankObj] = React.useState(null);\n const [openVerifyBankModal, setOpenVerifyBankModal] = React.useState(false);\n const [sort, setSort] = React.useState(sortIS);\n const [refresh, setRefresh] = React.useState(false);\n const [isMounted, setIsMounted] = React.useState(false);\n const [cashTopUpComm, setCashTopUpComm] = React.useState([]);\n\n const { addToast } = useToasts();\n const privileges = getPrivileges(\"sub_agent\");\n\n React.useEffect(() => {\n // fetch mobilemoney operator\n // fetchSubs();\n fetchBank();\n fetchMMO();\n fetchCashTopUpCommission();\n }, []);\n\n React.useEffect(() => {\n if (!refresh && isMounted) {\n if ((searchText && searchText.length >= 3) || searchText.length === 0) {\n fetchSubs();\n }\n }\n }, [searchText]);\n\n React.useEffect(() => {\n fetchSubs();\n }, [currentPage]);\n\n React.useEffect(() => {\n if (!refresh && isMounted) {\n if (currentPage !== 0) {\n setCurrentPage(0);\n } else {\n fetchSubs();\n }\n }\n }, [sort]);\n\n React.useEffect(() => {\n if (refresh && isMounted) {\n setSearchText(\"\");\n setSort(sortIS);\n if (currentPage === 0) {\n fetchSubs();\n } else {\n setCurrentPage(0);\n }\n }\n }, [refresh]);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n // fetchSubs();\n };\n\n const fetchCashTopUpCommission = () => {\n let errorMsg = \"\";\n getMethod(\"/api/commission/ddllist?CommissionType=CashTopUp\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setCashTopUpComm(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg =\n res.data.responseMessage || \"Error in fetching commission\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const getSearch = (val) => {\n setSearchText(val);\n // if (searchText.length == 0) {\n // fetchSubs()\n // }\n };\n\n const showSubs = (obj) => {\n setSubsObj(obj);\n setView(true);\n };\n\n const closeViewModal = () => {\n setView(false);\n setSubsObj(null);\n };\n\n const closeEditModal = () => {\n // setEditObj(null);\n setOpenEditModal(false);\n fetchSubs();\n };\n\n const openDelete = (mmo) => {\n setDeleteObj(mmo);\n setOpenDelModal(true);\n };\n\n const closeDeleteModal = () => {\n setDeleteObj(null);\n setOpenDelModal(false);\n };\n\n const fetchSubs = async () => {\n fetchSubsHandle();\n };\n\n const fetchSubsHandle = async () => {\n let errorMsg = \"\";\n setLoading(true);\n let data = {\n PageNumber: Number(currentPage + 1),\n PerPage: pageSize,\n };\n\n if (searchText && searchText.length >= 3) {\n data[\"SearchText\"] = searchText;\n }\n\n if (sort.sortName === \"1\") {\n data[\"SortingOn\"] = \"Name\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortName === \"2\") {\n data[\"SortingOn\"] = \"Name\";\n data[\"IsDescending\"] = true;\n } else if (sort.sortEmail === \"1\") {\n data[\"SortingOn\"] = \"Email\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortEmail === \"2\") {\n data[\"SortingOn\"] = \"Email\";\n data[\"IsDescending\"] = true;\n } else if (sort.sortPhone === \"1\") {\n data[\"SortingOn\"] = \"SubscriberUid\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortName === \"2\") {\n data[\"SortingOn\"] = \"SubscriberUid\";\n data[\"IsDescending\"] = true;\n }\n postMethod(\"/api/Agent/AllSubAgent\", data, \"post\")\n .then((res) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n setSubsList(res.data.result.list);\n setFilteredList(res.data.result.list);\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\n setTotalRec(res.data.result.totalRecords);\n // let pc = res.data.result.totalRecords;\n setPageCount(pc);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchSubAgentById = (id) => {\n let errorMsg = \"\";\n postMethod(\"/api/Agent/EditSubAgent/\" + id, {}, \"post\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n setEditObj(res.data.result);\n setOpenEditModal(true);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n // setSError();\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const deleteSub = () => {\n let errorMsg = \"\";\n setBlockLoading(true);\n let url = \"/api/User/block/\" + deleteObj.userProfileId;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setBlockLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n let text = deleteObj.isBlocked\n ? \"Sub Agent unblocked successfully\"\n : \"Sub Agent blocked succsessfully\";\n notifySuccess(text);\n closeDeleteModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setBlockLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const fetchBank = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/FSP/GetAll\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setBanks(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchMMO = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/MobileMoney/ddllist\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setMMO(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const closeVerifyModal = () => {\n setVerifyObj(null);\n setOpenVerifyModal(false);\n };\n\n const verifySub = () => {\n let errorMsg = \"\";\n setSubsLoading(true);\n let url = \"/api/subscriber/adminverify/\" + verifyObj.userProfileId;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setSubsLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n notifySuccess(\"Verified Successfuly\");\n closeVerifyModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setSubsLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const closeVerifyBankModal = () => {\n setVerifyBankObj(null);\n setOpenVerifyBankModal(false);\n };\n\n const verifySubsBank = () => {\n let errorMsg = \"\";\n setVerifyBankLoading(true);\n let url = `/api/User/subscriberbankverify`;\n let data = {\n UserId: verifyBankObj.userProfileId,\n Verify: true,\n };\n postMethod(url, data, \"post\")\n .then((res) => {\n setVerifyBankLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n notifySuccess(\"Verified Successfuly\");\n closeVerifyBankModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setVerifyBankLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const reloadList = () => {\n setSearchText(\"\");\n setRefresh(true);\n fetchBank();\n fetchMMO();\n };\n\n const getAmt = (amt) => {\n if (amt) {\n return amt.toLocaleString();\n } else {\n return 0;\n }\n };\n\n const getBlockText = () => {\n let str = \"block\";\n if (deleteObj.isBlocked) {\n str = \"unblock\";\n }\n\n return `Do you want to ${str} ${deleteObj.firstName} ${deleteObj.lastName} ?`;\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue === \"0\") {\n newValue = \"1\";\n } else if (fieldValue === \"1\") {\n newValue = \"2\";\n } else if (fieldValue === \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n const getSortCls = (fieldName) => {\n if (fieldName === \"0\") {\n return \"fas fa-sort fa-lg\";\n } else if (fieldName === \"1\") {\n return \"fas fa-sort-up fa-lg\";\n } else if (fieldName === \"2\") {\n return \"fas fa-sort-down fa-lg\";\n }\n };\n\n return (\n <>\n
\n {/* Page content */}\n \n {/* Table */}\n \n
\n \n \n {\n e.preventDefault();\n }}\n >\n \n \n \n \n \n \n \n getSearch(e.target.value)}\n />\n \n \n   \n \n \n \n \n \n {loading && }\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n

\n {deleteObj && deleteObj.isBlocked\n ? \"Unblock Sub Agent\"\n : \"Block Sub Agent\"}\n

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

{getBlockText()}

\n
\n \n Yes{\" \"}\n {blockLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n

Verify Subscriber

\n
\n \n
\n {verifyObj && verifyObj.firstName ? (\n
\n

\n Do you want to verify {verifyObj.firstName}{\" \"}\n {verifyObj.lastName} ?\n

\n
\n \n Yes{\" \"}\n {subsLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n \n\n \n \n

Verify Bank

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

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

\n\n \n \n Bank Details\n
\n
\n \n Bank Name : {verifyBankObj.bankName}\n \n
\n
\n \n BBAN : {verifyBankObj.bban}\n \n
\n
\n \n Bank Linked Mobile Number :{\" \"}\n {`(${verifyBankObj.mobileCode}) - ${verifyBankObj.mobileNumber}`}\n \n
\n
\n \n
\n
\n \n Yes{\" \"}\n {verifyBankLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n \n\n \n \n \n sortHandle(sort.sortName, \"sortName\")}\n >\n Name\n \n \n sortHandle(sort.sortEmail, \"sortEmail\")}\n >\n Email\n \n \n sortHandle(sort.sortPhone, \"sortPhone\")}\n >\n Phone\n \n \n {/* */}\n \n \n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n {/* */}\n \n \n \n );\n })}\n \n
BBANVoucher BalanceActions
\n {mmo.firstName} {mmo.lastName}\n {mmo.email}\n ({mmo.mobileCode})-\n {mmo.mobileNumber}\n {mmo.bban}\n {getAmt(mmo.balanceAmount)}\n \n {privileges.view && (\n showSubs(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"View\"\n >\n \n \n )}\n\n {privileges.edit && (\n fetchSubAgentById(mmo.id)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n \n )}\n\n {!mmo.isBlocked && privileges.block && (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n )}\n\n {mmo.isBlocked && privileges.unblock && (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )}\n\n {!mmo.isBankVerified && (\n openVerify(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Bank not verified\"\n >\n \n \n )}\n
\n \n {!loading && !filteredList.length && }\n {filteredList.length > 0 && (\n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n )}\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default SubAgentsList;\n","import React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Container,\n Row,\n Col,\n} from \"reactstrap\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { checkSpace, postMethod } from \"services/httpServices\";\nimport { AUTH_MODE, AMOUNT_HINT, MOBILE_ONLY_COUNTRY } from \"appConfig\";\nimport { checkBankAccNo } from \"services/util\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\nimport { checkBbanValidation } from \"services/util\";\n\nconst MODES = AUTH_MODE;\nconst HINT = AMOUNT_HINT;\nconst initialValue = {};\n\nconst EditMasterAgent = (props) => {\n initialValue.firstName = props.firstName;\n initialValue.lastName = props.lastName;\n initialValue.mobileNumber = props.mobileNumber;\n initialValue.mobileCode = props.mobileCode;\n initialValue.mmoId = props.mmoId;\n initialValue.bankProfileId = props.bankProfileId;\n initialValue.mobileMoneyAccNo = props.mobileMoneyAccNo;\n initialValue.bban = props.bban === \"null\" ? \"\" : props.bban;\n initialValue.bbanLinkMobileCode = props.bbanLinkMobileCode;\n initialValue.bbanLinkMobileNumber =\n props?.bbanLinkMobileNumber === null\n ? props.mobileNumber\n : props?.bbanLinkMobileNumber;\n initialValue.id = props.id;\n initialValue.bankList = props.bankList;\n initialValue.mobileMoneyList = props.mobileMoneyList;\n initialValue.email = props.email;\n initialValue.mmoAccountNumber = props.mmoAccountNumber;\n initialValue.authMode = props.authFactorType ? props.authFactorType : \"\";\n initialValue.oneFAAmt = props.excidedPaymentAmount\n ? props.excidedPaymentAmount\n : 0;\n initialValue.subscriberType = props.subscriberType\n ? props.subscriberType\n : \"\";\n initialValue.organizationName = props.organizationName\n ? props.organizationName\n : \"\";\n initialValue.bankAccNo = props.bankAccountNumber\n ? props.bankAccountNumber\n : \"\";\n\n const [values, setValues] = React.useState(initialValue);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const mobWithCC = values.mobileCode + values.mobileNumber;\n const bankMobWithCC =\n values.bbanLinkMobileCode + values?.bbanLinkMobileNumber;\n const { addToast } = useToasts();\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n if (name === \"phone\") {\n if (checkMobValidation(value)) {\n changeState({ ...values, [name]: value });\n }\n } else if (name === \"bban\") {\n if (checkBbanValidation(value)) {\n changeState({ ...values, [name]: value });\n }\n } else if (name === \"mmoAccountNumber\") {\n if (checkMobileMoneyAccNo(value)) {\n changeState({ ...values, [name]: value });\n }\n } else if (name === \"bbanLinkMobileNumber\") {\n if (checkMobValidation(value)) {\n changeState({ ...values, [name]: value });\n }\n } else if (name === \"oneFAAmt\") {\n if (checkDigitOnly(value)) {\n changeState({ ...values, [name]: value });\n }\n } else if (name === \"bankAccNo\") {\n if (checkBankAccNo(value)) {\n changeState({ ...values, [name]: value });\n }\n } else {\n changeState({ ...values, [name]: value });\n }\n }\n };\n\n const phoneChange = (value, data, event, formattedValue) => {\n if (data.dialCode && data.dialCode.length) {\n changeState({\n ...values,\n bankMobWithCC: value,\n bbanLinkMobileCode: data.dialCode,\n bbanLinkMobileNumber: value.substring(data.dialCode.length),\n });\n }\n return;\n };\n\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const checkMobileMoneyAccNo = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 11) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n const checkMobValidation = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 6) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const validate = (inputs) => {\n let emailRegEx = /\\S+@\\S+\\.\\S+/;\n let errors = {};\n if (inputs.mobileNumber) {\n inputs.mobileNumber = inputs.mobileNumber.toString();\n }\n if (inputs.bban) {\n inputs.bban = inputs.bban.toString();\n }\n if (inputs.bbanLinkMobileNumber) {\n inputs.bbanLinkMobileNumber = inputs.bbanLinkMobileNumber.toString();\n }\n // if (inputs.subscriberType === \"Individual\") {\n if (!inputs.firstName) {\n errors.firstName = \"First Name is required\";\n }\n if (!inputs.lastName) {\n errors.lastName = \"Last Name is required\";\n }\n // } else if (inputs.subscriberType === \"Organisation\") {\n // if (!inputs.organizationName) {\n // errors.organizationName = \"Organisation Name is Required\";\n // }\n // }\n\n if (!inputs.mobileCode) {\n errors.mobileCode = \"Please select mobile code\";\n }\n if (!inputs.mobileNumber) {\n errors.mobileNumber = \"Phone Number is Required\";\n }\n if (inputs.email && !emailRegEx.test(inputs.email)) {\n errors.email = \"Enter valid email\";\n }\n if (inputs.mmoId) {\n if (!inputs.mmoAccountNumber) {\n errors.mmoAccountNumber = \"Mobile Money account number is required\";\n }\n }\n\n if (!inputs.bankProfileId) {\n errors.bankProfileId = \"Bank is required\";\n }\n\n if (\n inputs?.bban?.length !== 0 &&\n (inputs?.bban?.length < 8 || inputs?.bban?.length > 18)\n ) {\n errors.bban = \"BBAN should have 8 to 18 digits\";\n }\n\n if (!inputs.authMode) {\n errors.authMode = \"Please select authentication mode\";\n }\n if (!inputs.bankAccNo) {\n errors.bankAccNo = \"Please enter bank account number\";\n } else if (inputs.bankAccNo.length < 8 || inputs.bankAccNo.length > 18) {\n errors.bankAccNo = \"Please enter 8 to 18 digit Bank Account Number\";\n }\n return errors;\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n var data = new FormData();\n // if (values.subscriberType === \"Individual\") {\n data.append(\"FirstName\", values.firstName);\n data.append(\"LastName\", values.lastName);\n // } else if (values.subscriberType === \"Organisation\") {\n // data.append(\"OrganizationName\", values.organizationName);\n // }\n data.append(\"SubscriberType\", values.subscriberType);\n data.append(\"MobileCode\", values.mobileCode);\n data.append(\"MobileNumber\", values.mobileNumber);\n data.append(\"Email\", values.email ? values.email : \"\");\n data.append(\"BBAN\", values.bban);\n data.append(\"BBANLinkMobileNumber\", values.bbanLinkMobileNumber);\n data.append(\"BBANLinkMobileCode\", values.bbanLinkMobileCode);\n data.append(\"AccountCreatedBy\", \"Admin\");\n data.append(\"Password\", values.password);\n data.append(\"BankProfileId\", values.bankProfileId);\n data.append(\"IsVerifiedByAdmin\", true);\n data.append(\"Id\", values.id);\n if (values.mmoId) {\n data.append(\"MMOId\", values.mmoId);\n } else {\n data.append(\"MMOId\", 0);\n }\n if (values.mmoAccountNumber) {\n data.append(\"MMOAccountNumber\", values.mmoAccountNumber);\n } else {\n data.append(\"MMOAccountNumber\", \"\");\n }\n data.append(\"AuthFactorType\", values.authMode);\n data.append(\n \"ExcidedPaymentAmount\",\n values.authMode === \"1FA\" ? values.oneFAAmt : 0\n );\n data.append(\"BankAccountNumber\", values.bankAccNo);\n if (values.bankProfileId > 0) {\n data.append(\"isBankInfoAvailable\", true);\n }\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/Agent/updateMasterAgent\", data, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Updated Successfuly\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n // setSError(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n // setSError(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n // setSError(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n }\n };\n\n const checkDigitOnly = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n };\n\n return (\n <>\n {/* Page content */}\n
\n \n \n \n \n \n \n

Master Agent Information

\n \n \n \n \n
\n
\n \n
\n
\n Profile Details\n
\n
\n \n {/* {values.subscriberType === \"Individual\" && ( */}\n <>\n \n \n \n First Name\n \n \n {errors.firstName && (\n
\n * {errors.firstName}\n
\n )}\n
\n \n\n \n \n \n Last Name\n \n \n {errors.lastName && (\n
\n * {errors.lastName}\n
\n )}\n
\n \n \n {/* )} */}\n
\n \n \n \n \n Phone Number\n \n \n \n \n \n \n \n Email\n \n \n {errors.email && (\n
\n * {errors.email}\n
\n )}\n
\n \n
\n\n \n \n \n \n Authentication Mode\n \n \n \n {MODES.map((c) => (\n \n ))}\n \n {errors.authMode && (\n
\n * {errors.authMode}\n
\n )}\n
\n \n\n {values.authMode === \"1FA\" && (\n \n \n \n Enter amount for using 1FA\n \n \n\n
\n \n * {HINT}\n \n
\n {errors.oneFAAmt && (\n
\n * {errors.oneFAAmt}\n
\n )}\n
\n \n )}\n
\n
\n {/*
*/}\n {/* Address */}\n {/*
\n Mobile Money Details\n
\n
\n \n \n \n \n Mobile Money (optional)\n \n \n \n {values.mobileMoneyList &&\n values.mobileMoneyList.map((c) => (\n \n ))}\n \n {errors.mmoId && (\n
\n * {errors.mmoId}\n
\n )}\n
\n \n \n \n \n MM Account Number (optional)\n \n \n {errors.mmoAccountNumber && (\n
\n * {errors.mmoAccountNumber}\n
\n )}\n
\n \n
\n
*/}\n
\n {/* Address */}\n
\n Bank Details\n
\n
\n \n \n \n \n FSP\n \n \n {values.bankList &&\n values.bankList.map((c) => (\n \n ))}\n \n {errors.bankProfileId && (\n
\n * {errors.bankProfileId}\n
\n )}\n
\n \n\n \n \n \n BBAN Number (optional)\n \n \n {errors.bban && (\n
\n * {errors.bban}\n
\n )}\n
\n \n\n \n \n \n Bank Account Number\n \n \n {errors.bankAccNo && (\n
\n * {errors.bankAccNo}\n
\n )}\n
\n \n\n \n \n \n Bank Linked Phone Number\n \n \n {errors.bbanLinkMobileNumber && (\n
\n * {errors.bbanLinkMobileNumber}\n
\n )}\n
\n \n
\n \n \n
\n \n Submit{\" \"}\n {loading && }\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n );\n};\n\nexport default EditMasterAgent;\n","import React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Container,\n Row,\n Col,\n} from \"reactstrap\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\n\nconst ViewMasterAgent = (props) => {\n const [values] = React.useState(props);\n const mobWithCC = values.mobileCode + values.mobileNumber;\n const bankMobWithCC = values.bbanLinkMobileCode + values.bbanLinkMobileNumber;\n\n const closeModal = () => {\n props.closeModal();\n };\n\n return (\n <>\n {/* Page content */}\n
\n \n \n \n \n \n \n

Master Agent Information

\n \n \n \n \n
\n
\n \n
\n
\n Profile Details\n
\n
\n \n \n \n \n First Name\n \n \n \n \n\n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n Phone Number\n \n \n \n \n \n \n \n Email\n \n \n \n \n \n
\n
\n {/* Address */}\n {/*
\n Mobile Money Details\n
\n
\n \n \n \n \n Mobile Money\n \n \n \n {values.mobileMoneyList &&\n values.mobileMoneyList.map((c) => (\n \n ))}\n \n \n \n \n \n \n MM Account Number\n \n \n \n \n \n
\n
*/}\n {/* Address */}\n
\n Bank Details\n
\n
\n \n \n \n \n FSP\n \n \n {values.bankList &&\n values.bankList.map((c) => (\n \n ))}\n \n \n \n\n \n \n \n BBAN Number\n \n \n \n \n\n \n \n \n Bank Account Number\n \n \n \n \n\n \n \n \n Bank Linked Phone Number\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n );\n};\n\nexport default ViewMasterAgent;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React from \"react\";\n\n// reactstrap components\nimport {\n Card,\n CardHeader,\n CardFooter,\n Table,\n Container,\n Row,\n Col,\n Button,\n Modal,\n ModalBody,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n ModalHeader,\n} from \"reactstrap\";\n// core components\nimport Header from \"components/Headers/Header.js\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { getMethod, postMethod } from \"services/httpServices\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport EditMasterAgent from \"./edit-master-agent\";\nimport { btnCss, iconCss } from \"appConfig\";\nimport ViewMasterAgent from \"./view-master-agent\";\nimport ReactPaginate from \"react-paginate\";\nimport { getPrivileges } from \"services/util\";\n\nconst sortIS = {\n sortName: 0,\n sortEmail: 0,\n sortPhone: 0,\n};\n\nconst MasterAgentsList = () => {\n const [, setSubsList] = React.useState([]);\n const [filteredList, setFilteredList] = React.useState([]);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [pageSize] = React.useState(10);\n const [pagesCount, setPageCount] = React.useState(0);\n const [totalRec, setTotalRec] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [subsObj, setSubsObj] = React.useState(null);\n const [view, setView] = React.useState(false);\n const [openEdit, setOpenEditModal] = React.useState(false);\n const [editObj, setEditObj] = React.useState(null);\n const [deleteObj, setDeleteObj] = React.useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n const [banks, setBanks] = React.useState(null);\n const [mobileMoney, setMMO] = React.useState(null);\n const [verifyObj, setVerifyObj] = React.useState(null);\n const [openVerifyModal, setOpenVerifyModal] = React.useState(false);\n const [searchText, setSearchText] = React.useState(\"\");\n const [subsLoading, setSubsLoading] = React.useState(false);\n const [blockLoading, setBlockLoading] = React.useState(false);\n const [verifyBankLoading, setVerifyBankLoading] = React.useState(false);\n const [verifyBankObj, setVerifyBankObj] = React.useState(null);\n const [openVerifyBankModal, setOpenVerifyBankModal] = React.useState(false);\n const [sort, setSort] = React.useState(sortIS);\n const [refresh, setRefresh] = React.useState(false);\n const [isMounted, setIsMounted] = React.useState(false);\n\n const { addToast } = useToasts();\n const privileges = getPrivileges(\"super_agent\");\n\n React.useEffect(() => {\n // fetch mobilemoney operator\n // fetchSubs();\n fetchBank();\n fetchMMO();\n }, []);\n\n React.useEffect(() => {\n if (!refresh && isMounted) {\n if ((searchText && searchText.length >= 3) || searchText.length === 0) {\n fetchSubs();\n }\n }\n }, [searchText]);\n\n React.useEffect(() => {\n fetchSubs();\n }, [currentPage]);\n\n React.useEffect(() => {\n if (!refresh && isMounted) {\n if (currentPage !== 0) {\n setCurrentPage(0);\n } else {\n fetchSubs();\n }\n }\n }, [sort]);\n\n React.useEffect(() => {\n if (refresh && isMounted) {\n setSearchText(\"\");\n setSort(sortIS);\n if (currentPage === 0) {\n fetchSubs();\n } else {\n setCurrentPage(0);\n }\n }\n }, [refresh]);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n // fetchSubs();\n };\n\n const getSearch = (val) => {\n setSearchText(val);\n // if (searchText.length == 0) {\n // fetchSubs()\n // }\n };\n\n const showSubs = (obj) => {\n setSubsObj(obj);\n setView(true);\n };\n\n const closeViewModal = () => {\n setView(false);\n setSubsObj(null);\n };\n\n const closeEditModal = () => {\n // setEditObj(null);\n setOpenEditModal(false);\n fetchSubs();\n };\n\n const openDelete = (mmo) => {\n setDeleteObj(mmo);\n setOpenDelModal(true);\n };\n\n const closeDeleteModal = () => {\n setDeleteObj(null);\n setOpenDelModal(false);\n };\n\n const fetchSubs = async () => {\n fetchSubsHandle();\n };\n\n const fetchSubsHandle = async () => {\n let errorMsg = \"\";\n setLoading(true);\n let data = {\n PageNumber: Number(currentPage + 1),\n PerPage: pageSize,\n };\n\n if (searchText && searchText.length >= 3) {\n data[\"SearchText\"] = searchText;\n }\n\n if (sort.sortName === \"1\") {\n data[\"SortingOn\"] = \"Name\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortName === \"2\") {\n data[\"SortingOn\"] = \"Name\";\n data[\"IsDescending\"] = true;\n } else if (sort.sortEmail === \"1\") {\n data[\"SortingOn\"] = \"Email\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortEmail === \"2\") {\n data[\"SortingOn\"] = \"Email\";\n data[\"IsDescending\"] = true;\n } else if (sort.sortPhone === \"1\") {\n data[\"SortingOn\"] = \"SubscriberUid\";\n data[\"IsDescending\"] = false;\n } else if (sort.sortName === \"2\") {\n data[\"SortingOn\"] = \"SubscriberUid\";\n data[\"IsDescending\"] = true;\n }\n postMethod(\"/api/Agent/AllMasterAgent\", data, \"post\")\n .then((res) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n setSubsList(res.data.result.list);\n setFilteredList(res.data.result.list);\n let pc = Math.ceil(res.data.result.totalRecords / pageSize);\n setTotalRec(res.data.result.totalRecords);\n // let pc = res.data.result.totalRecords;\n setPageCount(pc);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchSupAgentById = (id) => {\n let errorMsg = \"\";\n postMethod(\"/api/Agent/EditMasterAgent/\" + id, {}, \"post\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n setEditObj(res.data.result);\n setOpenEditModal(true);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n // setSError(errorMsg);\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n // setSError();\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const deleteSub = () => {\n let errorMsg = \"\";\n setBlockLoading(true);\n let url = \"/api/User/block/\" + deleteObj.userProfileId;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setBlockLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n let text = deleteObj.isBlocked\n ? \"Subscriber unblocked successfully\"\n : \"Subscriber blocked succsessfully\";\n notifySuccess(text);\n closeDeleteModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setBlockLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const fetchBank = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/FSP/GetAll\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setBanks(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchMMO = async () => {\n let errorMsg = \"\";\n getMethod(\"/api/MobileMoney/ddllist\", \"get\")\n .then((res) => {\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setMMO(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const closeVerifyModal = () => {\n setVerifyObj(null);\n setOpenVerifyModal(false);\n };\n\n const verifySub = () => {\n let errorMsg = \"\";\n setSubsLoading(true);\n let url = \"/api/subscriber/adminverify/\" + verifyObj.userProfileId;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setSubsLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n notifySuccess(\"Verified Successfuly\");\n closeVerifyModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setSubsLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const closeVerifyBankModal = () => {\n setVerifyBankObj(null);\n setOpenVerifyBankModal(false);\n };\n\n const verifySubsBank = () => {\n let errorMsg = \"\";\n setVerifyBankLoading(true);\n let url = `/api/User/subscriberbankverify`;\n let data = {\n UserId: verifyBankObj.userProfileId,\n Verify: true,\n };\n postMethod(url, data, \"post\")\n .then((res) => {\n setVerifyBankLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n notifySuccess(\"Verified Successfuly\");\n closeVerifyBankModal();\n fetchSubs();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setVerifyBankLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const reloadList = () => {\n setSearchText(\"\");\n setRefresh(true);\n fetchBank();\n fetchMMO();\n };\n\n const getAmt = (amt) => {\n if (amt) {\n return amt.toLocaleString();\n } else {\n return 0;\n }\n };\n\n const getBlockText = () => {\n let str = \"block\";\n if (deleteObj.isBlocked) {\n str = \"unblock\";\n }\n\n return `Do you want to ${str} ${deleteObj.firstName} ${deleteObj.lastName} ?`;\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue === \"0\") {\n newValue = \"1\";\n } else if (fieldValue === \"1\") {\n newValue = \"2\";\n } else if (fieldValue === \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n const getSortCls = (fieldName) => {\n if (fieldName === \"0\") {\n return \"fas fa-sort fa-lg\";\n } else if (fieldName === \"1\") {\n return \"fas fa-sort-up fa-lg\";\n } else if (fieldName === \"2\") {\n return \"fas fa-sort-down fa-lg\";\n }\n };\n\n return (\n <>\n
\n {/* Page content */}\n \n {/* Table */}\n \n
\n \n \n {\n e.preventDefault();\n }}\n >\n \n \n \n \n \n \n \n getSearch(e.target.value)}\n />\n \n \n   \n \n \n \n \n \n {loading && }\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n

\n {deleteObj && deleteObj.isBlocked\n ? \"Unblock Master Agent\"\n : \"Block Master Agent\"}\n

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

{getBlockText()}

\n
\n \n Yes{\" \"}\n {blockLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n

Verify Subscriber

\n
\n \n
\n {verifyObj && verifyObj.firstName ? (\n
\n

\n Do you want to verify {verifyObj.firstName}{\" \"}\n {verifyObj.lastName} ?\n

\n
\n \n Yes{\" \"}\n {subsLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n \n\n \n \n

Verify Bank

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

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

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

\n Profile Info\n

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

\n Bank Info\n

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

Top Up

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

\n Smart Pay Application Overview\n

\n

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

\n

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

\n
\n

\n Key Features and Responsibilities of Each Role\n

\n
\n

User Roles

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

{heading}

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

Access permission Chart

\n
\n \n
\n
\n

Smart Pay

\n

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

\n \n );\n};\n\nexport default Overview;\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 */\nimport HTTPsImg from \"../../assets/kb/HTTPs.jpg\";\nimport JWTImg from \"../../assets/kb/JWT.jpg\";\n\nconst TechnicalBackground = () => {\n return (\n
\n

\n Technical Background of the Smart Pay Application\n

\n
\n

Introduction

\n

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

\n
\n
\n

1. Mobile Application

\n

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

\n
\n
\n

2. Front-End Website

\n

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

\n
\n
\n

3. API with Structured Database

\n

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

\n

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

\n
\n

Security Standards

\n
\n

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

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

\n Secure Code Management\n

\n

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

\n

\n Personal Information Security\n

\n

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

\n
\n );\n};\n\nexport default TechnicalBackground;\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 */\n\nimport LoginImg from \"../../assets/kb/Login.png\";\nimport SelfRegisterImg from \"../../assets/kb/SelfRegister.png\";\nimport OTPEmail from \"../../assets/kb/OTPEmail.png\";\nimport SelfRegOTP from \"../../assets/kb/SelfRegOTP.png\";\nimport SleftRegOTPVerify from \"../../assets/kb/SleftRegOTPVerify.png\";\nimport FA1Img from \"../../assets/kb/1FA and bank.png\";\nimport PreviewImg from \"../../assets/kb/Preview.png\";\nimport regsuccessfullImg from \"../../assets/kb/regsuccessfull.png\";\nimport credentialemailImg from \"../../assets/kb/credentialemail.png\";\nimport SubscriberFlowImg from \"../../assets/kb/SubscriberFlow.png\";\nimport Img1 from \"../../assets/kb/1.png\";\nimport Img2 from \"../../assets/kb/2.png\";\nimport Img3 from \"../../assets/kb/3.png\";\nimport Img4 from \"../../assets/kb/4.png\";\nimport Img6 from \"../../assets/kb/6.png\";\nimport Img7 from \"../../assets/kb/7.png\";\nimport Img8 from \"../../assets/kb/8.png\";\nimport Img9 from \"../../assets/kb/9.png\";\nimport Img10 from \"../../assets/kb/10.png\";\nimport Img11 from \"../../assets/kb/11.png\";\nimport Img12 from \"../../assets/kb/12.png\";\nimport Img13 from \"../../assets/kb/13.png\";\nimport Img14 from \"../../assets/kb/14.png\";\n\nimport { Link } from \"react-router-dom\";\n\nconst SubscriberJourney = () => {\n return (\n
\n

User Process

\n
\n

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

\n
\n
\n

\n Step 1: Access SmartPay\n

\n

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

\n
\n
\n

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

\n

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

\n
\n \n
\n
\n
\n

\n Step 3: Choose Account Type\n

\n

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

\n
\n
\n

\n Step 4: Fill in Your Information\n

\n

It's time to provide your details:

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

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

\n
\n
\n

\n Step 5: Verify with OTP\n

\n

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

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

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

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

\n Step 6: Non-Editable Details\n

\n

You'll now see some non-editable information:

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

\n Step 7: Save and Preview\n

\n

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

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

\n Step 8: Submission\n

\n

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

\n
\n \n \n
\n
\n\n

\n Subscriber Flowchart\n

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

\n Step 9: Account Activation\n

\n

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

\n

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

\n
\n
\n

\n Subscriber Journey\n

\n

\n Dashboard Overview\n

\n

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

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

\n Top-Up Process\n

\n

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

\n

Self Wallet Top-Up

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

Other Wallet Top-Up

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

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

\n

Transaction Confirmation and Notifications:

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

\n Transactions History\n

\n

\n View All Transaction Details\n

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

\n Transaction Status and Information\n

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

\n Transfer Money\n

\n

\n Wallet-to-Wallet Transfer\n

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

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

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

Transaction Completion and Notifications:

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

\n Cash Out\n

\n

Cash Out to Sub Agent

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

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

\n

Transaction Completion and Notifications:

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

\n Make Payment\n

\n

Payment to Services

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

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

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

Pay Smart bills

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

Pay University Fees

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

Pay Other Services

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

Payment Confirmation and Notifications:

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

\n Top-Up History\n

\n

View Top-Up History

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

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

\n
\n
\n );\n};\n\nexport default SubscriberJourney;\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 */\n\nimport M1Img from \"../../assets/kb/M1.png\";\nimport M2Img from \"../../assets/kb/M2.png\";\nimport M3Img from \"../../assets/kb/M3.png\";\nimport M4Img from \"../../assets/kb/M4.png\";\nimport MasterAgentFlowImg from \"../../assets/kb/MasterAgentFlow.png\";\n\nconst MasterAgentJourney = () => {\n return (\n
\n
\n

Introduction

\n

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

\n
\n
\n

\n Registration and Access\n

\n

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

\n
\n
\n

\n Top-Up Balance\n

\n

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

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

\n Transfer to Super Agents\n

\n

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

\n
\n \n
\n
\n
\n

\n Transaction Monitoring\n

\n

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

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

\n Dashboard Overview\n

\n

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

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

\n Master Agent Flowchart\n

\n
\n \n
\n

\n Conclusion\n

\n

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

\n
\n );\n};\n\nexport default MasterAgentJourney;\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 */\n\nimport SP1Img from \"../../assets/kb/SP1.png\";\nimport SP2Img from \"../../assets/kb/SP2.png\";\nimport SP3Img from \"../../assets/kb/SP3.png\";\nimport SP4Img from \"../../assets/kb/SP4.png\";\nimport SP5Img from \"../../assets/kb/SP5.png\";\nimport SuperAgentImg from \"../../assets/kb/SuperAgent.png\";\n\nconst SuperAgentJourney = () => {\n return (\n
\n
\n

Introduction

\n

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

\n
\n
\n

\n Registration and Access\n

\n

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

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

\n Create Sub Agents\n

\n

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

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

\n Transfer to Sub Agents\n

\n

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

\n
\n \n
\n
\n
\n

\n Transaction Monitoring\n

\n

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

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

\n Dashboard Overview\n

\n

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

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

\n Transfer to Created Sub Agents\n

\n

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

\n
\n

\n Super Agent Flowchart\n

\n
\n \n
\n

\n Conclusion\n

\n

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

\n
\n );\n};\n\nexport default SuperAgentJourney;\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 */\nimport SA1Img from \"../../assets/kb/SA1.png\";\nimport SA3Img from \"../../assets/kb/SA3.png\";\nimport SA4Img from \"../../assets/kb/SA4.png\";\nimport SA5Img from \"../../assets/kb/SA5.png\";\nimport SA6Img from \"../../assets/kb/SA6.png\";\nimport SA7Img from \"../../assets/kb/SA7.png\";\nimport SA8Img from \"../../assets/kb/SA8.png\";\nimport SubAgentImg from \"../../assets/kb/SubAgent.png\";\n\nconst SubAgentJourney = () => {\n return (\n
\n
\n

Introduction

\n

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

\n
\n
\n

\n Top Up Money to Subscribers\n

\n

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

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

Cash Out to Super Agents

\n

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

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

Transaction Monitoring

\n

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

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

Payment Services

\n

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

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

Dashboard Insights

\n

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

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

Sub-Agent flowchart

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

Conclusion

\n

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

\n
\n );\n};\n\nexport default SubAgentJourney;\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 */\nimport MR1Img from \"../../assets/kb/MR1.png\";\nimport MR2Img from \"../../assets/kb/MR2.png\";\nimport MR3Img from \"../../assets/kb/MR3.png\";\nimport MR4Img from \"../../assets/kb/MR4.png\";\nimport MerchantImg from \"../../assets/kb/Merchant.png\";\n\nconst MerchantJourney = () => {\n return (\n
\n
\n

Introduction

\n

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

\n
\n
\n

\n Cash Out by Super Agent\n

\n

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

\n
\n
\n

\n Payment Receipt Tracking\n

\n

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

\n
\n
\n

\n Transaction Search\n

\n

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

\n
\n
\n

\n Daily End Reports\n

\n

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

\n
\n
\n

\n Getting Started\n

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

\n Merchant Flowchart\n

\n
\n \"Account\n
\n

Conclusion

\n

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

\n
\n );\n};\n\nexport default MerchantJourney;\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\";\nimport {\n TabContent,\n Nav,\n NavItem,\n NavLink,\n Card,\n Container,\n CardBody,\n TabPane,\n CardHeader,\n Row,\n Col,\n} from \"reactstrap\";\nimport classnames from \"classnames\";\nimport Header from \"components/Headers/Header.js\";\nimport { knowledgeBaseItems } from \"appConfig\";\nimport Overview from \"./Overview\";\nimport TechnicalBackground from \"./TechnicalBackground\";\nimport SubscriberJourney from \"./SubscriberJourney\";\nimport MasterAgentJourney from \"./MasterAgentJourney\";\nimport SuperAgentJourney from \"./SuperAgentJourney\";\nimport SubAgentJourney from \"./SubAgentJourney\";\nimport MerchantJourney from \"./MerchantJourney\";\nimport BankUserJourney from \"./BankUserJourney\";\nimport LegalInformation from \"./LegalInformation\";\nimport ContactUs from \"./ContactUs\";\n\nconst cardHeaderCls = {\n backgroundColor: \"#6490CA\",\n};\nconst All_TABS = [\n Overview,\n TechnicalBackground,\n SubscriberJourney,\n MasterAgentJourney,\n SuperAgentJourney,\n SubAgentJourney,\n MerchantJourney,\n BankUserJourney,\n LegalInformation,\n ContactUs,\n];\nconst AddSubscriber = (props) => {\n const [activeTab, setActiveTab] = useState(1);\n const [activeTabName, setActiveTabName] = useState(\n knowledgeBaseItems[0].label\n );\n\n const toggle = (tab) => {\n if (activeTab !== tab) setActiveTab(tab);\n };\n\n const getActiveTabContent = (tab) => {\n const CurrentTab = All_TABS[tab - 1];\n return ;\n };\n\n return (\n
\n
\n \n \n \n \n {knowledgeBaseItems.map((item, idx) => (\n \n {\n setActiveTabName(item.label);\n toggle(idx + 1);\n }}\n style={{\n padding: \"10px\",\n whiteSpace: \"nowrap\",\n cursor: \"pointer\",\n }}\n >\n {item.label}\n \n \n ))}\n \n \n \n
\n \n \n \n \n

\n {activeTabName}\n

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

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

\n
\n

\n Collection Bank\n

\n
\n

Dashboard

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

Features

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

\n Settlement Bank\n

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

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

\n
\n

Ownership of Content

\n

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

\n
\n
\n

Usage Rights

\n

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

\n
\n
\n

Restrictions

\n

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

\n
\n
\n

Third-Party Content and Links

\n

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

\n
\n
\n

Reporting Copyright Infringements

\n

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

\n
\n
\n

Contact Us

\n

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

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

Changes to Copyright Notice

\n

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

\n

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

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

Call 3737

\n
\n
\n

8 Regent Road, Hill station, Freetown

\n
\n
\n \n Fill form\n \n
\n
\n );\n};\n\nexport default ContactUs;\n","/* eslint-disable eqeqeq */\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport Header from \"components/Headers/Header\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n CardFooter,\n CardHeader,\n Col,\n Container,\n FormGroup,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Row,\n Table,\n} from \"reactstrap\";\nimport { getMethod } from \"services/httpServices\";\nimport { getUserId } from \"services/httpServices\";\nimport { btnCss, iconCss } from \"../../appConfig\";\nimport { getSortCls } from \"services/util\";\nimport ReactPaginate from \"react-paginate\";\n\nconst sortIS = {\n sortPOSID: 0,\n sortRegisteredDate: 0,\n sortRegisteredLocation: 0,\n sortTodaysSales: 0,\n sortMtdSales: 0,\n sortYtdSales: 0,\n};\n\nfunction Tellers() {\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [sort, setSort] = useState(sortIS);\n const [sortBy, setSortBy] = useState(\"\");\n const [sortDirection, setSortDirection] = useState(\"asc\");\n const [searchText, setSearchText] = useState(\"\");\n const [currentPage, setCurrentPage] = useState(0);\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n\n function fetchData() {\n setLoading(true);\n getMethod(\n \"/api/MerchantProfile/TellerLandingPage?MerchantId=\" + getUserId()\n )\n .then((res) => {\n if (res.data?.result?.length) {\n setData(res.data.result);\n }\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n }\n\n useEffect(() => {\n fetchData();\n }, []);\n\n const sortHandle = (fieldValue, fieldName, sortBy) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\n setSortBy(sortBy);\n };\n\n let filteredData = data.sort((a, b) => {\n if (sortDirection === \"asc\") {\n return typeof a[sortBy] === \"string\"\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\n : a[sortBy] - b[sortBy];\n } else if (sortDirection === \"desc\") {\n return typeof a[sortBy] === \"string\"\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\n : b[sortBy] - a[sortBy];\n } else {\n return 0;\n }\n });\n\n if (searchText) {\n filteredData = filteredData.filter((item) =>\n String(item?.tellerName).includes(searchText?.trim())\n );\n }\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n \n \n \n \n \n \n \n \n \n sortHandle(\n sort.sortRegisteredLocation,\n \"sortRegisteredDate\",\n \"registeredDate\"\n )\n }\n >\n Date Registered{\" \"}\n \n \n \n \n sortHandle(\n sort.sortTodaysSales,\n \"sortTodaysSales\",\n \"todaysSales\"\n )\n }\n >\n Today's Sales{\" \"}\n \n \n \n sortHandle(sort.sortMtdSales, \"sortMtdSales\", \"mtdSales\")\n }\n >\n MTD Sales{\" \"}\n \n \n \n sortHandle(sort.sortYtdSales, \"sortYtdSales\", \"ytdSales\")\n }\n >\n YTD Sales{\" \"}\n \n \n \n \n \n {filteredData.length > 0 &&\n filteredData\n .slice(currentPage * 10, (currentPage + 1) * 10)\n .map((teller, i) => {\n return (\n \n \n \n \n \n \n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredData.length && }\n
Teller ID Teller Name
{teller.tellerId ?? \"-\"}{teller.registeredDate ?? \"-\"}{teller.tellerName ?? \"-\"}{teller.todaysSales ?? \"-\"}{teller.mtdSales ?? \"-\"}{teller.ytdSales ?? \"-\"}
\n \n {filteredData.length > 0 && (\n \n \n
\n \n Total Records : {filteredData.length}\n \n
\n \n\n \n \n \n
\n )}\n
{\" \"}\n
\n
\n
\n );\n}\n\nexport default Tellers;\n","/* eslint-disable eqeqeq */\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport Header from \"components/Headers/Header\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n CardFooter,\n CardHeader,\n Col,\n Container,\n FormGroup,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Row,\n Table,\n} from \"reactstrap\";\nimport { getMethod } from \"services/httpServices\";\nimport { getUserId } from \"services/httpServices\";\nimport { btnCss, iconCss } from \"../../appConfig\";\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\nimport moment from \"moment\";\nimport { postMethod } from \"services/httpServices\";\nimport ReactPaginate from \"react-paginate\";\nimport jsPDF from \"jspdf\";\nimport * as XLSX from \"xlsx\";\nimport { getAmt } from \"services/util\";\nimport autoTable from \"jspdf-autotable\";\nimport Logo from \"../../assets/img/brand/project_logo.png\";\nimport { getUserName } from \"services/httpServices\";\n\nconst sortIS = {\n sortPOSID: 0,\n sortRegisteredDate: 0,\n sortRegisteredLocation: 0,\n sortTodaysSales: 0,\n sortMtdSales: 0,\n sortYtdSales: 0,\n};\n\nfunction Statements() {\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [sort, setSort] = useState(sortIS);\n const [sortBy, setSortBy] = useState(\"\");\n const [sortDirection, setSortDirection] = useState(\"asc\");\n const [searchText, setSearchText] = useState(\"\");\n const [posDeviceData, setPosDeviceData] = useState([]);\n const [allUsers, setAllUsers] = useState([]);\n const [startDate, setStartDate] = useState(null);\n const [endDate, setEndDate] = useState(null);\n const [users, setUsers] = useState([]);\n const [devices, setDevices] = useState([]);\n const [statements, setStatements] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const [pdfLoading, setPdfLoading] = React.useState(false);\n const [xlLoading, setXlLoading] = React.useState(false);\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n function fetchPosDeviceData() {\n getMethod(\"/api/POS/GetAllDevice\")\n .then((res) => {\n if (res.data?.length) {\n setPosDeviceData(res.data);\n }\n })\n .catch(console.log);\n }\n\n function fetchAllUsers() {\n getMethod(`/api/User/merchant/all?merchantUserId=${getUserId()}`)\n .then((res) => {\n if (res.data?.result?.length) {\n setAllUsers(res.data.result);\n }\n })\n .catch(console.log);\n }\n\n useEffect(() => {\n fetchPosDeviceData();\n fetchAllUsers();\n }, []);\n\n const sortHandle = (fieldValue, fieldName, sortBy) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\n setSortBy(sortBy);\n };\n\n const getAllData = () => {\n setLoading(true);\n postMethod(\n \"/api/MerchantProfile/GetTransactionDetails\",\n {\n merchantId: getUserId(),\n startDate: startDate,\n endDate: endDate,\n posMacIds: devices,\n posAgentUseIds: users,\n },\n \"post\"\n )\n .then((res) => {\n setStatements(res?.data?.result ?? []);\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n };\n\n let filteredData = statements.sort((a, b) => {\n if (sortDirection === \"asc\") {\n return typeof a[sortBy] === \"string\"\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\n : a[sortBy] - b[sortBy];\n } else if (sortDirection === \"desc\") {\n return typeof a[sortBy] === \"string\"\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\n : b[sortBy] - a[sortBy];\n } else {\n return 0;\n }\n });\n\n if (searchText) {\n filteredData = filteredData.filter((item) =>\n String(item?.tellerName).includes(searchText?.trim())\n );\n }\n\n const downloadPDF = (data, fields, fileName, extraInfo) => {\n const unit = \"pt\";\n const size = \"A4\"; // Use A1, A2, A3, or A4\n const orientation = \"portrait\"; // portrait or landscape\n\n const doc = new jsPDF(orientation, unit, size);\n\n // Add logo\n const logoUrl = Logo;\n doc.addImage(logoUrl, \"PNG\", 10, 10, 30, 30);\n doc.setFontSize(14);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text(\"Smartpay\", 40, 32); // Position the company name beside the logo\n\n // Add border below the logo\n doc.setDrawColor(238); // #eee in RGB\n doc.setLineWidth(0.5);\n doc.line(10, 45, 585, 45); // x1, y1, x2, y2\n\n // Add centered document title\n doc.setFontSize(14);\n doc.setFont(\"helvetica\", \"bold\");\n const titleWidth = doc.getTextWidth(fileName);\n const pageWidth = doc.internal.pageSize.width;\n const centerX = (pageWidth - titleWidth) / 2;\n doc.text(fileName, centerX, 65); // Center text horizontally\n\n // Add extra info below title\n doc.setFontSize(10);\n doc.setFont(\"helvetica\", \"normal\");\n\n const infoStartY = 80; // Start position below the title\n let lineSpacing = 15; // Spacing between lines\n let currentY = infoStartY;\n\n const extraFields = [\n // `Title: ${extraInfo.title ?? \"-\"}`,\n `Start Date: ${\n extraInfo?.startDate\n ? new Date(extraInfo.startDate).toLocaleString()\n : \"-\"\n }`,\n `End Date: ${\n extraInfo?.endDate ? new Date(extraInfo.endDate).toLocaleString() : \"-\"\n }`,\n `Merchant Name: ${extraInfo?.merchat ?? \"-\"}`,\n `User: ${extraInfo?.username ?? \"-\"}`,\n `Device: ${extraInfo?.posId ?? \"-\"}`,\n ];\n\n extraFields.forEach((field) => {\n doc.setFontSize(8);\n doc.text(field, 10, currentY);\n currentY += lineSpacing;\n });\n\n // Adjust table position based on extra fields\n const tableStartY = currentY + 10;\n\n autoTable(doc, {\n head: fields,\n body: data,\n startY: tableStartY - 10,\n theme: \"striped\",\n styles: {\n fillColor: \"#ffffff\",\n textColor: \"#000000\",\n fontSize: 8,\n },\n headStyles: {\n fillColor: \"#023f8a\",\n textColor: \"#ffffff\",\n fontSize: 8,\n fontStyle: \"bold\",\n },\n margin: { top: 5, left: 10, right: 10 },\n didDrawPage: () => {\n // Add timestamp and page numbers at the bottom of each page\n const pageHeight = doc.internal.pageSize.height;\n const pageWidth = doc.internal.pageSize.width;\n\n // Timestamp\n const timestamp = `Generated on: ${new Date().toLocaleString()}`;\n doc.setFontSize(8);\n doc.setFont(\"helvetica\", \"normal\");\n doc.text(timestamp, 10, pageHeight - 10); // Bottom-left corner\n\n // Page numbers\n const pageNumber = `Page ${doc.getNumberOfPages()}`;\n const textWidth = doc.getTextWidth(pageNumber);\n doc.text(pageNumber, pageWidth - textWidth - 10, pageHeight - 10); // Bottom-right corner\n },\n });\n\n doc.save(`${fileName}.pdf`);\n setPdfLoading(false);\n };\n\n const exportPDF = async () => {\n const allData = statements;\n setPdfLoading(true);\n let headers = [\n [\n \"Transaction Time/Date\",\n \"Transaction Ref\",\n \"Settlement Amount (Le)\",\n \"Commission (Le)\",\n \"Total Amount (Le)\",\n \"Customer\",\n \"Collected By\",\n \"Description\",\n ],\n ];\n\n let data = allData.map((teller) => [\n moment(teller.createdDate).format(\"MM/DD/YYYY hh:mm:ss\") ?? \"NA\",\n teller.transactionId ?? \"NA\",\n getAmt(teller.settlementAmout) ?? \"NA\",\n getAmt(teller.commission) ?? \"NA\",\n getAmt(teller.amount) ?? \"NA\",\n teller.fromPaymentName ?? \"NA\",\n teller.collectedBy ?? \"NA\",\n teller.description ?? \"NA\",\n ]);\n console.log({ allUsers, users });\n const extra = {\n merchat: getUserName(),\n startDate: startDate,\n endDate: endDate,\n posId: devices?.toString(),\n username: allUsers.find((i) => i.userId === users?.[0])?.fullName ?? \"-\",\n };\n downloadPDF(data, headers, \"Transactions\", extra);\n };\n\n const exportToXlsx = async (reportData) => {\n const allData = statements;\n\n const wb = XLSX.utils.book_new();\n let data = allData.map((mmo) => {\n return {\n \"Transaction Time/Date\":\n moment(mmo.createdDate).format(\"DD/MM/YYYY hh:mm:ss\") ?? \"NA\",\n \"Transaction Ref\": mmo.transactionId ?? \"NA\",\n \"Settlement Amount (Le)\": getAmt(mmo.settlementAmout) ?? \"NA\",\n \"Commission (Le)\": getAmt(mmo.commission) ?? \"NA\",\n \"Total Amount (Le)\": getAmt(mmo.totalAmount) ?? \"NA\",\n Customer: mmo.fromPaymentName ?? \"NA\",\n \"Collected By\": mmo.collectedBy ?? \"NA\",\n Description: mmo.description ?? \"NA\",\n };\n });\n\n let headings = [\n \"Transaction Time/Date\",\n \"Transaction Ref\",\n \"Settlement Amount (Le)\",\n \"Commission (Le)\",\n \"Total Amount (Le)\",\n \"Customer\",\n \"Collected By\",\n \"Description\",\n ];\n\n const ws = XLSX.utils.json_to_sheet(data);\n\n // Add the worksheet to the workbook\n XLSX.utils.book_append_sheet(wb, ws, \"Sheet1\");\n\n // Set up column headers\n ws[\"!cols\"] = headings.map((heading) => ({ wch: heading.length + 5 }));\n\n // Export the workbook to a file\n setTimeout(() => {\n setXlLoading(false);\n }, 1000);\n XLSX.writeFile(wb, \"report.xlsx\");\n };\n return (\n
\n
\n \n \n \n
\n
Start Date
\n
\n setStartDate(e.target.value)}\n >\n
\n
\n
\n
End Date
\n
\n setEndDate(e.target.value)}\n >\n
\n
\n
\n
Select User
\n ({\n key: i.userId,\n value: i.fullName,\n }))}\n onSelect={(e) => setUsers([...users, e.key])}\n />\n
\n
\n
Select POS
\n ({\n key: i.posSerialNumber,\n value: i.posDeviceName,\n }))}\n onSelect={(e) => setDevices([...devices, e.key])}\n />\n
\n
\n \n {filteredData.length > 0 && (\n <>\n \n Download PDF\n {pdfLoading && }\n \n \n Download XLSX\n {xlLoading && }\n \n \n )}\n
\n
\n {/* \n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n \n \n \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {filteredData.length > 0 &&\n filteredData\n .slice(currentPage * 10, (currentPage + 1) * 10)\n .map((teller, i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n {loading && }\n {!loading && !statements.length && }\n
Transaction Time/DateTransaction Ref Settlement Amount (Le)Commission (Le)Total Amount (Le)CustomerCollected ByDescription
\n {moment(teller.createdDate).format(\n \"DD/MM/YYYY hh:mm:ss\"\n ) ?? \"NA\"}\n {teller.transactionId ?? \"NA\"}\n {getAmt(teller.settlementAmout) ??\n \"NA\"}\n \n {getAmt(teller.commission) ?? \"NA\"}\n \n {getAmt(teller.totalAmount) ?? \"NA\"}\n {teller.fromPaymentName ?? \"NA\"}{teller.collectedBy ?? \"NA\"}{teller.description ?? \"NA\"}
\n \n {filteredData.length > 0 && (\n \n \n
\n \n Total Records : {filteredData.length}\n \n
\n \n\n \n \n \n
\n )}\n
{\" \"}\n
\n
\n
\n );\n}\n\nexport default Statements;\n","/* eslint-disable eqeqeq */\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport Header from \"components/Headers/Header\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n CardFooter,\n CardHeader,\n Col,\n Container,\n FormGroup,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Row,\n Table,\n} from \"reactstrap\";\nimport { getMethod } from \"services/httpServices\";\nimport { getUserId } from \"services/httpServices\";\nimport { btnCss, iconCss } from \"../../appConfig\";\nimport { getSortCls } from \"services/util\";\nimport ReactPaginate from \"react-paginate\";\n\nconst sortIS = {\n sortPOSID: 0,\n sortRegisteredDate: 0,\n sortTransactionDate: 0,\n sortNoOfTransactions: 0,\n sortTodaysSales: 0,\n sortMtdSales: 0,\n sortYtdSales: 0,\n};\n\nfunction Sales() {\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [sort, setSort] = useState(sortIS);\n const [sortBy, setSortBy] = useState(\"\");\n const [sortDirection, setSortDirection] = useState(\"asc\");\n const [searchText, setSearchText] = useState(\"\");\n const [currentPage, setCurrentPage] = useState(0);\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n\n function fetchData() {\n setLoading(true);\n getMethod(\"/api/MerchantProfile/SalesLandingPage?MerchantId=\" + getUserId())\n .then((res) => {\n if (res.data?.result?.length) {\n setData(res.data.result);\n }\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n }\n\n useEffect(() => {\n fetchData();\n }, []);\n\n const sortHandle = (fieldValue, fieldName, sortBy) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\n setSortBy(sortBy);\n };\n\n let filteredData = data.sort((a, b) => {\n if (sortDirection === \"asc\") {\n return typeof a[sortBy] === \"string\"\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\n : a[sortBy] - b[sortBy];\n } else if (sortDirection === \"desc\") {\n return typeof a[sortBy] === \"string\"\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\n : b[sortBy] - a[sortBy];\n } else {\n return 0;\n }\n });\n\n if (searchText) {\n filteredData = filteredData.filter((item) =>\n String(item?.tellerName).includes(searchText?.trim())\n );\n }\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n \n \n \n \n \n \n \n \n sortHandle(\n sort.sortTransactionDate,\n \"sortTransactionDate\",\n \"transactionDate\"\n )\n }\n >\n Date\n \n \n \n sortHandle(\n sort.sortNoOfTransactions,\n \"sortNoOfTransactions\",\n \"noOfTransactions\"\n )\n }\n >\n No. of Txns\n \n \n \n \n \n \n \n \n \n {filteredData.length > 0 &&\n filteredData\n .slice(currentPage * 10, (currentPage + 1) * 10)\n .map((teller, i) => {\n return (\n \n \n \n \n \n \n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredData.length && }\n
No. of POSNo. of Tellers No. of LocationsTotals Sales (Le)
\n {new Date(teller.transactionDate).toLocaleString() ??\n \"-\"}\n {teller.noOfTransactions ?? \"-\"}{teller?.noOfPOS ?? \"-\"}{teller?.noOfTellers ?? \"-\"}{teller?.noOfLocations ?? \"-\"}{teller.totalSales ?? \"-\"}
\n \n {filteredData.length > 0 && (\n \n \n
\n \n Total Records : {filteredData.length}\n \n
\n \n\n \n \n \n
\n )}\n
\n
\n
\n
\n );\n}\n\nexport default Sales;\n","import Header from \"components/Headers/Header\";\nimport React from \"react\";\nimport { Card, CardHeader, Container } from \"reactstrap\";\n\nfunction Maps() {\n return (\n
\n {\" \"}\n
\n \n \n Coming soon.\n \n \n
\n );\n}\n\nexport default Maps;\n","/* eslint-disable eqeqeq */\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport Header from \"components/Headers/Header\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n CardFooter,\n CardHeader,\n Col,\n Container,\n FormGroup,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Row,\n Table,\n} from \"reactstrap\";\nimport { getMethod } from \"services/httpServices\";\nimport { getUserId } from \"services/httpServices\";\nimport { btnCss, iconCss } from \"../../appConfig\";\nimport { getSortCls } from \"services/util\";\nimport ReactPaginate from \"react-paginate\";\n\nconst sortIS = {\n sortTellerID: 0,\n sortRegisteredDate: 0,\n sortTellerName: 0,\n sortTodaysSales: 0,\n sortMtdSales: 0,\n sortYtdSales: 0,\n};\n\nfunction POS() {\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [sort, setSort] = useState(sortIS);\n const [sortBy, setSortBy] = useState(\"\");\n const [sortDirection, setSortDirection] = useState(\"asc\");\n const [searchText, setSearchText] = useState(\"\");\n const [currentPage, setCurrentPage] = useState(0);\n\n function fetchData() {\n setLoading(true);\n getMethod(\"/api/MerchantProfile/POSLandingPage?MerchantId=\" + getUserId())\n .then((res) => {\n if (res.data?.result?.length) {\n setData(res.data.result);\n }\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n }\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n\n useEffect(() => {\n fetchData();\n }, []);\n\n const sortHandle = (fieldValue, fieldName, sortBy) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\n setSortBy(sortBy);\n };\n\n let filteredData = data.sort((a, b) => {\n if (sortDirection === \"asc\") {\n return typeof a[sortBy] === \"string\"\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\n : a[sortBy] - b[sortBy];\n } else if (sortDirection === \"desc\") {\n return typeof a[sortBy] === \"string\"\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\n : b[sortBy] - a[sortBy];\n } else {\n return 0;\n }\n });\n\n if (searchText) {\n filteredData = filteredData.filter((item) =>\n String(item?.registeredLocation).includes(searchText?.trim())\n );\n }\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n \n \n \n \n \n \n \n \n \n sortHandle(\n sort.sortRegisteredLocation,\n \"sortRegisteredDate\",\n \"registeredDate\"\n )\n }\n >\n Date Registered{\" \"}\n \n \n \n \n sortHandle(\n sort.sortTodaysSales,\n \"sortTodaysSales\",\n \"todaysSales\"\n )\n }\n >\n Today's Sales{\" \"}\n \n \n \n sortHandle(sort.sortMtdSales, \"sortMtdSales\", \"mtdSales\")\n }\n >\n MTD Sales{\" \"}\n \n \n \n sortHandle(sort.sortYtdSales, \"sortYtdSales\", \"ytdSales\")\n }\n >\n YTD Sales{\" \"}\n \n \n \n \n \n {filteredData.length > 0 &&\n filteredData\n .slice(currentPage * 10, (currentPage + 1) * 10)\n .map((teller, i) => {\n return (\n \n \n \n \n \n \n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredData.length && }\n
POS ID Registered Location
{teller.pos ?? \"-\"}{teller.registeredDate ?? \"-\"}{teller.registeredLocation ?? \"-\"}{teller.todaysSales ?? \"-\"}{teller.mtdSales ?? \"-\"}{teller.ytdSales ?? \"-\"}
\n \n {filteredData.length > 0 && (\n \n \n
\n \n Total Records : {filteredData.length}\n \n
\n \n\n \n \n \n
\n )}\n
{\" \"}\n
\n
\n
\n );\n}\n\nexport default POS;\n","export default __webpack_public_path__ + \"static/media/Apex-logo.7b071ba0.jpeg\";","export default __webpack_public_path__ + \"static/media/link-logo.ab656a24.png\";","export default __webpack_public_path__ + \"static/media/vult-logo.38f6a94e.png\";","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n InputGroupText,\n InputGroupAddon,\n InputGroup,\n Container,\n Row,\n Col,\n Label,\n Modal,\n ModalHeader,\n ModalBody,\n} from \"reactstrap\";\nimport Header from \"../../components/Headers/Header\";\nimport { useToasts } from \"react-toast-notifications\";\nimport { checkSpace, postMethod, getUserId } from \"services/httpServices\";\nimport { useHistory } from \"react-router\";\nimport swal from \"sweetalert\";\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport { getUserEmail } from \"services/httpServices\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\nimport { MOBILE_ONLY_COUNTRY } from \"appConfig\";\nimport { getAmt } from \"services/util\";\nimport { getLoginType } from \"services/httpServices\";\nimport { getSuperAgentId } from \"services/httpServices\";\nimport { useLocation, useParams } from \"react-router-dom/cjs/react-router-dom\";\nimport LapoLogo from \"../../assets/img/brand/lapologo.PNG\";\nimport NacsaLogo from \"../../assets/img/brand/nacsaLogo.png\";\nimport WellbodiLogo from \"../../assets/img/brand/wellbodi-logo.jpg\";\nimport SpayLogo from \"../../assets/img/brand/project_logo.png\";\nimport ApexLogo from \"../../assets/img/brand/Apex-logo.jpeg\";\nimport LinkLogo from \"../../assets/img/brand/link-logo.png\";\nimport VultLogo from \"../../assets/img/brand/vult-logo.png\";\nimport { getUserName } from \"services/httpServices\";\n\nconst initialValue = {\n toMobWithCC: \"\",\n toMobWithoutCC: \"\",\n toMobCC: \"\",\n amount: \"\",\n pin: \"\",\n otp: \"\",\n};\nconst STR = `Please enter the mobile number whom you want to transfer`;\n\nconst paymentToOptions = [\n {\n name: \"Lapo\",\n value: \"Lapo\",\n logo: LapoLogo,\n },\n {\n name: \"NaCSA\",\n value: \"Nacsa\",\n logo: NacsaLogo,\n },\n {\n name: \"Wellbodi\",\n value: \"wellbodi\",\n logo: WellbodiLogo,\n },\n {\n name: \"SmartPay\",\n value: \"SmartPay\",\n logo: SpayLogo,\n },\n {\n name: \"Apex\",\n value: \"Apex\",\n logo: ApexLogo,\n },\n {\n name: \"Link\",\n value: \"Link\",\n logo: LinkLogo,\n },\n {\n name: \"Vult\",\n value: \"Vult\",\n logo: VultLogo,\n },\n];\n\nconst CashoutSubAgent = (props) => {\n const [values, setValues] = useState(initialValue);\n const [subsInfo, setSubsInfo] = React.useState({});\n const [SubscriberDetails, setSubscriberDetails] = React.useState({});\n const [toUserInfo, setToUserInfo] = React.useState({});\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const [spinner, setSpinner] = React.useState(false);\n const [use1FA, set1FA] = React.useState(false);\n const [use2FA, set2FA] = React.useState(false);\n const [showPswd, setShowPswd] = React.useState(false);\n const [form, setForm] = React.useState(1);\n const [resendLoader, setResendLoader] = React.useState(false);\n const [paymentTo, setPaymentTo] = useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n\n const { addToast } = useToasts();\n const history = useHistory();\n const routeName = useLocation();\n let loginType = getLoginType();\n // console.log(routeName.pathname);\n\n /**======================== React Hooks ==========================*/\n\n useEffect(() => {\n if (paymentTo === \"SmartPay\") {\n fetchSubs();\n }\n }, [paymentTo]);\n\n /**======================== File Functions ==========================*/\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const openModal = (msg) => {\n swal({\n // title: msg,\n icon: \"success\",\n text: msg,\n allowOutsideClick: false,\n allowEscapeKey: false,\n closeOnClickOutside: false,\n buttons: {\n confirm: {\n text: \"Ok\",\n visible: true,\n closeModal: true,\n className: \"sweet-btn\",\n },\n },\n }).then((confirm) => {\n setSpinner(false);\n if (confirm) {\n setForm(3);\n } else {\n setForm(3);\n }\n });\n };\n\n const phoneChange = (value, data, event, formattedValue) => {\n if (data.dialCode && data.dialCode.length) {\n setValues({\n ...values,\n toMobWithCC: value,\n toMobCC: data.dialCode,\n toMobWithoutCC: value.substring(data.dialCode.length),\n });\n }\n return;\n };\n\n const goBack1 = () => {\n setValues(initialValue);\n setToUserInfo({});\n setForm(1);\n };\n\n const goBack2 = () => {\n setValues({ ...values, otp: \"\", pin: \"\" });\n setForm(2);\n };\n\n const resendOtp = (e) => {\n e.preventDefault();\n setValues({ ...values, otp: \"\" });\n setResendLoader(true);\n genOtp();\n };\n\n const checkForm = () => {\n if (form == 2 || form == 3) {\n return true;\n } else {\n return false;\n }\n };\n\n /**======================== Form Validation function ==========================*/\n\n const handleSubmit1 = (e) => {\n e?.preventDefault();\n const validationErrors = validate1(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n setOpenDelModal(true);\n // handleCashout();\n }\n };\n\n const validate1 = (inputs) => {\n var errors = {};\n if (!inputs.toMobWithCC) {\n errors.toMobWithCC = \"Phone number is required\";\n } else if (!inputs.toMobWithoutCC) {\n errors.toMobWithCC = \"Phone number is required\";\n }\n\n if (!inputs.amount) {\n errors.amount = \"amount is required\";\n }\n\n return errors;\n };\n\n const handleSubmit2 = (e) => {\n e.preventDefault();\n const validationErrors = validate2(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n verifyPinV2();\n }\n };\n\n const validate2 = (inputs) => {\n var errors = {};\n if (!inputs.amount) {\n errors.amount = \"Amount is required\";\n }\n if (!inputs.pin) {\n errors.pin = \"Pin is required\";\n }\n return errors;\n };\n\n const handleSubmit3 = (e) => {\n e.preventDefault();\n const validationErrors = validate3(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n transferMoney();\n }\n };\n\n const validate3 = (inputs) => {\n var errors = {};\n if (!inputs.amount) {\n errors.amount = \"Amount is required\";\n }\n if (!inputs.pin) {\n errors.pin = \"Pin is required\";\n }\n if (use2FA && !inputs.otp) {\n errors.otp = \"OTP is required\";\n }\n if (!toUserInfo || !toUserInfo.userId) {\n errors.toUserId = \"To userid is required\";\n }\n return errors;\n };\n\n const handleInputChange = (ev) => {\n var { name, value } = ev.target;\n value = value.trim();\n if (name === \"amount\") {\n if (value == \"\") {\n setValues({ ...values, [name]: value });\n } else {\n if (checkNumberOnly(value)) {\n setValues({ ...values, [name]: value });\n } else {\n setValues({ ...values, [name]: \"\" });\n }\n }\n } else if (name === \"password\") {\n if (pinValidation(value)) {\n setValues({ ...values, [name]: value });\n }\n } else if (name === \"otp\") {\n if (checkOTP(value)) {\n setValues({ ...values, [name]: value });\n }\n } else {\n setValues({ ...values, [name]: value });\n }\n };\n\n const checkOTP = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (digiRegex.test(value)) {\n if (value.length <= 6) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n const pinValidation = (value) => {\n let digiRegex = /^[0-9]*$/;\n if (value.length <= 4) {\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n const checkNumberOnly = (value) => {\n // let digiRegex = /^[0-9]*$/;\n let digiRegex = /^[+-]?([1-9]+\\.?[0-9]*|\\.[0-9]+)$/;\n if (digiRegex.test(value)) {\n return true;\n } else {\n return false;\n }\n };\n\n /**======================== API Calls ==========================*/\n\n const fetchSubs = () => {\n let errorMsg = \"\";\n let id = getUserId();\n\n let url = \"\";\n if (loginType === \"Super Agent\") {\n url = \"/api/agent/GetSuperAgent/\" + id;\n } else if (loginType === \"Master Agent\") {\n url = \"/api/Agent/GetMasterAgentById/\" + id;\n } else if (loginType === \"Agent\") {\n setForm(2);\n checkToMob();\n return;\n } else {\n url = \"/api/Subscriber/GetByUserId/\" + id;\n }\n setLoading(true);\n postMethod(url, null, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n setSubsInfo(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg =\n res.data.responseMessage || \"Error in fetching subscriber info\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching subscriber info\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const checkToMob = () => {\n let errorMsg = \"\";\n setSpinner(true);\n\n let url = \"\";\n if (loginType === \"Super Agent\") {\n url = \"/api/Transactions/validateSubAgent/\";\n } else if (loginType === \"Master Agent\") {\n url = \"/api/Transactions/validateSuperAgent/\";\n } else if (loginType === \"Agent\") {\n url = \"/api/Agent/GetSuperAgent/\" + getSuperAgentId();\n } else {\n if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\n // url = \"/api/Transactions/validateSubAgent-Subscriber/\";\n url = \"/api/Transactions/CashOutToOtherPlatform\";\n } else {\n url = \"/api/Transactions/validateSubscriber/\";\n }\n }\n postMethod(url + values.toMobWithCC, {}, \"post\")\n .then((res) => {\n setSpinner(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n setToUserInfo({\n ...res.data.result,\n userId:\n res.data.result?.userId || res.data?.result?.userProfileId,\n });\n setForm(2);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg =\n res.data.responseMessage || \"Error in fetching user info\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching user info\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setSpinner(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const verifyPinV2 = () => {\n var errorMsg = \"\";\n // var data = {\n // \"PaymentAmount\": Number(values.amount),\n // \"Password\": values.pin,\n // \"Email\": getUserEmail().trim(),\n // \"PaymentType\": \"BalanceTransfer\"\n // };\n\n var data = {\n PaymentAmount: Number(values.amount),\n Password: values.pin,\n Email: getUserEmail().trim(),\n PaymentType: \"BalanceTransfer\",\n };\n let url = \"\";\n\n if (loginType === \"Super Agent\") {\n url = \"/api/agent/GetSubAgentDetails\";\n data.Email = subsInfo.mobNumber;\n } else if (loginType === \"Master Agent\") {\n url = \"/api/Agent/GetSuperAgentDetails\";\n data.Email = subsInfo.mobNumber;\n } else if (loginType === \"Agent\") {\n url = \"/api/Agent/GetSuperAgent/\" + getSuperAgentId();\n } else {\n if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\n url = \"/api/Subscriber/GetSubscriberDetailsForCashout/\";\n } else {\n url = \"/api/Subscriber/GetSubscriberDetails/\";\n }\n }\n setSpinner(true);\n // let url = '/api/pos/PaymentPinVerification';\n postMethod(url, JSON.stringify(data), \"post\")\n .then((res) => {\n if (res.data) {\n if (res.data.responseCode === \"200\") {\n let result = res.data.result;\n setSubscriberDetails(result);\n if (result.authFactorType == \"1FA\") {\n set1FA(true);\n set2FA(false);\n } else if (result.authFactorType == \"2FA\") {\n set1FA(false);\n set2FA(true);\n } else {\n set1FA(false);\n set2FA(false);\n }\n verifyPinHandle(result);\n } else if (res.data.responseCode === \"400\") {\n errorMsg = res.data.responseMessage || \"Error in validating pin\";\n notifyFailed(errorMsg);\n setSpinner(false);\n } else {\n errorMsg = \"Unknown error in validating pin\";\n notifyFailed(errorMsg);\n setSpinner(false);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n setSpinner(false);\n }\n })\n .catch((err) => {\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n setSpinner(false);\n });\n };\n\n const verifyPinHandle = (result) => {\n if (result.authFactorType == \"2FA\") {\n genOtp();\n } else {\n setSpinner(false);\n setForm(3);\n }\n };\n\n const genOtp = () => {\n var errorMsg = \"\";\n var data = JSON.stringify({\n UserId: getUserId(),\n OtpType: \"BalanceTransfer\",\n });\n let url = \"/api/Transactions/Sendotp\";\n postMethod(url, data, \"post\")\n .then((res) => {\n setSpinner(false);\n setResendLoader(false);\n if (res.data) {\n if (res.data.responseCode === \"200\") {\n let msg = res.data.responseMessage || \"Otp sent\";\n // notifySuccess(msg);\n openModal(msg);\n } else if (res.data.responseCode === \"400\") {\n errorMsg = res.data.responseMessage || \"Error in generating otp\";\n notifyFailed(errorMsg);\n setSpinner(false);\n } else {\n errorMsg = \"Unknown error in generating otp\";\n notifyFailed(errorMsg);\n setSpinner(false);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n setSpinner(false);\n }\n })\n .catch((err) => {\n setSpinner(false);\n setResendLoader(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const transferMoney = () => {\n var errorMsg = \"\";\n var data = {\n ToUserId: toUserInfo.userId,\n Amount: Number(values.amount),\n PIN: values.pin,\n };\n if (use2FA) {\n data[\"Otp\"] = values.otp;\n }\n setSpinner(true);\n\n let url = \"\";\n if (loginType === \"Super Agent\") {\n url = \"/api/Transactions/walletBalanceTransferToSubAgent\";\n } else if (loginType === \"Master Agent\") {\n url = \"/api/Transactions/walletBalanceTransferToSuperAgent\";\n } else if (loginType === \"Agent\") {\n url = \"/api/Transactions/walletBalanceTransferToSuperAgentReverse\";\n data.ToUserId = getSuperAgentId();\n } else {\n if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\n url = \"/api/Transactions/walletBalanceTransferToSubAgentFromSubscriber\";\n } else {\n url = \"/api/Transactions/walletBalanceTransfer\";\n }\n }\n postMethod(url, data, \"post\")\n .then((res) => {\n setSpinner(false);\n if (res.data) {\n if (res.data.responseCode === \"200\") {\n let msg = res.data.responseMessage || \"Amount Transferred\";\n notifySuccess(msg);\n history.push(\"/index\");\n } else if (res.data.responseCode === \"400\") {\n errorMsg =\n res.data.responseMessage || \"Error in transferring amount\";\n notifyFailed(errorMsg);\n } else {\n errorMsg = \"Unknown error in transferring amount\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setSpinner(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const handleCashout = () => {\n var errorMsg = \"\";\n var data = {\n walletOrAccount: values.toMobWithoutCC,\n subAgentName: getUserName(),\n amount: Number(values.amount),\n platform: paymentTo === \"Nacsa\" ? \"NACSA\" : paymentTo,\n };\n\n setSpinner(true);\n\n let url = \"\";\n if (loginType === \"Super Agent\") {\n url = \"/api/Transactions/walletBalanceTransferToSubAgent\";\n } else if (loginType === \"Master Agent\") {\n url = \"/api/Transactions/walletBalanceTransferToSuperAgent\";\n } else if (loginType === \"Agent\") {\n // url = \"/api/Transactions/walletBalanceTransferToSuperAgentReverse\";\n // data.ToUserId = getSuperAgentId();\n url = \"/api/Transactions/CashOutToOtherPlatform\";\n } else {\n // if (routeName.pathname.includes(\"cash-out\") && loginType === \"Agent\") {\n // url = \"/api/Transactions/walletBalanceTransferToSubAgentFromSubscriber\";\n // } else {\n url = \"/api/Transactions/walletBalanceTransfer\";\n // }\n }\n postMethod(url, data, \"post\")\n .then((res) => {\n setSpinner(false);\n if (res.data) {\n if (res.data.responseCode === \"200\") {\n let msg = res.data.responseMessage || \"Amount Transferred\";\n notifySuccess(msg);\n history.push(\"/index\");\n } else if (res.data.responseCode === \"400\") {\n errorMsg =\n res.data.responseMessage || \"Error in transferring amount\";\n notifyFailed(errorMsg);\n } else {\n errorMsg = \"Unknown error in transferring amount\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setSpinner(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n return (\n <>\n \n \n

Confirm Cashout

\n
\n\n \n
\n
\n

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

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

Cash Out

\n \n
\n
\n \n {loading && }\n {paymentTo === null && (\n \n {paymentToOptions.map((item) => (\n \n setPaymentTo(item.value)}\n className=\"h-25 w-100 my-4 flex shadow--hover bg-white-original justify-content-center align-items-center p-4 border pointer-event\"\n >\n \n
{item.name}
\n
\n \n ))}\n
\n )}\n {!loading && (\n <>\n {form == 1 &&\n loginType === \"Agent\" &&\n (paymentTo === \"Lapo\" ||\n paymentTo === \"Nacsa\" ||\n paymentTo === \"wellbodi\" ||\n paymentTo === \"Apex\" ||\n paymentTo === \"Link\" ||\n paymentTo === \"Vult\") && (\n
\n \n \n \n \n {paymentTo} Wallet Id\n \n \n\n {errors.toMobWithCC && (\n
\n * {errors.toMobWithCC}\n
\n )}\n
\n \n
\n \n \n \n \n Amount\n \n \n {errors.amount && (\n
\n * {errors.amount}\n
\n )}\n
\n \n
\n \n \n
\n {\n setPaymentTo(null);\n setForm(1);\n }}\n >\n Back{\" \"}\n \n \n Submit{\" \"}\n \n
\n \n
\n
\n )}\n\n {checkForm() && (\n \n \n User Details\n
\n
\n \n Transfer to -{\" \"}\n {toUserInfo.subscriberName ||\n toUserInfo?.fullName}\n \n
\n
\n \n Mobile Number -{\" \"}\n {`(${\n toUserInfo.mobileCodeId ||\n toUserInfo?.mobileCode\n }) - ${\n loginType === \"Agent\"\n ? toUserInfo?.mobileNumber\n : toUserInfo?.mobNumber\n }`}\n \n
\n
\n \n Email - {toUserInfo.email}\n \n
\n {form == 3 && (\n
\n \n Amount -  \n Le  \n {getAmt(values.amount)}\n \n
\n )}\n
\n {routeName.pathname.includes(\"cash-out\") ? (\n \n Fees - Le {SubscriberDetails.fees}\n  (Sub Agent Commission:{\" \"}\n \n {SubscriberDetails.commissionWillCredit}\n {\" \"}\n & Subscriber Commission:{\" \"}\n {SubscriberDetails.actualCommission})\n \n ) : null}\n
\n
\n \n
\n )}\n\n {form == 2 && (\n
\n \n \n \n \n Amount\n \n \n {errors.amount && (\n
\n * {errors.amount}\n
\n )}\n
\n \n
\n\n \n \n \n \n PIN\n \n\n \n \n {!showPswd && (\n \n \n setShowPswd(true)}\n />\n \n \n )}\n\n {showPswd && (\n \n \n setShowPswd(false)}\n />\n \n \n )}\n \n {errors.pin && (\n
\n * {errors.pin}\n
\n )}\n
\n \n
\n\n \n {loginType !== \"Agent\" && (\n \n
\n \n \n   Back\n \n
\n \n )}\n\n \n
\n {\n setPaymentTo(null);\n setForm(1);\n }}\n >\n Back{\" \"}\n {spinner && (\n \n )}\n \n \n Submit{\" \"}\n {spinner && (\n \n )}\n \n
\n \n \n
\n )}\n\n {form == 3 && (\n
\n {use2FA && (\n \n \n \n \n OTP\n \n\n
\n \n \n Resend\n {\" \"}\n    \n {resendLoader && (\n \n \n
\n )}\n \n \n\n \n
\n \n \n * we have sent you an OTP on your\n registered mobile number / email\n \n \n
\n {errors.otp && (\n
\n * {errors.otp}\n
\n )}\n
\n \n
\n )}\n\n \n \n
\n \n   Back\n \n
\n \n \n
\n \n Submit{\" \"}\n {spinner && (\n \n )}\n \n
\n \n
\n
\n )}\n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default CashoutSubAgent;\n","/* eslint-disable no-mixed-operators */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable eqeqeq */\n\nimport React, { useEffect, useState } from \"react\";\n\n// reactstrap components\nimport { Card, CardHeader, Table, Row, Button, Col } from \"reactstrap\";\n// core components\nimport { useToasts } from \"react-toast-notifications\";\nimport { postMethod } from \"../../services/httpServices\";\n\nconst CardsList = (props) => {\n const [loading, setLoading] = useState(false);\n const [filteredList, setFilteredList] = useState([]);\n\n const { addToast } = useToasts();\n\n useEffect(() => {\n if (props?.customerId) {\n fetchNFC(props?.customerId);\n }\n }, []);\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const fetchNFC = async (customerId) => {\n let errorMsg = \"\";\n setLoading(true);\n\n postMethod(\n \"/api/POS/Search/GetSmartPayCardByCustomerId?Id=\" + customerId,\n {},\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setFilteredList(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n return (\n <>\n {/* Page content */}\n
\n {/* Table */}\n \n
\n \n \n \n \n

Customer Cards List

\n \n \n \n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 ? (\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n\n \n\n {/* */}\n \n );\n })\n ) : (\n \n \n {\" \"}\n {loading ? \"Loading...\" : \"No Cards Available!\"}\n \n \n )}\n \n
Card NameIDSerial NumberStatuscreatedBycreatedDate
{mmo.nfcCardName}{mmo.nfcCardID}{mmo.nfcCardClientID}\n \n {mmo.createdBy}\n {new Date(mmo.createdDate).toLocaleDateString()}\n \n {privileges.edit && (\n {\n setEditObj(mmo);\n setOpenEditModal(true);\n }}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n \n )}\n {!mmo.isBlock ? (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n ) : (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )}\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default CardsList;\n","import React from \"react\";\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Row,\n Col,\n FormText,\n} from \"reactstrap\";\nimport { postMethod } from \"services/httpServices\";\nimport CryptoJS from \"crypto-js\";\nimport OTPInput from \"react-otp-input\";\n\nfunction FSPCustomerResetPin({ closeModal, customerId }) {\n const [values, setValues] = React.useState({ pin: \"\", confirmPin: \"\" });\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n\n const { addToast } = useToasts();\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const validate = (inputs) => {\n let errors = {};\n if (\n !String(inputs.pin)?.trim().length ||\n String(inputs.pin)?.trim().length !== 4\n ) {\n errors.pin = \"Pin must be 4 digits long\";\n }\n if (inputs.pin !== inputs.confirmPin) {\n errors.confirmPin = \"Pin and Confirm pin mismatch\";\n }\n\n return errors;\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const encryptText = (textToEncrypt, key = \"PaymentPIN\") => {\n const keyBytes = CryptoJS.enc.Utf8.parse(\n key.padEnd(16, \" \").substring(0, 16)\n );\n const iv = keyBytes;\n\n const encrypted = CryptoJS.AES.encrypt(textToEncrypt, keyBytes, {\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n });\n\n return encrypted.toString();\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n const payload = {\n pin: encryptText(values.pin),\n id: customerId,\n };\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/FSP/Customer/ResetPin\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n }\n };\n\n return (\n
\n \n \n \n \n \n \n

Reset FSP Customer PIN

\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n PIN\n \n setValues({ ...values, pin: e })}\n inputStyle={{\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"12px\",\n border: \"1px solid #ddd\",\n marginRight: \"8px\",\n }}\n inputType=\"password\"\n numInputs={4}\n renderSeparator={ }\n renderInput={(props) => }\n />\n {errors.pin && (\n
\n * {errors.pin}\n
\n )}{\" \"}\n
\n \n \n \n \n Confirm PIN\n \n \n setValues({ ...values, confirmPin: e })\n }\n inputStyle={{\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"12px\",\n border: \"1px solid #ddd\",\n marginRight: \"8px\",\n }}\n numInputs={4}\n inputType=\"password\"\n renderSeparator={ }\n renderInput={(props) => }\n />\n {errors.confirmPin && (\n
\n * {errors.confirmPin}\n
\n )}\n
\n \n
\n
\n\n \n {loading ? \"Loading...\" : \"Submit\"}\n \n \n
\n
\n \n
\n
\n );\n}\n\nexport default FSPCustomerResetPin;\n","/* eslint-disable eqeqeq */\nimport React, { useEffect, useState } from \"react\";\nimport ReactPaginate from \"react-paginate\";\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n Button,\n Card,\n CardFooter,\n CardHeader,\n Col,\n Container,\n FormGroup,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Modal,\n ModalBody,\n ModalHeader,\n Row,\n Table,\n} from \"reactstrap\";\n\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport Header from \"components/Headers/Header\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { getMethod, postMethod } from \"services/httpServices\";\nimport { getSortCls } from \"services/util\";\n\nimport { btnCss, iconCss } from \"../../appConfig\";\n\nimport CardsList from \"./cards-list\";\nimport FSPCustomerResetPin from \"./fsp-customer-reset-pin\";\n\nconst sortIS = {\n sortFullName: 0,\n};\n\nfunction FSPCustomersList() {\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [sort, setSort] = useState(sortIS);\n const [sortBy, setSortBy] = useState(\"\");\n const [sortDirection, setSortDirection] = useState(\"asc\");\n const [searchText, setSearchText] = useState(\"\");\n const [currentPage, setCurrentPage] = useState(0);\n const [deleteObj, setDeleteObj] = React.useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n const [isCardModalOpen, setIsOpenCardModal] = React.useState(false);\n const [openReset, setOpenReset] = React.useState(false);\n const [modalLoading, setModalLoading] = React.useState(false);\n const [fsps, setFsps] = React.useState([]);\n const [selectedFsp, setSelectedFsp] = useState(null);\n\n const { addToast } = useToasts();\n\n const fetchAllFsps = async () => {\n let errorMsg = \"\";\n setLoading(true);\n getMethod(\"/api/FSP/GetAll\", \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data?.result?.length) {\n setFsps([]);\n } else {\n setFsps(res.data.result);\n }\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n function fetchData() {\n setLoading(true);\n getMethod(\"/api/FSP/Profile/Customers\")\n .then((res) => {\n if (res.data?.result?.length) {\n setData(res.data.result);\n }\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n }\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n };\n\n useEffect(() => {\n fetchData();\n fetchAllFsps();\n }, []);\n\n const sortHandle = (fieldValue, fieldName, sortBy) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n setSortDirection(sortDirection === \"asc\" ? \"desc\" : \"asc\");\n setSortBy(sortBy);\n };\n\n let filteredData = data.sort((a, b) => {\n if (sortDirection === \"asc\") {\n return typeof a[sortBy] === \"string\"\n ? String(a[sortBy]).localeCompare(String(b[sortBy]))\n : a[sortBy] - b[sortBy];\n }\n if (sortDirection === \"desc\") {\n return typeof a[sortBy] === \"string\"\n ? String(b[sortBy]).localeCompare(String(a[sortBy]))\n : b[sortBy] - a[sortBy];\n }\n return 0;\n });\n\n if (searchText) {\n filteredData = filteredData.filter((item) =>\n String(item?.fullName)\n .toLocaleLowerCase()\n .includes(searchText?.trim().toLocaleLowerCase())\n );\n }\n\n if(selectedFsp) {\n filteredData = filteredData.filter(i => {\n if(selectedFsp) {\n return selectedFsp == i.fspId\n } else {\n return true\n }\n })\n }\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const closeDeleteModal = () => {\n setDeleteObj(null);\n fetchData();\n setOpenDelModal(false);\n setOpenReset(false);\n setIsOpenCardModal(false);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const deleteFsp = () => {\n let errorMsg = \"\";\n setModalLoading(true);\n const url = `/api/FSP/Customer/Block/${deleteObj.id}`;\n postMethod(url, {}, \"post\")\n .then((res) => {\n setModalLoading(false);\n if (typeof res.data === \"string\") {\n const text = deleteObj.isBlocked\n ? \"FSP Customer unblocked successfully\"\n : \"FSP Customer blocked successfully\";\n notifySuccess(text);\n closeDeleteModal();\n return;\n }\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n const text = deleteObj.isBlocked\n ? \"FSP Customer unblocked successfully\"\n : \"FSP Customer blocked successfully\";\n notifySuccess(text);\n closeDeleteModal();\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch(() => {\n setModalLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const openDelete = (mmo) => {\n setDeleteObj(mmo);\n setOpenDelModal(true);\n };\n\n const openResetModal = (mmo) => {\n setDeleteObj(mmo);\n setOpenReset(true);\n };\n\n const openCardsModal = (mmo) => {\n setDeleteObj(mmo);\n setIsOpenCardModal(true);\n };\n\n const getBlockText = () => {\n let str = \"block\";\n if (deleteObj.isBlocked) {\n str = \"unblock\";\n }\n\n return `Are you sure you want to ${str} ${deleteObj?.fullName} FSP Customer ?`;\n };\n\n return (\n
\n
\n \n \n \n

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

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

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

\n )}\n

{getBlockText()}

\n
\n \n Yes{\" \"}\n {modalLoading && }\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n {openReset && (\n \n \n \n \n \n )}\n\n {isCardModalOpen && (\n \n \n \n \n \n )}\n\n \n \n
\n \n \n {\n setSelectedFsp(e.target.value);\n }}\n >\n \n {fsps?.map((item) => (\n \n ))}\n \n \n
\n\n
\n \n \n \n \n \n \n \n setSearchText(e.target.value)}\n />\n \n \n \n \n \n
\n
\n \n \n \n \n \n sortHandle(sort.sortFullName, \"sortFullName\", \"fullName\")\n }\n >\n Full Name\n \n \n \n \n \n \n \n \n \n \n \n {filteredData.length > 0 &&\n filteredData\n .slice(currentPage * 10, (currentPage + 1) * 10)\n .map((teller, i) => {\n return (\n \n \n \n \n \n \n \n \n {teller.verificationStatus === \"Verified\" ? (\n \n ) : teller.verificationStatus === \"Pending\" ? (\n \n ) : (\n \"-\"\n )}\n \n\n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredData.length && }\n
Customer IdEmailPhoneGenderDOBVerification StatusActions
{teller.customerId ?? \"-\"}{teller.fullName ?? \"-\"}{teller.email ?? \"-\"}{`${teller.mobileCode ?? \"\"} ${\n teller.mobileNumber ?? \"-\"\n }`}\n {teller.gender === \"M\" ? (\n \n ) : teller.gender === \"F\" ? (\n \n ) : (\n \"-\"\n )}\n \n {new Date(teller.dateOfBirth).toLocaleDateString() ??\n \"-\"}\n \n {!teller.isBlocked ? (\n openDelete(teller)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n ) : (\n openDelete(teller)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )}\n openResetModal(teller)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Reset PIN\"\n >\n \n \n openCardsModal(teller)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"View Cards\"\n >\n \n \n
\n \n {filteredData.length > 0 && (\n \n \n
\n \n Total Records : {filteredData.length}\n \n
\n \n\n \n \n \n
\n )}\n
{\" \"}\n
\n
\n
\n );\n}\n\nexport default FSPCustomersList;\n","import React, { useEffect } from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n checkSpace,\n getUserName,\n postMethod,\n} from \"../../services/httpServices\";\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\nimport PhoneInput from \"react-phone-input-2\";\n\nconst initialValue = {\n cardSchemeName: \"\",\n issuerName: \"\",\n issuerAddress: \"\",\n issuerPhone: \"\",\n issuerEmail: \"\",\n accountStatus: \"\",\n cardApplication: \"\",\n groupId: 0,\n groupName: \"\",\n pinRule: \"\",\n createdBy: \"\",\n id: 0,\n};\n\nconst AddNFC = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [groups, setGroups] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n\n const { addToast } = useToasts();\n\n useEffect(() => {\n fetchGroups();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n\n const phoneChange = (value, data, event, formattedValue) => {\n if (data.dialCode && data.dialCode.length) {\n changeState({\n ...values,\n issuerPhone: value.substring(data.dialCode.length),\n });\n }\n return;\n };\n\n const fetchGroups = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/GetAll\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setGroups(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const validate = (inputs) => {\n let errors = {};\n if (!inputs.issuerPhone) {\n errors.issuerPhone = \"Phone is required\";\n }\n if (!inputs.pinRule) {\n errors.pinRule = \"PIN Rule is required\";\n }\n if (!inputs.accountStatus) {\n errors.accountStatus = \"Account Status is required\";\n }\n if (!inputs.cardApplication) {\n errors.cardApplication = \"Card application is required\";\n }\n if (inputs.cardApplication === \"Closed-Loop\" && !inputs.groupName) {\n errors.groupName = \"Group Name is required\";\n }\n\n return errors;\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const payload = {\n ...values,\n createdBy: getUserName(),\n createdDate: new Date(),\n };\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/CardSchemes/Add\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n return (\n
\n \n \n \n \n \n \n

Add Card Scheme

\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n Card Scheme Name *\n \n \n \n \n \n \n
\n \n \n
Issuer Information
\n \n \n \n \n Name *\n \n \n \n \n \n \n \n Email *\n \n \n \n \n \n \n \n Phone No *\n \n \n {errors.issuerPhone && (\n
\n * {errors.issuerPhone}\n
\n )}\n
\n \n \n \n \n Address *\n \n \n \n \n \n
\n \n \n \n \n PIN Rule *\n \n \n setValues({ ...values, pinRule: e.key })\n }\n dropdownVersion={2}\n />\n {errors.pinRule && (\n
\n * {errors.pinRule}\n
\n )}\n
\n \n \n \n \n Account Status *\n \n \n setValues({ ...values, accountStatus: e.key })\n }\n dropdownVersion={2}\n />\n {errors.accountStatus && (\n
\n * {errors.accountStatus}\n
\n )}\n
\n \n \n \n \n Card Application *\n \n \n setValues({ ...values, cardApplication: e.key })\n }\n dropdownVersion={2}\n />\n {errors.cardApplication && (\n
\n * {errors.cardApplication}\n
\n )}\n
\n \n {values.cardApplication === \"Closed-Loop\" && (\n \n \n \n POS Group *\n \n \n setValues({\n ...values,\n groupId: e.key,\n groupName: e.value,\n })\n }\n dropdownVersion={2}\n options={groups\n .filter((i) => !i.isDeleted && !i.isBlocked)\n ?.map((i) => ({\n key: i?.id,\n value: i?.groupName,\n }))}\n />\n {errors.groupName && (\n
\n * {errors.groupName}\n
\n )}\n
\n \n )}\n
\n
\n\n \n {loading ? \"Loading...\" : \"Submit\"}\n \n \n
\n
\n \n
\n
\n );\n};\n\nexport default AddNFC;\n","import React, { useEffect } from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n checkSpace,\n getUserName,\n postMethod,\n} from \"../../services/httpServices\";\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\nimport PhoneInput from \"react-phone-input-2\";\n\nconst initialValue = {\n cardSchemeName: \"\",\n issuerName: \"\",\n issuerAddress: \"\",\n issuerPhone: \"\",\n issuerEmail: \"\",\n accountStatus: \"\",\n cardApplication: \"\",\n pinRule: \"\",\n createdBy: \"\",\n id: 0,\n};\n\nconst cardApps = [\n {\n key: \"Standalone\",\n value: \"Standalone\",\n },\n {\n key: \"Linked\",\n value: \"Linked\",\n },\n];\n\nconst pinRules = [\n {\n key: \"No-PIN\",\n value: \"No-PIN\",\n },\n {\n key: \"Tiered-PIN\",\n value: \"Tiered-PIN\",\n },\n {\n key: \"All-PIN\",\n value: \"All-PIN\",\n },\n];\n\nconst cardApps2 = [\n {\n key: \"Closed-Loop\",\n value: \"Closed-Loop\",\n },\n {\n key: \"Open Access\",\n value: \"Open Access\",\n },\n];\n\nconst AddNFC = (props) => {\n const [values, setValues] = React.useState(props?.values ?? initialValue);\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const [groups, setGroups] = React.useState([]);\n\n const { addToast } = useToasts();\n\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n useEffect(() => {\n fetchGroups();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const fetchGroups = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/GetAll\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setGroups(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n\n const phoneChange = (value, data, event, formattedValue) => {\n if (data.dialCode && data.dialCode.length) {\n changeState({\n ...values,\n issuerPhone: value.substring(data.dialCode.length),\n });\n }\n return;\n };\n\n const validate = (inputs) => {\n let errors = {};\n if (!inputs.issuerPhone) {\n errors.issuerPhone = \"Phone is required\";\n }\n if (!inputs.pinRule) {\n errors.pinRule = \"PIN Rule is required\";\n }\n if (!inputs.cardApplication) {\n errors.cardApplication = \"Card application is required\";\n }\n\n return errors;\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const payload = {\n ...values,\n createdBy: getUserName(),\n createdDate: new Date(),\n };\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/CardSchemes/Update/\" + values.id, payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n return (\n
\n \n \n \n \n \n \n

Edit Card Scheme

\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n Card Scheme Name *\n \n \n \n \n \n \n
\n \n \n
Issuer Information
\n \n \n \n \n Name *\n \n \n \n \n \n \n \n Email *\n \n \n \n \n \n \n \n Phone No *\n \n \n {errors.issuerPhone && (\n
\n * {errors.issuerPhone}\n
\n )}\n
\n \n \n \n \n Address *\n \n \n \n \n \n
\n \n \n \n \n PIN Rule *\n \n \n setValues({ ...values, pinRule: e.key })\n }\n defaultValue={\n pinRules.filter((i) => i.key == values.pinRule)?.[0]\n }\n dropdownVersion={2}\n />\n {errors.pinRule && (\n
\n * {errors.pinRule}\n
\n )}\n
\n \n \n \n \n Account Status *\n \n i.key == values.accountStatus\n )?.[0]\n }\n onSelect={(e) =>\n setValues({ ...values, accountStatus: e.key })\n }\n dropdownVersion={2}\n />\n {errors.accountStatus && (\n
\n * {errors.accountStatus}\n
\n )}\n
\n \n \n \n \n Card Application *\n \n i.key == values.cardApplication\n )?.[0]\n }\n onSelect={(e) =>\n setValues({ ...values, cardApplication: e.key })\n }\n dropdownVersion={2}\n />\n {errors.cardApplication && (\n
\n * {errors.cardApplication}\n
\n )}\n
\n \n {values.cardApplication === \"Closed-Loop\" && (\n \n \n \n POS Group *\n \n \n setValues({\n ...values,\n groupId: e.key,\n groupName: e.value,\n })\n }\n dropdownVersion={2}\n options={groups\n .filter((i) => !i.isDeleted && !i.isBlocked)\n ?.map((i) => ({\n key: i?.id,\n value: i?.groupName,\n }))}\n defaultValue={\n groups\n .filter((i) => i.id == values.groupId)\n ?.map((i) => ({\n key: i?.id,\n value: i?.groupName,\n }))[0]\n }\n />\n {errors.groupName && (\n
\n * {errors.groupName}\n
\n )}\n
\n \n )}\n
\n
\n\n \n {loading ? \"Loading...\" : \"Submit\"}\n \n \n
\n
\n \n
\n
\n );\n};\n\nexport default AddNFC;\n","/* eslint-disable no-mixed-operators */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable eqeqeq */\n\nimport React, { useEffect, useState } from 'react';\n// reactstrap components\nimport ReactPaginate from 'react-paginate';\nimport { useToasts } from 'react-toast-notifications';\nimport {\n Card,\n CardHeader,\n CardFooter,\n Table,\n Row,\n Button,\n Modal,\n ModalBody,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n Col,\n ModalHeader,\n} from 'reactstrap';\n\nimport FullPageLoader from 'components/FullPageLoader/fullpageloader';\nimport NoRecordFound from 'components/NoRecordFound/NoRecordFound';\n// core components\nimport { getPrivileges, getSortCls } from 'services/util';\n\nimport { btnCss, iconCss } from '../../appConfig';\nimport { postMethod } from '../../services/httpServices';\n\nimport AddScheme from './add-scheme';\nimport EditScheme from './edit-scheme';\n\nconst sortIS = {\n sortName: 0,\n};\n\nconst CardSchemeList = () => {\n const [open, setOpen] = useState(false);\n const [openEdit, setOpenEditModal] = useState(false);\n const [editObj, setEditObj] = useState(null);\n\n // const [view, setView] = useState(false);\n // const [merchantObj, setMerchantObj] = useState(null);\n // const [editObj, setEditObj] = useState(null);\n const [loading, setLoading] = useState(false);\n const [filteredList, setFilteredList] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize] = useState(10);\n const [pagesCount, setPageCount] = useState(0);\n const [searchText, setSearchText] = useState('');\n const [totalRec, setTotalRec] = useState(0);\n const [sort, setSort] = useState(sortIS);\n const [refresh, setRefresh] = useState(false);\n\n const [isMounted, setIsMounted] = useState(false);\n const [deleteObj, setDeleteObj] = React.useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n const [modalLoading, setModalLoading] = React.useState(false);\n\n const { addToast } = useToasts();\n const privileges = getPrivileges('merchant');\n\n useEffect(() => {\n if (!refresh && isMounted) {\n if ((searchText && searchText.length >= 3) || searchText.length == 0) {\n fetchNFC();\n }\n }\n }, [searchText]);\n\n useEffect(() => {\n fetchNFC();\n }, [currentPage]);\n\n useEffect(() => {\n if (!refresh && isMounted) {\n if (currentPage != 0) {\n setCurrentPage(0);\n } else {\n fetchNFC();\n }\n }\n }, [sort]);\n\n useEffect(() => {\n if (refresh && isMounted) {\n setSearchText('');\n setSort(sortIS);\n if (currentPage == 0) {\n fetchNFC();\n } else {\n setCurrentPage(0);\n }\n }\n }, [refresh]);\n\n const openModal = () => {\n setOpen(true);\n };\n\n const closeModal = () => {\n setOpen(false);\n setOpenEditModal(false);\n fetchNFC();\n };\n\n const notifyFailed = text => {\n if (!text) {\n text = 'Error in saving';\n }\n addToast(text, {\n appearance: 'error',\n autoDismiss: true,\n });\n };\n const openDelete = mmo => {\n setDeleteObj(mmo);\n setOpenDelModal(true);\n };\n const fetchNFC = async () => {\n let errorMsg = '';\n setLoading(true);\n const data = {\n PageNumber: Number(currentPage + 1),\n PerPage: pageSize,\n };\n\n if (searchText && searchText.length >= 3) {\n data.SearchText = searchText;\n // data['PageNumber'] = 0;\n }\n if (sort.sortName == '1') {\n data.SortingOn = 'cardSchemeName';\n data.IsDescending = false;\n } else if (sort.sortName == '2') {\n data.SortingOn = 'cardSchemeName';\n data.IsDescending = true;\n }\n postMethod('/api/CardSchemes/Search', data, 'post')\n .then(res => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === '200' && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n setFilteredList(res.data.result.list);\n const pc = Math.ceil(res.data.result.totalRecords / pageSize);\n setTotalRec(res.data.result.totalRecords);\n setPageCount(pc);\n } else if (res.data.responseCode === '400') {\n // Error\n errorMsg = res.data.responseMessage || 'Error in fetching list';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in fetching';\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n }\n })\n .catch(() => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n notifyFailed('Something went wrong!, Please call 3737');\n });\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n // fetchSubs();\n };\n\n const getSearch = val => {\n setSearchText(val);\n };\n\n const closeDeleteModal = () => {\n setDeleteObj(null);\n setOpenDelModal(false);\n };\n\n const reloadList = () => {\n setSearchText('');\n setRefresh(true);\n };\n const getBlockText = () => {\n let str = 'block';\n if (deleteObj.isBlock) {\n str = 'unblock';\n }\n\n return `Do you want to ${str} ${deleteObj?.cardSchemeName}?`;\n };\n const notifySuccess = text => {\n if (!text) {\n text = 'Save successfully';\n }\n addToast(text, {\n appearance: 'success',\n autoDismiss: true,\n });\n };\n const deleteNFC = () => {\n let errorMsg = '';\n setModalLoading(true);\n setLoading(true);\n postMethod(\n `/api/CardSchemes/SoftDeleteOrBlock/${deleteObj.id}?isDelete=${\n deleteObj.isDelete\n }&isBlock=${!deleteObj.isBlock}`,\n {},\n 'post'\n )\n .then(res => {\n setModalLoading(false);\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === '200') {\n const text = deleteObj.isBlock\n ? 'Card Scheme unblocked successfully'\n : 'Card Scheme blocked successfully';\n notifySuccess(text);\n fetchNFC();\n closeDeleteModal();\n } else if (res.data.responseCode === '400') {\n // Error while saving\n errorMsg = res.data.responseMessage || 'Error while saving';\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = 'Unknown Error in saving';\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = 'Unknown Error';\n notifyFailed(errorMsg);\n }\n })\n .catch(() => {\n setModalLoading(false);\n setLoading(false);\n errorMsg = 'Something went wrong!, Please call 3737';\n notifyFailed(errorMsg);\n });\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == '0') {\n newValue = '1';\n } else if (fieldValue == '1') {\n newValue = '2';\n } else if (fieldValue == '2') {\n newValue = '1';\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n return (\n <>\n {/* Page content */}\n {/* Table */}\n \n
\n \n \n {/*

Card tables

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

\n {deleteObj && deleteObj.isBlock ? 'Unblock Scheme' : 'Block Scheme'}\n

\n
\n\n \n
\n {deleteObj && deleteObj.cardSchemeName ? (\n
\n

{getBlockText()}

\n
\n {' '}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n\n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredList.length && }\n
sortHandle(sort.sortName, 'sortName')}>\n Card Scheme Name\n \n Issuer NameIssuer PhoneAccount StatusCard ApplicationPin ruleGroup Namecreated bycreated dateActions
{mmo.cardSchemeName ?? 'NA'}{mmo.issuerName ?? '-'}{mmo.issuerPhone ?? '-'}\n \n {mmo.cardApplication}{mmo.pinRule}{mmo.groupName ?? '-'}{mmo.createdBy}{new Date(mmo.createdDate).toLocaleDateString()}\n {privileges.edit && (\n {\n setEditObj(mmo);\n setOpenEditModal(true);\n }}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n \n )}\n {!mmo.isBlock ? (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n ) : (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )}\n
\n \n {filteredList.length > 0 && (\n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default CardSchemeList;\n","import React, { useEffect } from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n checkSpace,\n getMethod,\n getUserName,\n postMethod,\n} from \"../../services/httpServices\";\nimport SearchableSelect from \"components/dropdown/SearchDropdown\";\n\nconst initialValue = {\n customerId: 0,\n nfcCardName: \"\",\n nfcCardID: \"\",\n nfcCardClientID: \"\",\n createdBy: \"\",\n updatedBy: \"\",\n schemeId: 0,\n cardSchemeName: \"\",\n isBlock: false,\n isDelete: false,\n fspId: null\n};\n\nconst AddNFC = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [customers, setCustomers] = React.useState([]);\n const [allCards, setAllCards] = React.useState([]);\n const [cardGroups, setCardGroups] = React.useState([]);\n const [fsps, setFsps] = React.useState([])\n const [loading, setLoading] = React.useState(false);\n const { addToast } = useToasts();\n\n useEffect(() => {\n fetchCardNames();\n fetchGroupNames();\n fetchAllFsps()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if(values.fspId) {\n fetchCustomers()\n }\n }, [values.fspId])\n\n const fetchAllFsps = async () => {\n let errorMsg = \"\";\n setLoading(true);\n getMethod(\"/api/FSP/GetAll\", \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n // Success\n if (!res.data.result || !res.data?.result?.length) {\n setFsps([]);\n } else {\n setFsps(res.data.result);\n }\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n\n const fetchCustomers = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(`/api/FSP/Profile/Customers/${values.fspId}`, {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setCustomers(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchCardNames = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/GetAllNFCCardNames\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setAllCards(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchGroupNames = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/CardSchemes/GetAll\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result || !res.data.result.length) {\n res.data.result = [];\n }\n setCardGroups(res.data.result);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const {\n nfcCardName,\n customerId,\n nfcCardID,\n nfcCardClientID,\n isBlock,\n isDelete,\n cardSchemeName,\n schemeId,\n } = values;\n const payload = {\n nfcCardID,\n nfcCardName,\n customerId: Number(customerId),\n createdBy: getUserName(),\n updatedBy: getUserName(),\n nfcCardClientID,\n cardSchemeName,\n schemeId,\n isBlock,\n isDelete,\n };\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/SmartPayCard/Register\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n return (\n
\n \n \n \n \n \n \n

Assign NFC

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

Edit NFC

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

Card tables

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

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

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

{getBlockText()}

\n
\n {' '}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n \n\n \n\n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredList.length && }\n
sortHandle(sort.sortName, 'sortName')}>\n Customer Name\n \n Card NameIDSerial NumberStatusCard SchemecreatedBycreatedDateActions
{mmo.customerName ?? 'NA'}{mmo.nfcCardName ?? '-'}{mmo.nfcCardID}{mmo.nfcCardClientID}\n \n {mmo.cardSchemeName ?? '-'}{mmo.createdBy}{new Date(mmo.createdDate).toLocaleDateString()}\n {privileges.edit && (\n {\n setEditObj(mmo);\n setOpenEditModal(true);\n }}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n \n )}\n {!mmo.isBlock ? (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n ) : (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )}\n
\n \n {filteredList.length > 0 && (\n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default NFCList;\n","import React from \"react\";\nimport { Card, CardBody, Row } from \"reactstrap\";\n\nconst CardAssignmentInstructions = () => {\n return (\n \n
\n \n \n

Card Assignment Instructions for Admin Users

\n\n

Step 1: Create a Card Scheme

\n
    \n
  1. \n

    Navigate to the Card Scheme Management Section:

    \n
      \n
    • \n Access the backend admin portal and go to the \"Card Schemes\"\n section.\n
    • \n
    \n
  2. \n
  3. \n

    Define Card Scheme Details:

    \n
      \n
    • \n Enter Issuer Information: Include the issuer's name and\n details.\n
    • \n
    • \n Configure Card Usage Rules:\n
        \n
      • \n Specify whether PIN Rules will apply when a customer\n taps the card.\n
      • \n
      \n
    • \n
    \n
  4. \n
  5. \n

    Set the Card Application Type:

    \n
      \n
    • \n Choose between Open or Closed application types:\n
        \n
      • \n Open: Allows the card to be used at any SmartPay POS\n terminal.\n
      • \n
      • \n Closed: Restricts card usage to a specific group of POS\n terminals.\n
      • \n
      \n
    • \n
    \n
  6. \n
  7. \n

    Save the Card Scheme:

    \n
      \n
    • \n Ensure all required details are correctly entered before\n saving.\n
    • \n
    \n
  8. \n
\n\n

Step 2: Assign the Card Scheme to a Specific Card

\n
    \n
  1. \n

    Navigate to the Card Management Section:

    \n
      \n
    • \n Access the \"Card Management\" section in the backend admin\n portal.\n
    • \n
    \n
  2. \n
  3. \n

    Select the Card:

    \n
      \n
    • \n Locate the card to which the scheme will be assigned (e.g.,\n by card number or identifier).\n
    • \n
    \n
  4. \n
  5. \n

    Assign the Card Scheme:

    \n
      \n
    • \n From the list of available card schemes, select the\n appropriate scheme for the card.\n
    • \n
    • Save the changes to complete the assignment.
    • \n
    \n
  6. \n
\n\n

\n Step 3: Create a POS Terminal Group (For Closed Application Type)\n

\n
    \n
  1. \n

    Navigate to the POS Terminal Group Section:

    \n
      \n
    • \n Go to the \"POS Terminal Groups\" section in the backend admin\n portal.\n
    • \n
    \n
  2. \n
  3. \n

    Create a New Group:

    \n
      \n
    • \n Provide a Group Name:\n
        \n
      • \n Ensure the group name is unique. Duplicate names are not\n allowed.\n
      • \n
      • \n An error message will appear if a duplicate name is\n entered.\n
      • \n
      \n
    • \n
    • \n Assign relevant POS terminals to this group:\n
        \n
      • \n Add one or more POS terminals where the card will be\n valid.\n
      • \n
      \n
    • \n
    \n
  4. \n
\n\n

Step 4: Assign the Card to a Customer

\n
    \n
  1. \n

    Select the Customer:

    \n
      \n
    • \n Search for the customer using their details (e.g., name,\n customer ID).\n
    • \n
    • \n Navigate to the \"Card Assignment\" section under their\n profile.\n
    • \n
    \n
  2. \n
  3. \n

    Link the Card to the Customer:

    \n
      \n
    • \n Choose the card you wish to assign from the list of\n available cards.\n
    • \n
    • \n Ensure the selected card follows the rules defined in the\n assigned card scheme.\n
    • \n
    \n
  4. \n
  5. \n

    Verify and Save:

    \n
      \n
    • Review the details (card scheme, POS group, etc.).
    • \n
    • Confirm and save the assignment.
    • \n
    \n
  6. \n
\n\n

Key Considerations for Admin Users

\n
    \n
  • \n

    Card Scheme Assignment:

    \n
      \n
    • \n Each card must have a card scheme assigned before being\n linked to a customer.\n
    • \n
    • \n Ensure the card scheme settings (e.g., PIN rules,\n application type) align with the intended usage of the card.\n
    • \n
    \n
  • \n
  • \n

    POS Terminal Group Validations:

    \n
      \n
    • \n Group names must be unique. Duplicate names will trigger\n validation errors.\n
    • \n
    • \n Ensure all required POS terminals are included in the group\n before assigning the card.\n
    • \n
    \n
  • \n
\n
\n
\n
\n
\n );\n};\n\nexport default CardAssignmentInstructions;\n","import classnames from \"classnames\";\nimport React, { useState } from \"react\";\nimport {\n TabContent,\n TabPane,\n Nav,\n NavItem,\n NavLink,\n Card,\n Container,\n CardBody,\n} from \"reactstrap\";\n\nimport Header from \"components/Headers/Header.js\";\nimport \"react-phone-input-2/lib/style.css\";\nimport CardSchemeList from \"views/card-schemes/card-scheme-list\";\n\nimport NFCList from \"./nfc-list\";\nimport CardAssignmentInstructions from \"views/card-schemes/card-assignment-instructions\";\n\nconst navItemCls = {\n minWidth: \"120px\",\n textAlign: \"center\",\n cursor: \"pointer\",\n};\nconst CardManagement = () => {\n const [activeTab, setActiveTab] = useState(\"1\");\n\n const toggle = (tab) => {\n if (activeTab !== tab) setActiveTab(tab);\n };\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default CardManagement;\n","import React, { useEffect } from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n checkSpace,\n getUserName,\n postMethod,\n} from \"../../services/httpServices\";\nimport ReactSelect from \"react-select\";\n\nconst initialValue = {\n groupName: \"\",\n posid: 0,\n posSerialNumber: \"\",\n createdBy: \"\",\n updatedBy: \"\",\n posDevice: [],\n isBlock: false,\n isDelete: false,\n};\n\nconst AddPOSGroup = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [allGroups, setAllGroups] = React.useState([]);\n const [allCards, setAllPosDevices] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n\n const { addToast } = useToasts();\n\n useEffect(() => {\n fetchAllDevice();\n fetchAllGroups();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n if (name === \"groupName\") {\n if (allGroups?.includes(value?.toLowerCase().trim())) {\n const errors = {};\n errors.groupName = \"Group name already exists!\";\n setErrors(errors);\n } else {\n setErrors({});\n }\n }\n changeState({ ...values, [name]: value });\n }\n };\n\n const fetchAllGroups = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/GetAll\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n // Success\n if (!res.data || !res.data?.result.length) {\n res.data = [];\n }\n setAllGroups(\n res.data?.result?.map((i) => i?.groupName?.toLowerCase())\n );\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const fetchAllDevice = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/GetAllDevice\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n // Success\n if (!res.data || !res.data.length) {\n res.data = [];\n }\n setAllPosDevices(\n res.data?.map((i) => ({\n value: i.posId,\n label: `${i.posDeviceName} (${i?.posSerialNumber})`,\n ...i,\n }))\n );\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const validate = (inputs) => {\n let errors = {};\n if (!inputs.groupName) {\n errors.groupName = \"Group name is required\";\n }\n if (!inputs.posDevice.length) {\n errors.posDevice = \"POS Device is required\";\n }\n if (allGroups?.includes(values?.groupName?.toLowerCase().trim())) {\n errors.groupName = \"Group name already exists!\";\n }\n return errors;\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n const payload = values.posDevice.map((item) => ({\n groupName: values.groupName,\n posid: item.posId,\n posSerialNumber: item.posSerialNumber,\n createdBy: getUserName(),\n updatedBy: getUserName(),\n isBlock: false,\n isDelete: false,\n }));\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/Add\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n return (\n
\n \n \n \n \n \n \n

Add POS Group

\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n POS Group Name *\n \n \n {errors.groupName && (\n
\n * {errors.groupName}\n
\n )}\n
\n \n\n \n \n \n \n Select POS Device *\n \n \n \n \n \n \n \n setValues({ ...values, posDevice: e })\n }\n />\n \n \n \n\n \n \n {errors.posDevice && (\n
\n * {errors.posDevice}\n
\n )}\n \n
\n \n
\n
\n\n \n {loading ? \"Loading...\" : \"Submit\"}\n \n \n
\n
\n \n
\n
\n );\n};\n\nexport default AddPOSGroup;\n","import React, { useEffect } from \"react\";\n// reactstrap components\nimport ReactSelect from \"react-select\";\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\nimport {\n checkSpace,\n getUserName,\n postMethod,\n} from \"../../services/httpServices\";\nconst initialValue = {\n groupName: \"\",\n posid: 0,\n posSerialNumber: \"\",\n createdBy: \"\",\n updatedBy: \"\",\n posDevice: [],\n isBlock: false,\n isDelete: false,\n};\nconst ViewPOSGroup = (props) => {\n console.log(props);\n const [values, setValues] = React.useState(props.values ?? initialValue);\n const [customers, setCustomers] = React.useState([]);\n const [allCards, setAllPosDevices] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [errors, setErrors] = React.useState({});\n const { addToast } = useToasts();\n useEffect(() => {\n fetchAllDevice();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const changeState = (obj) => {\n setValues(obj);\n };\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n const closeModal = () => {\n props.closeModal();\n };\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n const fetchAllDevice = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/GetAllDevice\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n // Success\n if (!res.data || !res.data.length) {\n res.data = [];\n }\n setAllPosDevices(\n res.data?.map((i) => ({\n value: i.posId,\n label: `${i?.posSerialNumber}`,\n ...i,\n }))\n );\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n const validate = (inputs) => {\n const errors = {};\n if (!inputs.groupName) {\n errors.groupName = \"Group name is required\";\n }\n if (!inputs.posDevice.length) {\n errors.posDevice = \"POS Device is required\";\n }\n return errors;\n };\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n const payload = values.posDevice.map((item) => ({\n groupName: values.groupName,\n posid: item.posId,\n posSerialNumber: item.posSerialNumber,\n createdBy: getUserName(),\n updatedBy: getUserName(),\n isBlock: false,\n isDelete: false,\n }));\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/Add\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n return (\n
\n \n \n \n \n \n \n

View POS Group

\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n POS Group Name *\n \n \n \n \n \n \n \n \n Select POS Device *\n \n \n \n \n \n \n ({\n value: i.posId,\n label: `${i?.posSerialNumber}`,\n ...i,\n }))}\n options={allCards}\n isDisabled\n onChange={(e) =>\n setValues({ ...values, posDevice: e })\n }\n />\n \n \n \n \n \n {errors.posDevice && (\n
\n * {errors.posDevice}\n
\n )}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n );\n};\nexport default ViewPOSGroup;\n","import React, { useEffect } from \"react\";\n// reactstrap components\nimport ReactSelect from \"react-select\";\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\nimport {\n checkSpace,\n getUserName,\n postMethod,\n} from \"../../services/httpServices\";\nconst initialValue = {\n groupName: \"\",\n posid: 0,\n posSerialNumber: \"\",\n createdBy: \"\",\n updatedBy: \"\",\n posDevice: [],\n isBlock: false,\n isDelete: false,\n};\nconst EditPOSGroup = (props) => {\n const [values, setValues] = React.useState(\n props\n ? {\n ...props.values,\n posDevice: props?.values?.details?.map((i) => ({\n label: i.posSerialNumber,\n value: i.posid,\n ...i,\n })),\n }\n : initialValue\n );\n const [allCards, setAllPosDevices] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [allGroups, setAllGroups] = React.useState([]);\n const [errors, setErrors] = React.useState({});\n const { addToast } = useToasts();\n useEffect(() => {\n fetchAllDevice();\n fetchAllGroups();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const changeState = (obj) => {\n setValues(obj);\n };\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n const closeModal = () => {\n props.closeModal();\n };\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (name === \"groupName\") {\n if (allGroups.includes(value?.toLowerCase().trim())) {\n const errors = {};\n errors.groupName = \"Group name already exists!\";\n setErrors(errors);\n } else {\n setErrors({});\n }\n }\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n const fetchAllGroups = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/GetAll\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n // Success\n if (!res.data || !res.data?.result.length) {\n res.data = [];\n }\n setAllGroups(\n res.data?.result\n ?.map((i) => i?.groupName?.toLowerCase())\n .filter((i) => i !== values.groupName?.toLowerCase())\n );\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const deleteNFC = (deleteObj) => {\n const isOld = props.values.details?.find(\n (i) => i.posSerialNumber === deleteObj.label\n );\n if (!isOld) {\n return;\n }\n let errorMsg = \"\";\n setLoading(true);\n setLoading(true);\n postMethod(\n `/api/POS/Groups/SoftDeleteOrBlock/${\n deleteObj.id\n }?isDelete=${!deleteObj.isDelete}&isBlock=${!deleteObj.isBlock}`,\n {},\n \"post\"\n )\n .then((res) => {\n setLoading(false);\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n const text = deleteObj.isBlock\n ? \"POS Group unblocked successfully\"\n : \"POS Group blocked successfully\";\n notifySuccess(text);\n // fetchGroup(deleteObj.id);\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n const fetchAllDevice = async () => {\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/GetAllDevice\", {}, \"get\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n // Success\n if (!res.data || !res.data.length) {\n res.data = [];\n }\n setAllPosDevices(\n res.data?.map((i) => ({\n value: i.posId,\n label: `${i?.posSerialNumber}`,\n ...i,\n }))\n );\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n const validate = (inputs) => {\n const errors = {};\n if (!inputs.groupName) {\n errors.groupName = \"Group name is required\";\n }\n if (!inputs.posDevice.length) {\n errors.posDevice = \"POS Device is required\";\n }\n return errors;\n };\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (!isNoError) {\n return;\n }\n const payload = values.posDevice.map((item) => ({\n groupName: values.groupName,\n posid: item.posId,\n posSerialNumber: item.posSerialNumber,\n createdBy: getUserName(),\n updatedBy: getUserName(),\n isBlock: false,\n isDelete: false,\n }));\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Groups/Add\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n return (\n
\n \n \n \n \n \n \n

Edit POS Group

\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n POS Group Name *\n \n \n {errors.groupName && (\n
\n * {errors.groupName}\n
\n )}\n
\n \n \n \n \n \n Select POS Device *\n \n \n \n \n \n \n ({\n value: i.posId,\n label: `${i?.posSerialNumber}`,\n ...i,\n }))}\n isDisabled={loading}\n options={allCards}\n onChange={(e, f) => {\n if (f.action === \"remove-value\") {\n deleteNFC(f?.removedValue);\n }\n if (f.action === \"clear\") {\n f.removedValues.forEach((i) => {\n deleteNFC(i);\n });\n }\n setValues({ ...values, posDevice: e });\n }}\n />\n \n \n \n \n \n {errors.posDevice && (\n
\n * {errors.posDevice}\n
\n )}\n \n
\n \n
\n
\n \n {loading ? \"Loading...\" : \"Submit\"}\n \n \n
\n
\n \n
\n
\n );\n};\nexport default EditPOSGroup;\n","/* eslint-disable no-mixed-operators */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable eqeqeq */\n\n// reactstrap components\n// core components\nimport React, { useEffect, useState } from \"react\";\nimport ReactPaginate from \"react-paginate\";\nimport { useToasts } from \"react-toast-notifications\";\nimport {\n Card,\n CardHeader,\n CardFooter,\n Table,\n Row,\n Button,\n Modal,\n ModalBody,\n Form,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Input,\n Col,\n ModalHeader,\n} from \"reactstrap\";\n\nimport FullPageLoader from \"components/FullPageLoader/fullpageloader\";\nimport NoRecordFound from \"components/NoRecordFound/NoRecordFound\";\nimport { getPrivileges, getSortCls } from \"services/util\";\n\nimport { btnCss, iconCss } from \"../../appConfig\";\nimport { postMethod } from \"../../services/httpServices\";\n\nimport AddScheme from \"./add-pos-group\";\nimport ViewPOSGroup from \"./view-pos-group\";\nimport EditPOSGroup from \"./edit-pos-group\";\n\nconst sortIS = {\n sortName: 0,\n};\n\nconst POSGroupList = (props) => {\n const [open, setOpen] = useState(false);\n\n // const [view, setView] = useState(false);\n // const [merchantObj, setMerchantObj] = useState(null);\n // const [editObj, setEditObj] = useState(null);\n const [loading, setLoading] = useState(false);\n const [filteredList, setFilteredList] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize] = useState(10);\n const [pagesCount, setPageCount] = useState(0);\n const [searchText, setSearchText] = useState(\"\");\n const [totalRec, setTotalRec] = useState(0);\n const [sort, setSort] = useState(sortIS);\n const [refresh, setRefresh] = useState(false);\n const [subsObj, setSubsObj] = React.useState(null);\n const [view, setView] = React.useState(false);\n const [edit, setEdit] = React.useState(false);\n\n const [isMounted, setIsMounted] = useState(false);\n const [deleteObj, setDeleteObj] = React.useState(null);\n const [openDelModal, setOpenDelModal] = React.useState(false);\n const [modalLoading, setModalLoading] = React.useState(false);\n\n const { addToast } = useToasts();\n const privileges = getPrivileges(\"merchant\");\n\n useEffect(() => {\n if (!refresh && isMounted) {\n if ((searchText && searchText.length >= 3) || searchText.length == 0) {\n fetchGroupSchemes();\n }\n }\n }, [searchText]);\n\n useEffect(() => {\n fetchGroupSchemes();\n }, [currentPage]);\n\n useEffect(() => {\n if (!refresh && isMounted) {\n if (currentPage != 0) {\n setCurrentPage(0);\n } else {\n fetchGroupSchemes();\n }\n }\n }, [sort]);\n\n useEffect(() => {\n if (refresh && isMounted) {\n setSearchText(\"\");\n setSort(sortIS);\n if (currentPage == 0) {\n fetchGroupSchemes();\n } else {\n setCurrentPage(0);\n }\n }\n }, [refresh]);\n\n const openModal = () => {\n setOpen(true);\n };\n\n const closeModal = () => {\n setOpen(false);\n setEdit(false);\n setSubsObj(null);\n fetchGroupSchemes();\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n const openDelete = (mmo) => {\n setDeleteObj(mmo);\n setOpenDelModal(true);\n };\n const fetchGroupSchemes = async () => {\n let errorMsg = \"\";\n setLoading(true);\n const data = {\n PageNumber: Number(currentPage + 1),\n PerPage: pageSize,\n };\n\n if (searchText && searchText.length >= 3) {\n data.SearchText = searchText;\n // data['PageNumber'] = 0;\n }\n if (sort.sortName == \"1\") {\n data.SortingOn = \"groupName\";\n data.IsDescending = false;\n } else if (sort.sortName == \"2\") {\n data.SortingOn = \"groupName\";\n data.IsDescending = true;\n }\n postMethod(\"/api/POS/Groups/Search\", data, \"post\")\n .then((res) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n if (res && res.data) {\n if (res.data.responseCode === \"200\" && res.data.result) {\n // Success\n if (!res.data.result.list || !res.data.result.list.length) {\n res.data.result.list = [];\n }\n setFilteredList(res.data.result.list);\n const pc = Math.ceil(res.data.result.totalRecords / pageSize);\n setTotalRec(res.data.result.totalRecords);\n setPageCount(pc);\n } else if (res.data.responseCode === \"400\") {\n // Error\n errorMsg = res.data.responseMessage || \"Error in fetching list\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in fetching\";\n notifyFailed(errorMsg);\n }\n } else {\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n setRefresh(false);\n setIsMounted(true);\n notifyFailed(\"Something went wrong!, Please call 3737\");\n });\n };\n\n const handlePageClick = ({ selected: selectedPage }) => {\n setCurrentPage(selectedPage);\n // fetchSubs();\n };\n\n const getSearch = (val) => {\n setSearchText(val);\n };\n\n const closeDeleteModal = () => {\n setDeleteObj(null);\n setOpenDelModal(false);\n };\n\n const reloadList = () => {\n setSearchText(\"\");\n setRefresh(true);\n };\n\n const getBlockText = () => {\n let str = \"block\";\n if (deleteObj.isBlock) {\n str = \"unblock\";\n }\n\n return `Do you want to ${str} ${deleteObj?.groupName} (${deleteObj.posSerialNumber})?`;\n };\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n const deleteNFC = () => {\n let errorMsg = \"\";\n setModalLoading(true);\n setLoading(true);\n postMethod(\n `/api/POS/Groups/SoftDeleteOrBlock/${\n deleteObj.id\n }?isDelete=${!deleteObj.isDelete}&isBlock=${!deleteObj.isBlock}`,\n {},\n \"post\"\n )\n .then((res) => {\n setModalLoading(false);\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n const text = deleteObj.isBlock\n ? \"POS Group unblocked successfully\"\n : \"POS Group blocked successfully\";\n notifySuccess(text);\n fetchGroupSchemes();\n closeDeleteModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setModalLoading(false);\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n };\n\n const sortHandle = (fieldValue, fieldName) => {\n let newValue = 0;\n if (fieldValue == \"0\") {\n newValue = \"1\";\n } else if (fieldValue == \"1\") {\n newValue = \"2\";\n } else if (fieldValue == \"2\") {\n newValue = \"1\";\n }\n setSort({ ...sortIS, [fieldName]: newValue });\n };\n\n const showSubs = (obj) => {\n setSubsObj(obj);\n setView(true);\n };\n\n const showEdit = (obj) => {\n setSubsObj(obj);\n setEdit(true);\n };\n\n const closeViewModal = () => {\n setView(false);\n setEdit(false);\n setSubsObj(null);\n };\n\n return (\n <>\n {/* Page content */}\n {/* Table */}\n \n
\n \n \n {/*

Card tables

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

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

\n
\n\n \n
\n {deleteObj && deleteObj.groupName ? (\n
\n

{getBlockText()}

\n
\n \n Yes{\" \"}\n {modalLoading && (\n \n )}\n {\" \"}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n \n sortHandle(sort.sortName, \"sortName\")}\n >\n group Name\n \n \n {/* \n \n */}\n \n \n \n \n {filteredList.length > 0 &&\n filteredList.map((mmo, i) => {\n return (\n \n \n {/* \n \n */}\n\n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredList.length && }\n
pos Serial Numbercreated Bycreated DateActions
{mmo.groupName ?? \"NA\"}{mmo.posSerialNumber ?? '-'}{mmo.createdBy}{new Date(mmo.createdDate).toLocaleDateString()}\n showSubs(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"View\"\n >\n \n \n showEdit(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n \n {/* {!mmo.isBlock ? (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n ) : (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )} */}\n
\n \n {filteredList.length > 0 && (\n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default POSGroupList;\n","import React from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { useToasts } from \"react-toast-notifications\";\nimport { checkSpace, postMethod } from \"../../services/httpServices\";\nimport { NFC_OPTION, GET_YEAR_LIST } from \"appConfig\";\nimport { checkMacAddress } from \"services/util\";\n\nconst initialValue = {\n posDeviceName: \"\",\n posMake: \"\",\n posModel: \"\",\n posManufactureYear: \"\",\n posSerialNumber: \"\",\n posMacAddress: \"\",\n isNFCEnabled: null,\n isMagStripeEnabled: null,\n isChipEnabled: null,\n};\n\nconst NFC = NFC_OPTION && NFC_OPTION.length ? NFC_OPTION : [];\n\nconst AddPOS = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const { addToast } = useToasts();\n\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n\n const validate = (inputs) => {\n let errors = {};\n if (!inputs.posDeviceName) {\n errors.posDeviceName = \"Device name is required\";\n }\n if (!inputs.posMake) {\n errors.posMake = \"POS Make is required\";\n }\n if (!inputs.posModel) {\n errors.posModel = \"POS Model is required\";\n }\n if (!inputs.posManufactureYear) {\n errors.posManufactureYear = \"Manufacture year is required\";\n }\n if (!inputs.posSerialNumber) {\n errors.posSerialNumber = \"Serial No is required\";\n }\n // if (!inputs.posMacAddress) {\n // errors.posMacAddress = \"MAC Address is required\";\n // } else if (!checkMacAddress(inputs.posMacAddress)) {\n // errors.posMacAddress = \"Please enter valid MAC Address\";\n // }\n if (!inputs.isNFCEnabled) {\n errors.isNFCEnabled = \"Nfc option is required\";\n }\n if (!inputs.isMagStripeEnabled) {\n errors.isMagStripeEnabled = \"Mag Stripe option is required\";\n }\n if (!inputs.isChipEnabled) {\n errors.isChipEnabled = \"Chip option is required\";\n }\n\n return errors;\n };\n\n /**======================== API Calls ==========================*/\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n var data = {};\n data[\"posDeviceName\"] = values.posDeviceName;\n data[\"posMake\"] = values.posMake;\n data[\"posModel\"] = values.posModel;\n data[\"posManufactureYear\"] = values.posManufactureYear;\n data[\"posSerialNumber\"] = values.posSerialNumber;\n data[\"posMacAddress\"] = values.posMacAddress;\n data[\"isNFCEnabled\"] = values.isNFCEnabled === \"Enable\";\n data[\"isMagStripeEnabled\"] = values.isMagStripeEnabled === \"Enable\";\n data[\"isChipEnabled\"] = values.isChipEnabled === \"Enable\";\n\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/POS/Register\", data, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfuly\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n }\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n

POS Terminal

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

POS Terminal

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

POS Terminal

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

Card tables

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

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

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

{getBlockText()}

\n
\n {' '}\n \n No\n \n
\n
\n ) : (\n <> \n )}\n
\n
\n
\n\n \n \n \n \n \n\n {/* \n \n \n \n */}\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n {postlist\n .map((mmo, i) => {\n return (\n \n \n \n \n \n \n \n\n \n \n );\n })}\n \n {loading && }\n {!loading && !filteredList.length && }\n
Device NameMakeManufacture YearModelSerial No.MAC AddressActions
{mmo.posDeviceName}{mmo.posMake}{mmo.posManufactureYear}{mmo.posModel}{mmo.posSerialNumber}{mmo.posMacAddress}\n showPOS(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"View\"\n >\n \n \n\n fetchPOSById(mmo.posId)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n \n\n {/* openAssign(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Edit\"\n >\n \n */}\n\n {!mmo.isBlocked ? (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Block\"\n >\n \n \n ) : (\n openDelete(mmo)}\n size=\"sm\"\n style={btnCss}\n data-toggle=\"tooltip\"\n title=\"Unblock\"\n >\n \n \n )}\n
\n \n {!loading && !filteredList.length && }\n {filteredList.length > 0 && (\n \n \n
\n \n Total Records : {totalRec}\n \n
\n \n\n \n \n \n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default PosTerminalList;\n","import classnames from 'classnames';\nimport { useState } from 'react';\nimport { Card, CardBody, Container, Nav, NavItem, NavLink, TabContent, TabPane } from 'reactstrap';\n\nimport Header from 'components/Headers/Header.js';\nimport 'react-phone-input-2/lib/style.css';\nimport POSGroupList from 'views/pos-group/pos-group-list';\n\nimport PosTerminalList from './pos-terminal-list';\n\nconst navItemCls = {\n minWidth: '120px',\n textAlign: 'center',\n cursor: 'pointer',\n};\nconst POSTerminal = () => {\n const [activeTab, setActiveTab] = useState('1');\n\n const toggle = tab => {\n if (activeTab !== tab) setActiveTab(tab);\n };\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default POSTerminal;\n","import React, { useEffect } from \"react\";\n\n// reactstrap components\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n FormGroup,\n Form,\n Input,\n Row,\n Col,\n InputGroupAddon,\n InputGroupText,\n InputGroup,\n} from \"reactstrap\";\n\nimport { useToasts } from \"react-toast-notifications\";\nimport { checkSpace, getMethod, postMethod } from \"../../services/httpServices\";\n\nconst initialValue = {\n feeId: 0,\n feeType: \"\",\n feeCalculateMethod: 0,\n feeName: \"\",\n feeValue: 0,\n};\n\nconst AddFspTransactionFees = (props) => {\n const [values, setValues] = React.useState(initialValue);\n const [errors, setErrors] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const [methods, setMethods] = React.useState([]);\n const { addToast } = useToasts();\n\n useEffect(() => {\n fetchMethods();\n }, []);\n\n function fetchMethods() {\n setLoading(true);\n getMethod(\"/api/FSP/Profile/FeesMethod/GetAll\")\n .then((res) => {\n if (res.data?.result?.length) {\n setMethods(res.data.result);\n }\n })\n .catch(console.log)\n .finally(() => {\n setLoading(false);\n });\n }\n const changeState = (obj) => {\n setValues(obj);\n };\n\n const notifyFailed = (text) => {\n if (!text) {\n text = \"Error in saving\";\n }\n addToast(text, {\n appearance: \"error\",\n autoDismiss: true,\n });\n };\n\n const notifySuccess = (text) => {\n if (!text) {\n text = \"Save successfully\";\n }\n addToast(text, {\n appearance: \"success\",\n autoDismiss: true,\n });\n };\n\n const closeModal = () => {\n props.closeModal();\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n if (checkSpace(value)) {\n changeState({ ...values, [name]: value });\n }\n };\n\n const validate = (inputs) => {\n let errors = {};\n if (!inputs.feeType?.trim()) {\n errors.feeType = \"Fee Name is required\";\n }\n if (!String(inputs.feeCalculateMethod)) {\n errors.feeCalculateMethod = \"Calculation method is required\";\n }\n if (!String(inputs.feeAmount)) {\n errors.feeAmount = \"Fee Amount is required\";\n }\n\n return errors;\n };\n\n /**======================== API Calls ==========================*/\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const validationErrors = validate(values);\n setErrors(validationErrors);\n const isNoError = Object.values(validationErrors).every((x) => x === \"\");\n if (isNoError) {\n const payload = {\n ...values,\n feeType: values.feeType?.trim(),\n feeName: methods.find(\n (i) => i.methodId === Number(values.feeCalculateMethod)\n )?.methodName,\n feeCalculateMethod: Number(values.feeCalculateMethod),\n feeValue: Number(values.feeValue),\n };\n let errorMsg = \"\";\n setLoading(true);\n postMethod(\"/api/FSP/Profile/Fees/Save\", payload, \"post\")\n .then((res) => {\n setLoading(false);\n if (res && res.data) {\n if (res.data.responseCode === \"200\") {\n notifySuccess(\"Saved Successfully\");\n closeModal();\n } else if (res.data.responseCode === \"400\") {\n // Error while saving\n errorMsg = res.data.responseMessage || \"Error while saving\";\n notifyFailed(errorMsg);\n } else {\n // Unknown Error\n errorMsg = \"Unknown Error in saving\";\n notifyFailed(errorMsg);\n }\n } else {\n // Not valid response from server\n errorMsg = \"Unknown Error\";\n notifyFailed(errorMsg);\n }\n })\n .catch((err) => {\n setLoading(false);\n errorMsg = \"Something went wrong!, Please call 3737\";\n notifyFailed(errorMsg);\n });\n }\n };\n\n return (\n
\n \n \n \n \n \n \n

Add Transaction Fee

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