{"version":3,"sources":["components/enums.js","components/sidebarmenu.js","components/appheader.js","components/appfooter.js","services/apiService.js","components/utilities.js","components/contributors/ContributorsTable.js","components/contributors/ContributorDetails.js","components/contributors/filter.js","components/contributors/ContributorsContainer.js","components/contributions/ContributionDatePicker.js","components/contributions/ContributionRow.js","components/contributions/ContributionLines.js","components/contributions/ContributionDetails.js","components/contributions/ContributionsTable.js","components/contributions/ContributionsContainer.js","components/account/changeEmail.js","components/account/changePassword.js","components/accountmain.js","components/organizaton.js","components/Funds/EditableCell.js","components/Funds/FundRow.js","components/Funds/FundsTable.js","components/Funds/EditFunds.js","components/contributions/fnContributionDetails.js","components/contributions/ContributionsByMember.js","components/Reports/MemberFilter.js","components/Reports/PDF_Helper.js","components/Reports/GenMemberListPDF.js","components/Reports/MemberList.js","components/Reports/ContributionsFilter.js","components/Reports/GenContSummaryPDF.js","components/Reports/SummaryReport.js","components/Reports/DetailReportContent.js","components/Reports/GenContDetailsPDF.js","components/Reports/DetailReportContainer.js","components/Reports/RebateAdjust.js","components/Reports/GenerateReceipts.js","components/Reports/ReceiptsContainer.js","components/reports.js","components/testpage.js","components/Home.js","components/Users/UsersContainer.js","components/Users/adduser.js","components/appcontent.js","components/login.js","components/recover.js","App.js","serviceWorker.js","index.js"],"names":["record_operation","ADD","UPDATE","DELETE","user_roles","ADMINS","POWER_USERS","USERS","SUMMARY_ONLY","user_roles_source","SubMenu","Menu","Sider","Layout","withRouter","props","storedKeys","storagedCollapsed","localStorage","getItem","JSON","parse","sideBarCollapsed","openKeys","_useState","useState","_useState2","Object","slicedToArray","menuState","setMenuState","handleOpenKeys","newKeys","setItem","stringify","handleLogoutClick","window","sessionStorage","removeItem","location","href","react_default","a","createElement","collapsible","width","collapsedWidth","style","minHeight","collapsed","onCollapse","type","newState","objectSpread","className","Link","to","icon","fontSize","userRole","menu","mode","theme","Item","key","onClick","defaultOpenKeys","onOpenChange","title","AppHeader","orgName","OrgName","userName","currentUser","AppFooter","apiBaseUrl","origin","fetchMode","process","REACT_APP_MODE","_callee","id","request","url","regenerator_default","wrap","_context","prev","next","headers","Authorization","fetchService","abrupt","sent","stop","_callee2","data","_context2","method","body","Content-Type","_callee3","_context3","_callee4","_context4","getPostContributionApi","_callee5","_context5","_callee6","_context6","_callee7","_context7","_callee8","_context8","getFundsApi","_callee9","_context9","_callee10","_context10","getContributorsApi","_callee11","qstrings","_context11","_callee12","dString","controller","_context12","getContributionByMemberApi","_callee13","Id","_context13","deleteContributionApi","_callee14","dstring","_context14","concat","ContributionsDetails","_callee15","_context15","_callee16","_context16","_callee17","_context17","_callee18","_context18","_callee19","_context19","_callee20","_context20","_callee21","_context21","ContributorsAutoCompleteApi","_callee22","_context22","_callee23","req","_context23","fetchServiceNoContent","_callee24","_context24","_callee25","_context25","_callee26","_context26","_callee27","_context27","_callee28","_context28","_callee29","response","_context29","fetch","ok","status","Error","statusText","t0","console","error","toString","_callee30","dontReload","json","_context30","Promise","reject","showApiError","alertMessage","undefined","message","Modal","content","showApiSuccess","onOk","success","ContributorsTable","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","rowClassName","rec","index","selectedRow","pagination","bind","assertThisInitialized","_this2","pager","source","contributors","map","x","address","suburb","assign","columns","dataIndex","render","table","dataSource","onRow","record","rowIndex","e","rowClick","React","Component","ContributorDetails","handleValuesChange","state","modified","setState","target","handleCancel","contributor","form","setFieldsValue","city","phone","offeringNo","lastName","firstName","displayName","postcode","country","email","requireReceipt","handleSubmit","preventDefault","validateFields","err","values","newValues","saveNew","saveChanges","handleDelete","deleteContributor","getFieldValue","getFieldDecorator","formItemLayout","labelCol","xs","span","sm","wrapperCol","es_form","autoComplete","onSubmit","padding","label","initialValue","rules","required","input","onChange","onFocus","handledOnFocus","valuePropName","es_checkbox","offset","es_button","disabled","htmlType","margin","popconfirm","onConfirm","okText","cancelText","contributionCount","FormContributor","Form","create","name","ContributorsFilter","layout","sumbitFilter","prefix","color","placeholder","shape","float","addNew","Contributors","handleDeleteContributor","getDeleteContributorApi","then","updatedData","filter","item","length","catch","handlePostNewContributor","newMemebr","hasOwnProperty","getPostContributorApi","handlePageJump","page","pageSize","qString","currentFilter","current","loadData","locationSate","history","replaceState","handleFilter","search","elements","value","handleAddNew","getNextofferingNoApi","nextOfferingNo","fax","organisationId","notes","handleSelectRow","nodeName","queryString","currentPage","size","find","c","findIndex","saveContributor","getPutContributorApi","toConsumableArray","slice","loaded","sel","parseInt","position","total","count","es_row","col","md","paddingRight","contributors_filter","contributors_ContributorsTable","contributors_ContributorDetails","ContributionDatePicker","date_picker","allowClear","autoFocus","defaultValue","moment","contributionDate","format","addNewRow","ContributionRow","handleAmountOnBlur","currentValue","newData","contributionLineId","line","amount","parseFloat","rowUpdate","handleAmountOnFocus","handleFundOnBlur","currentFund","fund","handleFundOnFocus","handleSearch","fundSource","funds","f","description","i","toUpperCase","includes","auto_complete","onSearch","onBlur","input_number","min","step","ContributionLines","lines","reduce","p","lineTotal","setLineTotal","existinglines","newId","handleRowUpdate","rowData","newtotal","push","contributionId","ln","contributions_ContributionRow","footer","toFixed","ContributionDetails","contribution","handleOnSelect","selectedValue","member","memberList","setMember","handleOnChange","changedValue","searchValue","debounceLoadData","selectedMember","handleOnFocus","handleOnBlur","debounceAutoPick","onDateChange","handleSave","savingContribution","getSavingContribution","validatedMessage","validateSavingContribution","doSave","doDelete","contributionLines","found","autopick","text","substr","indexOf","contributorId","postSave","operation","trim","updatedline","newEntry","AllowEditMember","debounce","backfill","onSelect","optionLabelProp","badge","showZero","backgroundColor","boxShadow","overflowCount","localPostProcess","str","members","isNaN","element","toLowerCase","byValue","result","ContributionTable","contributions","renderFooterTable","dataList","showHeader","DisplayByMember","DisplayByDate","firstColumn","align","displayBy","accumulator","pagingation","Contributions","getContributions","getContributionApi","showDetails","Index","loading","getFunds","handleDatePickChange","d","ds","toDate","handlePostSave","defaultlines","active","getNewContribution","today","Date","setHours","container","contributions_ContributionDatePicker","ContributionsTable","_ref","thisState","contributions_ContributionDetails","Fragment","ChangeEmailForm","validateFieldsAndScroll","updateEmailApi","UserName","Email","existingEmail","NewEmail","res","WrappedChangeEmailForm","ChangePasswordForm","confirmDirty","autoCompleteResult","updatePasswordApi","Password","NewPassword","password","handleConfirmBlur","compareToFirstPassword","rule","callback","validateToNextPassword","force","validateCurrentPassword","hasFeedback","validator","WrappedChangePasswordForm","AccountMaintenance","changeEmail","changePassword","Organization","_Component","save","getPutOrganisationApi","alert","inherits","createClass","getOrganisationApi","_this$state$Organizat","_this$state$Organizat2","organisationName","_this$state$Organizat3","building","_this$state$Organizat4","_this$state$Organizat5","_this$state$Organizat6","_this$state$Organizat7","postCode","_this$state$Organizat8","_this$state$Organizat9","www","_this$state$Organizat10","_this$state$Organizat11","orgKey","_this$state$Organizat12","accessCode","_this$state$Organizat13","FormOrganization","GetInput","InputNumberOnChange","rowid","checked","EditableCell","EditableCell_GetInput","cellData","onTableUpdate","FundRow","onDelEvent","Funds_EditableCell","fundId","sortOrder","FundsTable","rowDel","onRowDel","Funds","deleted","Funds_FundRow","onRowAdd","onSave","EditableFunds","evt","_this3","getPostFundsApi","acc","val","Math","newFunds","getAttribute","Funds_FundsTable","handleTableUpdate","handleAddEvent","handleRowDel","handleSaveEvent","fnContributionDetails","allowEditMember","newValue","setContribution","newRecord","updatedContribution","ContributionsByMember","memberId","match","params","setFunds","_useState3","_useState4","setData","_useState5","memberName","_useState6","useEffect","getContributorApi","TitleBar","handleAdd","newContribution","ContributionsByMember_ShowContributionDetails","ShowContributionDetails","MemberFilter","Font","register","family","src","details_styles","StyleSheet","marginBottom","paddingBottom","section","flexGrow","heading","fontFamily","textAlign","paddingTop","subTitle","subTitleChn","borderTop","borderBottom","bottom","left","right","detailContainer","flexDirection","paddingLeft","alignItems","tableHead","tableHeadLabel","totalContainer","detailContainerGray","chnDetails","engDetails","marginLeft","summary_styles","memberlist_styles","fontWeight","receipts_styles","height","signLabel","sign","PDFSaved","doFinish","DisplayContent","thisStyle","styles","react_pdf_browser_es","Heading","Address","GetPDF","GenMemberListPDF_Heading","GenMemberListPDF_DisplayContent","pageNumber","fixed","GenmemberListPDF","ready","document","GenMemberListPDF_GetPDF","_ref2","blob","saveAs","PDF_Helper_PDFSaved","spin","tip","spinning","RptMemberList","handleOnSumbit","finishDownloadPDF","PDFReady","setPDFReady","Reports_MemberFilter","react_csv","filename","rowKey","ContributionFilter","_useGlobal","useGlobal","_useGlobal2","fromDate","setFromDate","_useGlobal3","_useGlobal4","setToDate","_useGlobal5","_useGlobal6","setMemberList","gMember","fnSetMember","wrapSetMember","obj","handleSeachClick","groupBy","setTimeout","log","contId","doSearch","handleSetDates","dr","start","end","year","getFullYear","getMonth","m","s","showToday","button1Title","groupKey","GenContSummaryPDF_MemberLine","TotalLine","totalAmount","MemberLine","GenContSummaryPDF_Heading","GenContSummaryPDF_DisplayContent","GenContSummaryPDF_TotalLine","CreateAndSavePDF","endDate","GenContSummaryPDF_GetPDF","SummaryReport","readyPDF","setReadyPDF","setGroupBy","_useState7","day","_useState8","setSearch","row","FinishDownloadPDF","ContributionsFilter","querystring","ContributionsSummaryReportApi","LoadData","titleCol","defineProperty","DetailReportContent","reduceArray","rebate","rebateAmount","rebatePercentage","marginTop","totalRebate","TableHeading","GetPage","details","reportData","GenContDetailsPDF_Heading","GenContDetailsPDF_TableHeading","GenContDetailsPDF_DisplayContent","GenContDetailsPDF_TotalLine","GenContDetailsPDF_GetPage","GenContDetailsPDF_GetPDF","DetailReportContainer","detailData","setDetail","setReportData","_useState9","_useState10","setCurrentPage","_useState11","_useState12","handlePageChange","ps","ShowPager","LoadDetailData","query","ContributionsReportPager","LoadReportData","GenContDetailsPDF_CreateAndSavePDF","Reports_DetailReportContent","RebateAdjust","PostData","PostRebateAdjust","FundAdjustDTOs","RenderFormItem","max","newPercentage","handleValueChanghe","RebateAdjustApi","colon","GenerateReceipts_DisplayContent","replace","GenerateReceipts_GetPDF","ReceiptsContainer","GetReceiptsApi","GenerateReceipts_CreateAndSavePDF","Reports","report","MemberList","Reports_SummaryReport","Reports_DetailReportContainer","Reports_ReceiptsContainer","Test","handleOKClick","resolve","Home","xhref","UsersContainer","userdata","setUserData","placement","deleteUserApi","getUsers","UsersContainer_TitleBar","Option","Select","AddNewUser","createUser","username","newUserName","role","handleRoleChange","role_options","es_select","r","AddUser","AppContent","Route","exact","path","ContributorsContainer","ContributionsContainer","organizaton","accountmain","EditFunds","reports","adduser","SummaryRoute","fullMenuRoute","NormalLoginForm","usersLoginApi","errorMessage","setFields","errors","token","version","WrappedNormalLoginForm","RecoverPasswordForm","recoverLoginApi","WrappedRecoverPasswordForm","setGlobal","Header","Footer","Content","App","isLogin","footerStyle","sidebarmenu","appheader","appcontent_AppContent","appfooter","isRecover","pathname","recover","login","Boolean","hostname","baseUrl","getElementsByTagName","rootElement","getElementById","ReactDOM","BrowserRouter","basename","src_App_0","navigator","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.1059e0e6.chunk.js","sourcesContent":["export const record_operation = {\r\n ADD: 'add',\r\n UPDATE: 'update',\r\n DELETE: 'delete'\r\n}\r\n\r\nexport const user_roles = {\r\n ADMINS: 'Admins',\r\n POWER_USERS: 'Power Users',\r\n USERS : 'Users',\r\n SUMMARY_ONLY : 'Summary Only'\r\n}\r\n\r\nexport const user_roles_source = {\r\n USERS: 'Users',\r\n SUMMARY_ONLY: 'Summary Only'\r\n}","import React, { useState } from \"react\";\r\nimport { Menu, Icon, Layout } from \"antd\";\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport { user_roles } from \"./enums\";\r\n\r\n\r\nconst SubMenu = Menu.SubMenu;\r\nconst { Sider } = Layout;\r\n\r\nfunction SidebarMenu(props) {\r\n let storagedCollapsed = false\r\n let storedKeys = [\"report\", \"setting\"] \r\n\r\n if (localStorage.getItem('sideBarCollapsed')) {\r\n storagedCollapsed = JSON.parse(localStorage.getItem('sideBarCollapsed'))\r\n }\r\n storedKeys = localStorage.getItem('openKeys')\r\n\r\n let sideBarCollapsed = storagedCollapsed\r\n let openKeys = []\r\n \r\n if (sideBarCollapsed) {\r\n openKeys = []\r\n } else if (storedKeys) {\r\n openKeys = JSON.parse(storedKeys)\r\n }\r\n else {\r\n openKeys = [\"report\", \"setting\"]\r\n }\r\n\r\n \r\n const [menuState, setMenuState] = useState({ sideBarCollapsed: sideBarCollapsed, openKeys: openKeys })\r\n \r\n function handleOpenKeys(newKeys) {\r\n if (!menuState.sideBarCollapsed) {\r\n localStorage.setItem('openKeys', JSON.stringify(newKeys))\r\n }\r\n //let newState = { ...menuState, openKeys: newKeys }\r\n //setOpenKeys(newKeys)\r\n }\r\n\r\n function handleCollaspe(collapsed, type) {\r\n //console.log( '--------------handleCollaspe:' + collapsed + ' ' + type)\r\n localStorage.setItem('sideBarCollapsed', JSON.stringify(collapsed))\r\n let newState = { ...menuState, sideBarCollapsed: collapsed }\r\n setMenuState( newState )\r\n }\r\n\r\n\r\n function handleLogoutClick() {\r\n window.sessionStorage.removeItem(\"UserName\");\r\n window.location.href = \"/\";\r\n }\r\n\r\n function SummaryMenu() {\r\n return (\r\n \r\n \r\n \r\n Contribution Summary\r\n \r\n \r\n \r\n \r\n Logout\r\n \r\n )\r\n }\r\n\r\n function FullMenu() {\r\n return (\r\n \r\n \r\n \r\n Members\r\n \r\n \r\n \r\n \r\n Contributions\r\n \r\n \r\n\r\n \r\n \r\n Reports\r\n \r\n }\r\n >\r\n \r\n Member List\r\n \r\n \r\n \r\n Rebate % Adjustment\r\n \r\n \r\n \r\n Contribution Summary\r\n \r\n \r\n \r\n Contribution Details\r\n \r\n \r\n \r\n Receipts\r\n \r\n \r\n \r\n\r\n \r\n \r\n MyAccount\r\n \r\n }\r\n >\r\n \r\n Organisation Details\r\n \r\n \r\n \r\n Account Maintenance\r\n \r\n \r\n \r\n User Managment\r\n \r\n \r\n \r\n Predefined Funds\r\n \r\n \r\n \r\n \r\n \r\n Logout\r\n \r\n\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n {props.userRole === user_roles.SUMMARY_ONLY ? : }\r\n\r\n
\r\n );\r\n}\r\n\r\n\r\nexport default withRouter(SidebarMenu);\r\n","import React from \"react\";\r\n\r\nconst AppHeader = props => {\r\n let orgName = props.OrgName || \"Organization name \";\r\n let userName = props.currentUser || \"user name \";\r\n return (\r\n
\r\n
{orgName}
\r\n
{userName}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n","import React from 'react';\r\n\r\nconst AppFooter = (props) => {\r\n return
footer goes here
\r\n}\r\n\r\nexport default AppFooter ;\r\n","//let mode = \"local\" // remote for asp.net core backend\r\n//const apiBaseUrl = 'http://localhost:51823//api/'\r\nconst apiBaseUrl = window.location.origin + '/api/'\r\nconst fetchMode = process.env.REACT_APP_MODE ? process.env.REACT_APP_MODE : \"\"\r\n\r\n\r\nasync function getOrganisationApi(id) {\r\n let controller = \"Organisations\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + \"/\" + id \r\n if (fetchMode === \"local\") {\r\n url = \"./data/organisation.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request) \r\n}\r\n\r\nasync function getPutOrganisationApi(id,data) {\r\n let controller = \"Organisations\"\r\n let request = {\r\n method: \"PUT\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + \"/\" + id\r\n if (fetchMode === \"local\") {\r\n url = \"./data/organisation.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function getPutContributorApi(id, data) {\r\n let controller = \"Contributor\"\r\n let request = {\r\n method: \"PUT\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + \"/\" + id\r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributor.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function getPostContributorApi( data) {\r\n let controller = \"Contributor\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller \r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributor.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function getPostContributionApi(data) {\r\n let controller = \"Contributions\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/postSaveContribution.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\n\r\nasync function getDeleteContributorApi(id) {\r\n let controller = \"Contributor\"\r\n let request = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + \"/\" + id\r\n if (fetchMode === \"local\") {\r\n url = \"./data/deletedContributor.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\n\r\n\r\nasync function getPostFundsApi(data) {\r\n let controller = \"Funds\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/funds.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function getContributorApi(id) {\r\n let controller = \"Contributor\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + \"/\" + id\r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributor.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function getFundsApi() {\r\n let controller = \"Funds\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller \r\n if (fetchMode === \"local\") {\r\n url = \"./data/funds.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function getNextofferingNoApi() {\r\n let controller = \"Contributor/getNextOfferingNo\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller \r\n if (fetchMode === \"local\") {\r\n url = \"./data/nextOfferingNo.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n }\r\n\r\nasync function getContributorsApi(qstrings) {\r\n// console.log(\"qstrings: \" + qstrings)\r\n let controller = \"Contributor/search\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributors.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function getContributionApi(dString) {\r\n let controller = \"Contributions/on/\" + dString \r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n } }\r\n let url = apiBaseUrl + \"/\" + controller \r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributions.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function getContributionByMemberApi(Id) {\r\n //console.log(\"getContributionByMemberApi: \" + Id)\r\n let controller = \"Contributions/member/\" + Id\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributionsByMember.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function deleteContributionApi(id, dstring ) {\r\n //console.log(`delete contribution ${id}, ${dstring}`) \r\n let controller = `Contributions//${id}//${dstring} `\r\n let request = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n } }\r\n let url = apiBaseUrl + \"/\" + controller \r\n //console.log(url)\r\n if (fetchMode === \"local\") {\r\n url = \"./data/contributions.json\"\r\n request = null\r\n }\r\n // console.log(url)\r\n return await fetchService(url, request)\r\n\r\n}\r\n\r\n\r\nasync function ContributionsDetails(qstrings) {\r\n let controller = \"contributions/details\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/detailsReport.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function getUsers() {\r\n let controller = \"Users/getusers\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller \r\n if (fetchMode === \"local\") {\r\n url = \"./data/users.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function ContributionsReportPager( qstrings ) {\r\n let controller = \"contributions/detailpager\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/pager.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function PostRebateAdjust(data) {\r\n let controller = \"contributions/rebateadjustment\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\"),\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/postSaveContribution.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n\r\n}\r\n\r\nasync function RebateAdjustApi( qstrings ) {\r\n let controller = \"contributions/funds\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/fundrebate.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function GetReceiptsApi(qstrings) {\r\n let controller = \"contributions/receipts\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/receipts.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function ContributionsSummaryReportApi( qstrings ) {\r\n let controller = \"contributions/summary\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/summarybyfund.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function ContributorsAutoCompleteApi(qstrings) {\r\n let controller = \"Contributor/autocomplete?filter=\"\r\n let request = {\r\n headers: {\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller + qstrings\r\n if (fetchMode === \"local\") {\r\n url = \"./data/autoComplete.json\"\r\n request = null\r\n }\r\n\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function recoverLoginApi(request) {\r\n let controller = \"Users/resetpassword/\"\r\n let req = request\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/user.json\"\r\n req = null\r\n }\r\n return await fetchServiceNoContent(url, req)\r\n}\r\n\r\n\r\n\r\nasync function usersLoginApi(request) {\r\n let controller = \"Users\"\r\n let req = request \r\n let url = apiBaseUrl + \"/\" + controller \r\n if (fetchMode === \"local\") {\r\n url = \"./data/user.json\"\r\n req = null\r\n }\r\n return await fetchService( url, req, true) \r\n}\r\n\r\n\r\nasync function updateEmailApi(data) {\r\n let controller = \"Users/changeemail\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/user.json\"\r\n request = null\r\n }\r\n return await fetchServiceNoContent(url, request)\r\n}\r\n\r\nasync function updatePasswordApi(data) {\r\n let controller = \"Users/changepassword\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/user.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\nasync function createUser(data) {\r\n let controller = \"Users/createuser\"\r\n let request = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/users.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\nasync function deleteUserApi(id) {\r\n let controller = \"Users/\" + id\r\n let request = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": \"Bearer \" + window.sessionStorage.getItem(\"jwtToken\")\r\n }\r\n }\r\n let url = apiBaseUrl + \"/\" + controller\r\n if (fetchMode === \"local\") {\r\n url = \"./data/users.json\"\r\n request = null\r\n }\r\n return await fetchService(url, request)\r\n}\r\n\r\n\r\n\r\nasync function fetchServiceNoContent(url, request) {\r\n try {\r\n //console.log(\"url: \" + url)\r\n const response = await fetch(url, request)\r\n if (response.ok || response.status === 400) {\r\n return response.ok\r\n } else {\r\n //console.log(\"fetchservice error: \" + response.statusText)\r\n throw new Error(response.status + \" \" + response.statusText)\r\n }\r\n }\r\n catch (err) {\r\n console.error(\"error catched in apiservice.fetchservice function, url:\" + url)\r\n console.error(\"err:\" + err)\r\n //return err.toString()\r\n throw new Error(err.toString())\r\n }\r\n}\r\n\r\n\r\nasync function fetchService(url, request, dontReload) {\r\n try {\r\n //console.log(\"url: \" + url)\r\n const response = await fetch(url, request)\r\n if (response.ok || response.status === 400) {\r\n const json = await response.json()\r\n return response.ok ? json : Promise.reject(json);\r\n } else {\r\n //console.log(\"fetchservice error: \" + response.statusText)\r\n if (response.status === 401) {\r\n if (!dontReload) {\r\n window.sessionStorage.removeItem(\"UserName\");\r\n window.location.href = \"/\"\r\n }\r\n return \"Error: 401\"\r\n } else {\r\n throw new Error(response.status + \" \" + response.statusText)\r\n }\r\n }\r\n }\r\n catch (err) {\r\n //console.log(\"error catched in apiservice.fetchservice function, url:\" + url)\r\n //console.log(\"err:\" + err)\r\n return err.toString()\r\n }\r\n}\r\n\r\nexport { fetchMode, ContributorsAutoCompleteApi, getContributionByMemberApi,\r\n getOrganisationApi, usersLoginApi, getFundsApi, getPostFundsApi, getContributorsApi, getPutOrganisationApi,\r\n getPutContributorApi, getNextofferingNoApi, getPostContributorApi, getDeleteContributorApi,\r\n getContributionApi, getPostContributionApi, deleteContributionApi, ContributionsSummaryReportApi,\r\n ContributionsReportPager, ContributionsDetails, RebateAdjustApi, GetReceiptsApi,\r\n getContributorApi, PostRebateAdjust, updateEmailApi, updatePasswordApi, recoverLoginApi,\r\n getUsers, createUser, deleteUserApi }","import { Modal } from 'antd';\r\nimport {Table} from 'antd'\r\nimport React from 'react'\r\n\r\nfunction showApiError(error) {\r\n\r\n let alertMessage = \"\"\r\n if (typeof error == \"string\") {\r\n alertMessage = error\r\n } else {\r\n if (error.error !== undefined) {\r\n alertMessage = error.error \r\n } else {\r\n alertMessage = error.message\r\n }\r\n \r\n }\r\n Modal.error({\r\n title: 'Error',\r\n content: alertMessage\r\n } )\r\n}\r\n\r\n\r\nfunction showApiSuccess(message, onOk) {\r\n\r\n Modal.success({\r\n title: 'Success',\r\n content: message,\r\n onOk: onOk \r\n })\r\n}\r\n\r\n\r\nfunction renderFooterTable(total, columns, titleCol, size) {\r\n const dataList = [{\r\n [titleCol]: \"Total\",\r\n total,\r\n key: \"total\"\r\n }];\r\n return (\r\n \r\n );\r\n}\r\n\r\n\r\nexport {\r\n showApiError, showApiSuccess, renderFooterTable\r\n}","import React from 'react'\r\nimport { Table, Icon } from 'antd';\r\nimport { Link } from 'react-router-dom';\r\n\r\nclass ContributorsTable extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.pagination = {}\r\n //console.log(\"selectedRow:\" + this.props.selectedRow)\r\n this.rowClassName = this.rowClassName.bind(this)\r\n }\r\n\r\n\r\n rowClassName = (rec, index) => {\r\n let classname = index === this.props.selectedRow ? 'selectedRow' : ''\r\n return classname\r\n }\r\n\r\n render() {\r\n\r\n let pager = this.props.pager\r\n let contributors = this.props.contributors\r\n let source = contributors.map(\r\n x => {\r\n x.key = x.id\r\n let address = x.address + ' ' + x.suburb\r\n return Object.assign({}, x, { address } )\r\n }\r\n )\r\n\r\n let columns = [\r\n {\r\n title: 'No',\r\n dataIndex: 'offeringNo',\r\n key: 'no',\r\n },\r\n {\r\n title: 'Display Name',\r\n dataIndex: 'displayName',\r\n key: 'displayName'\r\n },\r\n {\r\n title: 'Address',\r\n dataIndex: 'address',\r\n key: 'address'\r\n },\r\n {\r\n title: 'Offering',\r\n dataIndex: 'id',\r\n key: 'id',\r\n render: id => (\r\n \r\n )\r\n }\r\n\r\n ]\r\n\r\n return {\r\n return {\r\n onClick: (e) => this.props.rowClick(record.key, e) \r\n }\r\n }\r\n }\r\n />;\r\n }\r\n\r\n}\r\n\r\nexport default ContributorsTable\r\n ","import React from 'react'\r\nimport { Form, Input, Checkbox, Button, Popconfirm} from 'antd';\r\n\r\nclass ContributorDetails extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { modified: false }\r\n //this.state.modified = false\r\n //this.state.currentData = this.props.contributor\r\n this.handleCancel = this.handleCancel.bind(this)\r\n }\r\n\r\n\r\n handleValuesChange = (e) => {\r\n if (!this.state.modified) {\r\n this.setState({ modified: true })\r\n }\r\n if (e.target.id === \"contributor_lastName\") {\r\n\r\n }\r\n\r\n }\r\n\r\n handleCancel = () => {\r\n this.setState({ modified: false })\r\n //console.log(\"contributor: \" + this.props.contributor.displayName)\r\n let contributor = this.props.contributor\r\n this.props.form.setFieldsValue({\r\n city: contributor.city,\r\n suburb: contributor.suburb,\r\n phone: contributor.phone,\r\n offeringNo: contributor.offeringNo,\r\n lastName: contributor.lastName,\r\n firstName: contributor.firstName,\r\n displayName: contributor.displayName,\r\n postcode: contributor.postcode,\r\n country: contributor.country,\r\n address: contributor.address,\r\n email: contributor.email,\r\n requireReceipt: contributor.requireReceipt\r\n\r\n })\r\n }\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n //console.log(\"submitting contributor...\");\r\n this.props.form.validateFields((err, values) => {\r\n if (!err) {\r\n let newValues = { ...this.props.contributor, ...values }\r\n if (newValues.id === -1) {\r\n this.props.saveNew(newValues)\r\n }\r\n else {\r\n this.props.saveChanges(newValues)\r\n }\r\n //console.log(\"form values: \", newValues);\r\n //this.setState({ Organization: newValues })\r\n } else {\r\n console.error(err)\r\n }\r\n })\r\n }\r\n\r\n handleDelete = (e) => {\r\n e.preventDefault();\r\n let id = this.props.contributor.id \r\n this.props.deleteContributor(id) \r\n }\r\n\r\n handledOnFocus(e) {\r\n e.preventDefault = true\r\n //console.log(e.target.name)\r\n if (e.target.id && e.target.id === \"contributor_displayName\") {\r\n let displayName = this.props.form.getFieldValue(\"displayName\")\r\n if (displayName === \"\") {\r\n let firstName = this.props.form.getFieldValue(\"firstName\")\r\n let lastName = this.props.form.getFieldValue(\"lastName\")\r\n this.props.form.setFieldsValue({ displayName: firstName + \" \" + lastName, } )\r\n }\r\n }\r\n }\r\n\r\n\r\n render() {\r\n // const ButtonGroup = Button.Group;\r\n let contributor = this.props.contributor\r\n const { getFieldDecorator } = this.props.form;\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 6 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 16 },\r\n },\r\n };\r\n\r\n //const formTailLayout = {\r\n // labelCol: { span: 4 },\r\n // wrapperCol: { span: 4, offset: 6 },\r\n //};\r\n// \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n\r\n}\r\n\r\n\r\nconst FormContributor = Form.create({ name: 'contributor' })(ContributorDetails);\r\nexport default FormContributor;\r\n\r\n","import React from 'react'\r\nimport { Form, Button, Input, Icon } from 'antd';\r\n\r\n\r\nclass ContributorsFilter extends React.Component {\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n \r\n } placeholder=\"Filter\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
)\r\n }\r\n\r\n}\r\n\r\nexport default ContributorsFilter\r\n","import React from 'react'\r\nimport { getContributorsApi, getPutContributorApi, getNextofferingNoApi, getPostContributorApi, getDeleteContributorApi } from '../../services/apiService'\r\nimport { showApiError, showApiSuccess } from '../utilities'\r\nimport ContributorsTable from './ContributorsTable'\r\nimport FormContributor from './ContributorDetails'\r\nimport ContributorsFilter from './filter'\r\nimport queryString from 'query-string'\r\nimport { Row, Col } from 'antd';\r\n//import { withRouter } from 'react-router'\r\n\r\n\r\nclass Contributors extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n const qstrings = queryString.parse(props.location.search)\r\n this.state = {}\r\n this.state.dataSource = []\r\n this.state.contributor = {}\r\n this.state.loaded = false\r\n let selectedRow = qstrings.sel || 0\r\n this.state.selectedRow = parseInt(selectedRow)\r\n this.currentFilter = qstrings.filter || \"\"\r\n let currentPage = qstrings.page || 1\r\n\r\n let pageSize = qstrings.size || 10\r\n this.queryString = this.props.location.search\r\n this.handleSelectRow = this.handleSelectRow.bind(this)\r\n this.handlePageJump = this.handlePageJump.bind(this)\r\n this.handleFilter = this.handleFilter.bind(this)\r\n this.loadData = this.loadData.bind(this)\r\n this.pager = { current: parseInt(currentPage), pageSize: parseInt(pageSize), position: \"bottom\", onChange: this.handlePageJump, total: 0 }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData(this.queryString, this.state.selectedRow)\r\n }\r\n\r\n handleDeleteContributor = (id) => {\r\n //console.log(\"delete contributor: \" + id)\r\n getDeleteContributorApi(id)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json)\r\n } else {\r\n //console.log('id: ' + id)\r\n let deletedName = json.displayName || \"unknown contributor!\"\r\n let msg = deletedName + \" is deleted successfully\"\r\n showApiSuccess(msg)\r\n let selectedRow = -1\r\n let updatedData = this.state.dataSource.filter(item => {\r\n return item.id !== id\r\n })\r\n let data = {}\r\n if (updatedData.length > 0) {\r\n selectedRow = 0\r\n data = updatedData[selectedRow]\r\n }\r\n this.setState({ dataSource: updatedData, contributor: data, selectedRow: selectedRow })\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n \r\n\r\n handlePostNewContributor = (newMemebr) => {\r\n if (newMemebr.hasOwnProperty(\"id\")) {\r\n delete newMemebr.id\r\n }\r\n getPostContributorApi(newMemebr)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json)\r\n } else {\r\n //console.log(JSON.stringify(json))\r\n this.setState({ contributor: json})\r\n\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n loadData(qString, sel) {\r\n getContributorsApi(qString)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n let contributor = {}\r\n let contributors = json.contributors\r\n //console.log(`${contributors.count}`)\r\n let count = json.count || 0\r\n //console.log(\"number of contributors: \" + count)\r\n this.pager.total = count\r\n if (contributors.length > 0) {\r\n let selectedRow = sel || 0\r\n contributor = contributors[selectedRow]\r\n }\r\n this.setState({\r\n dataSource: contributors, loaded: true, contributor, selectedRow: sel\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n handlePageJump = (page, pageSize) => {\r\n //console.log(\"which page? \" + page)\r\n //console.log(\"pageSize?\", pageSize)\r\n let qString = \"?filter=\" + this.currentFilter + \"&page=\" + page + \"&size=\" + pageSize\r\n this.pager.current = page\r\n this.loadData(qString, 0)\r\n let locationSate = { filter: this.currentFilter, page: page }\r\n window.history.replaceState(locationSate, \"members\", \"members\" + qString)\r\n }\r\n\r\n handleFilter = (e) => {\r\n e.preventDefault();\r\n let search = e.target.elements[0].value\r\n this.currentFilter = search\r\n this.pager.current = 1\r\n\r\n //if (search) {\r\n let qString = \"?filter=\" + search\r\n this.loadData(qString, 0)\r\n let locationSate = { filter: this.currentFilter }\r\n window.history.replaceState(locationSate, \"members\", \"members\" + qString)\r\n //}\r\n }\r\n\r\n\r\n handleAddNew = () => {\r\n\r\n getNextofferingNoApi()\r\n .then(json => {\r\n //console.log(\"json typeof\" + typeof json)\r\n if (typeof json === 'string') {\r\n //console.log(\"json content: \" + json )\r\n throw new Error(json)\r\n } else {\r\n let nextOfferingNo = json.nextOfferingNo\r\n //console.log(\"json: \" + json)\r\n //console.log(\"nextOfferingNo: \" + nextOfferingNo)\r\n let contributor = {\r\n \"lastName\": \"\",\r\n \"firstName\": \"\",\r\n \"displayName\": \"\",\r\n \"address\": \"\",\r\n \"suburb\": \"\",\r\n \"city\": \"\",\r\n \"postcode\": null,\r\n \"country\": null,\r\n \"phone\": null,\r\n \"fax\": null,\r\n \"email\": null,\r\n \"organisationId\": window.sessionStorage.getItem(\"OrganisationId\"),\r\n \"id\": -1,\r\n \"offeringNo\": nextOfferingNo,\r\n \"requireReceipt\": true,\r\n \"notes\": null\r\n }\r\n this.setState({ contributor, selectedRow: -1 })\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n handleSelectRow = (id, e) => {\r\n\r\n //console.log('nodeName: ' + e.target.nodeName)\r\n if(e.target.nodeName === 'svg' || e.target.nodeName === 'path') \r\n return\r\n\r\n let qString = queryString.parse(window.location.search)\r\n let currentFilter = qString.filter || \"\"\r\n let currentPage = qString.page || 1\r\n let pageSize = qString.size || 10\r\n let contributor = this.state.dataSource.find((c) => c.id === id)\r\n let rowIndex = this.state.dataSource.findIndex((c) => c.id === id)\r\n qString = `?filter=${currentFilter}&page=${currentPage}&size=${pageSize}&sel=${rowIndex}`\r\n this.setState({ contributor, selectedRow: rowIndex })\r\n let locationSate = { filter: this.currentFilter }\r\n window.history.replaceState(locationSate, \"members\", \"members\" + qString)\r\n\r\n }\r\n\r\n saveContributor = (data) => {\r\n getPutContributorApi(data.id, data)\r\n .then((data) => {\r\n let index = this.state.dataSource.findIndex((c) => c.id === data.id)\r\n let updatedData = [...this.state.dataSource.slice(0, index), data, ...this.state.dataSource.slice(index + 1)]\r\n this.setState({ dataSource: updatedData, contributor: data, selectedRow: index })\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n\r\n render() {\r\n\r\n if (!this.state.loaded) {\r\n return null\r\n }\r\n\r\n function ContributorDetails(props) {\r\n if (props.contributor && props.contributor.hasOwnProperty(\"offeringNo\")) {\r\n return \r\n }\r\n else {\r\n return null\r\n }\r\n\r\n }\r\n\r\n return (\r\n
\r\n

{this.props.title}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n\r\n//const WithRouterContributors = withRouter(Contributors)\r\nexport default Contributors;\r\n","import React from \"react\";\r\nimport { DatePicker, Button, Form } from \"antd\";\r\nimport \"moment/locale/en-nz\";\r\nimport moment from \"moment\";\r\n\r\nclass ContributionDatePicker extends React.Component {\r\n render() {\r\n //let dateString = this.props.contributionDate.toLocaleString(\"en-NZ\");\r\n const dateFormat = \"DD-MM-YYYY\";\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContributionDatePicker;\r\n","import React from \"react\";\r\nimport { AutoComplete, InputNumber, Input } from \"antd\";\r\n\r\nclass ContributionRow extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.fundSource = this.props.funds.map(f => f.description);\r\n this.state = {\r\n fundSource: this.fundSource\r\n };\r\n this.currentValue = 0;\r\n this.currentFund = \"\";\r\n this.handleFundOnFocus = this.handleFundOnFocus.bind(this);\r\n this.handleAmountOnBlur = this.handleAmountOnBlur.bind(this);\r\n this.handleFundOnBlur = this.handleFundOnBlur.bind(this);\r\n this.handleAmountOnFocus = this.handleAmountOnFocus.bind(this);\r\n }\r\n\r\n handleAmountOnBlur = e => {\r\n if (e.target.value !== this.currentValue) {\r\n let newData = {\r\n contributionLineId: this.props.line.contributionLineId,\r\n amount: parseFloat(e.target.value || 0 )\r\n };\r\n this.props.rowUpdate(newData);\r\n }\r\n };\r\n\r\n handleAmountOnFocus = e => {\r\n this.currentValue = e.target.value;\r\n };\r\n\r\n handleFundOnBlur = value => {\r\n if (value !== this.currentFund) {\r\n let newData = {\r\n contributionLineId: this.props.line.contributionLineId,\r\n fund: value \r\n };\r\n this.props.rowUpdate(newData);\r\n }\r\n };\r\n\r\n handleFundOnFocus = e => {\r\n this.currentFund = e.target.value;\r\n };\r\n\r\n handleSearch = value => {\r\n //console.log(\"handlSerch: \" + value)\r\n const allFunds = this.props.funds.map(f => f.description);\r\n const fundSource = allFunds.filter(i => {\r\n return i.toUpperCase().includes(value.toUpperCase());\r\n });\r\n this.setState({\r\n fundSource,\r\n value\r\n });\r\n };\r\n\r\n render() {\r\n const { fundSource } = this.state;\r\n //console.log(\"contribution row render: \" + this.props.line.fund)\r\n return (\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ContributionRow;\r\n","import React, { useState } from 'react'\r\nimport ContributionRow from './ContributionRow'\r\n\r\nexport default function ContributionLines(props) {\r\n\r\n const [lineTotal, setLineTotal] = useState(() => { return props.lines.reduce((total, p) => total + (p.amount || 0), 0) } )\r\n let existinglines = props.lines.slice() // clone the existing lines\r\n let numberOfBlanklines = 1\r\n\r\n let newId = existinglines.reduce((min, p) => (p.contributionLineId < min) ? p.contributionLineId : min, 0)\r\n //consoleconsole.log(`newId ${newId}`)\r\n\r\n function handleRowUpdate(rowData) {\r\n let newtotal = props.rowUpdate(rowData)\r\n setLineTotal(newtotal)\r\n //console.log(lineTotal )\r\n }\r\n\r\n //let initialTotal = props.lines.reduce((total, p) => total + (p.amount || 0), 0)\r\n// console.log(\"initalTotal \" + lineTotal)\r\n// if (newId === 0) {\r\n for (var i = 0; i < numberOfBlanklines; i++) {\r\n newId = newId - 1\r\n existinglines.push({\r\n \"fund\": \"\",\r\n \"amount\": \"\",\r\n \"contributionLineId\": newId,\r\n \"contributionId\": props.contributionId\r\n })\r\n }\r\n// }\r\n\r\n //let totalAmount = 0\r\n //let editlines = this.props.lines.concat(blanklines)\r\n let lines = existinglines\r\n .map((ln, index) => {\r\n let key = props.contributionId.toString() + ln.contributionLineId.toString() //+ ln.fund\r\n //totalAmount += ln.amount\r\n return \r\n\r\n })\r\n\r\n let footer = (\r\n \r\n \r\n \r\n )\r\n\r\n //console.log(\"render ContributionLines\")\r\n return
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
Total{parseFloat(lineTotal).toFixed(2)} 
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lines}{footer}\r\n \r\n
\r\n
Fund
\r\n
\r\n
Amount
\r\n
\r\n
\r\n \r\n}\r\n\r\n\r\n//export default ContributionLines","import React from \"react\";\r\nimport { AutoComplete, Button, Input, DatePicker, Badge, Form, Popconfirm } from \"antd\";\r\nimport {\r\n ContributorsAutoCompleteApi,\r\n fetchMode,\r\n getPostContributionApi, deleteContributionApi\r\n} from \"../../services/apiService\";\r\nimport { showApiError} from \"../utilities\";\r\nimport { record_operation } from \"../enums\";\r\nimport \"moment/locale/en-nz\";\r\nimport moment from \"moment\";\r\nimport ContributionLines from \"./ContributionLines\";\r\nimport debounce from \"lodash.debounce\";\r\n\r\n//const waitTime = 250;\r\n\r\nclass ContributionDetails extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.newEntry = true\r\n this.AllowEditMember = true\r\n let contribution \r\n if (this.props.contribution) {\r\n contribution = this.props.contribution;\r\n this.newEntry = this.props.contribution.contributionId < 0\r\n this.AllowEditMember = this.props.contribution.contributorId < 1\r\n } else {\r\n contribution = {};\r\n }\r\n this.state = {\r\n memberList: [],\r\n selectedMember: \"\",\r\n offeringNo: \"\",\r\n contributorId: this.props.contributorId,\r\n contribution: contribution\r\n };\r\n\r\n this.debounceLoadData = debounce(this.loadData, 200);\r\n this.debounceAutoPick = debounce(this.autopick, 220);\r\n this.handleRowUpdate = this.handleRowUpdate.bind(this);\r\n }\r\n\r\n handleOnSelect = selectedValue => {\r\n //console.log(\"selectedValue: \" + selectedValue);\r\n let member = this.state.memberList.find(\r\n member => member.value === parseInt(selectedValue)\r\n );\r\n this.setMember(member);\r\n //console.log(member);\r\n };\r\n\r\n handleOnChange = changedValue => {\r\n //console.log(\"changedValue:\" + changedValue);\r\n //this.setState({ contributorId: changedValue });\r\n };\r\n\r\n handleSearch = searchValue => {\r\n //console.log(\"do Search..\" + searchValue);\r\n this.debounceLoadData(searchValue);\r\n this.setState({ selectedMember: searchValue, offeringNo: \"\" });\r\n //this.loadData(searchValue)\r\n };\r\n\r\n handleOnFocus = e => {\r\n this.setState({ memberList: [] });\r\n };\r\n\r\n handleOnBlur = e => {\r\n //console.log(\"onBlur:\" + e);\r\n if (this.state.offeringNo === \"\") {\r\n this.debounceAutoPick();\r\n }\r\n };\r\n\r\n onDateChange = e => {\r\n\r\n let contribution = this.state.contribution \r\n contribution.contributionDate = moment(e).format(\"YYYY-MM-DD\");\r\n\r\n this.setState({ contribution: contribution } )\r\n //this.contribution.contributionDate = moment(e).format(\"YYYY-MM-DD\"); // date part only;\r\n };\r\n\r\n handleSave = () => {\r\n //console.log(\"saving contrbution...\");\r\n let savingContribution = this.getSavingContribution();\r\n let validatedMessage = this.validateSavingContribution(savingContribution);\r\n if (validatedMessage === \"\") {\r\n this.doSave(savingContribution);\r\n } else {\r\n showApiError(validatedMessage);\r\n }\r\n };\r\n\r\n handleDelete = () => {\r\n //console.log(`deleting contribution Id ${this.state.contribution.contributionId}`);\r\n this.doDelete() \r\n };\r\n\r\n handleRowUpdate = rowData => {\r\n //console.log(\"handledRowUpdate rowdata: \");\r\n let contributionLines = this.state.contribution.contributionLines.slice();\r\n let found = false;\r\n for (let index = 0; index < contributionLines.length; index++) {\r\n let line = contributionLines[index];\r\n if (line.contributionLineId === rowData.contributionLineId) {\r\n line = { ...line, ...rowData };\r\n contributionLines[index] = line;\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n contributionLines.push(rowData);\r\n }\r\n //this.contribution.contributionLines = contributionLines;\r\n\r\n let contribution = this.state.contribution \r\n contribution.contributionLines = contributionLines\r\n //console.log(\"row update \")\r\n //console.log(contribution);\r\n this.setState({ contribution })\r\n\r\n //console.log(\"contributionDetails.handlerowUpdate\")\r\n return contributionLines.reduce((total, p) => total + (p.amount || 0), 0)\r\n };\r\n\r\n render() {\r\n //console.log('new entry: ' + this.newEntry)\r\n let { contributionLines } = this.state.contribution;\r\n let memberList = this.state.memberList;\r\n let selectedMember = null;\r\n //let newEntry = true;\r\n let offeringNo = \"\";\r\n if (!this.AllowEditMember) {\r\n //console.log( 'Not AllowEditMember ' )\r\n let value = this.state.contribution.offeringNo;\r\n let text = this.state.contribution.displayName;\r\n offeringNo = value;\r\n memberList = [\r\n {\r\n value: value,\r\n text: text\r\n }\r\n ];\r\n selectedMember = text;\r\n //newEntry = false;\r\n } else {\r\n //console.log('selectedMember: ' + this.state.selectedMember )\r\n selectedMember = this.state.selectedMember;\r\n offeringNo = this.state.offeringNo;\r\n }\r\n\r\n const dateFormat = \"DD-MM-YYYY\";\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 }\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 18 }\r\n }\r\n };\r\n\r\n\r\n return (\r\n
\r\n
\r\n

Contribution

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n // class helper functions\r\n autopick = () => {\r\n // fill the offering number using the return autocomplete array if nothing has pick\r\n // this is the case when user enter an offering number an then tab out without selecting anything\r\n let member;\r\n if (this.state.memberList.length > 0) {\r\n member = this.state.memberList[0];\r\n let selectedMember = member.text.substr(member.text.indexOf(\" \") + 1);\r\n let offeringNo = member.text.substr(0, member.text.indexOf(\" \"));\r\n this.setState({ selectedMember, offeringNo, contributorId: member.id });\r\n }\r\n this.setMember(member);\r\n };\r\n\r\n setMember = member => {\r\n let offeringNo = \"\";\r\n let selectedMember = \"\";\r\n let contributorId = -1;\r\n if (member) {\r\n selectedMember = member.text.substr(member.text.indexOf(\" \") + 1);\r\n offeringNo = member.text.substr(0, member.text.indexOf(\" \"));\r\n contributorId = member.id;\r\n }\r\n\r\n let contribution = this.state.contribution \r\n contribution.contributorId = contributorId;\r\n contribution.offeringNo = offeringNo;\r\n this.setState({ selectedMember, offeringNo, contributorId, contribution });\r\n };\r\n\r\n loadData(qString) {\r\n ContributorsAutoCompleteApi(qString)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n if (fetchMode === \"local\") {\r\n //console.log(\"localmode, local process\");\r\n json = this.localPostProcess(qString, json);\r\n }\r\n this.setState({\r\n memberList: json\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n }\r\n\r\n // this function only use for local development to simulate the autocomplete search\r\n // it won't be use in production\r\n localPostProcess(str, members) {\r\n function byValue(search) {\r\n return function(element) {\r\n if (element.value === parseInt(search)) {\r\n return element;\r\n }\r\n };\r\n }\r\n\r\n function byName(search) {\r\n return function(element) {\r\n if (element.text.toLowerCase().includes(search.toLowerCase())) {\r\n return element;\r\n }\r\n };\r\n }\r\n\r\n if (isNaN(str)) {\r\n return members.filter(byName(str));\r\n } else {\r\n return members.filter(byValue(str));\r\n }\r\n }\r\n\r\n doDelete = () => {\r\n let dstring = moment(this.state.contribution.contributionDate ).format(\"YYYYMMDD\") \r\n //let dstring = this.contribution.contributionDate \r\n deleteContributionApi(this.state.contribution.contributionId, dstring) \r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n this.props.postSave(\r\n json,\r\n record_operation.DELETE\r\n );\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n } \r\n\r\n doSave = contribution => {\r\n //do something here,\r\n let operation;\r\n if (contribution.contributionId > 0) {\r\n operation = record_operation.UPDATE;\r\n } else {\r\n operation = record_operation.ADD;\r\n }\r\n getPostContributionApi(contribution)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n this.props.postSave(\r\n json,\r\n operation\r\n );\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n };\r\n validateSavingContribution(contribution) {\r\n let result = \"\";\r\n if (parseInt(contribution.contributorId) < 0) {\r\n result = \"Member cannot be blank.\";\r\n }\r\n if (contribution.contributionLines.length === 0) {\r\n result = \"Nothing to save.\";\r\n }\r\n return result;\r\n }\r\n\r\n getSavingContribution = () => {\r\n //remove empty lines\r\n let lines = this.state.contribution.contributionLines\r\n .filter(line => {\r\n return (\r\n line.contributionLineId > 0 ||\r\n (line.contributionLineId < 0 && parseFloat(line.amount) > 0 && (line.fund && line.fund.trim().length > 0) )\r\n );\r\n })\r\n .map(ln => {\r\n let updatedline = { ...ln }; // clone the line instead of reference it\r\n if (updatedline.contributionLineId < 0) {\r\n updatedline.contributionLineId = 0;\r\n }\r\n return updatedline;\r\n });\r\n\r\n let savingContribution = { ...this.state.contribution, contributionLines: lines }; // clone to object\r\n if (savingContribution.contributionId < 0) {\r\n savingContribution.contributionId = 0;\r\n }\r\n return savingContribution;\r\n };\r\n}\r\n\r\nexport default ContributionDetails;\r\n","import React from 'react'\r\nimport { Table } from 'antd';\r\nimport moment from 'moment';\r\nimport \"moment/locale/en-nz\";\r\n\r\nclass ContributionTable extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.firstColumn = props.firstColumn? props.firstColumn : \"name\"\r\n this.columns = [\r\n {\r\n title: this.firstColumn===\"name\"? 'Member':'Date',\r\n dataIndex: 'member',\r\n key: 'contributorId'\r\n },\r\n {\r\n title: 'Amount',\r\n dataIndex: 'total',\r\n width: 120,\r\n align: 'right'\r\n }\r\n ]\r\n }\r\n rowClassName = (rec, index) => {\r\n\r\n if(this.props.selectedRow < 0) {\r\n return ''\r\n }\r\n\r\n // let classname = index === this.props.selectedRow ? 'selectedRow' : ''\r\n let classname = this.props.contributions[ this.props.selectedRow].contributionId === + rec.contributionId ? 'selectedRow' : ''\r\n return classname\r\n }\r\n renderFooterTable = (total) => {\r\n const dataList = [{\r\n member: \"Total\",\r\n total,\r\n key: \"total\"\r\n }];\r\n return (\r\n \r\n );\r\n }\r\n\r\n DisplayByMember = x => {\r\n x.key = x.contributionId\r\n let member = '(' + x.offeringNo.toString() + ') ' + x.displayName\r\n let total = x.total.toFixed(2)\r\n //total += x.total\r\n return Object.assign({}, x, { member , total })\r\n }\r\n\r\n DisplayByDate = x => {\r\n x.key = x.contributionId\r\n let contDate = moment(x.contributionDate).format(\"DD MMM YYYY\")\r\n let member = contDate //x.contributionDate\r\n let total = x.total.toFixed(2)\r\n return Object.assign({}, x, { member, total })\r\n }\r\n\r\n render() {\r\n let displayBy = this.DisplayByMember \r\n if (this.firstColumn === \"date\") {\r\n displayBy= this.DisplayByDate\r\n }\r\n\r\n let source = this.props.contributions.map(\r\n displayBy\r\n )\r\n \r\n let total = this.props.contributions.reduce( \r\n (accumulator, item ) => accumulator + item.total, 0\r\n )\r\n\r\n \r\n let pagingation = false\r\n if (this.firstColumn !== \"name\") {\r\n pagingation = { position: 'top' }\r\n }\r\n return ( \r\n
{\r\n return {\r\n onClick: () => this.props.rowClick(record.contributionId)\r\n }\r\n }\r\n }\r\n /> {this.renderFooterTable(total.toFixed(2))}\r\n )\r\n }\r\n}\r\n\r\nexport default ContributionTable\r\n","import React from 'react'\r\nimport { Row, Col } from 'antd';\r\nimport ContributionDatePicker from \"./ContributionDatePicker\"\r\nimport ContributionDetails from \"./ContributionDetails\"\r\nimport ContributionsTable from \"./ContributionsTable\"\r\nimport { getFundsApi, getContributionApi } from '../../services/apiService'\r\nimport { showApiError} from '../utilities'\r\nimport { record_operation } from '../enums'\r\nimport moment from 'moment'\r\n\r\nclass Contributions extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n let today = new Date()\r\n today.setHours(0,0,0,0)\r\n this.state = {\r\n contributions:[],\r\n contributionDate: today,\r\n selectedRow: 0,\r\n contribution: {},\r\n loading: true,\r\n showDetails: false\r\n }\r\n this.funds = []\r\n this.organisationId = parseInt(window.sessionStorage.getItem(\"OrganisationId\"))\r\n }\r\n componentDidMount() {\r\n this.getFunds()\r\n this.getContributions( this.state.contributionDate )\r\n }\r\n\r\n getContributions = ( contributionDate, contributionId ) => {\r\n let dstring = moment(contributionDate ).format(\"YYYYMMDD\")\r\n getContributionApi(dstring)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n //console.log(json)\r\n let selectedRow = -1\r\n let contribution = {}\r\n let showDetails = false\r\n if (json.length > 0) {\r\n //console.log(\"getContributions\")\r\n //console.log(json)\r\n let Index = json.findIndex(contribution => contribution.contributionId === contributionId) \r\n Index = Index > -1 ? Index : 0\r\n contribution = json[ Index ]\r\n selectedRow = Index\r\n showDetails = true\r\n }\r\n\r\n this.setState({\r\n contributions: json,\r\n selectedRow: selectedRow,\r\n contribution: contribution,\r\n contributionDate,\r\n loading: false,\r\n showDetails\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n getFunds = () => {\r\n getFundsApi()\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n this.funds = json \r\n //console.log(this.funds)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n handleDatePickChange = ( d, ds) => {\r\n this.getContributions(d.toDate())\r\n }\r\n\r\n handleSelectRow = (id) => {\r\n\r\n let rowIndex = this.state.contributions.findIndex((c) => c.contributionId === id)\r\n let contribution = this.state.contributions.find((c) => c.contributionId === id)\r\n this.setState({ selectedRow: rowIndex , contribution})\r\n\r\n }\r\n\r\n handlePostSave = (json, operation) => {\r\n // json should be the contribution data\r\n // refresh the contribution\r\n //console.log(operation)\r\n //console.log(json)\r\n let Id = -1\r\n let contributionDate = json.contributionDate || moment(this.state.contributionDate)\r\n switch (operation) {\r\n case record_operation.ADD:\r\n Id = json.contributionId\r\n break;\r\n case record_operation.UPDATE:\r\n Id = json.contributionId\r\n break;\r\n case record_operation.DELETE:\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.getContributions(contributionDate, Id)\r\n //this.setState({\r\n // contributions: json,\r\n // selectedRow,\r\n // contribution,\r\n // contributionDate,\r\n // loading: false,\r\n // showDetails \r\n //})\r\n\r\n\r\n }\r\n\r\n defaultlines = () => {\r\n let lines = []\r\n let newId = -1\r\n this.funds\r\n .filter((f) => f.active)\r\n .map((f) => {\r\n lines.push({\r\n \"fund\": f.description,\r\n \"amount\": \"\",\r\n \"contributionLineId\": newId\r\n })\r\n newId = newId - 1\r\n return f\r\n })\r\n return lines\r\n }\r\n\r\n handleAddNew = () => {\r\n //console.log(\"add new row\")\r\n let showDetails = true\r\n this.setState({ contribution: this.getNewContribution(), showDetails} ) \r\n \r\n }\r\n\r\n getNewContribution = () => {\r\n\r\n //let jsonDate = moment( this.state.contributionDate ).format(\"YYYY-MM-DD\")\r\n let contributionDate = moment(this.state.contributionDate).format(\"YYYY-MM-DD\") // only want to date part\r\n //console.log(contributionDate) \r\n return {\r\n organisationId: this.organisationId,\r\n contributionId: -1,\r\n contributionDate: contributionDate ,\r\n contributorId: -1,\r\n \"offeringNo\": -1,\r\n \"displayName\": \"\",\r\n \"contributionLines\": this.defaultlines()\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n const ShowContributionDetails = ({ funds, thisState } ) => {\r\n if (thisState.showDetails) {\r\n return \r\n } else {\r\n return null\r\n }\r\n\r\n }\r\n\r\n let container =
loading...
\r\n if (!this.state.loading) {\r\n container =
\r\n

{this.props.title}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n }\r\n\r\n return {container} \r\n }\r\n}\r\n\r\nexport default Contributions;\r\n","import React from 'react'\r\nimport { Button, Input, Form} from \"antd\";\r\nimport { updateEmailApi } from '../../services/apiService'\r\nimport { showApiSuccess } from \"../utilities\";\r\n\r\nclass ChangeEmailForm extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.existingEmail = window.sessionStorage.getItem(\"email\") \r\n //console.log(\"constructor\")\r\n }\r\n\r\n handleSubmit = e => {\r\n e.preventDefault();\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n if (!err) {\r\n //console.log('Received values of form: ', values);\r\n let data = {\r\n UserName: window.sessionStorage.getItem(\"UserName\"),\r\n Email: this.existingEmail,\r\n NewEmail: values.email\r\n }\r\n updateEmailApi(data)\r\n .then((res) => {\r\n //console.log(\"res: \" + res)\r\n if (res) {\r\n showApiSuccess(\"email updated successfully\")\r\n window.sessionStorage.setItem(\"email\", values.email) \r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 16 },\r\n },\r\n }\r\n const tailFormItemLayout = {\r\n wrapperCol: {\r\n xs: {\r\n span: 24,\r\n offset: 0,\r\n },\r\n sm: {\r\n span: 16,\r\n offset: 4,\r\n },\r\n },\r\n };\r\n\r\n //let existingEmail = window.sessionStorage.getItem(\"email\") \r\n //console.log(\"existing email:\" + existingEmail)\r\n return (\r\n
\r\n\r\n
\r\n

Update Email

\r\n
\r\n
\r\n \r\n {getFieldDecorator('email', {\r\n initialValue: this.existingEmail,\r\n rules: [\r\n {\r\n type: 'email',\r\n message: 'The input is not valid E-mail!',\r\n },\r\n {\r\n required: true,\r\n message: 'Please input your E-mail!',\r\n },\r\n ],\r\n })()}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst WrappedChangeEmailForm = Form.create({ name: 'changeemail' })(ChangeEmailForm);\r\nexport default WrappedChangeEmailForm;","import React from 'react'\r\nimport { Button, Input, Form } from \"antd\";\r\nimport { updatePasswordApi } from '../../services/apiService'\r\nimport { showApiError, showApiSuccess } from \"../utilities\";\r\n\r\nclass ChangePasswordForm extends React.Component {\r\n\r\n state = {\r\n confirmDirty: false,\r\n autoCompleteResult: [],\r\n };\r\n\r\n\r\n handleSubmit = e => {\r\n e.preventDefault();\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n if (!err) {\r\n //console.log('Received values of form: ', values);\r\n let data = {\r\n UserName: window.sessionStorage.getItem(\"UserName\"),\r\n Password: values.current,\r\n NewPassword: values.password\r\n }\r\n\r\n //console.log(data)\r\n\r\n updatePasswordApi(data)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n showApiSuccess(\"Password updated successfully!\")\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n handleConfirmBlur = e => {\r\n const { value } = e.target;\r\n this.setState({ confirmDirty: this.state.confirmDirty || !!value });\r\n };\r\n\r\n compareToFirstPassword = (rule, value, callback) => {\r\n const { form } = this.props;\r\n if (value && value !== form.getFieldValue('password')) {\r\n callback('Two passwords that you enter is inconsistent!');\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n validateToNextPassword = (rule, value, callback) => {\r\n const { form } = this.props;\r\n if (value && this.state.confirmDirty) {\r\n form.validateFields(['confirm'], { force: true });\r\n }\r\n callback();\r\n };\r\n\r\n validateCurrentPassword = (rule, value, callback) => {\r\n callback();\r\n };\r\n\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 16 },\r\n },\r\n }\r\n const tailFormItemLayout = {\r\n wrapperCol: {\r\n xs: {\r\n span: 24,\r\n offset: 0,\r\n },\r\n sm: {\r\n span: 16,\r\n offset: 4,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n
\r\n\r\n
\r\n

Update Password

\r\n
\r\n
\r\n \r\n {getFieldDecorator('current', {\r\n rules: [\r\n {\r\n required: true,\r\n message: 'Please input your password!',\r\n },\r\n {\r\n validator: this.validateCurrentPassword,\r\n },\r\n ],\r\n })()}\r\n \r\n \r\n {getFieldDecorator('password', {\r\n rules: [\r\n {\r\n required: true,\r\n message: 'Please input your password!',\r\n },\r\n {\r\n validator: this.validateToNextPassword,\r\n },\r\n ],\r\n })()}\r\n \r\n \r\n {getFieldDecorator('confirm', {\r\n rules: [\r\n {\r\n required: true,\r\n message: 'Please confirm your password!',\r\n },\r\n {\r\n validator: this.compareToFirstPassword,\r\n },\r\n ],\r\n })()}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n } \r\n}\r\n\r\nconst WrappedChangePasswordForm = Form.create({ name: 'changePassword' })(ChangePasswordForm);\r\nexport default WrappedChangePasswordForm;","import React from \"react\";\r\nimport WrappedChangeEmailForm from \"./account/changeEmail\"\r\nimport WrappedChangePasswordForm from './account/changePassword'\r\n\r\nconst AccountMaintenance = props => {\r\n //console.log(props)\r\n return (\r\n
\r\n

{props.title}

\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AccountMaintenance;\r\n","import React, { Component } from 'react'\r\nimport { getOrganisationApi, getPutOrganisationApi } from '../services/apiService'\r\nimport { Form, Input, Button } from 'antd';\r\n\r\n\r\n\r\nexport class Organization extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { Organization: {} };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n getOrganisationApi(window.sessionStorage.getItem(\"OrganisationId\"))\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n this.setState({ Organization: json })\r\n }\r\n })\r\n .catch(error => {\r\n //console.error(\"Error loading organisation data: \" + error)\r\n alert(error);\r\n })\r\n\r\n }\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n //console.log(\"submitting...\");\r\n this.props.form.validateFields((err, values) => {\r\n if (!err) {\r\n let newValues = { ...this.state.Organization, ...values }\r\n this.save( newValues )\r\n //console.log(\"form values: \", newValues);\r\n //this.setState({ Organization: newValues })\r\n } else {\r\n console.error(err)\r\n }\r\n\r\n })\r\n }\r\n\r\n save = (data) => {\r\n getPutOrganisationApi(data.id, data)\r\n .then(\r\n this.setState({ Organization: data })\r\n ).catch(error => {\r\n console.error(\"Error saving organisation data: \" + error)\r\n alert(error);\r\n })\r\n }\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n let { organisationName = '',\r\n building = '',\r\n address = '',\r\n suburb = '',\r\n city = '',\r\n postCode = '',\r\n fax = '',\r\n www = '',\r\n phone = '',\r\n orgKey = '',\r\n accessCode = '',\r\n country = ''\r\n } = this.state.Organization;\r\n\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 6 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 10 },\r\n },\r\n };\r\n\r\n const formTailLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 4, offset: 6 },\r\n };\r\n\r\n return (\r\n
\r\n

{this.props.title}

\r\n
\r\n \r\n
{orgKey}
\r\n
\r\n \r\n {getFieldDecorator('organisationName', {\r\n initialValue: organisationName\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('building', {\r\n initialValue: building\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('address', {\r\n initialValue: address\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('suburb', {\r\n initialValue: suburb\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('city', {\r\n initialValue: city\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('postCode', {\r\n initialValue: postCode\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('country', {\r\n initialValue: country\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('phone', {\r\n initialValue: phone\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('fax', {\r\n initialValue: fax\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('www', {\r\n initialValue: www\r\n })(\r\n \r\n )}\r\n \r\n \r\n {getFieldDecorator('accessCode', {\r\n initialValue: accessCode\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst FormOrganization = Form.create({ name: 'organization' })(Organization);\r\n\r\n\r\nexport default FormOrganization;\r\n","import React from 'react'\r\nimport { InputNumber, Input, Checkbox } from 'antd';\r\n\r\n\r\nconst GetInput = (props) => {\r\n\r\n const { onChange } = props\r\n const InputNumberOnChange = (e, rowid, name) => {\r\n //console.log(`what is the id: ${id} ${name}`)\r\n\r\n const target = {\r\n name,\r\n rowid,\r\n value: e\r\n\r\n }\r\n onChange(target)\r\n }\r\n\r\n //console.log('GetInput: ' + props)\r\n if (props.name === 'sortOrder') {\r\n //let props = {...props, onChange: InputNumberOnChange}\r\n //onChange = InputNumberOnChange \r\n\r\n\r\n return InputNumberOnChange(e, props.rowid, props.name)} />\r\n }\r\n\r\n if (props.name === \"active\") {\r\n //console.log(\"checkbox default value:\" + props.value)\r\n return \r\n }\r\n return \r\n}\r\n\r\nclass EditableCell extends React.Component {\r\n\r\n render() {\r\n return (\r\n
\r\n );\r\n\r\n }\r\n\r\n}\r\n\r\nexport default EditableCell","import React from 'react'\r\nimport EditableCell from './EditableCell'\r\nimport { Button } from 'antd';\r\n\r\nclass FundRow extends React.Component {\r\n onDelEvent() {\r\n this.props.onDelEvent(this.props.fund);\r\n \r\n }\r\n\r\n render() {\r\n const onTableUpdate = this.props.onTableUpdate\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n \r\n }\r\n \r\n }\r\n\r\n export default FundRow","import React from 'react'\r\nimport FundRow from './FundRow'\r\nimport { Button } from 'antd';\r\n\r\nclass FundsTable extends React.Component {\r\n render() {\r\n let onTableUpdate = this.props.onTableUpdate;\r\n let rowDel = this.props.onRowDel;\r\n var Funds = this.props.funds.map(function (fund) {\r\n if (fund.deleted) {\r\n return null;\r\n }\r\n return ()\r\n });\r\n \r\n return (\r\n
\r\n

{this.props.title}

\r\n
\r\n
\r\n
\r\n \r\n\r\n {/* {this.getInput( name:{this.props.cellData.type},\r\n id={this.props.cellData.id}, \r\n defaultValue={this.props.cellData.value}, \r\n onChange={this.props.onTableUpdate})\r\n } */}\r\n
\r\n \r\n\r\n {/* */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Funds}\r\n \r\n
DescriptionSort OrderDefault
\r\n  \r\n \r\n
\r\n );\r\n\r\n }\r\n}\r\n\r\n\r\n\r\nexport default FundsTable","import React from 'react'\r\nimport FundsTable from './FundsTable'\r\nimport { getFundsApi, getPostFundsApi } from '../../services/apiService'\r\nimport { showApiError, showApiSuccess } from '../utilities'\r\n\r\nclass EditableFunds extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {}\r\n this.state.dataSource = []\r\n this.state.loaded = false\r\n }\r\n\r\n componentDidMount() {\r\n getFundsApi()\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n this.setState({ dataSource: json, loaded: true })\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n handleSaveEvent(evt) {\r\n let updatedData = this.state.dataSource \r\n getPostFundsApi(updatedData)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n this.setState({ dataSource: json, loaded: true })\r\n showApiSuccess(\"Funds updated successfully!\")\r\n\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n\r\n }\r\n\r\n handleAddEvent(evt) {\r\n const { dataSource } = this.state;\r\n let newID = dataSource.reduce((acc, val) => {\r\n return Math.min(val.fundId, acc)\r\n }, 0) - 1\r\n const fund = {\r\n \"fundId\": newID,\r\n \"description\": '',\r\n \"active\": true,\r\n \"organisationId\": window.sessionStorage.getItem(\"OrganisationId\"),\r\n \"sortOrder\": 0,\r\n };\r\n\r\n this.state.dataSource.push(fund);\r\n this.setState(this.state.dataSource);\r\n\r\n }\r\n\r\n handleRowDel(fund) {\r\n var index = this.state.dataSource.indexOf(fund);\r\n //let newFunds = this.state.dataSource.splice(index, 1);\r\n let newFunds = this.state.dataSource.slice();\r\n newFunds[index].deleted = true;\r\n this.setState({ dataSource: newFunds })\r\n };\r\n\r\n\r\n handleTableUpdate(evt) {\r\n\r\n let item\r\n let value\r\n if (evt.target !== undefined) {\r\n value = evt.target.name === \"active\" ? evt.target.checked : evt.target.value\r\n item = {\r\n rowid: evt.target.rowid || evt.target.getAttribute(\"rowid\"),\r\n name: evt.target.name,\r\n value: value\r\n }\r\n } else if (evt.value !== undefined) {\r\n item = {\r\n rowid: evt.rowid,\r\n name: evt.name,\r\n value: evt.value\r\n }\r\n } else {\r\n //console.error(\"handleTableUpdate -> something wrong here:\")\r\n }\r\n\r\n //console.log(\"item: \" + item )\r\n let funds = this.state.dataSource.slice();\r\n let newFunds = funds.map((fund) => {\r\n for (let key in fund) {\r\n if (key === item.name && fund.fundId === parseInt(item.rowid)) {\r\n fund[key] = item.value;\r\n }\r\n }\r\n return fund\r\n })\r\n\r\n this.setState({ dataSource: newFunds })\r\n\r\n };\r\n\r\n render() {\r\n if (!this.state.loaded) {\r\n return

loading...

\r\n }\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default EditableFunds\r\n","import React from 'react'\r\nimport { AutoComplete, Button, Input, DatePicker, Badge, Form, Popconfirm } from \"antd\";\r\nimport { getPostContributionApi, deleteContributionApi } from \"../../services/apiService\";\r\nimport { showApiError } from \"../utilities\";\r\nimport { record_operation } from \"../enums\";\r\nimport \"moment/locale/en-nz\";\r\nimport moment from \"moment\";\r\nimport ContributionLines from \"./ContributionLines\";\r\n\r\nexport default function fnContributionDetails(props) {\r\n\r\n const memberList = [\r\n {\r\n value: props.contribution.offeringNo,\r\n text: props.contribution.displayName\r\n }\r\n ];\r\n const selectedMember = { name: props.contribution.displayName, offeringNo: props.contribution.offeringNo }\r\n const contribution = props.contribution \r\n\r\n const allowEditMember = props.contribution.contributorId < 1\r\n const dateFormat = \"DD-MM-YYYY\";\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 }\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 18 }\r\n }\r\n };\r\n\r\n function handleMemberSearch(searchValue) {\r\n\r\n }\r\n\r\n function handleMemberOnChange(changedValue) {\r\n\r\n }\r\n\r\n function handleMemberOnSelect(selectedValue) {\r\n\r\n }\r\n\r\n function handleMemberOnBlur(e) {\r\n\r\n }\r\n\r\n function handleOnFocus(e) {\r\n\r\n }\r\n\r\n function handleSave() {\r\n //console.log(\"saving contrbution...\");\r\n let savingContribution = getSavingContribution();\r\n let validatedMessage = validateSavingContribution(savingContribution);\r\n if (validatedMessage === \"\") {\r\n doSave(savingContribution);\r\n } else {\r\n showApiError(validatedMessage);\r\n }\r\n\r\n }\r\n\r\n function handleDelete() {\r\n let dstring = moment(contribution.contributionDate).format(\"YYYYMMDD\")\r\n //let dstring = this.contribution.contributionDate \r\n deleteContributionApi(contribution.contributionId, dstring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n props.postSave(\r\n json,\r\n record_operation.DELETE\r\n );\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n\r\n }\r\n\r\n function doSave(updatedContribution) {\r\n //do something here,\r\n let operation;\r\n if (updatedContribution.contributionId > 0) {\r\n operation = record_operation.UPDATE;\r\n } else {\r\n operation = record_operation.ADD;\r\n }\r\n getPostContributionApi(updatedContribution)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n props.postSave(\r\n json,\r\n operation\r\n );\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n };\r\n\r\n function validateSavingContribution(updatedContribution) {\r\n let result = \"\";\r\n if (parseInt(updatedContribution.contributorId) < 0) {\r\n result = \"Member cannot be blank.\";\r\n }\r\n if (updatedContribution.contributionLines.length === 0) {\r\n result = \"Nothing to save.\";\r\n }\r\n return result;\r\n }\r\n\r\n function getSavingContribution() {\r\n //remove empty lines\r\n let lines = contribution.contributionLines\r\n .filter(line => {\r\n return (\r\n line.contributionLineId > 0 ||\r\n (line.contributionLineId < 0 && parseFloat(line.amount) > 0 && (line.fund && line.fund.trim().length > 0))\r\n );\r\n })\r\n .map(ln => {\r\n let updatedline = { ...ln }; // clone the line instead of reference it\r\n if (updatedline.contributionLineId < 0) {\r\n updatedline.contributionLineId = 0;\r\n }\r\n return updatedline;\r\n });\r\n\r\n let savingContribution = contribution\r\n savingContribution.contributionLines = lines\r\n\r\n // clone to object\r\n if (savingContribution.contributionId < 0) {\r\n savingContribution.contributionId = 0;\r\n }\r\n return savingContribution;\r\n };\r\n\r\n function handleRowUpdate(rowData) {\r\n //console.log(\"handledRowUpdate rowdata: \");\r\n let contributionLines = contribution.contributionLines.slice();\r\n let found = false;\r\n for (let index = 0; index < contributionLines.length; index++) {\r\n let line = contributionLines[index];\r\n if (line.contributionLineId === rowData.contributionLineId) {\r\n line = { ...line, ...rowData };\r\n contributionLines[index] = line;\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n contributionLines.push(rowData);\r\n }\r\n\r\n //this.contribution.contributionLines = contributionLines;\r\n\r\n let newRecord = contribution\r\n newRecord.contributionLines = contributionLines\r\n //console.log(\"row update \")\r\n //console.log(contribution);\r\n props.setContribution(newRecord)\r\n //console.log(\"contributionDetails.handlerowUpdate\")\r\n return contributionLines.reduce((total, p) => total + (p.amount || 0), 0)\r\n\r\n }\r\n\r\n function onDateChange(e) {\r\n\r\n let contributionDate = moment(e).format(\"YYYY-MM-DD\");\r\n let newValue = {\r\n ...contribution, contributionDate\r\n }\r\n //console.log( newValue)\r\n props.setContribution(newValue)\r\n };\r\n\r\n //console.log(\"fuContributionDetails render\")\r\n //console.log( contribution.contributionLines)\r\n return (\r\n
\r\n
\r\n

Contribution

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Row, Col , Button, Form } from 'antd';\r\nimport { default as ContributionDetails } from \"./fnContributionDetails\"\r\nimport ContributionsTable from \"./ContributionsTable\"\r\nimport { getFundsApi, getContributionByMemberApi, getContributorApi } from '../../services/apiService'\r\nimport { showApiError } from '../utilities'\r\nimport { record_operation } from '../enums'\r\nimport moment from 'moment'\r\n\r\nexport default function ContributionsByMember(props) {\r\n\r\n let memberId = props.match.params.id ? props.match.params.id : 0\r\n const [funds , setFunds ] = useState([])\r\n const [data, setData] = useState({ contributions: [], selectedRow: -1, contribution: null } )\r\n //const [selectedRow, setSelectedRow] = useState(0)\r\n const [member, setMember] = useState({ memberName:\"\" , offeringNo: 0, contributorId:0, organisationId:0 } )\r\n //const [contributionRow, setContributionRow] = useState( {selectedRow: -1, contribution: null} )\r\n\r\n useEffect(() => {\r\n getFundsApi()\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n setFunds(json)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n //console.log(\"use effect... \")\r\n getContributionByMemberApi(memberId)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n if (json.length > 0) {\r\n //setData(json)\r\n //setContributionRow({ selectedRow: 0, contribution: json[0] })\r\n const newData = { contributions: json, selectedRow: 0, contribution: json[0] }\r\n setData(newData)\r\n setMember({ memberName: json[0].displayName, \r\n offeringNo: json[0].offeringNo, \r\n contributorId: json[0].contributorId,\r\n organisationId: json[0].organisationId } )\r\n } else {\r\n getContributor(memberId)\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }, [])\r\n\r\n\r\n function getContributor(id) {\r\n getContributorApi(id)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n\r\n //memberName = json.displayName\r\n //offeringNo = json.offeringNo\r\n setMember({ memberName: json.displayName, \r\n offeringNo: json.offeringNo,\r\n contributorId: json.id,\r\n organisationId: json.organisationId\r\n })\r\n //console.log( 'getContributor: ' + memberName )\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n function handleSelectRow(id) {\r\n const contributions = data.contributions\r\n if(contributions.length > 0) {\r\n let selectedRow = contributions.findIndex((c) => c.contributionId === id)\r\n let contribution = contributions.find((c) => c.contributionId === id)\r\n\r\n setData({ contributions, selectedRow, contribution })\r\n }\r\n }\r\n\r\n function handlePostSave(json, operation) {\r\n //console.log('handlePostSave')\r\n let Id = -1\r\n if (operation !== record_operation.DELETE) {\r\n Id = json.contributionId\r\n }\r\n getContributionByMemberApi(memberId)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n if (json.length > 0) {\r\n\r\n let Index = json.findIndex(contribution => contribution.contributionId === Id) \r\n Index = Index > -1 ? Index : 0\r\n const newData = { contributions: json, selectedRow: Index, contribution: json[Index] }\r\n setData(newData)\r\n //console.log(\"after handlePostSave setData\")\r\n } else {\r\n \r\n setData({ contributions: [], selectedRow: -1, contribution: null })\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n\r\n }\r\n\r\n function defaultlines() {\r\n let lines = []\r\n let newId = -1\r\n funds\r\n .filter((f) => f.active)\r\n .map((f) => {\r\n lines.push({\r\n \"fund\": f.description,\r\n \"amount\": \"\",\r\n \"contributionLineId\": newId\r\n })\r\n newId = newId - 1\r\n return f\r\n })\r\n return lines\r\n }\r\n\r\n function getNewContribution() {\r\n\r\n let contributionDate = moment().format(\"YYYY-MM-DD\") // only want to date part\r\n //console.log(contributionDate) \r\n return {\r\n organisationId: member.organisationId,\r\n contributionId: -1,\r\n contributionDate: contributionDate ,\r\n contributorId: member.contributorId,\r\n \"offeringNo\": member.offeringNo,\r\n \"displayName\": member.memberName,\r\n \"contributionLines\": defaultlines()\r\n }\r\n }\r\n\r\n function setContribution(newRecord) {\r\n const newData = { ...data, contribution: newRecord }\r\n setData(newData)\r\n }\r\n\r\n function handleAdd() {\r\n //console.log(\"adding new row\")\r\n let newContribution = getNewContribution()\r\n //console.log(newContribution)\r\n const newData = { contributions: data.contributions, selectedRow: -1, contribution: newContribution }\r\n setData(newData)\r\n\r\n }\r\n //console.log(\"data.contribution\")\r\n //console.log(data.contribution) \r\n return (\r\n \r\n
\r\n

{props.title}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nfunction ShowContributionDetails(props) {\r\n if (props.contribution) {\r\n //let key = props.contribution.contributionLines.map(item => item.contributionLineId).join(\"_\")\r\n //console.log(\"key: \" + key)\r\n return \r\n \r\n } \r\n return null\r\n}\r\n\r\nfunction TitleBar(props) {\r\n return (\r\n
\r\n
\r\n \r\n {props.title} \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n//export default ContributionsByMember;","import React from 'react' \r\nimport { Form, Button, Input, Icon } from 'antd'\r\n\r\n const MemberFilter = (props) => {\r\n\r\n return (\r\n
\r\n
\r\n \r\n } placeholder=\"Filter\" />\r\n \r\n \r\n \r\n \r\n
\r\n
)\r\n}\r\n\r\nexport default MemberFilter","import {\r\n Font,\r\n StyleSheet,\r\n} from \"@react-pdf/renderer\";\r\nimport React from \"react\";\r\n\r\nFont.register({ family: \"ming\", src: \"./fonts/wt002.ttf\" });\r\nFont.register({ family: \"oswald regular\", src: \"./fonts/Oswald-Regular.ttf\" });\r\nFont.register({ family: \"oswald medium\", src: \"./fonts/Oswald-Medium.ttf\" });\r\nFont.register({ family: \"oswald bold\", src: \"./fonts/Oswald-Bold.ttf\" });\r\n\r\n\r\nexport const details_styles = StyleSheet.create({\r\n page: {\r\n backgroundColor: \"#ffffff\",\r\n padding: 15,\r\n marginBottom: 35,\r\n paddingBottom: 35\r\n },\r\n section: {\r\n margin: 10,\r\n padding: 10,\r\n flexGrow: 1\r\n },\r\n heading: {\r\n fontFamily: \"oswald bold\",\r\n textAlign: \"center\",\r\n fontSize: 18,\r\n paddingTop: 5\r\n\r\n },\r\n title: {\r\n fontFamily: \"oswald medium\",\r\n textAlign: \"center\",\r\n fontSize: 12,\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n },\r\n subTitle: {\r\n fontFamily: \"oswald regular\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n paddingBottom: 5,\r\n },\r\n subTitleChn: {\r\n fontFamily: \"ming\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n paddingBottom: 5,\r\n },\r\n content: {\r\n fontFamily: \"ming\",\r\n margin: \"10px\",\r\n fontSize: 12,\r\n borderTop: 1\r\n },\r\n address: {\r\n fontFamily: \"oswald regular\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n borderBottom: 1,\r\n paddingBottom: 5\r\n },\r\n footer: {\r\n fontFamily: \"oswald regular\",\r\n position: 'absolute',\r\n fontSize: 10,\r\n bottom: 20,\r\n left: 35,\r\n right: 25,\r\n textAlign: 'right',\r\n },\r\n detailContainer: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline'\r\n },\r\n tableHead: {\r\n fontFamily: \"oswald bold\",\r\n fontSize: 10,\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n paddingTop: 5,\r\n borderTop: 1,\r\n alignItems: 'baseline'\r\n },\r\n tableHeadLabel: {\r\n\r\n },\r\n totalContainer: {\r\n fontFamily: \"oswald bold\",\r\n fontSize: 10,\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline'\r\n },\r\n detailContainerGray: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline',\r\n backgroundColor: '#F0F0F0',\r\n },\r\n chnDetails: {\r\n fontFamily: \"ming\",\r\n fontSize: 10,\r\n paddingLeft: 5,\r\n\r\n },\r\n engDetails: {\r\n fontFamily: \"oswald regular\",\r\n fontSize: 10,\r\n },\r\n amount: {\r\n fontFamily: \"oswald regular\",\r\n fontSize: 10,\r\n textAlign: 'right',\r\n marginLeft: 5\r\n },\r\n});\r\n\r\n\r\nexport const summary_styles = StyleSheet.create({\r\n page: {\r\n backgroundColor: \"#ffffff\",\r\n padding: 15,\r\n marginBottom: 35\r\n },\r\n section: {\r\n margin: 10,\r\n padding: 10,\r\n flexGrow: 1\r\n },\r\n heading: {\r\n fontFamily: \"oswald bold\",\r\n textAlign: \"center\",\r\n fontSize: 18,\r\n paddingTop: 5\r\n\r\n },\r\n title: {\r\n fontFamily: \"oswald medium\",\r\n textAlign: \"center\",\r\n fontSize: 12,\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n },\r\n subTitle: {\r\n fontFamily: \"oswald regular\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n paddingBottom: 5,\r\n },\r\n content: {\r\n fontFamily: \"ming\",\r\n margin: \"10px\",\r\n fontSize: 12,\r\n borderTop: 1\r\n },\r\n address: {\r\n fontFamily: \"oswald regular\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n borderBottom: 1,\r\n paddingBottom: 5\r\n },\r\n footer: {\r\n fontFamily: \"oswald regular\",\r\n position: 'absolute',\r\n fontSize: 10,\r\n bottom: 20,\r\n left: 35,\r\n right: 25,\r\n textAlign: 'right',\r\n },\r\n detailContainer: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline'\r\n },\r\n totalContainer: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n borderTop: 1,\r\n alignItems: 'baseline'\r\n },\r\n detailContainerGray: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline',\r\n backgroundColor: '#F0F0F0',\r\n },\r\n chnDetails: {\r\n fontFamily: \"ming\",\r\n fontSize: 10,\r\n paddingLeft: 5,\r\n\r\n },\r\n engDetails: {\r\n fontFamily: \"oswald regular\",\r\n fontSize: 10,\r\n width: '300px',\r\n paddingLeft: 5\r\n },\r\n total: {\r\n fontFamily: \"oswald regular\",\r\n fontSize: 10,\r\n textAlign: 'right',\r\n width: '200px',\r\n paddingLeft: 5\r\n },\r\n\r\n\r\n});\r\n\r\nexport const memberlist_styles = StyleSheet.create({\r\n page: {\r\n backgroundColor: \"#ffffff\",\r\n padding: 15,\r\n marginBottom: 35\r\n },\r\n section: {\r\n margin: 10,\r\n padding: 10,\r\n flexGrow: 1\r\n },\r\n heading: {\r\n fontFamily: \"oswald bold\",\r\n textAlign: \"center\",\r\n fontSize: 18,\r\n paddingTop: 5\r\n\r\n },\r\n address: {\r\n fontFamily: \"oswald regular\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n borderBottom: 1,\r\n paddingBottom: 5\r\n },\r\n title: {\r\n fontFamily: \"oswald medium\",\r\n textAlign: \"center\",\r\n fontSize: 12,\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n },\r\n\r\n content: {\r\n fontFamily: \"ming\",\r\n margin: \"10px\",\r\n fontSize: 12,\r\n borderTop: 1\r\n },\r\n footer: {\r\n fontFamily: \"oswald regular\",\r\n position: 'absolute',\r\n fontSize: 10,\r\n bottom: 20,\r\n left: 35,\r\n right: 25,\r\n textAlign: 'right',\r\n },\r\n detailContainer: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline'\r\n },\r\n detailContainerGray: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 5,\r\n alignItems: 'baseline',\r\n backgroundColor: '#F0F0F0',\r\n },\r\n label: {\r\n fontFamily: \"oswald bold\",\r\n fontSize: 12,\r\n //flexGrow:1\r\n },\r\n chnDetails: {\r\n fontFamily: \"ming\",\r\n fontSize: 10,\r\n paddingLeft: 5,\r\n fontWeight: 'bold'\r\n //flexGrow:9\r\n },\r\n engDetails: {\r\n fontFamily: \"oswald regular\",\r\n fontSize: 10,\r\n paddingLeft: 5\r\n //flexGrow:9\r\n },\r\n\r\n});\r\n\r\nexport const receipts_styles = StyleSheet.create({\r\n page: {\r\n backgroundColor: \"#ffffff\",\r\n padding: 12\r\n },\r\n section: {\r\n margin: 10,\r\n padding: 10,\r\n flexGrow: 1\r\n },\r\n heading: {\r\n fontFamily: \"oswald bold\",\r\n textAlign: \"center\",\r\n fontSize: 18,\r\n paddingTop: 5\r\n\r\n },\r\n address: {\r\n fontFamily: \"oswald regular\",\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n borderBottom: 1,\r\n paddingBottom: 5\r\n },\r\n title: {\r\n fontFamily: \"oswald medium\",\r\n textAlign: \"center\",\r\n fontSize: 16,\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n },\r\n\r\n content: {\r\n height: \"182px\",\r\n fontFamily: \"ming\",\r\n margin: \"10px\",\r\n fontSize: 12,\r\n borderTop: 1\r\n },\r\n footer: {\r\n height: \"20px\"\r\n },\r\n detailContainer: {\r\n flexDirection: 'row',\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n alignItems: 'baseline'\r\n },\r\n label: {\r\n fontFamily: \"oswald bold\",\r\n fontSize: 12,\r\n //flexGrow:1\r\n },\r\n chnDetails: {\r\n fontFamily: \"ming\",\r\n fontSize: 10,\r\n paddingLeft: 5,\r\n fontWeight: 'bold'\r\n //flexGrow:9\r\n },\r\n engDetails: {\r\n fontFamily: \"oswald regular\",\r\n fontSize: 10,\r\n paddingLeft: 5\r\n //flexGrow:9\r\n },\r\n\r\n signLabel: {\r\n fontFamily: \"oswald medium\",\r\n fontSize: 12,\r\n flexGrow: 2\r\n },\r\n\r\n sign: {\r\n fontFamily: \"oswald medium\",\r\n fontSize: 12,\r\n flexGrow: 1\r\n },\r\n});\r\n\r\n\r\nconst PDFSaved = props => {\r\n // function that call the parent's function reset the ready flag\r\n props.doFinish();\r\n return
;\r\n};\r\n\r\n\r\nexport { PDFSaved }","import React from \"react\";\r\nimport {\r\n Page,\r\n Text,\r\n View,\r\n Document,\r\n BlobProvider,\r\n} from \"@react-pdf/renderer\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { Spin } from \"antd\";\r\nimport { memberlist_styles as styles, PDFSaved} from './PDF_Helper'\r\n\r\nconst DisplayContent = props => {\r\n let i = 0 \r\n return props.data.map(item => {\r\n\r\n let thisStyle = styles.detailContainerGray\r\n i += 1\r\n if (i % 2) thisStyle = styles.detailContainer\r\n\r\n return (\r\n \r\n \r\n {item.offeringNo}\r\n \r\n \r\n {item.displayName}\r\n \r\n \r\n {item.address}\r\n \r\n \r\n );\r\n });\r\n };\r\n \r\n\r\n const Heading = props => {\r\n let OrgName = sessionStorage.getItem(\"OrganisationName\");\r\n let Address = sessionStorage.getItem(\"Address\");\r\n return (\r\n \r\n {OrgName}\r\n {Address}\r\n Member list\r\n \r\n );\r\n }\r\n\r\n\r\n const GetPDF = props => {\r\n return (\r\n \r\n \r\n \r\n \r\n `Page ${pageNumber}`}\r\n fixed\r\n />\r\n \r\n \r\n );\r\n };\r\n \r\n\r\n\r\nexport default function GenmemberListPDF(props) {\r\n //console.log('GenmemberListPDF ready: ' + props.ready)\r\n if (props.ready) {\r\n return (\r\n }>\r\n {({ blob, url, loading, error }) => {\r\n if (!loading && url) {\r\n saveAs(blob, `member_list.pdf`);\r\n return ;\r\n }\r\n if (loading) {\r\n return ;\r\n }\r\n if (error) {\r\n //console.error(error);\r\n return

An error occurred

;\r\n }\r\n return null;\r\n }}\r\n
\r\n );\r\n }\r\n return null;\r\n }","import React from 'react'\r\nimport MemberFilter from './MemberFilter'\r\nimport { getContributorsApi} from '../../services/apiService'\r\nimport { showApiError } from '../utilities'\r\nimport { Table , Button} from 'antd';\r\nimport { CSVLink } from 'react-csv'\r\nimport GenmemberListPDF from './GenMemberListPDF'\r\n\r\nclass RptMemberList extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n dataSource: [],\r\n loaded: false,\r\n PDFReady: false\r\n }\r\n }\r\n\r\n handleOnSumbit = (e) => {\r\n e.preventDefault();\r\n let search = e.target.elements[0].value\r\n let qString = \"?filter=\" + search + \"&page=\" + 1 + \"&size=\" + 9999\r\n this.loadData(qString)\r\n }\r\n\r\n loadData(qString) {\r\n getContributorsApi(qString)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n let contributors = json.contributors\r\n this.setState({\r\n dataSource: contributors, loaded: true\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }\r\n\r\n\r\n finishDownloadPDF= () => {\r\n this.setState( {PDFReady: false} )\r\n }\r\n \r\n setPDFReady = () => {\r\n this.setState( {PDFReady: true} )\r\n }\r\n\r\n render() {\r\n\r\n let contributors = this.state.dataSource\r\n let source = contributors.map(\r\n x => {\r\n let address = x.address + ' ' + x.suburb\r\n return Object.assign({}, { offeringNo: x.offeringNo, displayName: x.displayName }, { address })\r\n }\r\n )\r\n\r\n let columns = [\r\n {\r\n title: 'Offering No',\r\n dataIndex: 'offeringNo',\r\n key: 'offeringNo',\r\n },\r\n {\r\n title: 'Display Name',\r\n dataIndex: 'displayName',\r\n key: 'displayName'\r\n },\r\n {\r\n title: 'Address',\r\n dataIndex: 'address',\r\n key: 'address'\r\n },\r\n\r\n ]\r\n\r\n\r\n function ShowTable(props) {\r\n if (props.dataSource.length > 0) {\r\n return ( \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )\r\n \r\n }\r\n return null\r\n }\r\n \r\n\r\n //console.log(\"RptMemberList.render()\")\r\n return (\r\n
\r\n

{this.props.title}

\r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\n\r\nexport default RptMemberList;","import React, { useState } from \"react\";\r\nimport { showApiError} from \"../utilities\";\r\nimport { AutoComplete, Button, Input, DatePicker, Badge, Form } from \"antd\";\r\nimport debounce from \"lodash.debounce\";\r\nimport \"moment/locale/en-nz\";\r\nimport moment from \"moment\";\r\nimport { ContributorsAutoCompleteApi, fetchMode } from \"../../services/apiService\";\r\nimport { useGlobal } from 'reactn';\r\nimport { user_roles } from '../enums'\r\n\r\nfunction ContributionFilter(props) {\r\n\r\n const userRole = window.sessionStorage.getItem(\"UserRole\") || \"\";\r\n const dateFormat = \"DD-MM-YYYY\";\r\n const [fromDate, setFromDate] = useGlobal( \"fromDate\" )\r\n const [toDate, setToDate] = useGlobal(\"toDate\")\r\n const [member , setMember] = useGlobal(\"member\")\r\n const [memberList, setMemberList] = useState([]) \r\n\r\n\r\n let gMember = {...member} \r\n\r\n\r\n function fnSetMember (item) {\r\n let offeringNo = \"\";\r\n let selectedMember = \"\";\r\n let contributorId = -1;\r\n if (item) {\r\n selectedMember = item.text.substr(item.text.indexOf(\" \") + 1);\r\n offeringNo = item.text.substr(0, item.text.indexOf(\" \"));\r\n contributorId = item.id;\r\n }\r\n\r\n wrapSetMember({ selectedMember, offeringNo, contributorId });\r\n };\r\n\r\n \r\n function handleOnSelect(selectedValue) {\r\n //console.log(\"selectedValue: \" + selectedValue);\r\n let selectItem = memberList.find(\r\n item => item.value === parseInt(selectedValue)\r\n );\r\n fnSetMember(selectItem);\r\n //console.log(member);\r\n };\r\n\r\n function handleOnChange(changedValue ){\r\n //console.log(\"changedValue:\" + changedValue);\r\n //this.setState({ contributorId: changedValue });\r\n };\r\n\r\n function wrapSetMember( obj ) {\r\n setMember(obj)\r\n gMember = {...obj} \r\n }\r\n\r\n function handleSearch (searchValue ){\r\n wrapSetMember({ selectedMember: searchValue, offeringNo: \"\", contributorId: -1 })\r\n if (searchValue === \"\") {\r\n setMemberList([]) \r\n } else {\r\n debounceLoadData(searchValue)\r\n }\r\n };\r\n\r\n function handleOnFocus (e) {\r\n // this.setState({ memberList: [] });\r\n };\r\n\r\n function handleOnBlur (e) {\r\n //console.log(\"onBlur:\" + e);\r\n if (member.offeringNo === \"\") {\r\n debounceAutoPick();\r\n }\r\n };\r\n\r\n const debounceLoadData = debounce(loadData, 200);\r\n const debounceAutoPick = debounce(autopick, 220);\r\n\r\n // class helper functions\r\n function autopick() {\r\n // fill the offering number using the return autocomplete array if nothing has pick\r\n // this is the case when user enter an offering number an then tab out without selecting anything\r\n let item ;\r\n if (memberList.length > 0) {\r\n item = memberList[0];\r\n }\r\n fnSetMember(item);\r\n };\r\n \r\n function loadData(qString) {\r\n ContributorsAutoCompleteApi(qString)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n if (fetchMode === \"local\") {\r\n //console.log(\"localmode, local process\");\r\n json = localPostProcess(qString, json);\r\n }\r\n setMemberList(json)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n }\r\n\r\n // this function only use for local development to simulate the autocomplete search\r\n // it won't be use in production\r\n function localPostProcess(str, members) {\r\n function byValue(search) {\r\n return function(element) {\r\n if (element.value === parseInt(search)) {\r\n return element;\r\n }\r\n };\r\n }\r\n\r\n function byName(search) {\r\n return function(element) {\r\n if (element.text.toLowerCase().includes(search.toLowerCase())) {\r\n return element;\r\n }\r\n };\r\n }\r\n\r\n if (isNaN(str)) {\r\n return members.filter(byName(str));\r\n } else {\r\n return members.filter(byValue(str));\r\n }\r\n }\r\n\r\n\r\n function handleToDateChange( m, s) {\r\n //console.log(`${s}`)\r\n //toDate = m \r\n setToDate(m)\r\n }\r\n\r\n function handleFromDateChange( m, s) {\r\n //console.log(`${s}`)\r\n setFromDate( m )\r\n }\r\n\r\n //function handleGroupbyChange(e) {\r\n // groupBy = e.target.value\r\n //}\r\n\r\n function handleSeachClick(e) {\r\n let groupBy = e.target.value ;\r\n setTimeout(() => {\r\n doSearch( groupBy)\r\n }, 250);\r\n // let contId=0\r\n // if (member.contributorId) {\r\n // contId = parseInt(member.contributorId)\r\n // }\r\n // let search = { \r\n // fromDate: fromDate.format(\"YYYYMMDD\"),\r\n // toDate: toDate.format(\"YYYYMMDD\"),\r\n // contId,\r\n // offeringNo: member.offeringNo,\r\n // selectedMember: member.selectedMember,\r\n // groupBy: e.target.value\r\n // }\r\n\r\n // props.doSearch(search)\r\n }\r\n \r\n function doSearch( groupBy ) {\r\n console.log(\"doSearch: \" + gMember.offeringNo + \":\" + gMember.selectedMember)\r\n\r\n let contId=0\r\n if (gMember.contributorId) {\r\n contId = parseInt(gMember.contributorId)\r\n }\r\n let search = {\r\n fromDate: fromDate.format(\"YYYYMMDD\"),\r\n toDate: toDate.format(\"YYYYMMDD\"),\r\n contId,\r\n offeringNo: gMember.offeringNo,\r\n selectedMember: gMember.selectedMember,\r\n groupBy: groupBy\r\n }\r\n props.doSearch(search)\r\n }\r\n\r\n function ReportButton() {\r\n\r\n if(props.groupBy < 0) {\r\n return (\r\n \r\n  \r\n \r\n )\r\n }\r\n return (\r\n \r\n  \r\n \r\n \r\n )\r\n }\r\n\r\n function handleSetDates(dr) {\r\n let today = new Date()\r\n let start\r\n let end\r\n if (dr === \"y\") {\r\n //console.log(\"set last year\");\r\n let year = today.getFullYear()\r\n if (today.getMonth() > 3) {\r\n year = year - 1\r\n } else {\r\n year = year - 1\r\n }\r\n // last year\r\n start = new Date(year, 3, 1)\r\n end = new Date(year + 1, 2, 31)\r\n\r\n } else {\r\n // last month\r\n if (today.getMonth() === 0) {\r\n start = new Date(today.getFullYear() - 1, 12, 1)\r\n end = new Date(today.getFullYear(), 1, 0)\r\n } else {\r\n start = new Date(today.getFullYear(), today.getMonth() - 1, 1)\r\n end = new Date(today.getFullYear(), today.getMonth(), 0)\r\n }\r\n }\r\n setFromDate(moment(start))\r\n setToDate(moment(end))\r\n\r\n //console.log(`date range: ${start.toLocaleDateString()} ${end.toString()}`)\r\n\r\n }\r\n return (\r\n
\r\n
\r\n {userRole === user_roles.SUMMARY_ONLY ? null :\r\n (
\r\n \r\n \r\n  \r\n
)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ContributionFilter;\r\n","import React from \"react\";\r\nimport {\r\n Page,\r\n Text,\r\n View,\r\n Document,\r\n BlobProvider,\r\n} from \"@react-pdf/renderer\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { Spin } from \"antd\";\r\nimport { summary_styles as styles, PDFSaved} from './PDF_Helper'\r\n\r\n\r\nconst DisplayContent = props => {\r\n let i = 0\r\n return props.data.map(item => {\r\n let thisStyle = styles.detailContainerGray\r\n i += 1\r\n if (i % 2) thisStyle = styles.detailContainer\r\n return (\r\n \r\n {item.groupKey}\r\n {item.total.toFixed(2)}\r\n \r\n );\r\n });\r\n };\r\n\r\nconst Heading = props => {\r\n let OrgName = sessionStorage.getItem(\"OrganisationName\");\r\n let Address = sessionStorage.getItem(\"Address\");\r\n return (\r\n \r\n {OrgName}\r\n {Address}\r\n Contribution Summary\r\n Period: {props.fromDate.format('DD/MM/YYYY')} to {props.toDate.format('DD/MM/YYYY')}\r\n \r\n \r\n );\r\n }\r\n\r\n \r\nconst TotalLine = props => {\r\n return (\r\n \r\n Total\r\n {props.totalAmount.toFixed(2)}\r\n \r\n )\r\n} \r\n\r\nconst MemberLine = (props) =>{ \r\n //console.log('props.contId:' + props.contId)\r\n if(props.contId > 0) {\r\n return {`for (${props.offeringNo}) ${props.selectedMember} ` }\r\n }\r\n return null\r\n}\r\n\r\n\r\nconst GetPDF = props => {\r\n let totalAmount = props.data.reduce( (acc, i) => acc + i.total , 0 )\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n `Page ${pageNumber}`}\r\n fixed\r\n />\r\n \r\n \r\n );\r\n };\r\n \r\n\r\nexport default function CreateAndSavePDF(props) {\r\n\r\n if (props.ready) {\r\n let endDate = props.toDate.format('DD_MM_YYYY')\r\n //console.log(props.fromDate.format('DD_MM_YYYY'))\r\n return (\r\n }>\r\n {({ blob, url, loading, error }) => {\r\n //console.log(url);\r\n if (!loading && url) {\r\n saveAs(blob, `summary_${endDate}.pdf`); //\r\n return ;\r\n }\r\n if (loading) {\r\n return ;\r\n }\r\n if (error) {\r\n //console.error(error);\r\n return

An error occurred

;\r\n }\r\n \r\n return null;\r\n }}\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n \r\n ","import React, { useState } from 'react'\r\nimport ContributionFilter from './ContributionsFilter'\r\nimport { Table, Button, Row, Col } from 'antd'\r\nimport { ContributionsSummaryReportApi } from '../../services/apiService'\r\nimport { showApiError, renderFooterTable } from '../utilities'\r\nimport { CSVLink } from 'react-csv'\r\nimport \"moment/locale/en-nz\"\r\nimport moment from \"moment\"\r\nimport CreateAndSavePDF from './GenContSummaryPDF'\r\n\r\nfunction SummaryReport(props) {\r\n const [data, setData] = useState([])\r\n const [readyPDF, setReadyPDF] = useState(false)\r\n const [groupBy, setGroupBy] = useState(1)\r\n const [search, setSearch] = useState({ fromDate: moment().day(0), toDate: moment(), contId:0})\r\n //console.log(\"fromDate at then top :\" + search.fromDate.toString())\r\n\r\n function handleSearch(filter) {\r\n let querystring = `?from=${filter.fromDate}&to=${filter.toDate}&contId=${filter.contId}&groupby=${filter.groupBy}`\r\n //console.log(`${querystring}`)\r\n setGroupBy(parseInt(filter.groupBy))\r\n LoadData(querystring)\r\n setSearch({ fromDate: moment(filter.fromDate), toDate: moment(filter.toDate), contId:filter.contId, selectedMember: filter.selectedMember, offeringNo: filter.offeringNo } )\r\n }\r\n\r\n let columns = [\r\n {\r\n title: groupBy ? 'Fund' : 'Contribution Date',\r\n dataIndex: 'groupKey',\r\n key: 'groupKey',\r\n },\r\n {\r\n title: 'Total',\r\n dataIndex: 'total',\r\n align: 'right',\r\n render: (item, row) => {item.toFixed(2)}\r\n },\r\n\r\n ]\r\n\r\n function LoadData(querystring) {\r\n ContributionsSummaryReportApi(querystring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n setData(json)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n\r\n }\r\n\r\n\r\n function FinishDownloadPDF() {\r\n setReadyPDF(false)\r\n }\r\n\r\n function ShowTable() {\r\n if (data.length > 0) {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {/*} fileName=\"tax-cert.pdf\">\r\n */}\r\n
\r\n
\r\n
\r\n {renderFooterTable(total, columns, 'groupKey', size)}\r\n \r\n \r\n )\r\n }\r\n\r\n return null\r\n\r\n }\r\n\r\n let total = data.reduce((total, item) => total + item.total, 0)\r\n let size = \"middle\"\r\n return (\r\n
\r\n

{props.title}

\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n\r\n}\r\n\r\nexport default SummaryReport;","import React from \"react\";\r\nimport { Table } from \"antd\";\r\nimport moment from 'moment';\r\nimport \"moment/locale/en-nz\"\r\n//import { showApiError, renderFooterTable } from '../utilities'\r\n\r\n\r\nfunction renderFooterTable(total, rebate, columns, titleCol, size) {\r\n const dataList = [{\r\n contributionLineId: 0,\r\n \"contributorId\": 0,\r\n \"fund\": \"\",\r\n \"amount\": total,\r\n \"rebatePercentage\": \"\",\r\n \"rebateAmount\": rebate,\r\n \"contributionDate\": \"Total\",\r\n \"displayName\": \"\",\r\n \"offeringNo\": 0\r\n }];\r\n return (\r\n \r\n );\r\n}\r\n\r\n\r\nfunction DetailReportContent(props) {\r\n let columns = [\r\n {\r\n title: \"Contribution Date\",\r\n dataIndex: \"contributionDate\",\r\n key: \"contributionDate\",\r\n render: (item) => { item==='Total'? 'Total' : moment(item).format(\"DD/MM/YYYY\")},\r\n width: '150px'\r\n },\r\n {\r\n title: \"Fund\",\r\n dataIndex: \"fund\",\r\n align: 'left',\r\n width: '250px'\r\n \r\n },\r\n {\r\n title: \"Amount\",\r\n dataIndex: \"amount\",\r\n align: 'right',\r\n width: '100px',\r\n render: (item) => {item.toFixed(2)}\r\n },\r\n {\r\n title: \"Rebate %\",\r\n dataIndex: \"rebatePercentage\",\r\n align: 'right',\r\n width: '100px',\r\n },\r\n {\r\n title: \"Rebate Amount\",\r\n dataIndex: \"rebateAmount\",\r\n align: 'right',\r\n width: '100px',\r\n render: (item) => {item.toFixed(2)}\r\n }\r\n ];\r\n\r\n let reduceArray = props.data.reduce( (acc, item) => {\r\n acc.amount = acc.amount + item.amount\r\n acc.rebate = acc.rebate + item.rebateAmount\r\n return acc\r\n }, { amount:0 , rebate: 0} )\r\n\r\n return (\r\n
\r\n

Statement of contributions

\r\n

{props.displayName}

\r\n
\r\n {renderFooterTable( reduceArray.amount, reduceArray.rebate, columns, \"\", \"middle\" )}\r\n \r\n );\r\n}\r\n\r\nexport default DetailReportContent;\r\n","import React from \"react\";\r\nimport {\r\n Page,\r\n Text,\r\n View,\r\n Document,\r\n BlobProvider,\r\n} from \"@react-pdf/renderer\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { Spin } from \"antd\";\r\nimport {details_styles as styles, PDFSaved} from './PDF_Helper'\r\nimport moment from \"moment\";\r\n\r\nconst DisplayContent = props => {\r\n let i = 0\r\n return props.data.map(item => {\r\n let thisStyle = styles.detailContainerGray\r\n i += 1\r\n if (i % 2) thisStyle = styles.detailContainer\r\n return (\r\n \r\n {moment(item.contributionDate).format('DD MMM YYYY')}\r\n {item.fund}\r\n {item.amount.toFixed(2)}\r\n {item.rebatePercentage}\r\n {item.rebateAmount.toFixed(2)}\r\n \r\n\r\n );\r\n\r\n })\r\n\r\n };\r\n\r\nconst Heading = props => {\r\n let OrgName = sessionStorage.getItem(\"OrganisationName\");\r\n let Address = sessionStorage.getItem(\"Address\");\r\n return (\r\n \r\n {OrgName}\r\n {Address}\r\n Statement of Contributions\r\n Period: {props.fromDate.format('DD/MM/YYYY')} to {props.toDate.format('DD/MM/YYYY')}\r\n { `(${props.member.offeringNo}) ${props.member.displayName}` } \r\n \r\n );\r\n }\r\n\r\n \r\nconst TotalLine = props => {\r\n return (\r\n \r\n \r\n \r\n {props.totalAmount.toFixed(2)}\r\n \r\n {props.totalRebate.toFixed(2)}\r\n\r\n \r\n )\r\n} \r\n\r\nconst TableHeading = props => {\r\n return (\r\n \r\n Date\r\n Fund\r\n Amount\r\n Rebate %\r\n Rebate Amount\r\n \r\n )\r\n}\r\n\r\nconst GetPage = props => {\r\n return props.data.map( (p) => {\r\n let details = props.reportData.filter(item => {\r\n return item.contributorId === p.contributorId\r\n })\r\n let total = details.reduce((total, i) => total + i.amount, 0)\r\n let totalRebate = details.reduce((total, i) => total + i.rebateAmount, 0)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n `Page ${pageNumber}`}\r\n fixed\r\n />\r\n )\r\n })\r\n}\r\n\r\nconst GetPDF = props => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n \r\n\r\nexport default function CreateAndSavePDF(props) {\r\n\r\n if (props.ready) {\r\n let endDate = props.toDate.format('DD_MM_YYYY')\r\n return (\r\n }>\r\n {({ blob, url, loading, error }) => {\r\n if (!loading && url) {\r\n saveAs(blob, `contributions_${endDate}.pdf`); //\r\n return ;\r\n }\r\n if (loading) {\r\n return ;\r\n }\r\n if (error) {\r\n console.error(error);\r\n return

An error occurred

;\r\n }\r\n \r\n return null;\r\n }}\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n \r\n ","import React, { useState, useEffect } from \"react\";\r\nimport ContributionFilter from \"./ContributionsFilter\";\r\nimport { Pagination, Row, Col, Button } from \"antd\";\r\nimport { ContributionsReportPager, ContributionsDetails } from \"../../services/apiService\";\r\nimport DetailReportContent from \"./DetailReportContent\"\r\nimport { showApiError } from \"../utilities\";\r\nimport { CSVLink } from 'react-csv'\r\nimport \"moment/locale/en-nz\";\r\nimport moment from \"moment\";\r\nimport CreateAndSavePDF from './GenContDetailsPDF'\r\n\r\nfunction DetailReportContainer(props) {\r\n const [data, setData] = useState([]);\r\n const [detailData, setDetail] = useState([]);\r\n const [reportData, setReportData] = useState([]);\r\n const [readyPDF, setReadyPDF] = useState(false)\r\n const [currentPage, setCurrentPage] = useState(0) ;\r\n const [search, setSearch] = useState({ fromDate: moment().day(0), toDate: moment(),contId:0})\r\n // let today = moment();\r\n// let fromDate = moment().day(0);\r\n\r\n useEffect(() => {\r\n if (search.fromDate !== \"\" && currentPage > 0) {\r\n let contId = data[currentPage - 1].contributorId\r\n let querystring = `?from=${search.fromDate.format('YYYYMMDD')}&to=${search.toDate.format('YYYYMMDD')}&contId=${contId}`;\r\n //console.log(`useEffectr ${querystring}`)\r\n LoadDetailData(querystring)\r\n }\r\n\r\n }, [currentPage])\r\n\r\n function handleSearch(query) {\r\n let querystring = `?from=${query.fromDate}&to=${query.toDate}&contId=${\r\n query.contId\r\n }`;\r\n setCurrentPage(0)\r\n setSearch({ ...query, fromDate: moment(query.fromDate), toDate: moment(query.toDate) })\r\n //console.log(`${querystring}`);\r\n LoadData(querystring);\r\n LoadReportData(querystring);\r\n }\r\n\r\n function LoadData(querystring) {\r\n ContributionsReportPager(querystring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n //json\r\n\r\n setData(json);\r\n if (json.length > 0) {\r\n setCurrentPage(1)\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n }\r\n\r\n\r\n function FinishDownloadPDF() {\r\n setReadyPDF(false)\r\n }\r\n\r\n function LoadReportData(querystring) {\r\n ContributionsDetails(querystring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n //json\r\n setReportData(json);\r\n //console.log(`LoadReportData ${querystring}`)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n }\r\n\r\n\r\n function LoadDetailData(querystring) {\r\n ContributionsDetails(querystring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n //json\r\n setDetail(json);\r\n //console.log(`loaddetaildata ${querystring}`)\r\n\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n }\r\n\r\n\r\n\r\n function handlePageChange(page, ps) {\r\n setCurrentPage( page)\r\n }\r\n \r\n function ShowPager(){\r\n if(data.length > 1) {\r\n //console.log(`number of pages: ${data.length}`)\r\n return ()\r\n }\r\n return null\r\n }\r\n\r\n function ShowContent() {\r\n if (currentPage > 0) {\r\n let item = data[currentPage - 1]\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n )\r\n } else return null\r\n }\r\n\r\n return (\r\n
\r\n

{props.title}

\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default DetailReportContainer;\r\n","import React, { useState } from 'react'\r\nimport ContributionFilter from './ContributionsFilter'\r\nimport { Button, Form, InputNumber } from 'antd'\r\nimport { RebateAdjustApi, PostRebateAdjust } from '../../services/apiService'\r\nimport { showApiError , showApiSuccess} from '../utilities'\r\nimport \"moment/locale/en-nz\"\r\nimport moment from \"moment\"\r\n\r\nexport default function RebateAdjust(props) {\r\n const [data, setData] = useState([])\r\n const [search, setSearch] = useState({ fromDate: \"\", toDate: \"\", contId: 0 })\r\n\r\n let today = moment()\r\n let fromDate = moment().day(0)\r\n\r\n function handleSearch(search) {\r\n let querystring = `?from=${search.fromDate}&to=${search.toDate}&contId=${search.contId}&groupby=${search.groupBy}`\r\n //console.log(`${querystring}`)\r\n LoadData(querystring)\r\n setSearch(search)\r\n }\r\n\r\n function PostData(data) {\r\n\r\n //console.log(\"post data\")\r\n PostRebateAdjust(data)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n //json \r\n //console.log(json);\r\n showApiSuccess(\"Rebate adjustment applied.\")\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n\r\n }\r\n\r\n\r\n function LoadData(querystring) {\r\n RebateAdjustApi(querystring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n //json \r\n\r\n setData(json)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n\r\n }\r\n\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 8 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 16 },\r\n },\r\n };\r\n\r\n function handleValueChanghe(value, index) {\r\n let item = { ...data[index], newPercentage: value }\r\n data[index] = item\r\n //console.log(data[index])\r\n\r\n }\r\n\r\n function handleSubmit(e) {\r\n //todo post data back to backend.\r\n e.preventDefault()\r\n let postData = {\r\n fromDate: moment(search.fromDate,\"YYYYMMDD\").format(\"YYYY-MM-DD\"),\r\n toDate: moment(search.toDate, \"YYYYMMDD\").format(\"YYYY-MM-DD\"),\r\n FundAdjustDTOs: data\r\n }\r\n //console.log(postData)\r\n PostData(postData)\r\n }\r\n\r\n\r\n\r\n function RenderFormItem() {\r\n return data.map((item, index) => {\r\n //console.log(`item.fund: {item.fund} `)\r\n return (\r\n handleValueChanghe(e, index)} />\r\n )\r\n })\r\n }\r\n\r\n function ShowForm() {\r\n //console.log(\"run ShowForm\")\r\n if (data.length > 0) {\r\n return (\r\n
\r\n \r\n Rebate Percentage\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n return null\r\n }\r\n return (\r\n
\r\n

{props.title}

\r\n \r\n \r\n
\r\n )\r\n\r\n}\r\n\r\n","import React from \"react\";\r\nimport {\r\n Page,\r\n Text,\r\n View,\r\n Document,\r\n BlobProvider,\r\n} from \"@react-pdf/renderer\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { Spin } from \"antd\";\r\nimport { receipts_styles as styles, PDFSaved} from './PDF_Helper'\r\n\r\n\r\nconst DisplayContent = props => {\r\n return props.data.map(item => {\r\n let OrgName = sessionStorage.getItem(\"OrganisationName\");\r\n let Address = sessionStorage.getItem(\"Address\");\r\n return (\r\n \r\n {OrgName}\r\n {Address}\r\n Tax Certificate\r\n \r\n Reference :\r\n \r\n {item.offeringNo}\r\n \r\n \r\n \r\n Received from :\r\n \r\n {item.displayName}{\" \"}\r\n \r\n \r\n \r\n This receipt covers donations for the period:\r\n \r\n {item.fromDate} to {item.toDate}\r\n \r\n \r\n \r\n Total received:\r\n \r\n ${item.totalAmount.toFixed(2)}\r\n \r\n \r\n \r\n \r\n Sign:\r\n \r\n\r\n \r\n );\r\n });\r\n};\r\n\r\nconst GetPDF = props => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default function CreateAndSavePDF(props) {\r\n\r\n if (props.ready) {\r\n let endDate = props.data[0].toDate.replace(/\\//g,'_')\r\n return (\r\n }>\r\n {({ blob, url, loading, error }) => {\r\n //console.log(url);\r\n if (!loading && url) {\r\n //console.log(\"saving...\");\r\n saveAs(blob, `tax_certificate_${endDate}.pdf`);\r\n //console.log(\"saved\");\r\n //alert(\"downloaded\")\r\n //intervalId = setInterval(doFinish, 200)\r\n return ;\r\n }\r\n if (loading) {\r\n //console.log(`.....loading ${loading} ....`);\r\n return ;\r\n }\r\n if (error) {\r\n //console.error(error);\r\n return

An error occurred

;\r\n }\r\n\r\n return null;\r\n }}\r\n
\r\n );\r\n }\r\n return null;\r\n}\r\n\r\n","import React, { useState } from 'react'\r\nimport ContributionFilter from './ContributionsFilter'\r\nimport { Table, Button } from 'antd'\r\nimport { GetReceiptsApi } from '../../services/apiService'\r\nimport { showApiError, showApiSuccess } from '../utilities'\r\nimport { CSVLink } from 'react-csv'\r\nimport \"moment/locale/en-nz\"\r\nimport moment from \"moment\"\r\nimport CreateAndSavePDF from './GenerateReceipts'\r\n\r\n\r\nfunction ReceiptsContainer(props) {\r\n const [data, setData] = useState([])\r\n const [readyPDF, setReadyPDF] = useState(false)\r\n let today = moment()\r\n let fromDate = moment().day(0)\r\n\r\n function handleSearch(search) {\r\n let querystring = `?from=${search.fromDate}&to=${search.toDate}&contId=${search.contId}`\r\n //console.log(`${querystring}`)\r\n LoadData(querystring)\r\n }\r\n\r\n let columns = [\r\n {\r\n title: 'Offering No',\r\n dataIndex: 'offeringNo',\r\n key: 'offeringNo',\r\n },\r\n {\r\n title: 'Name',\r\n dataIndex: 'displayName'\r\n },\r\n {\r\n title: 'Amount',\r\n dataIndex: 'totalAmount'\r\n },\r\n\r\n ]\r\n\r\n function FinishDownloadPDF() {\r\n setReadyPDF( false )\r\n }\r\n\r\n function LoadData(querystring) {\r\n GetReceiptsApi(querystring)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n throw new Error(json);\r\n } else {\r\n //json \r\n setData(json)\r\n if (json.length < 1) {\r\n showApiSuccess(\"No record found\")\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error);\r\n });\r\n\r\n }\r\n\r\n function ShowTable() {\r\n if (data.length > 0) {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {/*} fileName=\"tax-cert.pdf\">\r\n */}\r\n
\r\n
\r\n )\r\n }\r\n\r\n return null\r\n\r\n }\r\n\r\n return (\r\n
\r\n

{props.title}

\r\n \r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nexport default ReceiptsContainer;","import React from \"react\"\r\nimport MemberList from './Reports/MemberList'\r\nimport SummaryReport from './Reports/SummaryReport'\r\nimport DetailReportContainer from \"./Reports/DetailReportContainer\";\r\nimport RebateAdjust from \"./Reports/RebateAdjust\"\r\nimport ReceiptsContainer from \"./Reports/ReceiptsContainer\"\r\n\r\nconst Reports = props => {\r\n let report\r\n switch (props.match.params.report) {\r\n case \"memberlist\":\r\n report = \"Member List\";\r\n return \r\n //break\r\n case \"rebateAdjust\":\r\n report = \"Report % Adjustment\"\r\n return \r\n //break\r\n case \"contrSummary\":\r\n report = \"Contribution Summary\"\r\n return \r\n //break\r\n case \"contrDetails\":\r\n report = \"Contribution Details\"\r\n return \r\n //break\r\n case \"receipts\":\r\n report = \"Receipts\"\r\n return \r\n default:\r\n report = \"unknown: something wrong here\"\r\n }\r\n\r\n console.log(typeof report)\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Reports;\r\n","import React, { useState } from 'react'\r\nimport { DatePicker, Button, Form } from \"antd\";\r\nimport { showApiError, showApiSuccess } from \"./utilities\";\r\n\r\n\r\nexport default function Test(props) {\r\n\r\n function handleOKClick() {\r\n\r\n window.location.href = \"/\"\r\n return new Promise((resolve, reject) => {\r\n //setTimeout(resolve, 100);\r\n resolve();\r\n }).catch(() => console.log('Oops errors!'));\r\n\r\n }\r\n function handleClick() {\r\n\r\n showApiSuccess(\"yeah\", handleOKClick) \r\n console.log(\"showApisuccess\")\r\n //window.location.href = \"/\"\r\n }\r\n\r\n\r\n return (\r\n
\r\n

TEST PAGE

\r\n \r\n
\r\n )\r\n\r\n} ","import React from 'react';\r\n\r\nexport default function Home() {\r\n\r\n return (\r\n
\r\n\r\n
\r\n

Malachi 3:10

\r\n

Bring ye all the tithes into the storehouse, that there may be meat in mine house, and prove me now herewith, saith the Lord of hosts, if I will not open you the windows of heaven, and pour you out a blessing, that there shall not be room enough to receive it.

\r\n
\r\n\r\n
\r\n\r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { getUsers, deleteUserApi } from '../../services/apiService'\r\nimport { showApiError } from '../utilities'\r\nimport { Form, Button, Icon, Table, Popconfirm } from 'antd';\r\n\r\nconst currentUser = window.sessionStorage.getItem(\"UserName\") || \"\";\r\n\r\n\r\nfunction TitleBar(props) {\r\n //console.log(props)\r\n\r\n\r\n function handleClick() {\r\n props.history.push('/adduser')\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
)\r\n\r\n}\r\n\r\nexport default function UsersContainer(props) {\r\n\r\n\r\n const [userdata, setUserData] = useState([])\r\n\r\n\r\n const columns = [\r\n {\r\n title: 'Name',\r\n dataIndex: 'userName',\r\n key: 'userName',\r\n },\r\n {\r\n title: 'Email',\r\n dataIndex: 'email',\r\n key: 'email',\r\n },\r\n {\r\n title: 'Role',\r\n dataIndex: 'role',\r\n key: 'role',\r\n },\r\n {\r\n title: 'Delete',\r\n render: (text, record) => (\r\n currentUser === record.userName ? '' : \r\n deleteUser(record.id)}\r\n > \r\n \r\n )\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n getUsers()\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n //console.log(json)\r\n setUserData(json)\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n }, [])\r\n\r\n function deleteUser(id) {\r\n\r\n\r\n deleteUserApi(id)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n\r\n //window.location.href = \"/users\"\r\n setUserData(json)\r\n\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n\r\n\r\n }\r\n\r\n\r\n return (\r\n
\r\n

{props.title}

\r\n \r\n
\r\n\r\n \r\n );\r\n}","import React from 'react';\r\nimport { createUser } from '../../services/apiService'\r\nimport { showApiError } from '../utilities'\r\nimport { Form, Button, Input, Select } from 'antd';\r\nimport { user_roles_source } from '../enums'\r\n\r\nconst { Option } = Select;\r\nclass AddNewUser extends React.Component {\r\n\r\n state = {\r\n confirmDirty: false,\r\n autoCompleteResult: [],\r\n };\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n //console.log(\"submitting contributor...\");\r\n this.props.form.validateFields((err, values) => {\r\n if (!err) {\r\n\r\n\r\n const newUser = {\r\n \"username\": values.newUserName,\r\n \"email\": values.email,\r\n \"password\": values.password,\r\n \"role\": values.role\r\n }\r\n\r\n //console.log(\"new user: \", newUser);\r\n\r\n createUser(newUser)\r\n .then(json => {\r\n if (typeof json === 'string') {\r\n throw new Error(json)\r\n } else {\r\n\r\n //window.location.href = \"/users\"\r\n this.props.history.push('/users')\r\n }\r\n })\r\n .catch(error => {\r\n showApiError(error)\r\n })\r\n\r\n\r\n } else {\r\n console.error(err)\r\n }\r\n })\r\n }\r\n\r\n handleConfirmBlur = e => {\r\n const { value } = e.target;\r\n this.setState({ confirmDirty: this.state.confirmDirty || !!value });\r\n };\r\n\r\n compareToFirstPassword = (rule, value, callback) => {\r\n const { form } = this.props;\r\n if (value && value !== form.getFieldValue('password')) {\r\n callback('Two passwords that you enter is inconsistent!');\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n\r\n validateToNextPassword = (rule, value, callback) => {\r\n const { form } = this.props;\r\n if (value && this.state.confirmDirty) {\r\n form.validateFields(['confirm'], { force: true });\r\n }\r\n callback();\r\n };\r\n\r\n handleRoleChange = value => {\r\n //console.log(\"value: \" + value )\r\n };\r\n\r\n render() {\r\n\r\n const { getFieldDecorator } = this.props.form;\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 16 },\r\n },\r\n }\r\n const tailFormItemLayout = {\r\n wrapperCol: {\r\n xs: {\r\n span: 24,\r\n offset: 0,\r\n },\r\n sm: {\r\n span: 12,\r\n offset: 4,\r\n },\r\n },\r\n };\r\n\r\n\r\n const role_options = Object.values( user_roles_source )\r\n\r\n //console.log(this.props)\r\n return (\r\n
\r\n

{this.props.title}

\r\n
\r\n
\r\n\r\n \r\n {getFieldDecorator('email', {\r\n initialValue: '',\r\n rules: [\r\n {\r\n type: 'email',\r\n message: 'The input is not valid E-mail!',\r\n },\r\n {\r\n required: true,\r\n message: 'Please input your E-mail!',\r\n },\r\n ],\r\n })()}\r\n \r\n\r\n \r\n {getFieldDecorator('newUserName', {\r\n initialValue: '',\r\n rules: [{ required: true, message: 'Please input your username!' }],\r\n })(\r\n \r\n )}\r\n \r\n\r\n \r\n {getFieldDecorator('password', {\r\n initialValue: '',\r\n rules: [\r\n {\r\n required: true,\r\n message: 'Please input your password!',\r\n },\r\n {\r\n validator: this.validateToNextPassword,\r\n },\r\n ],\r\n })()}\r\n \r\n\r\n \r\n {getFieldDecorator('confirm', {\r\n rules: [\r\n {\r\n required: true,\r\n message: 'Please confirm your password!',\r\n },\r\n {\r\n validator: this.compareToFirstPassword,\r\n },\r\n ],\r\n })()}\r\n \r\n\r\n \r\n {getFieldDecorator('role', {\r\n initialValue : role_options[0] ,\r\n rules: [{ required: true, message: 'Please select the user role!' }],\r\n })(\r\n \r\n {\r\n role_options.map(r => (\r\n \r\n )\r\n )\r\n }\r\n ,\r\n )}\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n};\r\n\r\n\r\nconst AddUser = Form.create({ name: 'newuser' })(AddNewUser);\r\nexport default AddUser;","/// \r\n\r\nimport React, { Component } from 'react'\r\n//import PropTypes from 'prop-types'\r\nimport { Route } from 'react-router-dom';\r\nimport Contributors from './contributors/ContributorsContainer';\r\nimport Contributions from './contributions/ContributionsContainer';\r\nimport AccountMaintenance from './accountmain';\r\nimport FormOrganization from './organizaton';\r\nimport EditableFunds from './Funds/EditFunds';\r\nimport ContributionsByMember from './contributions/ContributionsByMember'\r\nimport Reports from './reports';\r\nimport Test from './testpage';\r\nimport { user_roles } from './enums'\r\nimport Home from './Home'\r\nimport UserContainer from './Users/UsersContainer'\r\nimport AddUser from './Users/adduser'\r\n\r\n\r\nexport default class AppContent extends Component {\r\n\r\n fullMenuRoute() {\r\n return
\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n
\r\n }\r\n SummaryRoute() {\r\n return
\r\n } />\r\n
\r\n }\r\n \r\n render() {\r\n return this.props.userRole === user_roles.SUMMARY_ONLY? this.SummaryRoute() : this.fullMenuRoute();\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport { usersLoginApi } from '../services/apiService'\r\nimport {\r\n Form, Icon, Input, Button } from 'antd';\r\n\r\nclass NormalLoginForm extends React.Component {\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n this.props.form.validateFields((err, values) => {\r\n //if (!err) {\r\n // console.log('Received values of form: ', values);\r\n //}\r\n let { UserName, Password } = values;\r\n let request = {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({ UserName, Password })\r\n }\r\n\r\n usersLoginApi(request)\r\n .then(json => {\r\n if (typeof json === \"string\") {\r\n let errorMessage = json\r\n if (json === \"Error: 401\") {\r\n errorMessage = \"Invalid user name or password\"\r\n }\r\n this.props.form.setFields({\r\n Password: {\r\n value: null,\r\n errors: [new Error(errorMessage)]\r\n }\r\n })\r\n }\r\n else {\r\n window.sessionStorage.setItem(\"UserName\", json.username)\r\n window.sessionStorage.setItem(\"UserRole\", json.role)\r\n window.sessionStorage.setItem(\"OrganisationName\", json.organisationName)\r\n window.sessionStorage.setItem(\"OrganisationId\", json.organisationId)\r\n window.sessionStorage.setItem(\"Address\", json.address)\r\n window.sessionStorage.setItem(\"jwtToken\", json.token)\r\n window.sessionStorage.setItem(\"email\", json.email)\r\n let version = json.version || '';\r\n window.location.href = \"/?v=\"+version;\r\n }\r\n })\r\n .catch(err => {\r\n console.error( err)\r\n })\r\n\r\n\r\n });\r\n }\r\n\r\n render() {\r\n const formItemLayout =\r\n {\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n }\r\n \r\n const tailFormItemLayout = {\r\n wrapperCol: {\r\n sm: {\r\n span: 16,\r\n offset: 8,\r\n },\r\n },\r\n };\r\n const { getFieldDecorator } = this.props.form;\r\n return (\r\n
\r\n
\r\n

Church Helper Online

\r\n
\r\n \r\n {getFieldDecorator('UserName', {\r\n rules: [{ required: true, message: 'Please input your username!' }],\r\n })(\r\n } placeholder=\"Username\" />\r\n )}\r\n \r\n \r\n {getFieldDecorator('Password', {\r\n rules: [{ required: true, message: 'Please input your Password!' }],\r\n })(\r\n } type=\"password\" placeholder=\"Password\" />\r\n )}\r\n \r\n \r\n Forgot password\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst WrappedNormalLoginForm = Form.create({ name: 'normal_login' })(NormalLoginForm);\r\n\r\nexport default WrappedNormalLoginForm;","import React from 'react';\r\nimport { recoverLoginApi } from '../services/apiService'\r\nimport { showApiError, showApiSuccess } from \"./utilities\";\r\nimport {\r\n Form, Icon, Input, Button } from 'antd';\r\n\r\n\r\nclass RecoverPasswordForm extends React.Component {\r\n\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n this.props.form.validateFields((err, values) => {\r\n //if (!err) {\r\n // console.log('Received values of form: ', values);\r\n //}\r\n let { Email } = values;\r\n let request = {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({ Email })\r\n }\r\n //console.log(request) \r\n\r\n function handleOKClick() {\r\n\r\n window.location.href = \"/\"\r\n return new Promise((resolve, reject) => {\r\n //setTimeout(resolve, 100);\r\n resolve();\r\n }).catch(() => console.log('Oops errors!'));\r\n\r\n }\r\n recoverLoginApi(request)\r\n .then(res => {\r\n if (res) {\r\n showApiSuccess(\"Your password has been reset. Please check your email for the new password. \", handleOKClick)\r\n } else {\r\n showApiError(\"Cannot find email.\")\r\n }\r\n })\r\n .catch(err => {\r\n console.error(err)\r\n })\r\n })\r\n }\r\n\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n return (\r\n
\r\n
\r\n

Church Helper Online

\r\n
\r\n

Enter your e-mail address below and we'll send you an e-mail message containing your new password.

\r\n
\r\n \r\n {getFieldDecorator('Email', {\r\n rules: [{ required: true, message: 'Please enter your email!' }],\r\n })(\r\n } placeholder=\"Email\" />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst WrappedRecoverPasswordForm = Form.create({ name: 'normal_recover' })(RecoverPasswordForm);\r\n\r\nexport default WrappedRecoverPasswordForm;","import React from 'react'\r\nimport { Layout } from 'antd';\r\nimport './App.css';\r\nimport {setGlobal} from 'reactn'\r\nimport SidebarMenu from './components/sidebarmenu';\r\nimport AppHeader from './components/appheader';\r\nimport AppFooter from './components/appfooter';\r\nimport AppContent from './components/appcontent';\r\nimport WrappedNormalLoginForm from './components/login';\r\nimport WrappedRecoverPasswordForm from './components/recover'\r\nimport \"moment/locale/en-nz\"\r\nimport moment from \"moment\"\r\n\r\n\r\nlet toDate = moment()\r\nlet fromDate = moment().day(0)\r\n//console.log(\"setGlobal\")\r\nsetGlobal( {\r\n toDate: toDate,\r\n fromDate: fromDate,\r\n member: {}\r\n}) \r\n\r\n\r\n\r\nconst {\r\n Header, Footer, Content,\r\n} = Layout;\r\n\r\nconst App = (props) => {\r\n\r\n let currentUser = window.sessionStorage.getItem(\"UserName\") || \"\";\r\n let userRole = window.sessionStorage.getItem(\"UserRole\") || \"\";\r\n let isLogin = currentUser.length > 0;\r\n const footerStyle = { fontSize: \"10px\", padding: \"5px 10px\", backgroundColor: \"#4996de\" };\r\n const LoginPage = () => {\r\n let isRecover = (window.location.pathname.toLowerCase() === '/recover')\r\n return (\r\n
\r\n {isRecover? : }\r\n
\r\n )\r\n }\r\n\r\n const HomePage = () => {\r\n //console.log(\"rendering homepage...\")\r\n let OrgName = window.sessionStorage.getItem(\"OrganisationName\")\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
)\r\n }\r\n //return ( )\r\n return (isLogin ? : )\r\n}\r\n\r\nexport default App;\r\n\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}