{"version":3,"sources":["store/auth.store.ts","store/index.tsx","components/molecules/app-shell/AppShell.tsx","components/molecules/UnderMaintenance.tsx","components/atoms/inputs/LodingButton.tsx","components/atoms/inputs/PdfViewer.tsx","pages/AnnualStatementPage.tsx","components/atoms/inputs/AppInput.tsx","pages/AplicationFormPensionerIdentityCardPage.tsx","pages/CircularPage.tsx","components/molecules/TileNavigation.tsx","pages/DashboardPage.tsx","pages/Form16Page.tsx","components/molecules/auth-shell/AuthShell.tsx","pages/KnowApplicationStatusPage.tsx","pages/KnowPensionerIdPage.tsx","pages/LifeCertificatePage.tsx","pages/MonthlyPayStatementPage.tsx","components/molecules/OptTaxRegimeFormComponent.tsx","pages/OptRaxRegimePage.tsx","pages/PDFUpload.tsx","pages/PPODetailsPage.tsx","components/atoms/Help.tsx","pages/SignInPage.tsx","pages/TrackPensionerIdentityCardPage.tsx","pages/UpdateMobileNumberPage.tsx","PrivateRoute.tsx","App.tsx","reportWebVitals.ts","serviceWorkerRegistration.ts","index.tsx"],"names":["AuthStore","jwt","refreshToken","user","makeAutoObservable","this","sessionString","localStorage","getItem","session","JSON","parse","removeItem","setItem","stringify","saveSessionToLocalStorage","clearLocalStorage","RootStore","auth","StoreContext","React","createContext","StoreProvider","children","store","Provider","value","useStore","useContext","createInitalStore","authStore","loadSessionFromLocalStorage","setInterval","console","log","axios","post","access","refresh","then","resp","refreshJwt","data","logout","interceptors","request","use","req","url","startsWith","process","baseURL","headers","error","Promise","reject","response","undefined","status","useStyles","makeStyles","theme","root","display","toolbar","paddingRight","toolbarIcon","alignItems","justifyContent","padding","mixins","appBar","zIndex","drawer","transition","transitions","create","easing","sharp","duration","leavingScreen","menuButton","marginRight","menuButtonHidden","title","flexGrow","drawerPaperClose","overflowX","width","spacing","breakpoints","up","appBarSpacer","content","height","overflow","container","paddingTop","paddingBottom","paddingLeft","paper","flexDirection","fixedHeight","AppShell","useState","toggle","target","popupLogout","setPopupLogout","classes","history","useHistory","CssBaseline","AppBar","position","color","Toolbar","className","Grid","style","xs","direction","justify","item","Button","onClick","push","Typography","variant","startIcon","PowerSettingsNew","Dialog","open","onClose","aria-labelledby","aria-describedby","DialogTitle","id","DialogContent","DialogContentText","DialogActions","autoFocus","Container","maxWidth","controlPaper","link","textDecoration","icon","UnderMaintenance","pageName","Card","CardContent","Breadcrumbs","to","gutterBottom","component","src","alt","maxHeight","LoadingButton","loading","props","disabled","CircularProgress","size","pdfjs","GlobalWorkerOptions","workerSrc","version","PdfViewer","file","downloadFileName","onDocumentLoadSuccessCb","onDocumentLoadSuccess","onDocumentLoadErrorCb","onDocumentLoadError","showDigitalCertDeclaration","numPages","setNumPages","pageNumber","setPageNumber","rawData","setRawData","state","setState","a","getData","d","changePage","offset","prevPageNumber","type","ButtonGroup","blob","Blob","buffer","window","URL","createObjectURL","document","createElement","href","download","click","downloadPdf","Alert","severity","AlertTitle","monitorHeight","refreshRate","render","onLoadSuccess","onLoadError","AnnualStatementPage","yearRange","currentYear","Date","getFullYear","yearList","i","reverse","getYearRange","initialValues","year","validate","values","onSubmit","setSubmitting","setFieldValue","setFieldTouched","setFieldError","httpHeaders","isSubmitting","handleChange","isValid","setValues","FormControl","fullWidth","InputLabel","Select","labelId","name","onChange","map","y","MenuItem","CardActions","fileName","textAlign","modal","backgroundColor","palette","background","border","boxShadow","shadows","main","AppInput","label","useField","field","meta","errorText","touched","htmlFor","FilledInput","datePicker","marginTop","marginBottom","relation","signature","AplicationFormPensionerIdentityCardPage","enqueueSnackbar","useSnackbar","profilePicture","setProfilePicture","profilePictureBase64","setProfilePictureBase64","profilePictureImageType","setProfilePictureImageType","alreadySubmittedForm","setAlreadySubmittedForm","alreadySubmittedFormName","setAlreadySubmittedFormName","nameOfPensioner","ppoNo","guardianName","maritialStat","relationWith","address","sex","contactNo","dateOfBirth","dateOfCommencement","panNum","aadharNum","spouseName","postAtRetirement","dateOfSuperAnnuation","setUser","signPicture","setSignPicture","signPictureBase64","setSignPictureBase64","signPictureImageType","setSignPictureImageType","userMaritalStat","setUserMaritalStat","handleProfilePicChange","e","files","toBase64","result","substring","lastIndexOf","length","remainder","indexOf","catch","handleSignPicChange","toSignatureBase64","useEffect","fetchPensionersDetails","getMaritalStatus","get","params","ppoNum","alreadyExist","pdfURL","getTime","moment","format","resolve","reader","FileReader","readAsDataURL","onload","img","Image","naturalWidth","naturalHeight","onerror","enableReinitialize","toString","substr","part","maritalStatusOthers","test","inputs","fetch","body","method","json","pdfUrl","hidden","event","accept","Avatar","margin","CardActionArea","CardMedia","image","backgroundSize","borderWidth","borderRadius","borderColor","inputProps","maxLength","multiline","rowsMax","Box","marginLeft","flex","Transition","forwardRef","ref","Slide","CircularPage","setOpen","handleClose","TextField","TableContainer","Table","stickyHeader","aria-label","TableHead","TableRow","TableCell","TableBody","IconButton","fullScreen","TransitionComponent","edge","media","TileNavigation","tiles","optTaxRegimeBegin","optTaxRegimeEligible","eligiblePopup","setEligiblePopup","dialogRef","useRef","idxOuter","section","services","logo","detail","sm","DashboardPage","observer","setOptTaxRegimeEligible","setOptTaxRegimeBegin","fetchOptTaxRegimeEligiblity","start_date","Number","cutoff_date","today","text","str","toLowerCase","split","charAt","toUpperCase","slice","join","titleCase","Form16Page","getFiscalYear","backgroundImage","backgroundRepeat","grey","backgroundPosition","avatar","secondary","form","submit","AuthShell","md","Paper","elevation","square","KnowApplStatusPage","applNo","erpId","message","resetForm","appl_no","erp_id","KeyboardBackspaceOutlined","fontSize","KnowPensionerIdPage","documentType","documentId","res","setTimeout","table","minWidth","LifeCertificatePage","certs","lifeCerts","setLifeCerts","fetchLifeCerts","lifeCertificates","forEach","c","from_date","to_date","alive","reemployed","remarried","toDateString","Done","MonthlyPayStatementPage","month","getMonth","taxRegime","OptTaxRegimeFormComponent","useFormikContext","confiirmationAlertOpen","setConfiirmationAlertOpen","handleConfirmationPopupClose","handleSubmit","taxRegimeDetails","EMP_ID","START_DAT","endDate","TAX_OPTION","REJECTION_REASON","rejectReason","match","handleConfirmationOpen","OptRaxRegimePage","infoAlertOpen","setInfoAlertOpen","PDFUpload","displayMessage","setDisplayMessage","isEligible","setIsEligible","pdfPreview","setPdfPreview","checkEligibility","queryParams","eligibleFlag","attestedPdfUrl","checkEligibilityAfterSubmit","FLAG","PPODetailPage","helpIcon","warning","Help","heading","disableRipple","disableFocusRipple","HelpOutline","Modal","ClearOutlined","SignInPage","otpReference","otp","errors","mobileNumber","username","otp_reference","login","Divider","fontWeight","TrackPensionerIdentityCardPage","STATUS","ICARD_NO","NAME","MAR_STA","NOM_REL","RESIDENTIAL_ADDRESS","SEX","CON_NO","DOB","COM_OF_PEN","IMAGE_EXTENSION","PPO_ISSUE_DT","POST_AT_RETIREMENT","RETIREMENT_DATE","SIGNATURE_EXTENSION","UpdateMobileNumberPage","dob","toISOString","utils","DateFnsUtils","required","inputVariant","PrivateRoute","App","maxSnack","anchorOrigin","vertical","horizontal","preventDuplicate","exact","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","Boolean","location","hostname","defaults","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.8d8594a9.chunk.js","sourcesContent":["import { makeAutoObservable } from 'mobx';\n\n\nexport type User = {\n id: string,\n name: string\n}\n\ntype Session = {\n user: User,\n jwt: string,\n refreshToken: string,\n}\n\nexport class AuthStore {\n jwt: string | null = null\n refreshToken: string | null = null\n user: User | null = null\n\n constructor() {\n makeAutoObservable(this)\n }\n\n loadSessionFromLocalStorage() {\n const sessionString = localStorage.getItem('session')\n if (sessionString) {\n const session: Session = JSON.parse(sessionString)\n // TODO validate jwt before setting\n this.user = session.user\n this.jwt = session.jwt\n this.refreshToken = session.refreshToken\n }\n }\n\n clearLocalStorage() {\n localStorage.removeItem('session');\n }\n\n saveSessionToLocalStorage() {\n if (this.user && this.jwt && this.refreshToken) {\n const session: Session = { user: this.user, jwt: this.jwt, refreshToken: this.refreshToken }\n localStorage.setItem('session', JSON.stringify(session))\n }\n }\n\n refreshJwt(jwt: string) {\n this.jwt = jwt\n this.saveSessionToLocalStorage()\n }\n\n login(user: User, jwt: string, refreshToken: string) {\n this.user = user\n this.jwt = jwt\n this.refreshToken = refreshToken\n this.saveSessionToLocalStorage()\n }\n\n logout() {\n this.user = null\n this.jwt = null\n this.clearLocalStorage()\n }\n}","import axios from \"axios\";\nimport React, { Component, ComponentProps } from 'react';\nimport { AuthStore } from './auth.store';\n\nexport class RootStore {\n constructor(public auth: AuthStore) { }\n}\n\n\n\nexport const StoreContext = React.createContext({} as RootStore);\nexport const StoreProvider: React.FC<{ store: RootStore }> = ({ children, store }) => {\n return (\n {children}\n );\n};\n\n/* Hook to use store in any functional component */\nexport const useStore = () => React.useContext(StoreContext);\n\n/* HOC to inject store to any functional or class component */\nexport const withStore = (component: Component) => (props: ComponentProps) => {\n return ;\n};\n\n\n\nexport const createInitalStore = () => {\n const authStore = new AuthStore();\n // TODO Check jwt from localstorage\n // TODO Implement axios interseptor\n // https://blog.bitsrc.io/setting-up-axios-interceptors-for-all-http-calls-in-an-application-71bc2c636e4e\n\n authStore.loadSessionFromLocalStorage()\n\n setInterval(() => {\n console.log('Refreshing JWT')\n if (authStore.jwt && authStore.refreshToken) {\n axios.post<{ access: string }>('/api/auth/refresh/', { access: authStore.jwt, refresh: authStore.refreshToken }).then(\n resp => authStore.refreshJwt(resp.data.access),\n () => authStore.logout()\n )\n }\n }, 5 * 60 * 1000)\n\n axios.interceptors.request.use(\n req => {\n if (req.url && req.url?.startsWith(process.env.REACT_APP_API_ROOT as string) && req.baseURL?.startsWith(process.env.REACT_APP_API_ROOT as string)) {\n console.log(req.baseURL, process.env.REACT_APP_API_ROOT, \"********************************\");\n\n try {\n const session = JSON.parse(localStorage.getItem('session') as string)\n if (session) {\n const headerName = process.env.REACT_APP_AUTHORIZATION_CUSTOM_HEADER || 'Authorization'\n req.headers[headerName] = `Bearer ${session.jwt}`\n }\n }\n finally {\n return req\n }\n }\n return req\n },\n error => {\n return Promise.reject(error)\n }\n );\n\n axios.interceptors.response.use(undefined,\n error => {\n if (error.response.status === 401) {\n authStore.logout()\n }\n return Promise.reject(error)\n }\n )\n\n return new RootStore(authStore)\n}\n","import { AppBar, Button, Container, CssBaseline, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Grid, Toolbar, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { PowerSettingsNew } from '@material-ui/icons';\nimport React, { FunctionComponent } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStore } from '../../../store';\n\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n toolbar: {\n paddingRight: 24, // keep right padding when drawer closed\n },\n toolbarIcon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: '0 8px',\n ...theme.mixins.toolbar,\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n // appBarShift: {\n // marginLeft: drawerWidth,\n // width: `calc(100% - ${drawerWidth}px)`,\n // transition: theme.transitions.create(['width', 'margin'], {\n // easing: theme.transitions.easing.sharp,\n // duration: theme.transitions.duration.enteringScreen,\n // }),\n // },\n menuButton: {\n marginRight: 36,\n },\n menuButtonHidden: {\n display: 'none',\n },\n title: {\n flexGrow: 1,\n },\n // drawerPaper: {\n // position: 'relative',\n // whiteSpace: 'nowrap',\n // width: drawerWidth,\n // transition: theme.transitions.create('width', {\n // easing: theme.transitions.easing.sharp,\n // duration: theme.transitions.duration.enteringScreen,\n // }),\n // },\n drawerPaperClose: {\n overflowX: 'hidden',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: theme.spacing(7),\n [theme.breakpoints.up('sm')]: {\n width: theme.spacing(9),\n },\n },\n appBarSpacer: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n },\n container: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n },\n paper: {\n padding: theme.spacing(2),\n display: 'flex',\n overflow: 'auto',\n flexDirection: 'column',\n },\n fixedHeight: {\n height: 240,\n },\n}));\n\ntype AppShellProps = {\n}\n\nexport const AppShell: FunctionComponent = ({ children }) => {\n const [profileMenuToggle, setProfileMenuToggle] = React.useState<{ toggle: boolean, target: any }>({ toggle: false, target: null });\n const [popupLogout, setPopupLogout] = React.useState(false);\n\n const classes = useStyles();\n const store = useStore();\n const history = useHistory();\n\n const handlePopupLogoutClose = (value: any) => {\n console.log(value);\n setPopupLogout(false);\n }\n\n\n return (\n <>\n \n \n \n \n \n \n \n \n }\n onClick={() => setPopupLogout(true)}\n >Logout\n {/* setProfileMenuToggle({ toggle: true, target: event.currentTarget })}>\n \n \n setProfileMenuToggle({ toggle: false, target: null })}\n >\n Profile\n My account\n { setPopupLogout(true); setProfileMenuToggle({ toggle: false, target: null }); }}>Logout\n */}\n\n {/* Dialog for logout */}\n\n \n {\"Alert (সতর্কতা)\"}\n \n \n Do you want to logout? (আপনি কি লগআউট করতে চান?)\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n {children}\n \n \n
\n \n )\n}","import { Breadcrumbs, Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport HomeIcon from '@material-ui/icons/Home';\nimport React, { FunctionComponent } from 'react';\nimport { Link } from 'react-router-dom';\nimport { AppShell } from './app-shell/AppShell';\n\n\n\nconst useStyles = makeStyles((theme) => ({\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n\n}))\n\nexport const UnderMaintenance: FunctionComponent<{ pageName: string }> = ({ pageName }) => {\n const classes = useStyles()\n return (\n \n \n \n \n \n \n \n \n \n \n \n Home\n \n \n \n {pageName}\n \n \n \n \n \n \n \n < Grid item>\n \n \n \n Under Maintenance\n \n \"Under\n \n \n \n \n \n )\n}","import { Button, ButtonProps, CircularProgress } from '@material-ui/core';\nimport React, { FunctionComponent } from 'react';\n\n\ntype LoadingButtonProps = {\n loading: boolean\n} & ButtonProps\n\nexport const LoadingButton: FunctionComponent = ({ loading, children, ...props }) => {\n return (\n \n )\n}","import { Button, ButtonGroup, Grid, Typography } from '@material-ui/core';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport { PDFDocumentProxy } from 'pdfjs-dist';\nimport { FunctionComponent, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport { Props } from 'react-pdf/dist/Document';\nimport { SizeMe } from 'react-sizeme';\nimport { LoadingButton } from './LodingButton';\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\n\n\ntype PdfViewerProps = {\n downloadFileName?: string,\n onDocumentLoadSuccess?: (pdf: PDFDocumentProxy) => void,\n onDocumentLoadError?: (error: Error) => void,\n showDigitalCertDeclaration?: boolean\n} & Omit\n\nexport const PdfViewer: FunctionComponent = ({ file, downloadFileName, onDocumentLoadSuccess: onDocumentLoadSuccessCb, onDocumentLoadError: onDocumentLoadErrorCb, showDigitalCertDeclaration, ...props }) => {\n const [numPages, setNumPages] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n const [rawData, setRawData] = useState(null);\n // const [rawDataLoaded, setRawDataLoaded] = useState(false);\n const [state, setState] = useState<\"loading\" | \"error\" | \"success\">(\"loading\");\n\n //@ts-expect-error\n async function onDocumentLoadSuccess(props) {\n setNumPages(props.numPages);\n setPageNumber(1);\n props.getData().then((d: Uint8Array) => { setRawData(d); setState(\"success\") })\n if (!!onDocumentLoadSuccessCb) {\n onDocumentLoadSuccessCb(props)\n }\n }\n\n function onDocumentLoadError(error: Error) {\n setNumPages(null);\n setRawData(null);\n setState(\"error\");\n if (!!onDocumentLoadErrorCb) {\n onDocumentLoadErrorCb(error)\n }\n }\n\n function downloadPdf() {\n let blob = new Blob([(rawData as Uint8Array).buffer], { type: 'application/pdf' });\n let url = window.URL.createObjectURL(blob);\n let a = document.createElement('a');\n a.href = url;\n a.download = downloadFileName || 'download.pdf';\n a.click();\n }\n\n function changePage(offset: number) {\n setPageNumber(prevPageNumber => prevPageNumber + offset);\n }\n\n function previousPage() {\n changePage(-1);\n }\n\n function nextPage() {\n changePage(1);\n }\n\n return (\n \n \n\n \n \n Previous (আগে)\n \n \n \n Page {pageNumber || (numPages ? 1 : '--')} of {numPages || '--'}\n \n \n \n downloadPdf()} type=\"button\" color=\"primary\" variant=\"contained\" startIcon={}>Download (ডাউনলোড)\n = numPages || state !== \"success\"}\n onClick={nextPage}\n >\n Next (পরবর্তী)\n \n \n \n \n {\n showDigitalCertDeclaration &&\n \n \n \n Note\n \n

To validate a digital signature, you must use Adobe PDF software, such as Adobe Acrobat Reader (Desktop). PDF viewers such as Apple's Preview or Chrome’s PDF Viewer cannot be used.

\n
\n \n }\n \n \n\n (\n \n \n \n )}\n />\n \n \n \n )\n}","import { Breadcrumbs, Button, Card, CardActions, CardContent, FormControl, Grid, InputLabel, MenuItem, Select, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport HomeIcon from '@material-ui/icons/Home';\nimport { Form, Formik, FormikProps } from 'formik';\nimport React, { FunctionComponent } from 'react';\nimport { pdfjs } from 'react-pdf';\nimport { Link } from 'react-router-dom';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\nimport { useStore } from '../store';\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\n\n\nconst useStyles = makeStyles((theme) => ({\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n}))\n\nconst getYearRange = () => {\n const currentYear = new Date().getFullYear();\n const yearList = []\n for (let i = currentYear - 3; i <= currentYear; i++) {\n yearList.push(i);\n }\n yearList.reverse()\n return yearList;\n}\n\ntype FormikForm = {\n year: number,\n file: any,\n fileName?: string,\n}\n\ntype AnnualStatementPageProps = {\n}\n\nexport const AnnualStatementPage: FunctionComponent = () => {\n const classes = useStyles()\n const yearRange = getYearRange()\n const store = useStore()\n\n return (\n \n \n {\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError }) => {\n setSubmitting(true)\n setFieldValue('fileName', `annual-statement-${values.year}.pdf`)\n setFieldValue('file', {\n url: `${process.env.REACT_APP_API_ROOT}api/pensioner/annual-statement/${values.year}`,\n httpHeaders: { 'Authorization': `Bearer ${store.auth.jwt}`, 'JWT': `Bearer ${store.auth.jwt}` },\n })\n }}\n >\n {\n ({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) =>\n
\n \n \n \n \n \n \n \n \n \n Home\n \n Annual Statement (বার্ষিক বিবৃতি)\n \n \n \n \n Year (বছর)\n \n {\n yearRange.map((y) => {y}-{y + 1})\n }\n \n \n \n \n \n \n \n \n Load Statement (লোড স্টেটমেন্ট)\n \n \n \n \n {\n !!values.file && !!values.fileName &&\n < Grid item>\n \n \n { setSubmitting(false) }}\n onDocumentLoadError={() => { setSubmitting(false) }}\n error={\n <>\n Unable to load PDF (পিডিএফ লোড করতে অক্ষম)\n \n }\n />\n \n \n \n }\n \n \n }\n \n
\n
\n )\n}","import React, { FunctionComponent } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { FormControl, InputLabel, FilledInputProps, FormControlProps, FilledInput } from '@material-ui/core';\nimport { FieldAttributes, useField } from 'formik';\n\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n error: {\n color: theme.palette.error.main\n }\n}));\n\ntype AppInputProps = {\n label: string\n} & FilledInputProps & FormControlProps & FieldAttributes<{}>\n\nexport const AppInput: FunctionComponent = ({ label, ...props }) => {\n const classes = useStyles();\n const [field, meta,] = useField<{}>(props);\n const errorText = meta.error && meta.touched ? meta.error : \"\";\n\n return (\n <>\n \n {label}\n \n
{errorText}
\n
\n \n )\n}","import { Box, Breadcrumbs, Button, Card, CardActions, CardContent, Divider, FormControl, Grid, InputLabel, List, ListItem, ListItemIcon, ListItemText, MenuItem, Select, Typography, CardMedia, CardActionArea } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\r\nimport { Form, Formik, FormikProps, useFormikContext } from 'formik';\r\nimport React, { FunctionComponent, useEffect, useState } from 'react';\r\nimport { pdfjs } from 'react-pdf';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Help } from '../components/atoms/Help';\r\nimport { AppInput } from '../components/atoms/inputs/AppInput';\r\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\r\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\r\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\r\nimport { useStore } from '../store';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport axios from 'axios';\r\nimport { ApiResponse } from '../types';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport { useSnackbar } from 'notistack';\r\nimport moment from 'moment';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n controlPaper: {\r\n width: \"100%\",\r\n padding: \"8px\",\r\n },\r\n link: {\r\n display: 'flex',\r\n textDecoration: 'none',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(0.5),\r\n width: 20,\r\n height: 20,\r\n },\r\n datePicker: {\r\n marginTop: 30,\r\n marginBottom: 30\r\n },\r\n relation: {\r\n marginBottom: 30\r\n },\r\n signature: {\r\n maxWidth: 345,\r\n }\r\n}))\r\n\r\ntype FormikForm = {\r\n year: string,\r\n part: string,\r\n file: any,\r\n fileName?: string,\r\n\r\n nameOfPensioner: string,\r\n ppoNo: string,\r\n guardianName: string,\r\n maritialStat: string,\r\n maritalStatusOthers: string,\r\n relationWith: string,\r\n address: string,\r\n sex: string,\r\n contactNo: string,\r\n dateOfBirth: string,\r\n dateOfCommencement: string,\r\n panNum: string,\r\n aadharNum: string,\r\n\r\n spouseName: string,\r\n postAtRetirement: string,\r\n dateOfSuperAnnuation: string\r\n}\r\n\r\ntype AplicationFormPensionerIdentityCardPageProps = {\r\n}\r\n\r\ntype PPONumApiData = {\r\n 'nameOfPensioner': string,\r\n 'guardianName': string,\r\n 'maritialStat': string,\r\n 'relationWith': string,\r\n 'address': string,\r\n 'sex': string,\r\n 'contactNo': string,\r\n 'dateOfBirth': string,\r\n 'dateOfCommencement': string,\r\n 'panNum': string,\r\n 'aadharNum': string,\r\n 'ppoNo': string,\r\n\r\n \"spouseName\": string,\r\n \"postAtRetirement\": string,\r\n \"dateOfSuperAnnuation\": string\r\n}\r\n\r\ntype PPONumSubmitApiData = {\r\n pdfUrl: string,\r\n Success: string\r\n}\r\n\r\nexport const AplicationFormPensionerIdentityCardPage: FunctionComponent = () => {\r\n const classes = useStyles()\r\n const store = useStore()\r\n const { enqueueSnackbar } = useSnackbar();\r\n const history = useHistory();\r\n\r\n const getFiscalYear = (y: number) => `${y}-${(y + 1).toString().substr(2, 2)}`;\r\n\r\n const [profilePicture, setProfilePicture] = useState('');\r\n const [profilePictureBase64, setProfilePictureBase64] = useState('');\r\n const [profilePictureImageType, setProfilePictureImageType] = useState('');\r\n const [alreadySubmittedForm, setAlreadySubmittedForm] = useState(null);\r\n const [alreadySubmittedFormName, setAlreadySubmittedFormName] = useState('');\r\n const [user, setUser] = useState({\r\n nameOfPensioner: \"\",\r\n ppoNo: \"\",\r\n guardianName: \"\",\r\n maritialStat: \"U\",\r\n relationWith: \"\",\r\n address: \"\",\r\n sex: \"\",\r\n contactNo: \"\",\r\n dateOfBirth: \"\",\r\n dateOfCommencement: \"\",\r\n panNum: \"\",\r\n aadharNum: \"\",\r\n\r\n spouseName: \"\",\r\n postAtRetirement: \"\",\r\n dateOfSuperAnnuation: \"\"\r\n });\r\n\r\n const [signPicture, setSignPicture] = useState('');\r\n const [signPictureBase64, setSignPictureBase64] = useState('');\r\n const [signPictureImageType, setSignPictureImageType] = useState('');\r\n\r\n const [userMaritalStat, setUserMaritalStat] = useState('');\r\n\r\n // useEffect(() => {\r\n // console.log(profilePictureBase64, \"+++++++\");\r\n // }, [profilePictureBase64])\r\n\r\n\r\n const handleProfilePicChange = (e: (React.ChangeEvent) | any) => {\r\n console.log(e.target.files[0]);\r\n\r\n if (e.target.files[0] && e.target.files[0].size > 245760) {\r\n // alert(\"The image must be less than or equal to 240 kB (kilobytes)\");\r\n enqueueSnackbar(\"The image must be less than or equal to 240 kB (kilobytes)\", { variant: 'error' });\r\n\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n return;\r\n }\r\n\r\n toBase64(e.target.files[0]).then((result: any) => {\r\n // console.log(result, \"original base64\");\r\n setProfilePicture(URL.createObjectURL(e.target?.files[0]));\r\n setProfilePictureImageType(e.target.files[0].name.substring(e.target.files[0].name.lastIndexOf(\".\") + 1, e.target.files[0].name.length));\r\n\r\n let remainder = result.substring(result.indexOf(\",\") + 1, result.length);\r\n setProfilePictureBase64(remainder);\r\n })\r\n .catch((e) => {\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n console.log(e, \"prof error\");\r\n });\r\n }\r\n\r\n const handleSignPicChange = (e: (React.ChangeEvent) | any) => {\r\n console.log(e.target.files[0]);\r\n\r\n if (e.target.files[0] && e.target.files[0].size > 102400) {\r\n // alert(\"The image must be less than or equal to 240 kB (kilobytes)\");\r\n enqueueSnackbar(\"The image must be less than or equal to 100 kB (kilobytes)\", { variant: 'error' });\r\n\r\n setSignPicture('');\r\n setSignPictureImageType('');\r\n setSignPictureBase64('');\r\n return;\r\n }\r\n\r\n toSignatureBase64(e.target.files[0]).then((result: any) => {\r\n // console.log(result, \"original base64\");\r\n setSignPicture(URL.createObjectURL(e.target?.files[0]));\r\n setSignPictureImageType(e.target.files[0].name.substring(e.target.files[0].name.lastIndexOf(\".\") + 1, e.target.files[0].name.length));\r\n\r\n let remainder = result.substring(result.indexOf(\",\") + 1, result.length);\r\n setSignPictureBase64(remainder);\r\n })\r\n .catch((e) => {\r\n setSignPicture('');\r\n setSignPictureImageType('');\r\n setSignPictureBase64('');\r\n console.log(e, \"prof error\");\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fetchPensionersDetails()\r\n }, []);\r\n\r\n const getMaritalStatus = (maritialStat: any) => {\r\n if (maritialStat == '0') {\r\n return 'Single'\r\n }\r\n else if (maritialStat == 'M' || maritialStat == '1') {\r\n return 'Married'\r\n }\r\n else if (maritialStat == 'U') {\r\n return 'Unmarried'\r\n }\r\n else if (maritialStat == 'W' || maritialStat == '2') {\r\n return 'Widow'\r\n }\r\n else if (maritialStat == 'D' || maritialStat == '3') {\r\n return 'Divorcee'\r\n }\r\n else if (maritialStat == 'P') {\r\n return 'Physically Challanged'\r\n }\r\n else if (maritialStat == '4') {\r\n return 'NM'\r\n }\r\n else if (maritialStat == '5') {\r\n return 'Sep.'\r\n }\r\n else if (maritialStat == '6') {\r\n return 'Unknown'\r\n }\r\n else if (maritialStat == '9') {\r\n return 'RegCou'\r\n }\r\n else if (maritialStat == 'A') {\r\n return 'RegcRP'\r\n }\r\n else {\r\n return maritialStat\r\n }\r\n }\r\n\r\n const getMaritalStatusForDropdown = (maritialStat: any) => {\r\n if (maritialStat == '0') {\r\n return 'U'\r\n }\r\n else if (maritialStat == 'M' || maritialStat == '1') {\r\n return 'O'\r\n }\r\n else if (maritialStat == 'U') {\r\n return 'U'\r\n }\r\n else if (maritialStat == 'W' || maritialStat == '2') {\r\n return 'W'\r\n }\r\n else if (maritialStat == 'D' || maritialStat == '3') {\r\n return 'D'\r\n }\r\n else if (maritialStat == 'P') {\r\n return 'O'\r\n }\r\n else if (maritialStat == '4') {\r\n return 'O'\r\n }\r\n else if (maritialStat == '5') {\r\n return 'O'\r\n }\r\n else if (maritialStat == '6') {\r\n return 'O'\r\n }\r\n else if (maritialStat == '9') {\r\n return 'O'\r\n }\r\n else if (maritialStat == 'A') {\r\n return 'O'\r\n }\r\n else if (maritialStat == 'R') {\r\n return 'R'\r\n }\r\n else if (maritialStat == 'NA' || maritialStat == '') {\r\n return 'NA'\r\n }\r\n else {\r\n return maritialStat\r\n }\r\n }\r\n\r\n const getMaritalStatusToUpdate = (maritialStat: any) => {\r\n if (maritialStat == 'U' && user.ppoNo.startsWith(\"800\")) {\r\n return '0'\r\n }\r\n else if (maritialStat == 'U' && !user.ppoNo.startsWith(\"800\")) {\r\n return 'U'\r\n }\r\n else if (maritialStat == 'W' && user.ppoNo.startsWith(\"800\")) {\r\n return '2'\r\n }\r\n else if (maritialStat == 'W' && !user.ppoNo.startsWith(\"800\")) {\r\n return 'W'\r\n }\r\n else if (maritialStat == 'D' && user.ppoNo.startsWith(\"800\")) {\r\n return '3'\r\n }\r\n else if (maritialStat == 'D' && !user.ppoNo.startsWith(\"800\")) {\r\n return 'D'\r\n }\r\n else if (maritialStat == 'R') {\r\n return 'R'\r\n }\r\n else if (maritialStat == 'O') {\r\n return 'O'\r\n }\r\n else {\r\n return 'O'\r\n }\r\n }\r\n\r\n const getSex = (sex: any) => {\r\n if (sex == 'M' || sex == '1') {\r\n return 'Male'\r\n }\r\n else if (sex == 'F' || sex == '2') {\r\n return 'Female'\r\n }\r\n else {\r\n return sex\r\n }\r\n }\r\n\r\n const getRelationWith = (relationWith: any) => {\r\n if (relationWith == 'S') {\r\n return 'Son'\r\n }\r\n else if (relationWith == 'D') {\r\n return 'Daughter'\r\n }\r\n else if (relationWith == 'W') {\r\n return 'Spouse'\r\n }\r\n else if (relationWith == 'F') {\r\n return 'Father'\r\n }\r\n else if (relationWith == 'M') {\r\n return 'Mother'\r\n }\r\n else {\r\n return relationWith\r\n }\r\n }\r\n\r\n const fetchPensionersDetails = async () => {\r\n console.log(\"KKKKKKKKKKKKKKKKK\");\r\n axios.get(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERFETCHDETAILSWS/FetchDetailsByPPONum`, {\r\n params: {\r\n ppoNum: {\r\n ppoNum: store.auth.user?.id\r\n // ppoNum: \"80000006\"\r\n }\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n })\r\n .then(\r\n ({ data: resp }) => {\r\n console.log(resp, \"resp\", resp && resp?.ppoNo);\r\n if (resp && resp?.alreadyExist == \"Y\") {\r\n setUser(resp);\r\n setAlreadySubmittedForm({\r\n url: `${process.env.REACT_APP_NEW_API_ROOT}irj/go/km/docs${resp.pdfURL}?time=${new Date().getTime()}`,\r\n });\r\n setAlreadySubmittedFormName('ApplicationFormForFamilyPensionersIdentityCard.pdf');\r\n }\r\n else if (resp && resp?.ppoNo) {\r\n setUserMaritalStat(resp?.maritialStat);\r\n resp.maritialStat = (resp?.maritialStat == 'NA' || resp?.maritialStat == 'NA') ? getMaritalStatusForDropdown(resp?.maritialStat ?? '') : getMaritalStatus(resp?.maritialStat ?? '');\r\n resp.sex = getSex(resp?.sex ?? '');\r\n resp.relationWith = getRelationWith(resp?.relationWith ?? '');\r\n resp.panNum = (resp?.panNum == 'NA' || resp?.panNum == '') ? '' : resp?.panNum;\r\n resp.aadharNum = (resp?.aadharNum == 'NA' || resp?.aadharNum == '') ? '' : resp?.aadharNum;\r\n resp.dateOfBirth = resp.dateOfBirth ? resp.dateOfBirth == '0000-00-00' ? 'NA' : `${moment(resp.dateOfBirth).format('DD/MM/YYYY')}` : '';\r\n resp.dateOfCommencement = resp.dateOfCommencement ? resp.dateOfCommencement == '0000-00-00' ? 'NA' : `${moment(resp.dateOfCommencement).format('DD/MM/YYYY')}` : '';\r\n resp.dateOfSuperAnnuation = resp.dateOfSuperAnnuation ? resp.dateOfSuperAnnuation == '0000-00-00' ? 'NA' : `${moment(resp.dateOfSuperAnnuation).format('DD/MM/YYYY')}` : '';\r\n setUser(resp);\r\n }\r\n else {\r\n console.log(\"noooooooooooooooooo\");\r\n\r\n enqueueSnackbar(\"Something went wrong\", { variant: 'error' });\r\n setUser({\r\n nameOfPensioner: \"\",\r\n ppoNo: \"\",\r\n guardianName: \"\",\r\n maritialStat: \"U\",\r\n relationWith: \"\",\r\n address: \"\",\r\n sex: \"\",\r\n contactNo: \"\",\r\n dateOfBirth: \"\",\r\n dateOfCommencement: \"\",\r\n panNum: \"\",\r\n aadharNum: \"\"\r\n })\r\n }\r\n }\r\n )\r\n .catch((e) => {\r\n console.log(e, \"error\");\r\n setUser({\r\n nameOfPensioner: \"\",\r\n ppoNo: \"\",\r\n guardianName: \"\",\r\n maritialStat: \"U\",\r\n relationWith: \"\",\r\n address: \"\",\r\n sex: \"\",\r\n contactNo: \"\",\r\n dateOfBirth: \"\",\r\n dateOfCommencement: \"\",\r\n panNum: \"\",\r\n aadharNum: \"\"\r\n })\r\n // setLifeCerts({ loading: false, error: \"Network Error\", certs: [] });\r\n })\r\n }\r\n\r\n const toBase64 = (file: any) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n var img = new Image();\r\n img.src = window.URL.createObjectURL(file)\r\n img.onload = () => {\r\n console.log(img.naturalWidth, img.naturalHeight, \"******\");\r\n\r\n if (img.naturalWidth > 300 && img.naturalHeight > 300) {\r\n // alert(\"Maximum acceptable dimensions are 300 x 300 pixels\");\r\n enqueueSnackbar(\"Maximum acceptable dimensions are 300 x 300 pixels\", { variant: 'error' });\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n return;\r\n }\r\n return true;\r\n }\r\n\r\n return resolve(reader.result)\r\n };\r\n reader.onerror = error => reject(error);\r\n });\r\n\r\n const toSignatureBase64 = (file: any) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n var img = new Image();\r\n img.src = window.URL.createObjectURL(file)\r\n img.onload = () => {\r\n console.log(img.naturalWidth, img.naturalHeight, \"******\");\r\n\r\n if (img.naturalWidth > 300 && img.naturalHeight > 100) {\r\n // alert(\"Maximum acceptable dimensions are 300 x 300 pixels\");\r\n enqueueSnackbar(\"Maximum acceptable dimensions are 300 x 100 pixels\", { variant: 'error' });\r\n setSignPicture('');\r\n setSignPictureImageType('');\r\n setSignPictureBase64('');\r\n return;\r\n }\r\n return true;\r\n }\r\n\r\n return resolve(reader.result)\r\n };\r\n reader.onerror = error => reject(error);\r\n });\r\n\r\n\r\n return (\r\n \r\n \r\n {\r\n }}\r\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError }) => {\r\n console.log(values.aadharNum, /^[2-9]{1}[0-9]{3}\\s[0-9]{4}\\s[0-9]{4}$/.test(values.aadharNum));\r\n\r\n if (!profilePicture) {\r\n enqueueSnackbar(\"Please upload a passport size photo\", { variant: 'error' });\r\n }\r\n if (!signPicture) {\r\n enqueueSnackbar(\"Please upload a signature photo\", { variant: 'error' });\r\n }\r\n else if (!values.ppoNo) {\r\n enqueueSnackbar(\"PPO Number not Entered\", { variant: 'error' });\r\n }\r\n else if (!values.maritialStat || values.maritialStat == 'NA') {\r\n enqueueSnackbar(\"Please select maritial status\", { variant: 'error' });\r\n }\r\n else if (!values.panNum || values.panNum == 'NA') {\r\n enqueueSnackbar(\"PAN Number not Entered\", { variant: 'error' });\r\n }\r\n else if (values.panNum && /^[A-Z]{5}[0-9]{4}[A-Z]{1}$/.test(values.panNum) == false) {\r\n enqueueSnackbar(\"PAN Number is Invalid\", { variant: 'error' });\r\n }\r\n else if (!values.aadharNum || values.aadharNum == 'NA') {\r\n enqueueSnackbar(\"Aadhar Number not Entered\", { variant: 'error' });\r\n }\r\n else if (values.aadharNum && /^([0-9]{4}[0-9]{4}[0-9]{4}$)|([0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$)|([0-9]{4}-[0-9]{4}-[0-9]{4}$)/.test(values.aadharNum) == false) {\r\n enqueueSnackbar(\"Aadhar Number is Invalid\", { variant: 'error' });\r\n }\r\n else {\r\n setSubmitting(true)\r\n\r\n console.log(\"SUBMIT+++++++++\");\r\n\r\n\r\n let inputs = {\r\n \"nameOfPensioner\": user.nameOfPensioner,\r\n \"ppoNum\": user.ppoNo,\r\n \"guardianName\": user.guardianName,\r\n \"maritialStat\": (userMaritalStat == 'NA' || userMaritalStat == '') ? getMaritalStatusToUpdate(values.maritialStat) : userMaritalStat,\r\n \"relationWith\": user.relationWith,\r\n \"address\": user.address,\r\n \"sex\": user.sex,\r\n \"contactNo\": user.contactNo,\r\n \"dateOfBirth\": (user.dateOfBirth && user.dateOfBirth == 'NA') ? \"00/00/0000\" : user.dateOfBirth,\r\n \"dateOfCommencement\": (user.dateOfCommencement && user.dateOfCommencement == 'NA') ? \"00/00/0000\" : user.dateOfCommencement,\r\n \"panNum\": values.panNum,\r\n \"aadharNum\": values.aadharNum,\r\n \"imageExtension\": profilePictureImageType,\r\n \"imageByteArray\": profilePictureBase64,\r\n\r\n \"spouseName\": user?.spouseName ?? \"NA\",\r\n \"postAtRetirement\": user?.postAtRetirement ?? \"NA\",\r\n \"dateOfSuperAnnuation\": (user.dateOfSuperAnnuation && user.dateOfSuperAnnuation == 'NA') ? \"00/00/0000\" : user.dateOfSuperAnnuation,\r\n\r\n \"signatureExtension\": signPictureImageType,\r\n \"signatureByteArray\": signPictureBase64\r\n }\r\n\r\n console.log(JSON.stringify(inputs));\r\n\r\n\r\n fetch(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERDETAILSUPLOADWS/UploadPensionerDetails`, { body: JSON.stringify(inputs), method: 'post' })\r\n .then((response) => response.json())\r\n .then((resp) => {\r\n console.log(resp);\r\n setFieldValue('fileName', `ApplicationFormForFamilyPensionersIdentityCard.pdf`)\r\n setFieldValue('file', {\r\n url: `${process.env.REACT_APP_NEW_API_ROOT}irj/go/km/docs${resp.pdfUrl}?time=${new Date().getTime()}`,\r\n })\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }}\r\n >\r\n {\r\n ({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) => {\r\n return (\r\n
\r\n \r\n {\r\n !values.file && !values.fileName &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Home\r\n \r\n Application Form for Pensioner's Identity Card (পরিচয় পত্রের জন্য আবেদন)\r\n \r\n \r\n\r\n \r\n \r\n Upload Passport Size Photo\r\n ) => {\r\n const element = event.target as HTMLInputElement\r\n element.value = ''\r\n }}\r\n name=\"profilePicture\"\r\n accept=\"image/png, image/jpeg, image/jpg\"\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {/* {}}> */}\r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Only .jpg, .jpeg, .png are accepted.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Maximum acceptable dimensions are 300 x 300 pixels\r\n \r\n \r\n \r\n \r\n \r\n \r\n The image must be less than or equal to 240 kB (kilobytes)\r\n \r\n \r\n \r\n\r\n \r\n \r\n Upload Signature Photo\r\n ) => {\r\n const element = event.target as HTMLInputElement\r\n element.value = ''\r\n }}\r\n name=\"signPicture\"\r\n accept=\"image/png, image/jpeg, image/jpg\"\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Only .jpg, .jpeg, .png are accepted.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Maximum acceptable dimensions are 300 x 100 pixels\r\n \r\n \r\n \r\n \r\n \r\n \r\n The image must be less than or equal to 100 kB (kilobytes)\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {user.maritialStat == 'NA' ?\r\n \r\n \r\n Marital Status\r\n \r\n Select Marital Status\r\n Unmarried\r\n Widow\r\n Widower\r\n Divorcee\r\n Others\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {values.spouseName != undefined && values.spouseName != null && values.ppoNo.startsWith(\"800\") &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {\r\n user && user.relationWith && !values.ppoNo.startsWith(\"800\") &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {/* \r\n setFieldValue(\"dateOfBirth\", value)}\r\n disabled={isSubmitting}\r\n />\r\n */}\r\n \r\n\r\n {!values.ppoNo.startsWith(\"800\") &&\r\n \r\n \r\n \r\n \r\n {/* \r\n setFieldValue(\"dateOfCommencement\", value)}\r\n disabled={isSubmitting}\r\n />\r\n */}\r\n \r\n }\r\n\r\n {values.ppoNo.startsWith(\"800\") &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {values.ppoNo.startsWith(\"800\") &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n Upload Signature\r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n {/* */}\r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n }\r\n {\r\n !!values.file && !!values.fileName &&\r\n < Grid item>\r\n \r\n \r\n { setSubmitting(false) }}\r\n onDocumentLoadError={() => { setSubmitting(false) }}\r\n error={\r\n <>\r\n Unable to load PDF (পিডিএফ লোড করতে অক্ষম)\r\n \r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \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 { AppBar, Breadcrumbs, Card, CardActions, CardContent, Dialog, Grid, IconButton, TextField, Toolbar, Typography } from '@material-ui/core';\nimport Slide from '@material-ui/core/Slide';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\nimport HomeIcon from '@material-ui/icons/Home';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport React, { FunctionComponent, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\n\n\n\nconst useStyles = makeStyles((theme) => ({\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n appBar: {\n position: 'fixed',\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n}))\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref,\n) {\n return ;\n});\n\n\n\ntype CircularPageProps = {\n}\n\nexport const CircularPage: FunctionComponent = () => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n\n const handleClose = () => {\n setOpen(false);\n };\n\n\n\n return (\n \n \n \n \n \n \n \n \n \n \n Home\n \n Circulars (বিজ্ঞপ্তি)\n \n \n \n \n \n \n \n \n \n Search (অনুসন্ধান করুন)\n \n \n \n \n < Grid item>\n \n \n \n \n \n \n \n Date\n \n \n Circular\n \n \n View\n \n \n \n \n \n \n 01.01.2020\n \n \n This is the heading of circular 001asd aasdfasdfa asdfasdfasdf asdfasdfasdf asdfasdfa\n \n \n setOpen(true)}>\n \n \n \n \n\n \n
\n
\n {/* */}\n
\n
\n
\n \n\n handleClose} TransitionComponent={Transition}>\n \n \n \n \n \n \n Circular\n \n {/* */}\n \n \n
\n \n
\n
\n\n\n
\n )\n}","import { Button, Card, CardActionArea, CardContent, CardMedia, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Grid, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport React, { FunctionComponent, useRef, useState } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { useStore } from '../../store';\n\nconst useStyles = makeStyles({\n root: {\n maxWidth: 345,\n },\n media: {\n height: 140,\n },\n});\n\nexport type TileNavigationProps = {\n tiles: Array<{ section: string, services: Array<{ title: string, logo: string, to: string, detail: string }> }>,\n optTaxRegimeBegin: boolean\n optTaxRegimeEligible: boolean\n}\n\nexport const TileNavigation: FunctionComponent = ({ tiles, optTaxRegimeBegin, optTaxRegimeEligible }) => {\n const classes = useStyles();\n const history = useHistory();\n const [eligiblePopup, setEligiblePopup] = useState(false);\n const dialogRef = useRef();\n const store = useStore();\n\n return (\n \n {\n tiles.map(({ section, services }, idxOuter) =>\n <>\n \n {section}\n \n \n {\n services.map(({ title, logo, to, detail }) => {\n if (((!optTaxRegimeBegin) || (!store.auth.user?.id?.startsWith(\"800\"))) && detail == 'opt-tax-regime') {\n return null;\n }\n else {\n return (\n \n {\n if (detail == 'opt-tax-regime' && !optTaxRegimeEligible) {\n setEligiblePopup(true);\n } else {\n history.push(to);\n }\n }}>\n \n \n \n \n {title}\n \n {/* \n {detail}\n */}\n \n \n \n \n )\n }\n })\n }\n \n \n )\n }\n setEligiblePopup(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n ref={dialogRef}\n >\n {\"Alert (সতর্কতা)\"}\n \n \n This application can be used only once in a financial year. You can't opt tax regime now since the time window for this has already elapsed. (আপনি এখন করব্যবস্থা বেছে নিতে পারবেন না কারণ এর জন্য বরাদ্দ সময় ইতিমধ্যেই শেষ হয়ে গেছে৷)\n \n \n \n {/* */}\n \n \n \n \n )\n}","import { Grid, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react-lite';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\nimport { TileNavigation } from '../components/molecules/TileNavigation';\nimport { useStore } from '../store';\n\nconst tiles: Array<{ section: string, services: Array<{ title: string, logo: string, to: string, detail: string }> }> = [\n {\n section: \"Personal Information (ব্যক্তিগত তথ্য)\",\n services: [\n { title: \"PPO Details (পিপিও বিবরণ)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/ppo\", detail: \"Details...\" },\n { title: \"Life Certificates (জীবন শংসাপত্র)\", logo: \"assets/img/life-certificate.jpg\", to: \"/life-certificate\", detail: \"Details...\" },\n { title: \"Application Form for Pensioner's Identity Card (পরিচয় পত্রের জন্য আবেদন)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/aplication-form-pensioners-identity-card\", detail: \"Details...\" },\n { title: \"Upload Attested Application Form PDF (আপলোড এটাস্টেড এপ্লিকেশন ফর্ম পিডিএফ)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/upload-attested-appl-form\", detail: \"Details...\" },\n { title: \"Know Application Status / Download Identity Card (আবেদনের স্থিতি জানুন / আইডেন্টিটি কার্ড ডাউনলোড করুন)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/track-pensioners-identity-card\", detail: \"Details...\" },\n ]\n },\n {\n section: \"Benefits and Payments (সুবিধা এবং অর্থ প্রদান)\",\n services: [\n { title: \"Monthly Pay Statement (মাসিক বেতন বিবৃতি)\", logo: \"assets/img/payment-logo.jpg\", to: \"/monthly-pay-statement\", detail: \"Details...\" },\n { title: \"Annual Statement (বার্ষিক বিবৃতি)\", logo: \"assets/img/payment-logo.jpg\", to: \"/annual-statement\", detail: \"Details...\" },\n { title: \"Income Tax Declaration (আয়কর ঘোষণা)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/it-declaration\", detail: \"Details...\" },\n { title: \"Download Form 16 (ফর্ম 16 ডাউনলোড করুন)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/form16\", detail: \"Details...\" },\n { title: \"Opt Tax Regime (করব্যবস্থা বেছে নিন)\", logo: \"assets/img/wbsedcl-logo.png\", to: \"/opt-tax-regime\", detail: \"opt-tax-regime\" },\n ]\n },\n];\n\n\ntype DashboardPageProps = {\n}\n\nexport const DashboardPage = observer((props) => {\n const store = useStore()\n const [optTaxRegimeEligible, setOptTaxRegimeEligible] = useState(false);\n const [optTaxRegimeBegin, setOptTaxRegimeBegin] = useState(false);\n const titleCase = (text: string) => {\n const str = text.toLowerCase().split(' ');\n for (var i = 0; i < str.length; i++) {\n str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);\n }\n return str.join(' ');\n }\n\n useEffect(() => {\n fetchOptTaxRegimeEligiblity()\n }, []);\n\n // const fetchOptTaxRegimeEligiblity = async () => {\n // axios.get(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONEROPTTAXREGIMEWS/FetchCutOffDate`, {\n // headers: {\n // 'Content-Type': 'application/json',\n // }\n // })\n // // axios.get(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONEROPTTAXREGIMEWS/FetchCutOffDate`, {\n // // headers: {\n // // 'Content-Type': 'application/json',\n // // }\n // // })\n // .then(\n // ({ data: resp }) => {\n // console.log(resp, \"resp\", resp && resp?.Cutoff_Date);\n // if (resp && resp?.Cutoff_Date) {\n // let Cutoff_Date = moment(resp?.Cutoff_Date, 'DD.MM.YYYY');\n // let today = moment();\n // console.log(today, Cutoff_Date, today.diff(Cutoff_Date, \"days\"));\n // if (today.diff(Cutoff_Date, \"days\") > 0) {\n // ia-portal setOptTaxRegimeEligible(false);\n // }\n // else {\n // setOptTaxRegimeEligible(true);\n // }\n // }\n // else {\n // setOptTaxRegimeEligible(false);\n // }\n // }\n // )\n // .catch((e) => {\n // setOptTaxRegimeEligible(false);\n // })\n // }\n\n const fetchOptTaxRegimeEligiblity = async () => {\n try {\n let start_date = Number(process.env.REACT_APP_TAX_REGIME_START_DATE);\n let cutoff_date = Number(process.env.REACT_APP_TAX_REGIME_END_DATE);\n console.log(\"start_date:\", start_date, \"end_date: \", cutoff_date);\n let today = Number(moment(new Date()).format('YYYYMMDD'));\n console.log(\"Today :\", today);\n if (today >= start_date && today <= cutoff_date) {\n setOptTaxRegimeBegin(true);\n setOptTaxRegimeEligible(true);\n console.log(\"S\", \"S\");\n }\n else if (today >= start_date && today > cutoff_date) {\n setOptTaxRegimeBegin(true);\n setOptTaxRegimeEligible(false);\n console.log(\"S\", \"R\");\n }\n else if (today < start_date) {\n setOptTaxRegimeEligible(true);\n setOptTaxRegimeEligible(false);\n console.log(\"R\", \"R\");\n }\n }\n catch (e) {\n setOptTaxRegimeEligible(false);\n setOptTaxRegimeBegin(false);\n console.log(\"error\");\n }\n }\n\n return (\n \n \n \n \n স্বাগত {titleCase(store.auth.user?.name || '')}\n \n \n \n \n \n \n \n )\n\n})","import { Breadcrumbs, Button, Card, CardActions, CardContent, FormControl, Grid, InputLabel, MenuItem, Select, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport HomeIcon from '@material-ui/icons/Home';\nimport { Form, Formik, FormikProps } from 'formik';\nimport React, { FunctionComponent } from 'react';\nimport { pdfjs } from 'react-pdf';\nimport { Link } from 'react-router-dom';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\nimport { useStore } from '../store';\n\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\n\n\nconst useStyles = makeStyles((theme) => ({\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n}))\n\nconst getYearRange = () => {\n const currentYear = new Date().getFullYear();\n const yearList = []\n for (let i = currentYear - 3; i <= currentYear; i++) {\n yearList.push(i);\n }\n yearList.reverse()\n return yearList;\n}\n\ntype FormikForm = {\n year: string,\n part: string,\n file: any,\n fileName?: string,\n}\n\ntype Form16PageProps = {\n}\n\nexport const Form16Page: FunctionComponent = () => {\n const classes = useStyles()\n const yearRange = getYearRange()\n const store = useStore()\n\n const getFiscalYear = (y: number) => `${y}-${(y + 1).toString().substr(2, 2)}`\n\n return (\n \n \n {\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError }) => {\n setSubmitting(true)\n setFieldValue('fileName', `form16-${values.year}.pdf`)\n setFieldValue('file', {\n url: `${process.env.REACT_APP_API_ROOT}api/pensioner/form16/${values.year}/${values.part}`,\n httpHeaders: { 'Authorization': `Bearer ${store.auth.jwt}`, 'JWT': `Bearer ${store.auth.jwt}` },\n })\n }}\n >\n {\n ({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) =>\n
\n \n \n \n \n \n \n \n \n \n Home\n \n Form 16 (ফর্ম 16)\n \n \n \n \n Assessment Year (মূল্যায়ন বছর)\n \n {\n yearRange.map(y => {getFiscalYear(y)})\n }\n \n \n \n \n \n Part (অংশ)\n \n Pension Part A (পেনশন পার্ট A)\n Pension Part B (পেনশন পার্ট B)\n Arrear Part A (বকেয়া পার্ট A)\n Arrear Part B (বকেয়া পার্ট B)\n \n \n \n \n \n \n \n \n Load Statement (লোড স্টেটমেন্ট)\n \n \n \n \n {\n !!values.file && !!values.fileName &&\n < Grid item>\n \n \n { setSubmitting(false) }}\n onDocumentLoadError={() => { setSubmitting(false) }}\n error={\n <>\n Unable to load PDF (পিডিএফ লোড করতে অক্ষম)\n \n }\n />\n \n \n \n }\n \n \n }\n \n
\n
\n )\n}","import { CssBaseline, Grid, Paper, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport React, { FunctionComponent } from 'react';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '100vh',\n },\n image: {\n backgroundImage: 'url(/assets/img/auth-bg.jpg)',\n backgroundRepeat: 'no-repeat',\n backgroundColor:\n theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[900],\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n },\n paper: {\n margin: theme.spacing(8, 4),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n avatar: {\n margin: theme.spacing(1),\n backgroundColor: theme.palette.secondary.main,\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n marginTop: theme.spacing(1),\n },\n submit: {\n margin: theme.spacing(3, 0, 2),\n },\n}));\n\ninterface AuthSehllProps {\n}\n\nexport const AuthShell: FunctionComponent = ({ children }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n
\n \"WBSEDCL\n

\n \n পেনশন পোর্টাল\n \n

\n

\n {children}\n

\n
\n
\n
\n )\n}","import { FormControl, Grid, IconButton, Typography } from '@material-ui/core';\nimport { KeyboardBackspaceOutlined } from '@material-ui/icons';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport axios from 'axios';\nimport { Form, Formik, FormikProps } from 'formik';\nimport { useSnackbar } from 'notistack';\nimport React, { FunctionComponent } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { AppInput } from '../components/atoms/inputs/AppInput';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { AuthShell } from '../components/molecules/auth-shell/AuthShell';\nimport { ApiResponse } from '../types';\n\ntype ApplStatusState = {\n applNo: string,\n erpId: string,\n message: { type: \"error\" | \"success\", text: string } | null\n}\n\ntype KnowApplStatusPageProps = {\n}\n\nexport const KnowApplStatusPage: FunctionComponent = () => {\n const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n\n return (\n \n {\n const error: Partial & { general?: string } = {}\n if (!values.applNo) {\n error.applNo = \"Invalid application no (অবৈধ আবেদন নম্বর)\"\n }\n // if (!values.erpId || !values.erpId.match(/^9\\d{9}$/)) {\n // error.erpId = \"Invalid ERP ID (অবৈধ ERP আইডি)\"\n // }\n return error\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, resetForm, setFieldTouched, setFieldError }) => {\n setSubmitting(true)\n setFieldValue('message', null)\n axios.post>(`/api/pensioner/ppo-application-status`, {\n appl_no: values.applNo,\n erp_id: values.erpId\n })\n .then(\n ({ data: resp }) => {\n if (resp.status === \"success\") {\n resetForm()\n setFieldValue('message', { type: 'success', text: resp.message })\n enqueueSnackbar(resp.message, { variant: 'success' })\n } else {\n setFieldValue('message', { type: 'error', text: resp.message })\n enqueueSnackbar(resp.message || 'Error Occured', { variant: 'error' })\n }\n setSubmitting(false)\n },\n () => {\n setFieldValue('message', { type: 'error', text: \"Network error\" })\n enqueueSnackbar('Network error', { variant: 'error' })\n setSubmitting(false)\n }\n )\n // await new Promise(res => setTimeout(res, 1000)).then(() => {\n // setFieldValue('contactNo', 'XXXXXXX9509')\n // setFieldValue('state', 1)\n // })\n }}\n >{({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange }: FormikProps) => {\n return (\n
\n \n\n \n history.push('/login')}> \n Know Application Status (আবেদনের স্থিতি জানুন)\n \n {\n values.message &&\n \n \n \n {values.message.type === \"success\" ? \"Success\" : \"Error(ত্রুটি)\"}\n \n {values.message.text}\n \n \n }\n \n \n \n \n \n \n \n \n \n \n Get Application Status (আবেদনের স্থিতি পান)\n \n \n \n {/*
{JSON.stringify(values, null, 2)}
*/}\n
\n )\n }}\n \n
\n )\n}","import { Button, FormControl, Grid, InputLabel, MenuItem, Select, Typography } from '@material-ui/core';\nimport { Form, Formik, FormikProps } from 'formik';\nimport React, { FunctionComponent } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { AppInput } from '../components/atoms/inputs/AppInput';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { AuthShell } from '../components/molecules/auth-shell/AuthShell';\n\ntype DocumentDetail = {\n state: number,\n documentType: string,\n documentId: string,\n contactNo: string,\n}\n\ntype KnowPensionerIdPageProps = {\n}\n\nexport const KnowPensionerIdPage: FunctionComponent = () => {\n const history = useHistory();\n return (\n \n Initial State\n documentType: 'pension-no',\n documentId: '',\n contactNo: ''\n }}\n validate={(values) => {\n const error: Partial & { general?: string } = {}\n if (values.documentId.length === 0) {\n error.documentId = \"Document Id Required (নথি আইডি প্রয়োজনীয়)\"\n }\n return error\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError }) => {\n await new Promise(res => setTimeout(res, 1000)).then(() => {\n setFieldValue('contactNo', 'XXXXXXX9509')\n setFieldValue('state', 1)\n })\n }}\n >{({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange }: FormikProps) => {\n return (\n
\n \n \n Know Your Pensioner ID (আপনার পেনশনার আইডি জানুন)\n \n \n \n Document Type (নথিপত্র ধরণ)\n \n Pension No. (পেনশন নম্বর)\n PAN (প্যান)\n \n \n \n \n \n \n {\n values.state === 1 &&\n \n Pensioner ID has been send to following Mobile Number\n পেনশনার আইডি নিম্নলিখিত মোবাইল নম্বরে প্রেরণ করা হয়েছে\n {values.contactNo}\n \n }\n \n \n 0 ? \"primary\" : \"default\"}\n variant={values.state > 0 ? \"contained\" : \"text\"}\n disabled={isSubmitting} onClick={() => history.push('/login')}>\n Go to Login (লগইনে যান)\n \n \n {values.state === 0 &&\n \n Find Pensioner ID (পেনশনার আইডি সন্ধান করুন)\n \n }\n \n \n {/*
{JSON.stringify(values, null, 2)}
*/}\n
\n )\n }}\n \n
\n )\n}","import { Breadcrumbs, Button, Card, CardContent, CircularProgress, Grid, Paper, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport { Done as DoneIcon } from '@material-ui/icons';\nimport HomeIcon from '@material-ui/icons/Home';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport axios from 'axios';\nimport React, { FunctionComponent, useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\nimport { ApiResponse } from '../types';\n\n\n\n\n\nconst useStyles = makeStyles((theme) => ({\n table: {\n minWidth: 650,\n },\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n\n}))\n\n\ntype LifeCertificatePageProps = {\n}\n\ntype LifeCertApiData = {\n from_date: string,\n to_date: string,\n alive: boolean,\n reemployed: boolean,\n remarried: boolean,\n}\n\ntype LifeCertState = {\n loading: boolean,\n error: string,\n certs: Array & { from_date: Date, to_date: Date }>\n}\n\nexport const LifeCertificatePage: FunctionComponent = () => {\n const classes = useStyles()\n const [lifeCerts, setLifeCerts] = useState({ loading: true, error: '', certs: [] })\n\n useEffect(() => {\n fetchLifeCerts()\n }, []);\n\n const fetchLifeCerts = () => {\n axios.get>(`/api/pensioner/get-life-certificates`)\n .then(\n ({ data: resp }) => {\n if (resp.status === \"success\") {\n const certs: any[] = []\n resp.data.lifeCertificates.forEach(c => certs.push({\n from_date: new Date(),\n to_date: new Date(),\n alive: c.alive,\n reemployed: c.reemployed,\n remarried: c.remarried,\n }))\n setLifeCerts({ loading: false, error: '', certs: certs })\n } else {\n setLifeCerts({ loading: false, error: resp.message, certs: [] })\n }\n },\n () => { setLifeCerts({ loading: false, error: \"Network Error\", certs: [] }) }\n )\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n Home\n \n \n \n Life Certificate (জীবন শংসাপত্র)\n \n \n \n \n \n \n \n < Grid item>\n {\n lifeCerts.loading && \n }\n {\n !lifeCerts.loading && lifeCerts.error &&\n <>\n \n Error\n {lifeCerts.error}\n \n \n \n }\n {\n !lifeCerts.loading && !lifeCerts.error && lifeCerts.certs.length === 0 &&\n <>\n \n Warning\n No Life Certificats found\n \n \n }\n {\n !lifeCerts.loading && !lifeCerts.error && lifeCerts.certs.length > 0 &&\n \n \n \n \n Start Date\n End Date Date\n Alive\n Re Employed\n Re Married\n \n \n \n {\n lifeCerts.certs.map(\n c =>\n \n {c.from_date.toDateString()}\n {c.to_date.toDateString()}\n {c.alive ? : <>}\n {c.reemployed ? : <>}\n {c.remarried ? : <>}\n \n )\n }\n \n
\n
\n }\n
\n
\n \n )\n}","import { Breadcrumbs, Button, Card, CardActions, CardContent, FormControl, Grid, InputLabel, MenuItem, Select, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport HomeIcon from '@material-ui/icons/Home';\nimport { Form, Formik, FormikProps } from 'formik';\nimport React, { FunctionComponent } from 'react';\nimport { pdfjs } from 'react-pdf';\nimport { Link } from 'react-router-dom';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\nimport { useStore } from '../store';\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\n\n\nconst useStyles = makeStyles((theme) => ({\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n}))\n\nconst getYearRange = () => {\n const currentYear = new Date().getFullYear();\n const yearList = []\n for (let i = currentYear - 3; i <= currentYear; i++) {\n yearList.push(i);\n }\n yearList.reverse()\n return yearList;\n}\n\ntype PymentForm = {\n year: number,\n month: number,\n file: any,\n fileName?: string,\n}\n\ntype MonthlyPayStatementPageProps = {\n}\n\nexport const MonthlyPayStatementPage: FunctionComponent = () => {\n const classes = useStyles()\n const yearRange = getYearRange()\n const store = useStore()\n\n return (\n \n \n {\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError }) => {\n setSubmitting(true)\n setFieldValue('fileName', `monthly-statement-${values.year}-${values.month}.pdf`)\n setFieldValue('file', {\n url: `${process.env.REACT_APP_API_ROOT}api/pensioner/monthly-statement/${values.year}/${values.month}`,\n httpHeaders: { 'Authorization': `Bearer ${store.auth.jwt}`, 'JWT': `Bearer ${store.auth.jwt}` },\n })\n }}\n >\n {\n ({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) =>\n
\n \n \n \n \n \n \n \n \n \n Home\n \n Monthly Pay Statement (মাসিক বেতন বিবৃতি)\n \n \n \n \n Year (বছর)\n \n {\n yearRange.map((y) => {y})\n }\n \n \n \n \n \n Month (মাস)\n \n January (জানুয়ারী)\n February (ফেব্রুয়ারী)\n March (মার্চ)\n April (এপ্রিল)\n May (মে)\n June (জুন)\n July (জুলাই)\n August (আগস্ট)\n September (সেপ্টেম্বর)\n October (অক্টোবর)\n November (নভেম্বর)\n December (ডিসেম্বর)\n \n \n \n \n \n \n \n \n Load Statement (লোড স্টেটমেন্ট)\n \n \n \n \n {\n !!values.file && !!values.fileName &&\n < Grid item>\n \n \n { setSubmitting(false) }}\n onDocumentLoadError={() => { setSubmitting(false) }}\n error={\n <>\n Unable to load PDF (পিডিএফ লোড করতে অক্ষম)\n \n }\n />\n \n \n \n }\n \n \n }\n \n
\n
\n )\n}","import { Breadcrumbs, Button, Card, CardActions, CardContent, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, FormControl, Grid, InputLabel, makeStyles, MenuItem, Select, Typography } from '@material-ui/core';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport axios from 'axios';\r\nimport { Form, useFormikContext } from 'formik';\r\nimport { useSnackbar } from 'notistack';\r\nimport React, { useState } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { AppInput } from '../../components/atoms/inputs/AppInput';\r\nimport { LoadingButton } from '../../components/atoms/inputs/LodingButton';\r\nimport { useStore } from '../../store';\r\nimport { ApiResponse } from '../../types';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n controlPaper: {\r\n width: \"100%\",\r\n padding: \"8px\",\r\n },\r\n link: {\r\n display: 'flex',\r\n textDecoration: 'none',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(0.5),\r\n width: 20,\r\n height: 20,\r\n },\r\n taxRegime: {\r\n marginBottom: 30\r\n },\r\n}))\r\n\r\nexport default function OptTaxRegimeFormComponent() {\r\n const { enqueueSnackbar } = useSnackbar();\r\n const classes = useStyles();\r\n const store = useStore();\r\n\r\n const { values, handleChange, isSubmitting, setSubmitting, setFieldValue, resetForm, setFieldTouched, setFieldError } = useFormikContext();\r\n\r\n const [confiirmationAlertOpen, setConfiirmationAlertOpen] = useState(false);\r\n\r\n function getCurrentFinancialYear() {\r\n var fiscalyear = \"\";\r\n var today = new Date();\r\n if ((today.getMonth() + 1) <= 3) {\r\n fiscalyear += today.getFullYear() - 1;\r\n } else {\r\n fiscalyear += today.getFullYear();\r\n }\r\n return fiscalyear\r\n }\r\n\r\n const handleConfirmationPopupClose = () => {\r\n setConfiirmationAlertOpen(false);\r\n }\r\n\r\n const handleConfirmationOpen = () => {\r\n if (!values.erpId || !values.erpId.match(/^\\d{8}$|^[\\d\\/]{11}$/)) { //TODO Rectify Regex for legecy PPO\r\n setFieldValue('message', { type: 'error', text: \"Valid PPO Number Required (বৈধ পিপিও নম্বর প্রয়োজনীয়)\" })\r\n enqueueSnackbar(\"Valid PPO Number Required (বৈধ পিপিও নম্বর প্রয়োজনীয়)\", { variant: 'error' });\r\n return;\r\n }\r\n else if (!values.taxRegime || values.taxRegime == 'NA') {\r\n enqueueSnackbar(\"Please select tax regime (অনুগ্রহ করে করব্যবস্থা নির্বাচন করুন)\", { variant: 'error' });\r\n return;\r\n }\r\n setConfiirmationAlertOpen(true);\r\n }\r\n\r\n const handleSubmit = async () => {\r\n setSubmitting(true)\r\n handleConfirmationPopupClose();\r\n setFieldValue('message', null)\r\n axios.get>(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONEROPTTAXREGIMEWS/UpdateTaxRegime`, {\r\n params: {\r\n taxRegimeDetails: {\r\n EMP_ID: values.erpId,\r\n START_DAT: values.endDate,\r\n //START_DAT: new Date().getFullYear() + '0301',\r\n //END_DAT: values.endDate,\r\n TAX_OPTION: values.taxRegime\r\n }\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n })\r\n // axios.get>(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONEROPTTAXREGIMEWS/UpdateTaxRegime`, {\r\n // params: {\r\n // taxRegimeDetails: {\r\n // EMP_ID: values.erpId,\r\n // START_DAT: new Date().getFullYear() + '0301',\r\n // // END_DAT: '20240228',\r\n // TAX_OPTION: values.taxRegime\r\n // }\r\n // },\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // }\r\n // })\r\n .then(\r\n ({ data: resp, status: status }) => {\r\n //console.log(resp);\r\n console.log(values.erpId, values.endDate, values.taxRegime);\r\n console.log(resp);\r\n if (status === 200) {\r\n // resetForm();\r\n\r\n let user: any = resp;\r\n setSubmitting(false);\r\n // user.applStatus = 'PENDING';\r\n if (user?.result == 'S') {\r\n setFieldValue('rejectReason', '')\r\n setFieldValue('message', { type: 'success', text: \"You have successfully selected tax regime (আপনি সফলভাবে করব্যবস্থা নির্বাচন করেছেন)\" })\r\n enqueueSnackbar(\"You have successfully selected tax regime (আপনি সফলভাবে করব্যবস্থা নির্বাচন করেছেন)\", { variant: 'success' });\r\n }\r\n else if (user?.result == 'X') {\r\n setFieldValue('rejectReason', user?.REJECTION_REASON ?? '')\r\n setFieldValue('message', { type: 'error', text: \"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\" })\r\n enqueueSnackbar(\"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\", { variant: 'error' });\r\n }\r\n else if (user?.result == 'A') {\r\n setFieldValue('rejectReason', user?.REJECTION_REASON ?? '')\r\n setFieldValue('message', { type: 'error', text: \"Option has already been excercised for this financial year (বিকল্পটি ইতিমধ্যে এই আর্থিক বছরের জন্য ব্যবহার করা হয়েছে)\" })\r\n enqueueSnackbar(\"Option has already been excercised for this financial year (বিকল্পটি ইতিমধ্যে এই আর্থিক বছরের জন্য ব্যবহার করা হয়েছে)\", { variant: 'error' });\r\n }\r\n else if (user?.result == 'N') {\r\n setFieldValue('rejectReason', user?.REJECTION_REASON ?? '')\r\n setFieldValue('message', { type: 'error', text: \"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\" })\r\n enqueueSnackbar(\"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\", { variant: 'error' });\r\n }\r\n else if (user?.result == 'I') {\r\n setFieldValue('rejectReason', user?.REJECTION_REASON ?? '')\r\n setFieldValue('message', { type: 'error', text: \"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\" })\r\n enqueueSnackbar(\"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\", { variant: 'error' });\r\n }\r\n else {\r\n setFieldValue('rejectReason', '')\r\n setFieldValue('message', { type: 'error', text: \"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\" })\r\n enqueueSnackbar(\"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\", { variant: 'error' })\r\n }\r\n }\r\n else {\r\n setFieldValue('rejectReason', '')\r\n setFieldValue('message', { type: 'error', text: \"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\" })\r\n enqueueSnackbar(\"Something went wrong. Please try again later (কিছু ভুল হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন)\", { variant: 'error' })\r\n }\r\n },\r\n )\r\n .catch((e) => {\r\n setFieldValue('message', { type: 'error', text: \"Network error\" })\r\n enqueueSnackbar('Network error', { variant: 'error' })\r\n setSubmitting(false)\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Home\r\n \r\n Opt Tax Regime (করব্যবস্থা বেছে নিন)\r\n \r\n \r\n\r\n {\r\n values.message &&\r\n \r\n \r\n \r\n {values.message.type === \"success\" ? \"Success\" : values.message.type === \"warning\" ? \"Pending\" : values.message.type === \"info\" ? \"Not Applied\" : (values.message.type === \"error\" && values.message.text == 'Your application is rejected') ? \"Rejected\" : \"Error(ত্রুটি)\"}\r\n \r\n {values?.rejectReason ? values.rejectReason : values.message.text}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Your default Tax Regime is New. To Change, select your option. Option will be final and cannot be changed further within this financial year.\r\n \r\n \r\n \r\n\r\n \r\n \r\n Tax Regime to be opted\r\n \r\n Select Tax Regime\r\n Old Tax Regime\r\n New Tax Regime\r\n \r\n \r\n \r\n\r\n \r\n \r\n Tax option date from\r\n 01-03-{new Date().getFullYear()} to 28-02-{new Date().getFullYear() + 1}\r\n \r\n \r\n \r\n \r\n \r\n { handleConfirmationOpen() }}\r\n >Opt Tax Regime\r\n \r\n \r\n \r\n \r\n {\"Alert (সতর্কতা)\"}\r\n \r\n \r\n Option will be final and cannot be changed further within this financial year. Do you want to proceed? (বিকল্প চূড়ান্ত হবে এই আর্থিক বছরের মধ্যে আর পরিবর্তন করা যাবে না। আপনি কি এগিয়ে যেতে চান?)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Grid, makeStyles } from '@material-ui/core';\r\nimport { Formik, FormikProps } from 'formik';\r\nimport { useSnackbar } from 'notistack';\r\nimport React, { FunctionComponent, useState } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\r\nimport OptTaxRegimeFormComponent from '../components/molecules/OptTaxRegimeFormComponent';\r\nimport { useStore } from '../store';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n controlPaper: {\r\n width: \"100%\",\r\n padding: \"8px\",\r\n },\r\n link: {\r\n display: 'flex',\r\n textDecoration: 'none',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(0.5),\r\n width: 20,\r\n height: 20,\r\n },\r\n taxRegime: {\r\n marginBottom: 30\r\n },\r\n}))\r\n\r\ntype OptRaxRegimePageState = {\r\n erpId: string,\r\n nameOfPensioner: string,\r\n taxRegime: string,\r\n message: { type: \"error\" | \"success\" | \"warning\" | \"info\", text: string } | null,\r\n rejectReason: string,\r\n endDate: string\r\n}\r\n\r\ntype OptRaxRegimePageProps = {\r\n}\r\n\r\nexport const OptRaxRegimePage: FunctionComponent = () => {\r\n const history = useHistory();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const classes = useStyles();\r\n const store = useStore();\r\n\r\n const [infoAlertOpen, setInfoAlertOpen] = useState(true);\r\n const [confiirmationAlertOpen, setConfiirmationAlertOpen] = useState(false);\r\n\r\n const handlePopupInfoClose = (value: any) => {\r\n setInfoAlertOpen(false);\r\n }\r\n\r\n const handleConfirmationPopupClose = (value: any) => {\r\n setConfiirmationAlertOpen(false);\r\n }\r\n\r\n const handleConfirmation = () => {\r\n setConfiirmationAlertOpen(false);\r\n }\r\n\r\n const titleCase = (text: string) => {\r\n const str = text.toLowerCase().split(' ');\r\n for (var i = 0; i < str.length; i++) {\r\n str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);\r\n }\r\n return str.join(' ');\r\n }\r\n\r\n const getMaritalStatus = (maritialStat: any) => {\r\n if (maritialStat == '0') {\r\n return 'Single'\r\n }\r\n else if (maritialStat == 'M' || maritialStat == '1') {\r\n return 'Married'\r\n }\r\n else if (maritialStat == 'U') {\r\n return 'Unmarried'\r\n }\r\n else if (maritialStat == 'W' || maritialStat == '2') {\r\n return 'Widow'\r\n }\r\n else if (maritialStat == 'D' || maritialStat == '3') {\r\n return 'Divorcee'\r\n }\r\n else if (maritialStat == 'P') {\r\n return 'Physically Challanged'\r\n }\r\n else if (maritialStat == '4') {\r\n return 'NM'\r\n }\r\n else if (maritialStat == '5') {\r\n return 'Sep.'\r\n }\r\n else if (maritialStat == '6') {\r\n return 'Unknown'\r\n }\r\n else if (maritialStat == '9') {\r\n return 'RegCou'\r\n }\r\n else if (maritialStat == 'A') {\r\n return 'RegcRP'\r\n }\r\n else {\r\n return maritialStat\r\n }\r\n }\r\n\r\n const getSex = (sex: any) => {\r\n if (sex == 'M' || sex == '1') {\r\n return 'Male'\r\n }\r\n else if (sex == 'F' || sex == '2') {\r\n return 'Female'\r\n }\r\n else {\r\n return sex\r\n }\r\n }\r\n\r\n const getRelationWith = (relationWith: any) => {\r\n if (relationWith == 'S') {\r\n return 'Son'\r\n }\r\n else if (relationWith == 'D') {\r\n return 'Daughter'\r\n }\r\n else if (relationWith == 'W') {\r\n return 'Spouse'\r\n }\r\n else if (relationWith == 'F') {\r\n return 'Father'\r\n }\r\n else if (relationWith == 'M') {\r\n return 'Mother'\r\n }\r\n else {\r\n return relationWith\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n const error: Partial & { general?: string } = {}\r\n if (!values.erpId) {\r\n error.erpId = \"Invalid FPPO no\"\r\n }\r\n // if (!values.erpId || !values.erpId.match(/^9\\d{9}$/)) {\r\n // error.erpId = \"Invalid ERP ID (অবৈধ ERP আইডি)\"\r\n // }\r\n return error\r\n }}\r\n onSubmit={() => { }}\r\n >{({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) => {\r\n return (\r\n \r\n )\r\n }}\r\n \r\n\r\n \r\n {\"Alert (সতর্কতা)\"}\r\n \r\n \r\n This application can be used only once in a financial year. (এই অ্যাপ্লিকেশনটি শুধুমাত্র একটি আর্থিক বর্ষে একবার ব্যবহার করা যেতে পারে |)\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import { Box, Breadcrumbs, Button, Card, CardActions, CardContent, FormControl, Grid, InputLabel, MenuItem, Select, Typography } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\r\nimport { Form, Formik, FormikProps, useFormikContext } from 'formik';\r\nimport React, { FunctionComponent, useEffect, useState } from 'react';\r\nimport { pdfjs } from 'react-pdf';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Help } from '../components/atoms/Help';\r\nimport { AppInput } from '../components/atoms/inputs/AppInput';\r\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\r\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\r\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\r\nimport { useStore } from '../store';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport axios from 'axios';\r\nimport { ApiResponse } from '../types';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport { useSnackbar } from 'notistack';\r\nimport moment from 'moment';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n controlPaper: {\r\n width: \"100%\",\r\n padding: \"8px\",\r\n },\r\n link: {\r\n display: 'flex',\r\n textDecoration: 'none',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(0.5),\r\n width: 20,\r\n height: 20,\r\n },\r\n datePicker: {\r\n marginTop: 30,\r\n marginBottom: 30\r\n },\r\n relation: {\r\n marginBottom: 30\r\n }\r\n}))\r\n\r\ntype FormikForm = {\r\n year: string,\r\n part: string,\r\n file: any,\r\n fileName?: string,\r\n\r\n ppoNo: string,\r\n}\r\n\r\ntype PDFUploadProps = {\r\n}\r\n\r\ntype PPONumApiData = {\r\n 'nameOfPensioner': string,\r\n 'guardianName': string,\r\n 'maritialStat': string,\r\n 'relationWith': string,\r\n 'address': string,\r\n 'sex': string,\r\n 'contactNo': string,\r\n 'dateOfBirth': string,\r\n 'dateOfCommencement': string,\r\n 'panNum': string,\r\n 'aadharNum': string,\r\n 'ppoNo': string\r\n}\r\n\r\ntype PPONumSubmitApiData = {\r\n pdfUrl: string,\r\n Success: string\r\n}\r\n\r\nexport const PDFUpload: FunctionComponent = () => {\r\n const classes = useStyles()\r\n const store = useStore()\r\n const history = useHistory();\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n const getFiscalYear = (y: number) => `${y}-${(y + 1).toString().substr(2, 2)}`;\r\n\r\n const [profilePicture, setProfilePicture] = useState('');\r\n const [profilePictureBase64, setProfilePictureBase64] = useState('');\r\n const [profilePictureImageType, setProfilePictureImageType] = useState('');\r\n const [user, setUser] = useState({\r\n ppoNo: \"\",\r\n });\r\n\r\n const [displayMessage, setDisplayMessage] = useState(null);\r\n const [isEligible, setIsEligible] = useState(false);\r\n const [pdfPreview, setPdfPreview] = useState(null);\r\n\r\n useEffect(() => {\r\n // setUser({ppoNo: \"12345\"})\r\n setUser({ ppoNo: store.auth.user?.id });\r\n }, []);\r\n\r\n useEffect(() => {\r\n checkEligibility()\r\n }, []);\r\n\r\n const checkEligibility = async () => {\r\n axios.get(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERCHECKPDFUPLOADELIGIBILITYWS/AllowAttestedPDFUpload`, {\r\n params: {\r\n queryParams: {\r\n ppoNum: store.auth.user?.id,\r\n }\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n })\r\n .then(\r\n ({ data: resp }) => {\r\n console.log(resp, \"resp eligibility\");\r\n if (resp && resp?.eligibleFlag == \"Y\") {\r\n setIsEligible(true);\r\n setPdfPreview(null);\r\n }\r\n else if (resp && resp?.eligibleFlag == \"N\" && !resp?.attestedPdfUrl) {\r\n enqueueSnackbar(\"Please upload stamp size photograph and generate application form first\", { variant: 'error' });\r\n setDisplayMessage({ type: 'error', text: \"Please upload stamp size photograph and generate application form first\" });\r\n setIsEligible(false);\r\n setPdfPreview(null);\r\n }\r\n else if (resp && resp?.eligibleFlag == \"N\" && resp?.attestedPdfUrl) {\r\n enqueueSnackbar(\"You have already uploaded the attested supporting document\", { variant: 'error' });\r\n setDisplayMessage({ type: 'error', text: \"You have already uploaded the attested supporting document\" });\r\n setIsEligible(false);\r\n setPdfPreview({\r\n url: `${process.env.REACT_APP_NEW_API_ROOT}irj/go/km/docs${resp.attestedPdfUrl}?time=${new Date().getTime()}`,\r\n });\r\n }\r\n else {\r\n console.log(\"noooooooooooooooooo\");\r\n\r\n enqueueSnackbar(\"Something went wrong\", { variant: 'error' });\r\n setIsEligible(false);\r\n setPdfPreview(null);\r\n }\r\n }\r\n )\r\n .catch((e) => {\r\n console.log(e, \"error\");\r\n setIsEligible(false);\r\n })\r\n }\r\n\r\n const checkEligibilityAfterSubmit = async () => {\r\n axios.get(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERCHECKPDFUPLOADELIGIBILITYWS/AllowAttestedPDFUpload`, {\r\n params: {\r\n queryParams: {\r\n ppoNum: store.auth.user?.id,\r\n }\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n })\r\n .then(\r\n ({ data: resp }) => {\r\n console.log(resp, \"resp eligibility\");\r\n if (resp && resp?.eligibleFlag == \"Y\") {\r\n setIsEligible(true);\r\n setPdfPreview(null);\r\n }\r\n else if (resp && resp?.eligibleFlag == \"N\" && !resp?.attestedPdfUrl) {\r\n // enqueueSnackbar(\"Please upload stamp size photograph and generate application form first\", { variant: 'error' });\r\n // setDisplayMessage({ type: 'error', text: \"Please upload stamp size photograph and generate application form first\" });\r\n setIsEligible(false);\r\n setPdfPreview(null);\r\n }\r\n else if (resp && resp?.eligibleFlag == \"N\" && resp?.attestedPdfUrl) {\r\n // enqueueSnackbar(\"You have already uploaded the attested supporting document\", { variant: 'error' });\r\n // setDisplayMessage({ type: 'error', text: \"You have already uploaded the attested supporting document\" });\r\n setIsEligible(false);\r\n // setPdfPreview({\r\n // url: `${process.env.REACT_APP_NEW_API_ROOT}irj/go/km/docs${resp.attestedPdfUrl}?time=${new Date().getTime()}`,\r\n // });\r\n setPdfPreview(null);\r\n }\r\n else {\r\n console.log(\"noooooooooooooooooo\");\r\n\r\n enqueueSnackbar(\"Something went wrong\", { variant: 'error' });\r\n setIsEligible(false);\r\n setPdfPreview(null);\r\n }\r\n }\r\n )\r\n .catch((e) => {\r\n console.log(e, \"error\");\r\n setIsEligible(false);\r\n })\r\n }\r\n\r\n const toBase64 = (file: any) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n return resolve(reader.result)\r\n };\r\n reader.onerror = error => reject(error);\r\n });\r\n\r\n\r\n return (\r\n \r\n \r\n {\r\n }}\r\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError, resetForm }) => {\r\n if (!values.ppoNo) {\r\n enqueueSnackbar(\"Please enter PPO Number\", { variant: 'error' });\r\n }\r\n else if (!profilePicture) {\r\n // alert(\"Please upload a passport size photo\");\r\n enqueueSnackbar(\"Please upload a pdf\", { variant: 'error' });\r\n }\r\n else {\r\n setSubmitting(true)\r\n resetForm();\r\n console.log(\"SUBMIT+++++++++\");\r\n\r\n\r\n let inputs = {\r\n \"fppoNum\": values.ppoNo,\r\n \"pdfAsString\": profilePictureBase64\r\n }\r\n\r\n console.log(inputs);\r\n\r\n\r\n fetch(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERUPLOADATTESTEDPDFWS/UploadAttestedApplicationFormPdf`, { body: JSON.stringify(inputs), method: 'post' })\r\n .then((response) => response.json())\r\n .then((resp) => {\r\n console.log(resp);\r\n\r\n // resp.Success = \"N\";\r\n if (resp?.FLAG == \"S\") {\r\n enqueueSnackbar(\"Attested application form PDF successfully uploaded\", { variant: 'success' });\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n checkEligibilityAfterSubmit();\r\n } else {\r\n enqueueSnackbar(\"Something went wrong. Please try again later\", { variant: 'error' });\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n });\r\n }\r\n }}\r\n >\r\n {\r\n ({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) => {\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 Home\r\n \r\n Upload Attested Application Form PDF (আপলোড এটাস্টেড এপ্লিকেশন ফর্ম পিডিএফ)\r\n \r\n \r\n\r\n {\r\n displayMessage &&\r\n \r\n \r\n \r\n {displayMessage.text}\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Upload PDF\r\n ) | any) => {\r\n console.log(e.target.files[0]);\r\n setFieldValue('fileName', `UploadedAttestedApplicationForm.pdf`)\r\n setFieldValue('file', e.target.files[0],\r\n )\r\n if (e.target.files[0] && e.target.files[0].size > 5242880) {\r\n // alert(\"The image must be less than or equal to 240 kB (kilobytes)\");\r\n enqueueSnackbar(\"The file must be less than or equal to 5 MB (megabytes)\", { variant: 'error' });\r\n\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n return;\r\n }\r\n\r\n toBase64(e.target.files[0]).then((result: any) => {\r\n // console.log(result, \"original base64\");\r\n setProfilePicture(URL.createObjectURL(e.target?.files[0]));\r\n setProfilePictureImageType(e.target.files[0].name.substring(e.target.files[0].name.lastIndexOf(\".\") + 1, e.target.files[0].name.length));\r\n\r\n let remainder = result.substring(result.indexOf(\",\") + 1, result.length);\r\n setProfilePictureBase64(remainder);\r\n })\r\n .catch((e) => {\r\n setProfilePicture('');\r\n setProfilePictureImageType('');\r\n setProfilePictureBase64('');\r\n console.log(e, \"prof error\");\r\n })\r\n ;\r\n }}\r\n onClick={(event: React.MouseEvent) => {\r\n const element = event.target as HTMLInputElement\r\n element.value = ''\r\n }}\r\n name=\"profilePicture\"\r\n accept=\"application/pdf\"\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Only .pdf accepted\r\n \r\n \r\n \r\n \r\n \r\n \r\n The file must be less than or equal to 5 MB (megabytes)\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {/* */}\r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n {\r\n !!values.file && !!values.fileName &&\r\n < Grid item>\r\n \r\n \r\n { setSubmitting(false) }}\r\n onDocumentLoadError={() => { setSubmitting(false) }}\r\n error={\r\n <>\r\n Something went wrong\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n }\r\n\r\n \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 { Breadcrumbs, Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport HomeIcon from '@material-ui/icons/Home';\nimport React, { FunctionComponent } from 'react';\nimport { Link } from 'react-router-dom';\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\nimport { useStore } from '../store';\n\n\n\n\nconst useStyles = makeStyles((theme) => ({\n controlPaper: {\n width: \"100%\",\n padding: \"8px\",\n },\n link: {\n display: 'flex',\n textDecoration: 'none',\n },\n icon: {\n marginRight: theme.spacing(0.5),\n width: 20,\n height: 20,\n },\n\n}))\n\n\ntype PPODetailPageProps = {\n}\n\nexport const PPODetailPage: FunctionComponent = () => {\n const classes = useStyles()\n const store = useStore()\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n Home\n \n \n \n PPO Details (পিপিও বিবরণ)\n \n \n \n \n \n \n \n < Grid item>\n \n \n \n Unable to load PDF (পিডিএফ লোড করতে অক্ষম)\n \n }\n />\n \n \n \n \n \n )\n}","import { Grid, IconButton, Modal } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ClearOutlined, HelpOutline } from '@material-ui/icons';\nimport React, { FunctionComponent, useState } from 'react';\n\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n helpIcon: {\n color: theme.palette.warning.main\n }\n}));\n\ntype HelpProps = {\n heading?: string\n body: JSX.Element\n}\n\nexport const Help: FunctionComponent = ({ heading, body, children }) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n\n return (\n <>\n \n \n {children}\n \n \n setOpen(true)}>\n \n \n \n \n setOpen(false)}\n aria-labelledby=\"simple-modal-title\"\n aria-describedby=\"simple-modal-description\"\n >\n
\n

setOpen(false)}>{heading || 'Help (সহায়তা)'}

\n
\n

{body}

\n
\n \n \n )\n}","import { Button, Divider, Grid, Typography } from '@material-ui/core';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport axios from 'axios';\nimport { Form, Formik, FormikProps } from 'formik';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\nimport React from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { Help } from '../components/atoms/Help';\nimport { AppInput } from '../components/atoms/inputs/AppInput';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { AuthShell } from '../components/molecules/auth-shell/AuthShell';\nimport { useStore } from '../store';\nimport { ApiResponse } from '../types';\n\n\n\ntype LoginState = {\n state: number,\n erpId: string,\n error: string,\n contactNo: string,\n otpReference: string,\n otp: string\n}\n\n\ninterface SignInPageProps {\n}\n\nexport const SignInPage = observer(() => {\n const store = useStore()\n const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n\n return (\n \n OTP Not Yet Send, 1 -> OTP Send but not yet provided by user\n error: \"\",\n erpId: \"\",\n contactNo: \"\",\n otpReference: \"\",\n otp: \"\",\n }}\n validate={(values) => {\n const errors: Partial & { general?: string } = {}\n if (!values.erpId || !values.erpId.match(/^\\d{8}$|^[\\d\\/]{11}$/)) { //TODO Rectify Regex for legecy PPO\n errors.erpId = 'Valid PPO Number Required (বৈধ পিপিও নম্বর প্রয়োজনীয়)'\n }\n if (values.state > 0 && !values.otp && !values.otp.match(/^\\d{6}$/)) {\n errors.otp = 'OTP Required (ওটিপি প্রয়োজনীয়)'\n }\n return errors\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, setFieldError }) => {\n setSubmitting(true);\n setFieldValue('error', '')\n try {\n if (values.state === 0) {\n // Send OTP\n await axios.get>(`/api/auth/request-login-otp/${values.erpId}`)\n .then(\n ({ data: resp }) => {\n if (resp.status === \"success\") {\n setFieldValue('contactNo', resp.data.mobileNumber)\n setFieldValue('otpReference', resp.data.otpReference)\n setFieldValue('state', 1)\n } else {\n setFieldValue('error', resp.message || 'Error Occured')\n enqueueSnackbar(resp.message || 'Error Occured', { variant: 'error' })\n }\n },\n () => { setFieldValue('error', 'Network Error'); enqueueSnackbar('Network Error', { variant: 'error' }) }\n )\n } else {\n // Verify OTP\n await axios.post>\n ('/api/auth/login', { username: values.erpId, otp_reference: values.otpReference, otp: values.otp })\n .then(\n ({ data: resp }) => {\n if (resp.status === \"success\") {\n store.auth.login({ id: resp.data.username, name: resp.data.name }, resp.data.jwt, resp.data.refreshToken)\n history.push('/')\n }\n else {\n setFieldValue('error', resp.message || 'Error Occured')\n enqueueSnackbar(resp.message || 'Error Occured', { variant: 'error' })\n }\n },\n () => { setFieldValue('error', 'Network Error'); enqueueSnackbar('Network Error', { variant: 'error' }) }\n )\n }\n } catch (err) {\n setFieldError('general', err.message)\n }\n finally {\n setSubmitting(false);\n }\n }}\n >{({ values, isSubmitting, isValid, setFieldValue, setValues }: FormikProps) => {\n return (\n
\n \n \n Login (প্রবেশ করুন)\n \n {\n values.error &&\n \n \n \n Error (ত্রুটি)\n \n {values.error}\n \n \n }\n \n Enter PPO number starting with 8. (8 দিয়ে শুরু হওয়া PPO নম্বর লিখুন।)}>\n 0 || isSubmitting}\n />\n \n \n {\n values.state === 0 &&\n \n \n Request OTP (ওটিপি প্রেরণ করুন)\n \n \n }\n {\n values.state === 1 &&\n <>\n \n OTP has been send to following Mobile Number\n নিম্নলিখিত মোবাইল নম্বরটিতে ওটিপি পাঠানো হয়েছে\n {values.contactNo}\n \n \n \n \n \n \n \n \n \n Login (প্রবেশ করুন)\n \n \n \n }\n \n \n \n \n \n \n \n \n \n \n \n \n ⓘNOTICE\n \n Provision to record tax regime option for the current financial year shall be available from 15/04/2024 to 15/05/2024.{'\\n'}{'\\n'}\n \n \n (বর্তমান আর্থিক বছরের জন্য কর ব্যবস্থার বিকল্প দেওয়ার সুবিধা 15/04/2024 থেকে 15/05/2024 পর্যন্ত উপলব্ধ থাকবে৷)\n \n \n \n \n {/*
{JSON.stringify(values, null, 2)}
*/}\n \n )\n }}\n \n
\n )\n})\n","import { Breadcrumbs, Card, CardActions, CardContent, FormControl, Grid, IconButton, makeStyles, Typography } from '@material-ui/core';\r\nimport { KeyboardBackspaceOutlined } from '@material-ui/icons';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport axios from 'axios';\r\nimport { Form, Formik, FormikProps } from 'formik';\r\nimport { useSnackbar } from 'notistack';\r\nimport React, { FunctionComponent } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { AppInput } from '../components/atoms/inputs/AppInput';\r\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\r\nimport { PdfViewer } from '../components/atoms/inputs/PdfViewer';\r\nimport { AppShell } from '../components/molecules/app-shell/AppShell';\r\nimport { AuthShell } from '../components/molecules/auth-shell/AuthShell';\r\nimport { ApiResponse } from '../types';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport { useStore } from '../store';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n controlPaper: {\r\n width: \"100%\",\r\n padding: \"8px\",\r\n },\r\n link: {\r\n display: 'flex',\r\n textDecoration: 'none',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(0.5),\r\n width: 20,\r\n height: 20,\r\n },\r\n}))\r\n\r\ntype TrackPensionerIdentityCardPageState = {\r\n applNo: string,\r\n erpId: string,\r\n message: { type: \"error\" | \"success\" | \"warning\" | \"info\", text: string } | null,\r\n rejectReason: string,\r\n\r\n file: any,\r\n fileName?: string,\r\n}\r\n\r\ntype TrackPensionerIdentityCardPageProps = {\r\n}\r\n\r\nexport const TrackPensionerIdentityCardPage: FunctionComponent = () => {\r\n const history = useHistory();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const classes = useStyles();\r\n const store = useStore();\r\n\r\n const getMaritalStatus = (maritialStat: any) => {\r\n if (maritialStat == '0') {\r\n return 'Single'\r\n }\r\n else if (maritialStat == 'M' || maritialStat == '1') {\r\n return 'Married'\r\n }\r\n else if (maritialStat == 'U') {\r\n return 'Unmarried'\r\n }\r\n else if (maritialStat == 'W' || maritialStat == '2') {\r\n return 'Widow'\r\n }\r\n else if (maritialStat == 'D' || maritialStat == '3') {\r\n return 'Divorcee'\r\n }\r\n else if (maritialStat == 'P') {\r\n return 'Physically Challanged'\r\n }\r\n else if (maritialStat == '4') {\r\n return 'NM'\r\n }\r\n else if (maritialStat == '5') {\r\n return 'Sep.'\r\n }\r\n else if (maritialStat == '6') {\r\n return 'Unknown'\r\n }\r\n else if (maritialStat == '9') {\r\n return 'RegCou'\r\n }\r\n else if (maritialStat == 'A') {\r\n return 'RegcRP'\r\n }\r\n else {\r\n return maritialStat\r\n }\r\n }\r\n\r\n const getSex = (sex: any) => {\r\n if (sex == 'M' || sex == '1') {\r\n return 'Male'\r\n }\r\n else if (sex == 'F' || sex == '2') {\r\n return 'Female'\r\n }\r\n else {\r\n return sex\r\n }\r\n }\r\n\r\n const getRelationWith = (relationWith: any) => {\r\n if (relationWith == 'S') {\r\n return 'Son'\r\n }\r\n else if (relationWith == 'D') {\r\n return 'Daughter'\r\n }\r\n else if (relationWith == 'W') {\r\n return 'Spouse'\r\n }\r\n else if (relationWith == 'F') {\r\n return 'Father'\r\n }\r\n else if (relationWith == 'M') {\r\n return 'Mother'\r\n }\r\n else {\r\n return relationWith\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n const error: Partial & { general?: string } = {}\r\n if (!values.applNo) {\r\n error.applNo = \"Invalid FPPO no\"\r\n }\r\n // if (!values.erpId || !values.erpId.match(/^9\\d{9}$/)) {\r\n // error.erpId = \"Invalid ERP ID (অবৈধ ERP আইডি)\"\r\n // }\r\n return error\r\n }}\r\n onSubmit={async (values, { setSubmitting, setFieldValue, resetForm, setFieldTouched, setFieldError }) => {\r\n setSubmitting(true)\r\n if (!values.applNo || !values.applNo.match(/^\\d{8}$|^[\\d\\/]{11}$/)) { //TODO Rectify Regex for legecy PPO\r\n setFieldValue('message', { type: 'error', text: \"Valid PPO Number Required (বৈধ পিপিও নম্বর প্রয়োজনীয়)\" })\r\n enqueueSnackbar(\"Valid PPO Number Required (বৈধ পিপিও নম্বর প্রয়োজনীয়)\", { variant: 'error' });\r\n return;\r\n }\r\n setFieldValue('message', null)\r\n axios.get>(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONFETCHIDCARDDETAILSWS/FetchIdCardDetails`, {\r\n params: {\r\n ppoNum: {\r\n ppoNum: values.applNo\r\n }\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n })\r\n .then(\r\n ({ data: resp, status: status }) => {\r\n console.log(resp);\r\n\r\n if (status === 200) {\r\n // resetForm();\r\n\r\n let user: any = resp;\r\n // user.applStatus = 'PENDING';\r\n if (user?.STATUS == 'A') {\r\n setFieldValue('rejectReason', '')\r\n setFieldValue('message', { type: 'success', text: \"Your Id card is approved\" })\r\n enqueueSnackbar(\"Your Id card status is approved\", { variant: 'success' });\r\n // fetchPensionersCardDetails(resp);\r\n\r\n setSubmitting(true);\r\n\r\n let inputs = {\r\n \"idCardNum\": user?.ICARD_NO ?? \"\",\r\n \"nameOfPensioner\": user?.NAME ?? \"\",\r\n \"ppoNum\": values.applNo,\r\n \"maritialStat\": getMaritalStatus(user.MAR_STA) ?? \"\",\r\n \"relationWith\": getRelationWith(user.NOM_REL) ?? \"\",\r\n \"address\": user.RESIDENTIAL_ADDRESS ?? \"\",\r\n \"sex\": getSex(user.SEX) ?? \"\",\r\n \"contactNo\": user.CON_NO ?? \"\",\r\n \"dateOfBirth\": user.DOB ?? \"\",\r\n \"dateOfCommencement\": user.COM_OF_PEN ?? \"\",\r\n \"imageExtension\": user.IMAGE_EXTENSION ?? \"\",\r\n\r\n \"ppoIssueDate\": user?.PPO_ISSUE_DT ?? \"\",\r\n \"postAtRetirement\": user?.POST_AT_RETIREMENT ?? \"\",\r\n \"dateOfRetirement\": user?.RETIREMENT_DATE ?? \"\",\r\n\r\n \"signatureExtension\": user?.SIGNATURE_EXTENSION ?? \"\",\r\n }\r\n\r\n console.log(JSON.stringify(inputs));\r\n\r\n\r\n fetch(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERGENERATEIDCARDWS/GeneratePensionerIdCard`, { body: JSON.stringify(inputs), method: 'post', })\r\n .then((response) => response.json())\r\n .then((resp) => {\r\n // axios.post(`${process.env.REACT_APP_NEW_API_ROOT}WBSEDCLERPPENSIONERGENERATEIDCARDWS/GeneratePensionerIdCard`, inputs,\r\n // {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // }\r\n // })\r\n // .then(({ data: resp }) => {\r\n console.log(resp);\r\n setFieldValue('fileName', `PensionersIdentityCard.pdf`)\r\n setFieldValue('file', {\r\n url: `${process.env.REACT_APP_NEW_API_ROOT}irj/go/km/docs${resp.pdfUrl}`,\r\n })\r\n setSubmitting(false)\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n setSubmitting(false)\r\n });\r\n }\r\n else if (user?.STATUS == 'R') {\r\n setFieldValue('rejectReason', user?.REJECTION_REASON ?? '')\r\n setFieldValue('message', { type: 'error', text: \"Your application is rejected\" })\r\n enqueueSnackbar(\"Your application is rejected\", { variant: 'error' });\r\n setSubmitting(false)\r\n }\r\n else if (user?.STATUS == 'I') {\r\n setFieldValue('rejectReason', '')\r\n setFieldValue('message', { type: 'warning', text: \"In Progress\" })\r\n enqueueSnackbar(\"Your application is in progress\", { variant: 'warning' });\r\n setSubmitting(false)\r\n }\r\n else {\r\n // setFieldValue('message', { type: '', text: user?.applStatus })\r\n // enqueueSnackbar(user?.applStatus || 'Error Occured', { variant: 'error' })\r\n setFieldValue('rejectReason', '');\r\n setFieldValue('message', { type: 'info', text: \"You have not applied for a ID card yet\" })\r\n enqueueSnackbar(\"You have not applied for a ID card yet\", { variant: 'info' });\r\n setSubmitting(false)\r\n }\r\n }\r\n else {\r\n setFieldValue('rejectReason', '')\r\n setFieldValue('message', { type: 'error', text: \"Something went wrong\" })\r\n enqueueSnackbar(\"Something went wrong\", { variant: 'error' })\r\n setSubmitting(false)\r\n }\r\n },\r\n )\r\n .catch((e) => {\r\n setFieldValue('message', { type: 'error', text: \"Network error\" })\r\n enqueueSnackbar('Network error', { variant: 'error' })\r\n setSubmitting(false)\r\n })\r\n }}\r\n >{({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange, setSubmitting }: FormikProps) => {\r\n return (\r\n
\r\n {\r\n !values.file && !values.fileName &&\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Home\r\n \r\n Know Application Status / Download Identity Card (আবেদনের স্থিতি জানুন / আইডেন্টিটি কার্ড ডাউনলোড করুন)\r\n \r\n \r\n\r\n {/* \r\n Know Application Status / Download Identity Card (আবেদনের স্থিতি জানুন / আইডেন্টিটি কার্ড ডাউনলোড করুন)\r\n */}\r\n {\r\n values.message &&\r\n \r\n \r\n \r\n {values.message.type === \"success\" ? \"Success\" : values.message.type === \"warning\" ? \"Pending\" : values.message.type === \"info\" ? \"Not Applied\" : (values.message.type === \"error\" && values.message.text == 'Your application is rejected') ? \"Rejected\" : \"Error(ত্রুটি)\"}\r\n \r\n {values?.rejectReason ? values.rejectReason : values.message.text}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Get Application Status\r\n \r\n \r\n \r\n }\r\n {\r\n !!values.file && !!values.fileName &&\r\n < Grid item>\r\n \r\n \r\n { setSubmitting(false) }}\r\n onDocumentLoadError={() => { setSubmitting(false) }}\r\n error={\r\n <>\r\n Unable to load PDF (পিডিএফ লোড করতে অক্ষম)\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n }\r\n {/*
{JSON.stringify(values, null, 2)}
*/}\r\n
\r\n )\r\n }}\r\n \r\n
\r\n
\r\n )\r\n}","import DateFnsUtils from '@date-io/date-fns';\nimport { Button, Grid, IconButton, Typography } from '@material-ui/core';\nimport { KeyboardBackspaceOutlined } from '@material-ui/icons';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport axios from 'axios';\nimport { Form, Formik, FormikProps } from 'formik';\nimport { useSnackbar } from 'notistack';\nimport React, { FunctionComponent } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { Help } from '../components/atoms/Help';\nimport { AppInput } from '../components/atoms/inputs/AppInput';\nimport { LoadingButton } from '../components/atoms/inputs/LodingButton';\nimport { AuthShell } from '../components/molecules/auth-shell/AuthShell';\nimport { ApiResponse } from '../types';\n\ntype ChangeMobileNumberState = {\n state: number,\n erpId: string,\n dob: Date,\n message: { type: \"error\" | \"success\", message: string } | null,\n contactNo: string,\n otpReference: string,\n otp: string\n}\n\n\ninterface UpdateMobileNumberPageProps {\n}\n\nexport const UpdateMobileNumberPage: FunctionComponent = () => {\n const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n\n return (\n \n OTP Not Yet Send, 1 -> OTP Send but not yet provided by user\n message: null,\n dob: new Date(),\n erpId: \"\",\n contactNo: \"\",\n otpReference: \"\",\n otp: \"\",\n }}\n validate={(values) => {\n const errors: Partial & { general?: string } = {}\n if (!values.erpId || !values.erpId.match(/^\\d{8}$|^[\\d\\/]{11}$/)) { //TODO Rectify Regex for legecy PPO\n errors.erpId = 'Valid PPO Number Required (বৈধ পিপিও নম্বর প্রয়োজনীয়)'\n }\n if (!values.contactNo || !values.contactNo.match(/^[6-9]{1}[0-9]{9}$/)) {\n errors.contactNo = 'Valid Mobile Number Required (বৈধ মোবাইল নম্বর আবশ্যক)'\n }\n if (values.state > 0 && !values.otp && !values.otp.match(/^\\d{6}$/)) {\n errors.otp = 'OTP Required (ওটিপি প্রয়োজনীয়)'\n }\n return errors\n }}\n onSubmit={async (values, { setSubmitting, setFieldValue, setFieldTouched, resetForm, setFieldError }) => {\n setSubmitting(true);\n setFieldValue('message', null)\n try {\n if (values.state === 0) {\n // Send OTP\n await axios.get>(`/api/auth/request-mobile-change/${values.dob.toISOString().split('T')[0]}/${values.contactNo}/${values.erpId}`)\n .then(\n ({ data: resp }) => {\n if (resp.status === \"success\") {\n setFieldValue('otpReference', resp.data.otpReference)\n setFieldValue('state', 1)\n } else {\n setFieldValue('message', { type: \"error\", message: resp.message || 'Error Occured' })\n enqueueSnackbar(resp.message || 'Error Occured', { variant: 'error' })\n }\n },\n () => {\n setFieldValue('message', { type: \"error\", message: \"Network Error\" })\n enqueueSnackbar('Network Error', { variant: 'error' })\n }\n )\n } else {\n // Verify OTP\n await axios.post>\n ('/api/auth/change-mobile-no', { otp_reference: values.otpReference, otp: values.otp })\n .then(\n ({ data: resp }) => {\n if (resp.status === \"success\") {\n resetForm()\n setFieldValue('message', { type: \"success\", message: resp.message || 'Successfully' })\n enqueueSnackbar(resp.message, { variant: 'success' })\n }\n else {\n setFieldValue('message', { type: \"error\", message: resp.message || 'Error Occured' })\n enqueueSnackbar(resp.message || 'Error Occured', { variant: 'error' })\n }\n },\n () => {\n setFieldValue('message', { type: \"error\", message: \"Network Error\" })\n enqueueSnackbar('Network Error', { variant: 'error' })\n }\n )\n }\n } catch (err) {\n setFieldError('general', err.message)\n }\n finally {\n setSubmitting(false);\n }\n }}\n >{({ values, isSubmitting, isValid, setFieldValue, setValues, handleChange }: FormikProps) => {\n return (\n
\n \n \n history.push('/login')}> \n Update Mobile No (মোবাইল নম্বর আপডেট করুন)\n \n {\n values.message &&\n \n \n \n {values.message.type === \"success\" ? \"Success\" : \"Error(ত্রুটি)\"}\n \n {values.message.message}\n \n \n }\n \n Username Help}>\n 0 || isSubmitting}\n />\n \n \n \n \n setFieldValue(\"dob\", value)}\n disabled={values.state > 0 || isSubmitting}\n />\n \n \n \n 0 || isSubmitting}\n />\n \n {\n values.state === 0 &&\n \n \n Request OTP (ওটিপি প্রেরণ করুন)\n \n \n }\n {\n values.state === 1 &&\n <>\n \n OTP has been send to your mobile\n আপনার মোবাইলে ওটিপি পাঠানো হয়েছে\n \n \n \n \n \n \n \n \n \n Update Mobile No (মোবাইল নম্বর আপডেট করুন)\n \n \n \n }\n \n {/*
{JSON.stringify(values, null, 2)}
*/}\n \n )\n }}\n \n
\n )\n}","import { observer } from 'mobx-react-lite';\nimport React from \"react\";\nimport { Redirect, Route, RouteProps } from \"react-router-dom\";\n// import { AuthContext } from \"./Auth\";\nimport { useStore } from \"./store\";\n\nexport const PrivateRoute = observer((props) => {\n const store = useStore()\n\n if (!!store.auth.user) {\n return \n }\n\n return \n});","import { SnackbarProvider } from 'notistack';\nimport {\n BrowserRouter as Router,\n Route\n} from \"react-router-dom\";\nimport './App.css';\nimport { UnderMaintenance } from './components/molecules/UnderMaintenance';\nimport { AnnualStatementPage } from './pages/AnnualStatementPage';\nimport { AplicationFormPensionerIdentityCardPage } from './pages/AplicationFormPensionerIdentityCardPage';\nimport { CircularPage } from './pages/CircularPage';\nimport { DashboardPage } from './pages/DashboardPage';\nimport { Form16Page } from './pages/Form16Page';\nimport { KnowApplStatusPage } from './pages/KnowApplicationStatusPage';\nimport { KnowPensionerIdPage } from './pages/KnowPensionerIdPage';\nimport { LifeCertificatePage } from './pages/LifeCertificatePage';\nimport { MonthlyPayStatementPage } from './pages/MonthlyPayStatementPage';\nimport { OptRaxRegimePage } from './pages/OptRaxRegimePage';\nimport { PDFUpload } from './pages/PDFUpload';\nimport { PPODetailPage } from './pages/PPODetailsPage';\nimport { SignInPage } from './pages/SignInPage';\nimport { TrackPensionerIdentityCardPage } from './pages/TrackPensionerIdentityCardPage';\nimport { UpdateMobileNumberPage } from './pages/UpdateMobileNumberPage';\nimport { PrivateRoute } from './PrivateRoute';\nimport { createInitalStore, StoreProvider } from './store';\n\nfunction App() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import axios from 'axios';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport './index.css';\nimport reportWebVitals from './reportWebVitals';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\naxios.defaults.baseURL = process.env.REACT_APP_API_ROOT;\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}