{"version":3,"sources":["config/moment/index.js","config/theme/index.js","config/constants/index.js","config/aws/index.js","config/alert/index.js","utils/auth/index.js","utils/regex/index.js","utils/getFee/index.js","utils/formatAmount/index.js","utils/formatDate/index.js","utils/csv/index.js","components/CustomRoute/index.js","components/Drawer/Header.js","api/fetch/config.js","api/fetch/index.js","api/data/index.js","components/Drawer/Options.js","components/Drawer/DrawerOptions.js","components/Drawer/Content.js","components/Drawer/index.js","components/LoadingButton/index.js","components/TextField/index.js","components/Button/index.js","hooks/useGet/index.js","hooks/useSlideMessage/index.js","hooks/usePost/index.js","hooks/useMatchSizes/index.js","hooks/useQueryParameters/index.js","hooks/useViewport/index.js","hooks/useFileUpload/index.js","components/Table/index.js","components/LabelValue/index.js","components/SlideMessage/index.js","components/AmountField/index.js","components/Snackbar/index.js","components/Link/index.js","components/Paper/index.js","components/FilePreview/index.js","components/FileUpload/index.js","schemas/login/index.js","schemas/client/index.js","schemas/user/index.js","schemas/user/create/index.js","schemas/user/update/index.js","schemas/loan/create/index.js","schemas/loan/update/index.js","schemas/loan/index.js","schemas/loan/pay/index.js","schemas/payment/index.js","schemas/payment/update/index.js","screens/Login/index.js","screens/Clients/Add/index.js","screens/Clients/List/index.js","screens/Clients/Profile/index.js","screens/NoMatch/index.js","screens/Clients/index.js","screens/Loans/Add/index.js","screens/Loans/List/index.js","screens/Loans/Details/index.js","screens/Loans/Pay/index.js","screens/Loans/index.js","screens/Payments/List/index.js","screens/Payments/Today/index.js","screens/Payments/Personal/index.js","screens/Payments/Details/index.js","screens/Payments/index.js","screens/Users/Add/index.js","screens/Users/List/index.js","screens/Users/Profile/index.js","screens/Users/index.js","screens/Profile/index.js","screens/Welcome/index.js","screens/Home/index.js","screens/index.js","App.js","serviceWorker.js","index.js"],"names":["moment","updateLocale","weekdays","weekdaysShort","months","monthsShort","defaultFormat","createMuiTheme","palette","primary","main","secondary","process","config","s3","url","alertMessage","REACT_APP_ALERT_MESSAGE","getToken","window","localStorage","getItem","decodedToken","jwt","decode","replace","token","setItem","verify","err","type","userType","Boolean","constants","getFee","amount","interestPercentage","capitalPercentage","periodicityTimes","penalty","periodicityFee","expectedAmount","interestAmount","capitalAmount","Math","round","formatAmount","format","style","currency","currencyDisplay","currencySymbol","Intl","NumberFormat","formatDate","date","columns","data","name","builder","CsvBuilder","exportColumns","map","columnDef","title","exportData","rowData","field","get","paydate","daysLate","diff","setColumns","addRows","exportFile","CustomRoute","Component","component","isPrivate","isLogin","isProtected","rest","render","props","isAuth","auth","to","pathname","isAdminOrSupervisor","useStyles","makeStyles","theme","menuButton","marginRight","spacing","content","flex","linkText","color","common","white","Header","onClick","classes","AppBar","position","IconButton","aria-label","edge","className","Menu","Box","display","flexDirection","justifyContent","alignItems","Typography","variant","noWrap","getHeaders","endpoint","method","Authorization","Promise","resolve","reject","a","fetch","headers","request","json","response","ok","Error","message","body","JSON","stringify","file","status","statusText","options","userId","id","key","displayName","path","iconName","subMenu","initialState","filter","option","toolbar","mixins","nested","marginLeft","text","withRouter","history","onCloseDrawer","userName","useState","open","setOpen","Divider","List","subheader","ListSubheader","ListItem","button","push","ListItemIcon","Icon","ListItemText","item","Collapse","in","timeout","unmountOnExit","disablePadding","Link","drawerPaper","width","DrawerOptions","isOpen","handleDrawerToggle","useTheme","Drawer","anchor","direction","onClose","paper","ModalProps","keepMounted","flexGrow","padding","Content","children","React","mobileOpen","setMobileOpen","wrapper","buttonProgress","green","top","left","marginTop","LoadingButton","loading","CircularProgress","size","BaseTextField","readOnly","TextField","margin","fullWidth","autoComplete","InputProps","Button","useGetData","initialUrl","setUrl","useReducer","state","newState","error","setState","callback","refetch","useEffect","useSlideMessage","isVisible","setIsVisible","setTimeout","usePost","isSucceded","setIsSucceded","isError","setIsError","post","useMatchSizes","xsDown","useMediaQuery","breakpoints","down","mdDown","xlDown","useQueryParameters","search","useLocation","URLSearchParams","useViewport","height","viewportSize","setViewportSize","onResize","useCallback","innerWidth","innerHeight","vw","v","vh","useLayoutEffect","addEventListener","removeEventListener","useMemo","useFileUpload","upload","throwError","Table","filtering","isAdmin","maxBodyHeight","localization","searchTooltip","searchPlaceholder","exportTitle","exportAriaLabel","exportName","pagination","labelRowsSelect","firstAriaLabel","firstTooltip","lastAriaLabel","lastTooltip","previousAriaLabel","previousTooltip","nextAriaLabel","nextTooltip","emptyDataSourceMessage","header","actions","pageSize","pageSizeOptions","exportButton","exportCsv","csvUtils","headerStyle","backgroundColor","LabelValue","editable","label","value","Grid","sm","xs","SlideMessage","AmountField","isNumericString","thousandSeparator","customInput","prefix","allowNegative","colors","success","BaseSnackbar","Snackbar","TransitionComponent","Slide","ContentProps","LinkRef","forwardRef","ref","RouterLink","underline","root","PaperComponent","Paper","fileContainer","FileUpload","src","aws","alt","container","input","skeleton","icon","black","onChange","my","accept","htmlFor","FilePreview","Skeleton","initialValues","password","schema","yup","shape","required","min","idNumber","phoneNumber","address","email","description","workplace","idFrontPhoto","idBackPhoto","matches","regex","nullable","validators","create","userTypeId","userStatusId","update","penaltyFee","payday","loanPeriodicityId","loanTypeId","clientId","lastPayday","when","is","val","then","otherwise","balance","loanStatusId","contractPhoto","pay","notes","isTypeToCapital","isTypeField","addNotesField","penaltyAmount","currentBalanceAmount","loginScheme","paddingTop","mb","marginBottom","avatar","Login","showPassword","setShowPassword","setLoading","setError","useHistory","Container","maxWidth","Avatar","LockOutlined","validationSchema","onSubmit","values","errors","touched","as","helperText","endAdornment","InputAdornment","Visibility","VisibilityOff","disabled","clientScheme","AddClient","uploadFront","uploadFrontLoading","uploadFrontError","uploadBack","uploadBackLoading","uploadBackError","client","Card","CardHeader","CardContent","setFieldValue","form","target","validity","files","valid","newName","Date","now","toString","fileCopy","File","CardActions","Save","ListClients","useGet","align","isLoading","tooltip","hidden","disableClick","rel","href","actionsContainer","Profile","setData","useParams","isEditable","setIsEditable","getLoading","getError","getData","postIsError","postLoading","postError","stateCopy","tableData","resetForm","action","Close","Edit","createdAt","NoMatch","location","ClientsRouter","exact","Add","loanScheme","AddLoans","loanPropsData","loan","setFieldTouched","submitCount","Number","periodicity","times","FormControl","styles","zIndex","cacheOptions","placeholder","noOptionsMessage","loadingMessage","getOptionLabel","getOptionValue","loadOptions","inputValue","onBlur","FormHelperText","user","onValueChange","select","event","loanTypeSelected","loanTypes","find","MenuItem","loanType","loanInterestPercentages","percentage","loanCapitalPercentages","periodicitySelected","loanPeriodicities","lastPeriodicityId","add","DatePicker","inputVariant","isSame","startOf","ListLoans","queryParameters","tabSelected","parseInt","0","1","2","getUrls","justify","Tabs","_","newValue","set","indicatorColor","textColor","centered","Tab","components","Toolbar","totalAmount","reduce","sum","Action","loanStatus","Payment","Tooltip","customFilterAndSearch","term","loanPeriodicity","toUpperCase","includes","customSort","b","Details","loanLoading","loanError","loanData","loanPropsLoading","loanPropsError","usersData","userLoading","userError","uploadLoading","uploadError","loanStatuses","Pay","openDialog","setOpenDialog","paymentData","setPaymentData","handleCloseDialog","details","Dialog","DialogTitle","DialogContent","payment","DialogActions","detail","loandId","FormControlLabel","control","Switch","checked","ev","formattedValue","mt","LoansRouter","ListPayments","from","filterValues","setFilterValues","loadingUsers","errorUsers","haveError","formValues","payments","setId","PersonalPayments","paymentScheme","PaymentsRouter","Today","Personal","userScheme","AddUsers","userTypes","userStatuses","ListUsers","userData","userPropsData","userPropsLoading","userPropsError","UsersRouter","payload","REPORT_TYPES","DAILY","MONTHY","Welcome","reportType","setReportType","primaryColor","secondaryColor","md","gutterBottom","chartData","Object","keys","totalPayments","colorScale","labels","datum","x","y","arrow","users","userStatus","Home","Clients","Loans","Payments","Users","App","Root","alertConfig","alert","ThemeProvider","utils","MomentUtils","CssBaseline","hostname","match","document","getElementById","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.c790934c.chunk.js","sourcesContent":["// @flow\nimport moment from 'moment'\nimport 'moment/locale/es'\n\nconst weekdays = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miércoles',\n 'Jueves',\n 'Viernes',\n 'Sábado'\n]\n\nconst weekdaysShort = ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab']\n\nconst months = [\n 'Enero',\n 'Febrero',\n 'Marzo',\n 'Abril',\n 'Mayo',\n 'Junio',\n 'Julio',\n 'Agosto',\n 'Septiembre',\n 'Octubre',\n 'Noviembre',\n 'Diciembre'\n]\n\nconst monthsShort = [\n 'Ene',\n 'Feb',\n 'Mar',\n 'Abr',\n 'May',\n 'Jun',\n 'Jul',\n 'Ago',\n 'Set',\n 'Oct',\n 'Nov',\n 'Dic'\n]\n\nmoment.updateLocale('es', {\n weekdays,\n weekdaysShort,\n months,\n monthsShort\n})\n\nmoment.defaultFormat = 'YYYY-MM-DD'\n","import { createMuiTheme } from '@material-ui/core/styles'\n\nexport default createMuiTheme({\n palette: {\n primary: {\n main: '#2d3d67'\n },\n secondary: {\n main: '#acc30f'\n }\n }\n})\n","export default {\n FINISHED: 'FINISHED',\n FIXED: 'FIXED',\n LOWERING: 'LOWERING',\n ADMIN: 'ADMIN',\n SUPERVISOR: 'SUPERVISOR',\n ENUM_DATA: {\n LOAN_STATUSES: {\n ACTIVE: {\n id: 1,\n value: 'Activo'\n },\n INACTIVE: {\n id: 2,\n value: 'Inactivo'\n }\n }\n },\n baseUrl: process.env.REACT_APP_API_URL || 'http://localhost:8086/api'\n}\n","const config = {\n s3: {\n url:\n process.env.REACT_APP_S3_BUCKET_URL ||\n 'https://creditos-super-cash.s3.amazonaws.com/'\n }\n}\n\nexport default config\n","const config = {\n alertMessage: process.env.REACT_APP_ALERT_MESSAGE || ''\n}\n\nexport default config\n","// @flow\nimport jwt from 'jsonwebtoken'\n\nimport { constants } from 'config'\n\nconst config = {\n key: 'token',\n publicKey: process.env.REACT_APP_PUBLIC_KEY || 'coco'\n}\n\nconst setToken = (token: Object) =>\n window.localStorage.setItem(config.key, token)\n\nconst getToken = () => window.localStorage.getItem(config.key) || ''\n\nconst cleanToken = () => window.localStorage.setItem(config.key, '')\n\nconst decodedToken = () =>\n jwt.decode(getToken().replace('Bearer ', ''), config.publicKey)\n\nconst isAdmin = () => {\n const {\n userType: { type }\n } = decodedToken()\n return Boolean(type === constants.ADMIN)\n}\n\nconst isAdminOrSupervisor = () => {\n const {\n userType: { type }\n } = decodedToken()\n return (\n Boolean(type === constants.ADMIN) || Boolean(type === constants.SUPERVISOR)\n )\n}\n\nconst isValidToken = () => {\n const token = getToken()\n\n if (token) {\n try {\n jwt.verify(token.replace('Bearer ', ''), config.publicKey)\n return true\n } catch (err) {\n return false\n }\n }\n\n return false\n}\n\nexport default {\n setToken,\n getToken,\n cleanToken,\n isValidToken,\n decodedToken,\n isAdmin,\n isAdminOrSupervisor\n}\n","// @flow\nconst onlyNumbers = /^\\d+$/\nconst onlyLetters = /^[a-zA-Z ]*$/\n\nexport default { onlyNumbers, onlyLetters }\n","// @flow\nconst getFee = (\n amount: number,\n interestPercentage: number,\n capitalPercentage: number,\n periodicityTimes: number,\n penalty: number\n) => {\n const percentageTotal = (interestPercentage + capitalPercentage) / 100\n const weekFee = amount * percentageTotal\n const periodicityFee = weekFee * periodicityTimes\n const expectedAmount = periodicityFee + penalty\n\n const interestAmount = amount * (interestPercentage / 100) * periodicityTimes\n const capitalAmount = amount * (capitalPercentage / 100) * periodicityTimes\n\n return {\n expectedAmount: Math.round(expectedAmount) || null,\n periodicityFee: Math.round(periodicityFee) || null,\n interestAmount: Math.round(interestAmount) || null,\n capitalAmount: Math.round(capitalAmount) || null\n }\n}\n\nexport default getFee\n","const formatAmount = (\n amount: number,\n format: string = 'es-419',\n style: string = 'decimal',\n currency: string = 'CRC',\n currencyDisplay: string = 'symbol',\n currencySymbol: string = '₡'\n) =>\n `${currencySymbol}${new Intl.NumberFormat(format, {\n style,\n currency,\n currencyDisplay\n }).format(amount)}`\n\nexport default formatAmount\n","import moment from 'moment'\n\nconst formatDate = (date: Date) => moment(date).format('DD/MM/YYYY')\n\nexport default formatDate\n","import { CsvBuilder } from 'filefy'\nimport get from 'lodash.get'\nimport moment from 'moment'\n\nimport { constants } from 'config'\n\nconst exportCsv = (\n columns: Array,\n data: Array,\n name: string\n) => {\n const builder = new CsvBuilder(\n `${name}-${moment().format('DD-MM-YYYY-hhmma')}`\n )\n const exportColumns = columns.map((columnDef: Object) => columnDef.title)\n\n const exportData = data.map((rowData: Object) => {\n return columns.map((columnDef: Object) => {\n switch (columnDef.field) {\n case 'createdAt':\n case 'payday':\n return moment(get(rowData, columnDef.field, '')).format('DD-MM-YYYY')\n\n case 'daysLate': {\n const paydate = moment(get(rowData, 'payday', ''))\n const daysLate = moment().diff(paydate, 'days')\n const isFinished =\n get(rowData, 'loanStatus.status', '') === constants.FINISHED\n\n const value = isFinished || daysLate < 0 ? 0 : daysLate\n\n return value\n }\n\n default:\n return get(rowData, columnDef.field, '')\n }\n })\n })\n\n builder.setColumns(exportColumns).addRows(exportData).exportFile()\n}\n\nexport default {\n exportCsv\n}\n","// @flow\nimport React from 'react'\nimport { Route, Redirect } from 'react-router-dom'\n\nimport { auth } from 'utils'\n\nfunction CustomRoute({\n component: Component,\n isPrivate = false,\n isLogin = false,\n isProtected = false,\n ...rest\n}: {\n component: React.Node,\n isPrivate?: boolean,\n isLogin?: boolean,\n isProtected?: boolean,\n rest?: Object\n}) {\n return (\n {\n const isAuth = auth.isValidToken()\n if (isPrivate) {\n if (!isAuth) {\n return \n }\n\n const isAdminOrSupervisor = auth.isAdminOrSupervisor()\n if (isProtected && !isAdminOrSupervisor) {\n return \n }\n }\n\n if (isLogin && isAuth) {\n return \n }\n\n return \n }}\n />\n )\n}\n\nexport default CustomRoute\n","// @flow\nimport React from 'react'\nimport {\n AppBar,\n IconButton,\n Toolbar,\n Typography,\n Box\n} from '@material-ui/core/'\nimport { Menu } from '@material-ui/icons'\nimport { makeStyles } from '@material-ui/core/styles'\nimport moment from 'moment'\n\nimport { Link } from 'components'\n\nconst Header = ({ onClick }: { onClick: Function }) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n \n Inicio\n \n \n {/* \n Bienvenido {userName}\n */}\n \n {moment().format('DD/MM/YYYY')}\n \n \n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => {\n return {\n menuButton: {\n marginRight: theme.spacing(2)\n },\n content: {\n flex: 1\n },\n linkText: {\n color: theme.palette.common.white\n }\n }\n})\n\nexport default Header\n","// @flow\nimport { auth } from 'utils'\n\nexport const getHeaders = (endpoint: string, method: string) => {\n if (method === 'GET') {\n return {\n Authorization: auth.getToken()\n }\n }\n\n if (method === 'POST' && endpoint !== 'login') {\n return {\n 'Content-Type': 'application/json',\n Authorization: auth.getToken()\n }\n }\n\n return {\n 'Content-Type': 'application/json'\n }\n}\n","// @flow\nimport { getHeaders } from './config'\nimport { constants } from 'config'\n\nconst get = (endpoint: string) =>\n new Promise(async (resolve: Function, reject: Function) => {\n try {\n const method = 'GET'\n const request = await window.fetch(`${constants.baseUrl}/${endpoint}`, {\n method,\n headers: getHeaders(endpoint, method)\n })\n\n const response = await request.json()\n\n if (!request.ok) {\n throw new Error(response.message)\n }\n\n resolve(response)\n } catch (err) {\n reject(err.message)\n }\n })\n\nconst post = (endpoint: string, data: Object) =>\n new Promise(async (resolve: Function, reject: Function) => {\n try {\n const method = 'POST'\n const request = await window.fetch(`${constants.baseUrl}/${endpoint}`, {\n method,\n body: JSON.stringify(data),\n headers: getHeaders(endpoint, method)\n })\n\n const response = await request.json()\n\n if (!request.ok) {\n throw new Error(response.message)\n }\n\n resolve(response)\n } catch (err) {\n reject(err.message)\n }\n })\n\nconst fileUpload = (endpoint: string, file: Object, method: string = 'PUT') =>\n new Promise(async (resolve: Function, reject: Function) => {\n try {\n const response = await window.fetch(endpoint, {\n method,\n body: file\n })\n\n if (!response.ok) {\n throw new Error(`${response.status}: ${response.statusText}`)\n }\n\n resolve(response)\n } catch (err) {\n reject(err.message)\n }\n })\n\nexport default {\n get,\n post,\n fileUpload\n}\n","// @flow\nimport { auth } from 'utils'\n\nconst options = (userId: number) => [\n {\n id: 1,\n key: 'clients',\n displayName: 'Clientes',\n path: '/inicio/clientes',\n iconName: 'people',\n isProtected: true,\n subMenu: [\n {\n id: 1,\n displayName: 'Agregar',\n path: '/inicio/clientes/agregar',\n iconName: 'add',\n isProtected: true\n },\n {\n id: 2,\n displayName: 'Mostrar',\n path: '/inicio/clientes/mostrar',\n iconName: 'format_list_bulleted',\n isProtected: false\n }\n ]\n },\n {\n id: 2,\n key: 'loans',\n displayName: 'Préstamos',\n path: '/inicio/prestamos',\n iconName: 'description',\n isProtected: false,\n subMenu: [\n {\n id: 1,\n displayName: 'Agregar',\n path: '/inicio/prestamos/agregar',\n iconName: 'add',\n isProtected: true\n },\n {\n id: 2,\n displayName: 'Mostrar',\n path: '/inicio/prestamos/mostrar',\n iconName: 'format_list_bulleted',\n isProtected: true\n },\n {\n id: 3,\n displayName: 'Personales',\n path: `/inicio/prestamos/mostrar?userId=${userId}`,\n iconName: 'person',\n isProtected: false\n }\n ]\n },\n {\n id: 3,\n key: 'payments',\n displayName: 'Pagos',\n path: '/inicio/pagos',\n iconName: 'work_outline',\n isProtected: false,\n subMenu: [\n {\n id: 1,\n displayName: 'Mostrar',\n path: '/inicio/pagos/mostrar',\n iconName: 'format_list_bulleted',\n isProtected: true\n },\n {\n id: 2,\n displayName: 'Hoy',\n path: `/inicio/pagos/mostrar/hoy`,\n iconName: 'filter_list',\n isProtected: true\n },\n {\n id: 3,\n displayName: 'Personales',\n path: `/inicio/pagos/mostrar/personales`,\n iconName: 'person',\n isProtected: false\n }\n ]\n },\n {\n id: 4,\n key: 'users',\n displayName: 'Usuarios',\n path: '/inicio/usuarios',\n iconName: 'supervisor_account',\n isProtected: true,\n subMenu: [\n {\n id: 1,\n displayName: 'Agregar',\n path: '/inicio/usuarios/agregar',\n iconName: 'add'\n },\n {\n id: 2,\n displayName: 'Mostrar',\n path: '/inicio/usuarios/mostrar',\n iconName: 'format_list_bulleted'\n }\n ]\n },\n {\n id: 5,\n key: 'profile',\n displayName: 'Perfil',\n path: '/inicio/perfil',\n iconName: 'person',\n isProtected: false\n },\n {\n id: 6,\n key: 'signOut',\n displayName: 'Cerrar Sesión',\n path: '/',\n iconName: 'exit_to_app',\n isProtected: false\n }\n]\n\nconst getDrawer = (userId: number) => {\n const isAdminOrSupervisor = auth.isAdminOrSupervisor()\n if (isAdminOrSupervisor) {\n const initialState = {}\n options(userId).map(\n ({ key }: { key: string }) => (initialState[key] = false)\n )\n\n return {\n options: options(userId),\n initialState\n }\n }\n\n const initialState = {}\n const filteredOptions = options(userId)\n .filter((option: Object) => !option.isProtected)\n .map((option: Object) => {\n initialState[option.key] = false\n if (option.subMenu) {\n const subMenu = option.subMenu.filter(\n (subMenu: Object) => !subMenu.isProtected\n )\n\n return {\n ...option,\n subMenu\n }\n }\n\n return option\n })\n\n return {\n options: filteredOptions,\n initialState\n }\n}\n\nexport default {\n getDrawer\n}\n","// @flow\nimport React, { Fragment, useState } from 'react'\nimport {\n Divider,\n Icon,\n List,\n ListSubheader,\n ListItem,\n ListItemIcon,\n ListItemText,\n Collapse\n} from '@material-ui/core/'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { withRouter } from 'react-router-dom'\nimport { Link } from 'react-router-dom'\n\nimport { auth } from 'utils'\nimport { data } from 'api'\n\nconst Options = ({\n history,\n onCloseDrawer = () => {}\n}: {\n history: Object,\n onCloseDrawer: Function\n}) => {\n const classes = useStyles()\n const { id, userName } = auth.decodedToken()\n const { options, initialState } = data.getDrawer(id)\n const [open, setOpen] = useState(initialState)\n\n const handleOpen = (key: number) => {\n setOpen({\n ...open,\n [key]: !open[key]\n })\n }\n\n return (\n <>\n
\n \n \n {userName}\n \n }\n >\n {options.map((option: Object) => (\n \n {\n if (!option.subMenu) {\n if (option.path === '/') {\n auth.cleanToken()\n }\n\n history.push(option.path)\n onCloseDrawer()\n }\n\n handleOpen(option.key)\n }}\n >\n \n {option.iconName}\n \n \n \n {option.subMenu &&\n option.subMenu.map((item: Object) => (\n \n \n {\n onCloseDrawer()\n }}\n >\n \n {item.iconName}\n \n \n \n \n \n ))}\n \n ))}\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n toolbar: theme.mixins.toolbar,\n nested: {\n marginLeft: theme.spacing(4),\n color: theme.palette.text.primary\n }\n}))\n\nexport default withRouter(Options)\n","// @flow\nimport React from 'react'\nimport { Drawer } from '@material-ui/core'\nimport { useTheme, makeStyles } from '@material-ui/core/styles'\n\nimport Options from './Options'\n\nconst DrawerOptions = ({\n isOpen,\n handleDrawerToggle\n}: {\n isOpen: boolean,\n handleDrawerToggle: Function\n}) => {\n const classes = useStyles()\n const theme = useTheme()\n return (\n \n )\n}\n\nconst useStyles = makeStyles({\n drawerPaper: {\n width: 240\n }\n})\n\nexport default DrawerOptions\n","// @flow\nimport React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\n\nfunction Content({ children }: { children: React.Node }) {\n const classes = useStyles()\n return (\n
\n
\n {children}\n
\n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n content: {\n flexGrow: 1,\n padding: theme.spacing(3)\n },\n toolbar: theme.mixins.toolbar\n}))\n\nexport default Content\n","// @flow\nimport React from 'react'\n\n//Components.\nimport Header from './Header'\nimport DrawerOptions from './DrawerOptions'\nimport Content from './Content'\n\nfunction Drawer({ children }: { children: React.Node }) {\n const [mobileOpen, setMobileOpen] = React.useState(false)\n\n const handleDrawerToggle = () => {\n setMobileOpen(!mobileOpen)\n }\n\n return (\n <>\n
\n \n {children}\n \n )\n}\n\nexport default Drawer\n","// @flow\nimport React from 'react'\nimport { CircularProgress } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { green } from '@material-ui/core/colors'\n\nfunction LoadingButton({\n loading,\n children\n}: {\n loading: boolean,\n children: React.Node\n}) {\n const classes = useStyles()\n\n return (\n
\n {children}\n {loading && (\n \n )}\n
\n )\n}\n\nconst useStyles = makeStyles(() => ({\n wrapper: {\n position: 'relative'\n },\n buttonProgress: {\n color: green[500],\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12\n }\n}))\n\nexport default LoadingButton\n","import React from 'react'\nimport { TextField } from '@material-ui/core'\n\nfunction BaseTextField({\n readOnly = false,\n ...props\n}: {\n readOnly: Boolean,\n props?: Object\n}) {\n return (\n \n )\n}\n\nexport default BaseTextField\n","// @flow\nimport React from 'react'\nimport { Button as BaseButton } from '@material-ui/core'\n\nfunction Button({ ...props }: { props?: Object }) {\n return (\n \n )\n}\n\nexport default Button\n","// @flow\nimport { useState, useReducer, useEffect } from 'react'\n\nimport { fetch } from 'api'\n\nconst useGetData = (initialUrl?: string = null) => {\n const [url, setUrl] = useState(initialUrl)\n const [state, setState] = useReducer(\n (state: Object, newState: Object) => ({ ...state, ...newState }),\n {\n loading: false,\n error: null,\n data: null\n }\n )\n\n const get = async (url: string, callback?: Function = null) => {\n try {\n setState({\n loading: true,\n error: null\n })\n\n const response = await fetch.get(url)\n\n setState({\n loading: false,\n data: response\n })\n\n if (callback && typeof callback === 'function') {\n callback(response)\n }\n } catch (error) {\n setState({\n loading: false,\n error\n })\n }\n }\n\n const refetch = () => get(url)\n\n useEffect(() => {\n if (!url) {\n return\n }\n\n get(url)\n }, [url])\n\n return {\n ...state,\n get,\n setUrl,\n refetch\n }\n}\n\nexport default useGetData\n","// @flow\nimport { useState, useEffect } from 'react'\n\nconst useSlideMessage = (initialState: boolean = false) => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n if (isVisible) {\n setTimeout(() => {\n setIsVisible(false)\n }, 2000)\n }\n }, [isVisible])\n\n return {\n isVisible,\n setIsVisible\n }\n}\n\nexport default useSlideMessage\n","// @flow\nimport { useReducer } from 'react'\n\nimport { fetch } from 'api'\nimport useSlideMessage from '../useSlideMessage'\n\nconst usePost = () => {\n const [state, setState] = useReducer(\n (state: Object, newState: Object) => ({ ...state, ...newState }),\n {\n loading: false,\n error: null,\n data: null\n }\n )\n\n const {\n isVisible: isSucceded,\n setIsVisible: setIsSucceded\n } = useSlideMessage()\n const { isVisible: isError, setIsVisible: setIsError } = useSlideMessage()\n\n const post = async (\n url: string,\n data: Object,\n callback?: Function = null\n ) => {\n try {\n setState({\n loading: true,\n error: null,\n data: null\n })\n\n const response = await fetch.post(url, data)\n\n setState({\n data: response,\n loading: false\n })\n\n setIsSucceded(true)\n\n if (callback && typeof callback === 'function') {\n callback(response)\n }\n } catch (error) {\n setState({\n loading: false,\n error\n })\n\n setIsError(true)\n }\n }\n\n return {\n ...state,\n post,\n isSucceded,\n isError\n }\n}\n\nexport default usePost\n","// @flow\nimport { useMediaQuery } from '@material-ui/core'\nimport { useTheme } from '@material-ui/core/styles'\n\nfunction useMatchSizes() {\n const theme = useTheme()\n\n const xsDown = useMediaQuery(theme.breakpoints.down('xs'))\n const mdDown = useMediaQuery(theme.breakpoints.down('md'))\n const xlDown = useMediaQuery(theme.breakpoints.down('xl'))\n\n return {\n xsDown,\n mdDown,\n xlDown\n }\n}\n\nexport default useMatchSizes\n","import { useLocation } from 'react-router-dom'\n\nfunction useQueryParameters() {\n const { search } = useLocation()\n\n return new URLSearchParams(search)\n}\n\nexport default useQueryParameters\n","import { useState, useCallback, useMemo, useLayoutEffect } from 'react'\n\nfunction useViewport() {\n const [viewportSize, setViewportSize] = useState({ width: 0, height: 0 })\n const { width, height } = viewportSize\n\n const onResize = useCallback(() => {\n setViewportSize({ width: window.innerWidth, height: window.innerHeight })\n }, [])\n\n const vw = useCallback((v: number) => (width * v) / 100, [width])\n const vh = useCallback((v: number) => (height * v) / 100, [height])\n\n useLayoutEffect(() => {\n onResize()\n window.addEventListener('resize', onResize)\n return () => window.removeEventListener('resize', onResize)\n }, [onResize])\n\n return useMemo(\n () => ({\n width,\n height,\n vw,\n vh\n }),\n [height, vh, vw, width]\n )\n}\n\nexport default useViewport\n","// @flow\nimport { useCallback, useReducer } from 'react'\n\nimport { fetch } from 'api'\n\nconst useFileUpload = () => {\n const [state, setState] = useReducer(\n (state: Object, newState: Object) => ({ ...state, ...newState }),\n {\n loading: false,\n error: null,\n data: null\n }\n )\n\n const upload = useCallback(\n async ({\n name,\n type,\n file,\n throwError = false\n }: {\n name: string,\n type: Object,\n file: Object,\n throwError: Boolean\n }) => {\n try {\n setState({\n loading: true,\n error: null\n })\n\n const { url } = await fetch.get(\n `s3/getSignedUrl?name=${name}&type=${type}`\n )\n\n const response = await fetch.fileUpload(url, file)\n\n setState({\n data: response,\n loading: false\n })\n\n return response\n } catch (error) {\n setState({\n error,\n loading: false\n })\n\n if (throwError) {\n throw new Error(error)\n }\n }\n },\n []\n )\n\n return {\n ...state,\n upload\n }\n}\n\nexport default useFileUpload\n","// @flow\nimport React from 'react'\nimport MaterialTable from 'material-table'\nimport { useTheme } from '@material-ui/core/styles'\n\nimport { csvUtils, auth } from 'utils'\nimport { useViewport } from 'hooks'\n\nfunction Table({\n name,\n filtering = true,\n ...props\n}: {\n name: string,\n filtering?: Boolean,\n props?: Object\n}) {\n const theme = useTheme()\n const isAdmin = auth.isAdmin()\n const { vh } = useViewport()\n const maxBodyHeight = vh(70)\n\n return (\n , data: Array) => {\n if (isAdmin) {\n csvUtils.exportCsv(columns, data, name)\n }\n },\n headerStyle: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n position: 'sticky',\n top: 0\n },\n maxBodyHeight\n }}\n {...props}\n />\n )\n}\n\nexport default Table\n","// @flow\nimport React from 'react'\nimport { Grid, Typography } from '@material-ui/core'\n\nimport { TextField } from 'components'\n\nfunction LabelValue({\n editable = false,\n label,\n value,\n ...props\n}: {\n editable?: boolean,\n label: string,\n value: string,\n props?: Object\n}) {\n return (\n \n {editable ? (\n \n ) : (\n \n {label}\n {value || 'N/A'}\n \n )}\n \n )\n}\n\nexport default LabelValue\n","// @flow\nimport React from 'react'\nimport { Slide, Typography } from '@material-ui/core'\n\nfunction SlideMessage({\n type = 'success',\n message,\n ...props\n}: {\n type: 'success' | 'error',\n message: string,\n props?: Object\n}) {\n return (\n \n \n {message}\n \n \n )\n}\n\nexport default SlideMessage\n","// @flow\nimport React from 'react'\nimport NumberFormat from 'react-number-format'\n\nimport TextField from '../TextField'\n\nfunction AmountField(props?: Object) {\n return (\n \n )\n}\n\nexport default AmountField\n","// @flow\nimport React from 'react'\nimport { Snackbar, Slide } from '@material-ui/core'\n\nconst colors = {\n success: '#2ecc71',\n error: '#e74c3c'\n}\n\nfunction BaseSnackbar({\n isVisible,\n message = 'Agregado correctamente :)',\n type = 'success'\n}: {\n isVisible: boolean,\n message: string,\n type: 'success' | 'error'\n}) {\n return (\n (\n \n )}\n ContentProps={{\n style: { backgroundColor: colors[type] }\n }}\n message={{message}}\n />\n )\n}\n\nexport default BaseSnackbar\n","// @flow\nimport React from 'react'\nimport { Link as RouterLink } from 'react-router-dom'\nimport { Link as MuiLink } from '@material-ui/core'\n\nconst LinkRef = React.forwardRef(function Link(props: Object, ref: Object) {\n return (\n \n )\n})\n\nexport default LinkRef\n","// @flow\nimport React from 'react'\nimport { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nfunction PaperComponent({ children }: { children: React.Node }) {\n const classes = useStyles()\n return {children}\n}\n\nconst useStyles = makeStyles({\n root: {\n padding: 10\n }\n})\n\nexport default PaperComponent\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nimport { aws } from 'config'\nimport { useMatchSizes } from 'hooks'\n\nfunction FileUpload({ value }: { value: string }) {\n const classes = useStyles()\n const { xsDown } = useMatchSizes()\n\n if (!value) {\n return null\n }\n\n return (\n \n \n \n )\n}\n\nconst useStyles = makeStyles({\n fileContainer: {\n height: 350\n }\n})\n\nFileUpload.propTypes = {\n value: PropTypes.string,\n spacing: PropTypes.bool\n}\n\nexport default FileUpload\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Skeleton from '@material-ui/lab/Skeleton'\n\nimport { Button, FilePreview } from 'components'\n\nfunction FileUpload({\n onChange,\n value,\n label = 'Tomar Foto',\n name = 'FileUpload',\n loading = false\n}: {\n onChange: Function,\n value: string,\n label: string,\n name: string,\n loading: Boolean\n}) {\n const classes = useStyles()\n\n return (\n <>\n \n <>\n \n \n \n \n\n {value && !loading && }\n\n {loading && }\n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n container: { width: '100%' },\n input: { display: 'none' },\n label: { flex: 1 },\n skeleton: {\n height: 350\n },\n icon: {\n color: theme.palette.common.black\n }\n}))\n\nFileUpload.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n label: PropTypes.string,\n name: PropTypes.string,\n loading: PropTypes.bool\n}\n\nexport default FileUpload\n","// @flow\nimport * as yup from 'yup'\n\nconst initialValues = {\n userName: '',\n password: ''\n}\n\nconst schema = yup.object().shape({\n userName: yup.string().required('El nombre de usuario es obligatorio.'),\n password: yup\n .string()\n .required('La contraseña es obligatoria.')\n .min(6, 'El mínimo de caracteres para la contraseña son 6.')\n})\n\nexport default {\n initialValues,\n schema\n}\n","// @flow\nimport * as yup from 'yup'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n idNumber: '',\n name: '',\n phoneNumber: '',\n address: '',\n email: '',\n description: '',\n workplace: '',\n idFrontPhoto: null,\n idBackPhoto: null\n}\n\nconst schema = yup.object().shape({\n idNumber: yup\n .string()\n .required('La cedúla es obligatoria.')\n .matches(regex.onlyNumbers, 'La cédula solo debe contener numeros.')\n .min(9, 'El mínimo de numeros para la cedúla son 9.'),\n name: yup\n .string()\n .required('El nombre es obligatorio.')\n .matches(regex.onlyLetters, 'El nombre solo puede llevar letras.'),\n phoneNumber: yup\n .string()\n .required('El teléfono es obligatorio.')\n .matches(regex.onlyNumbers, 'El teléfono solo debe contener numeros.')\n .min(8, 'El mínimo de numeros para el teléfono son 8.'),\n address: yup.string().required('La dirección es obligatoria.'),\n email: yup.string().email('Debe ser un email valido'),\n description: yup.string(),\n workplace: yup.string(),\n idFrontPhoto: yup.string().nullable(),\n idBackPhoto: yup.string().nullable()\n})\n\nexport default {\n initialValues,\n schema\n}\n","import create from './create'\nimport update from './update'\n\nconst validators = {\n create,\n update\n}\n\nexport default validators\n","// @flow\nimport * as yup from 'yup'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n idNumber: '',\n name: '',\n userName: '',\n phoneNumber: '',\n email: '',\n password: '',\n userTypeId: '',\n userStatusId: '',\n idFrontPhoto: null,\n idBackPhoto: null\n}\n\nconst schema = yup.object().shape({\n idNumber: yup\n .string()\n .required('La cedúla es obligatoria.')\n .matches(regex.onlyNumbers, 'La cédula solo debe contener numeros.')\n .min(9, 'El mínimo de numeros para la cedúla son 9.'),\n name: yup\n .string()\n .required('El nombre es obligatorio.')\n .matches(regex.onlyLetters, 'El nombre solo puede llevar letras.'),\n userName: yup\n .string()\n .required('El nombre es obligatorio.')\n .min(4, 'El largo minimo es de 4'),\n phoneNumber: yup\n .string()\n .required('El teléfono es obligatorio.')\n .matches(regex.onlyNumbers, 'El teléfono solo debe contener numeros.')\n .min(8, 'El mínimo de numeros para el teléfono son 8.'),\n email: yup.string().email('Este no es un correo valido'),\n password: yup\n .string()\n .required('La contraseña es obligatoria')\n .min(6, 'El largo minimo es de 6'),\n userTypeId: yup.number().required('El tipo de usuario es obligatorio'),\n userStatusId: yup.number().required('El estado del usuario es obligatorio'),\n idFrontPhoto: yup.string().nullable(),\n idBackPhoto: yup.string().nullable()\n})\n\nexport default {\n initialValues,\n schema\n}\n","// @flow\nimport * as yup from 'yup'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n idNumber: '',\n name: '',\n phoneNumber: '',\n email: '',\n userName: '',\n password: '',\n userTypeId: '',\n userStatusId: '',\n idFrontPhoto: null,\n idBackPhoto: null\n}\n\nconst schema = yup.object().shape({\n idNumber: yup\n .string()\n .required('La cedúla es obligatoria.')\n .matches(regex.onlyNumbers, 'La cédula solo debe contener numeros.')\n .min(9, 'El mínimo de numeros para la cedúla son 9.'),\n name: yup\n .string()\n .required('El nombre es obligatorio.')\n .matches(regex.onlyLetters, 'El nombre solo puede llevar letras.'),\n phoneNumber: yup\n .string()\n .required('El teléfono es obligatorio.')\n .matches(regex.onlyNumbers, 'El teléfono solo debe contener numeros.')\n .min(8, 'El mínimo de numeros para el teléfono son 8.'),\n email: yup.string().email('Este no es un correo valido'),\n userName: yup.string().min(4, 'El largo minimo es de 4'),\n password: yup.string().min(6, 'El largo minimo es de 6'),\n userTypeId: yup.number().required('El tipo de usuario es obligatorio'),\n userStatusId: yup.number().required('El estado del usuario es obligatorio'),\n idFrontPhoto: yup.string().nullable(),\n idBackPhoto: yup.string().nullable()\n})\n\nexport default {\n initialValues,\n schema\n}\n","// @flow\nimport * as yup from 'yup'\nimport moment from 'moment'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n amount: '',\n penaltyFee: '',\n payday: moment(),\n interestPercentage: '',\n capitalPercentage: '',\n loanPeriodicityId: '',\n loanTypeId: '',\n clientId: '',\n userId: '',\n lastPayday: moment()\n}\n\nconst schema = yup.object().shape({\n amount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n loanPeriodicityId: yup.number().required('La periodicidad es obligatorio'),\n interestPercentage: yup\n .number()\n .required('El porcentaje del préstamo es obligatorio'),\n capitalPercentage: yup.number().when(['loanTypeId'], {\n is: (val: number) => val === 1,\n then: yup.number(),\n otherwise: yup.number().required('El porcentaje al capital es obligatorio')\n }),\n payday: yup.date().required('La fecha del proximo pago es obligatorio.'),\n penaltyFee: yup\n .string()\n .matches(\n regex.onlyNumbers,\n 'El monto de penalizacion solo debe contener numeros.'\n ),\n loanTypeId: yup.number().required('El tipo es obligatorio'),\n clientId: yup.number().required('El cliente es obligatorio'),\n userId: yup.number().required('El cobrador es obligatorio')\n})\n\nexport default {\n initialValues,\n schema\n}\n","// @flow\nimport * as yup from 'yup'\nimport moment from 'moment'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n amount: '',\n balance: '',\n loanPeriodicityId: '',\n interestPercentage: '',\n capitalPercentage: '',\n payday: moment(),\n penaltyFee: '',\n loanTypeId: '',\n loanStatusId: '',\n contractPhoto: null\n}\n\nconst schema = yup.object().shape({\n amount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n balance: yup\n .string()\n .required('El balance es obligatorio.')\n .matches(regex.onlyNumbers, 'El balance solo debe contener numeros.'),\n loanPeriodicityId: yup.number().required('La periodicidad es obligatorio'),\n interestPercentage: yup\n .number()\n .required('El porcentaje del préstamo es obligatorio'),\n capitalPercentage: yup.number().when(['loanTypeId'], {\n is: (val: number) => val === 1,\n then: yup.number(),\n otherwise: yup.number().required('El porcentaje al capital es obligatorio')\n }),\n payday: yup.date().required('La fecha del proximo pago es obligatorio.'),\n penaltyFee: yup\n .string()\n .matches(\n regex.onlyNumbers,\n 'El monto de penalizacion solo debe contener numeros.'\n ),\n loanTypeId: yup.number().required('El tipo es obligatorio'),\n loanStatusId: yup.number().required('El estado es obligatorio'),\n contractPhoto: yup.string().nullable()\n})\n\nexport default {\n schema,\n initialValues\n}\n","import create from './create'\nimport update from './update'\nimport pay from './pay'\n\nconst validators = {\n create,\n pay,\n update\n}\n\nexport default validators\n","// @flow\nimport * as yup from 'yup'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n amount: '',\n notes: '',\n isTypeToCapital: false,\n isTypeField: false,\n addNotesField: false\n}\n\nconst schema = yup.object().shape({\n amount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n notes: yup.string(),\n isTypeToCapital: yup.boolean(),\n isTypeField: yup.boolean(),\n addNotesField: yup.boolean()\n})\n\nexport default {\n initialValues,\n schema\n}\n","import update from './update'\n\nconst validators = {\n update\n}\n\nexport default validators\n","// @flow\nimport * as yup from 'yup'\nimport moment from 'moment'\n\nimport { regex } from 'utils'\n\nconst initialValues = {\n amount: '',\n interestAmount: '',\n capitalAmount: '',\n penaltyAmount: '',\n currentBalanceAmount: '',\n notes: '',\n payday: moment()\n}\n\nconst schema = yup.object().shape({\n amount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n interestAmount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n capitalAmount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n penaltyAmount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n currentBalanceAmount: yup\n .string()\n .required('El monto es obligatorio.')\n .matches(regex.onlyNumbers, 'El monto solo debe contener numeros.'),\n notes: yup.string(),\n payday: yup.date().required('La fecha del proximo pago es obligatorio.')\n})\n\nexport default {\n initialValues,\n schema\n}\n","// @flow\nimport React, { useState } from 'react'\nimport {\n Avatar,\n Typography,\n Container,\n InputAdornment,\n IconButton\n} from '@material-ui/core'\nimport { LockOutlined, Visibility, VisibilityOff } from '@material-ui/icons'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport { useHistory } from 'react-router-dom'\n\nimport { TextField, Button, LoadingButton, Snackbar } from 'components'\nimport { loginScheme } from 'schemas'\nimport { auth } from 'utils'\nimport { fetch } from 'api'\n\nconst { initialValues, schema } = loginScheme\n\nfunction Login() {\n const [showPassword, setShowPassword] = useState(false)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState('')\n const history = useHistory()\n const classes = useStyles()\n\n return (\n \n \n \n \n \n Inicia Sesión\n \n\n \n\n {\n try {\n setLoading(true)\n setError('')\n const response = await fetch.post('login', values)\n setLoading(false)\n auth.setToken(response.token)\n history.push('/inicio')\n } catch (err) {\n setError(err)\n setLoading(false)\n }\n }}\n >\n {({ errors, touched }: { errors: Object, touched: Object }) => (\n
\n \n\n \n setShowPassword(!showPassword)}\n >\n {showPassword ? : }\n \n \n )\n }}\n />\n\n \n \n \n \n )}\n \n
\n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n container: {\n paddingTop: theme.spacing(12),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n mb: {\n marginBottom: 30\n },\n avatar: {\n marginBottom: theme.spacing(1),\n backgroundColor: theme.palette.secondary.main\n }\n}))\n\nexport default Login\n","// @flow\nimport React from 'react'\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport { Save as SaveIcon } from '@material-ui/icons'\nimport { Formik, Form, Field } from 'formik'\nimport { useHistory } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\n\nimport { TextField, Button, Snackbar, FileUpload } from 'components'\nimport { clientScheme } from 'schemas'\nimport { usePost, useFileUpload } from 'hooks'\n\nconst { initialValues, schema } = clientScheme\n\nfunction AddClient() {\n const classes = useStyles()\n const history = useHistory()\n const { post, isError, loading, error } = usePost()\n const {\n upload: uploadFront,\n loading: uploadFrontLoading,\n error: uploadFrontError\n } = useFileUpload()\n const {\n upload: uploadBack,\n loading: uploadBackLoading,\n error: uploadBackError\n } = useFileUpload()\n\n return (\n <>\n \n\n \n\n \n\n \n post('client/create', values, (client: Object) => {\n history.push(`/inicio/clientes/perfil/${client.id}`, client)\n })\n }\n >\n {({ errors, touched }: { errors: Object, touched: Object }) => (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idFrontPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadFront({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idFrontPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idFrontPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idBackPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadBack({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idBackPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idBackPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n \n \n\n \n \n \n \n
\n )}\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n icon: {\n marginRight: theme.spacing(1)\n }\n}))\n\nexport default AddClient\n","// @flow\nimport React from 'react'\nimport { Typography, Box, Link as MuiLink } from '@material-ui/core'\n\nimport { useGet, useMatchSizes } from 'hooks'\nimport { Table, Link } from 'components'\nimport { constants } from 'config'\n\nfunction ListClients() {\n const { data, loading, error } = useGet('client/all')\n const { xsDown, mdDown } = useMatchSizes()\n\n if (error) {\n return (\n \n \n {error}\n \n \n )\n }\n\n return (\n <>\n \n Lista de clientes\n \n\n ({\n icon: 'cloud_download',\n tooltip: 'Solicitud de credito',\n onClick: () =>\n window.open(\n `${constants.baseUrl}/docs/request/${rowData.id}`\n )\n })\n ]\n }\n columns={[\n {\n title: 'Id',\n field: 'id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.id}\n \n \n )\n }\n },\n {\n title: 'Nombre',\n field: 'name'\n },\n {\n title: 'Cédula',\n field: 'idNumber',\n hidden: xsDown\n },\n {\n title: 'Dirección',\n field: 'address',\n hidden: xsDown\n },\n {\n title: 'Teléfono',\n field: 'phoneNumber',\n disableClick: true,\n render: function PhoneNumberRow(rowData: Object) {\n return (\n \n \n {rowData.phoneNumber}\n \n
\n )\n }\n },\n {\n title: 'Correo',\n field: 'email',\n hidden: true\n },\n {\n title: 'Descripción',\n field: 'description',\n hidden: true\n },\n {\n title: 'Lugar de trabajo',\n field: 'workplace',\n hidden: true\n }\n ]}\n />\n \n )\n}\n\nexport default ListClients\n","// @flow\nimport React, { useState, useEffect } from 'react'\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Box,\n Typography,\n Grid\n} from '@material-ui/core'\nimport {\n Edit as EditIcon,\n Close as CloseIcon,\n Save as SaveIcon\n} from '@material-ui/icons'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport { useLocation, useParams, useHistory } from 'react-router-dom'\n\nimport {\n TextField,\n Button,\n Snackbar,\n FilePreview,\n FileUpload\n} from 'components'\nimport { clientScheme } from 'schemas'\nimport { usePost, useGet, useFileUpload } from 'hooks'\nimport { formatDate } from 'utils'\n\nconst { initialValues, schema } = clientScheme\n\nfunction Profile() {\n const classes = useStyles()\n const [data, setData] = useState(null)\n const { state, pathname } = useLocation()\n const { id } = useParams()\n const history = useHistory()\n const [isEditable, setIsEditable] = useState(false)\n const { loading: getLoading, error: getError, data: getData } = useGet(\n state ? null : `client/${id}`\n )\n const {\n upload: uploadFront,\n loading: uploadFrontLoading,\n error: uploadFrontError\n } = useFileUpload()\n const {\n upload: uploadBack,\n loading: uploadBackLoading,\n error: uploadBackError\n } = useFileUpload()\n\n const {\n post,\n isError: postIsError,\n loading: postLoading,\n error: postError\n } = usePost()\n\n useEffect(() => {\n if (!state) {\n return\n }\n\n const stateCopy = { ...state }\n\n if (stateCopy && stateCopy.tableData) {\n delete stateCopy.tableData\n }\n\n setData(stateCopy)\n }, [state])\n\n useEffect(() => {\n if (!getData) {\n return\n }\n\n history.replace({ pathname, state: getData })\n }, [getData, history, pathname])\n\n if ((getLoading || (!getData && !data) || (getData && !data)) && !getError) {\n return (\n \n } />\n \n \n \n \n \n \n )\n }\n\n if (getError) {\n return (\n \n \n {getError}\n \n \n )\n }\n\n if (!data) {\n return (\n \n \n \n )\n }\n\n return (\n <>\n \n\n \n\n \n\n \n post('client/update', values, (client: Object) => {\n history.replace({ pathname, state: client })\n setIsEditable(false)\n })\n }\n >\n {({\n errors,\n touched,\n resetForm,\n values\n }: {\n errors: Object,\n touched: Object,\n resetForm: Function,\n values: Object\n }) => {\n return (\n
\n \n {\n resetForm({ ...initialValues, ...data })\n setIsEditable(false)\n }}\n >\n \n Cerrar\n \n ) : (\n setIsEditable(true)}\n >\n \n Editar\n \n )\n }\n />\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n if (!value && !isEditable) {\n return null\n }\n\n if (!isEditable) {\n return \n }\n\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idFrontPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadFront({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idFrontPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idFrontPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n if (!value && !isEditable) {\n return null\n }\n\n if (!isEditable) {\n return \n }\n\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idBackPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadBack({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idBackPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idBackPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n \n \n {isEditable && (\n \n \n \n )}\n \n
\n )\n }}\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n icon: {\n marginRight: theme.spacing(1)\n },\n actionsContainer: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n }\n}))\n\nexport default Profile\n","// @flow\nimport React from 'react'\nimport { Container } from '@material-ui/core'\n\nfunction NoMatch({ location }: { location: Object }) {\n return (\n \n

La ruta {location.pathname} no existe.

\n
\n )\n}\n\nexport default NoMatch\n","// @flow\nimport React from 'react'\nimport { Switch } from 'react-router-dom'\n\nimport Add from './Add'\nimport List from './List'\nimport Profile from './Profile'\nimport NoMatch from 'screens/NoMatch'\nimport { CustomRoute } from 'components'\n\nfunction ClientsRouter() {\n return (\n \n \n \n \n \n \n )\n}\n\nexport default ClientsRouter\n","// @flow\nimport React from 'react'\nimport {\n Box,\n Typography,\n FormControl,\n FormHelperText,\n MenuItem,\n CircularProgress,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport { DatePicker } from '@material-ui/pickers'\nimport { useHistory } from 'react-router-dom'\nimport moment from 'moment'\nimport AsyncSelect from 'react-select/async'\n\nimport {\n TextField,\n Button,\n LoadingButton,\n Snackbar,\n AmountField,\n LabelValue\n} from 'components'\nimport { loanScheme } from 'schemas'\nimport { useGet, usePost } from 'hooks'\nimport { fetch } from 'api'\nimport { getFee, formatAmount } from 'utils'\nimport { constants } from 'config'\n\nconst { initialValues, schema } = loanScheme.create\n\nfunction AddLoans() {\n const history = useHistory()\n const { data: loanPropsData, loading: getLoading, error: getError } = useGet(\n 'loan/props'\n )\n const { post, loading, error, isError } = usePost()\n\n if (getError) {\n return (\n \n \n {getError}\n \n \n )\n }\n\n return (\n <>\n \n \n post('loan/create', values, (loan: Object) => {\n window.open(`${constants.baseUrl}/docs/contract/${loan.id}`)\n history.push(`/inicio/prestamos/detalle/${loan.id}`)\n })\n }\n >\n {({\n errors,\n touched,\n setFieldValue,\n setFieldTouched,\n values,\n submitCount\n }: {\n errors: Object,\n touched: Object,\n setFieldValue: Function,\n setFieldTouched: Function,\n values: Object,\n submitCount: number\n }) => {\n const { expectedAmount } = getFee(\n Number(values.amount || 0),\n Number(values.interestPercentage || 0),\n Number(values.capitalPercentage || 0),\n Number((values.periodicity && values.periodicity.times) || 0),\n Number(values.penaltyFee || 0)\n )\n\n return (\n
\n \n \n \n \n \n \n {({ field: { name } }: { field: Object }) => (\n \n ({\n zIndex: 999\n })\n }}\n cacheOptions\n placeholder={\n (values.client && values.client.name) ||\n 'Buscar cliente...'\n }\n noOptionsMessage={() =>\n 'No se encontro ningun resultado.'\n }\n loadingMessage={() => 'Buscando...'}\n getOptionLabel={(option: Object) =>\n `${option.name} - ${option.idNumber}`\n }\n getOptionValue={(option: Object) => option.id}\n loadOptions={(inputValue: string) =>\n fetch.get(`client/nameOrIdNumber/${inputValue}`)\n }\n onChange={(client: Object) => {\n setFieldValue('client', client)\n setFieldValue(name, client.id)\n }}\n onBlur={() => {\n setFieldTouched(name, true)\n }}\n />\n {Boolean(\n touched.clientId && errors.clientId && submitCount\n ) && (\n \n {errors.clientId}\n \n )}\n \n )}\n \n \n \n \n {({ field: { name } }: { field: Object }) => (\n \n ({\n zIndex: 998\n })\n }}\n name={name}\n cacheOptions\n placeholder={\n (values.user && values.user.name) ||\n 'Buscar cobrador...'\n }\n noOptionsMessage={() =>\n 'No se encontro ningun resultado.'\n }\n loadingMessage={() => 'Buscando...'}\n getOptionLabel={(option: Object) =>\n `${option.name} - ${option.idNumber}`\n }\n getOptionValue={(option: Object) => option.id}\n loadOptions={(inputValue: string) =>\n fetch.get(`user/nameOrIdNumber/${inputValue}`)\n }\n onChange={(user: Object) => {\n setFieldValue('user', user)\n setFieldValue(name, user.id)\n }}\n onBlur={() => {\n setFieldTouched(name, true)\n }}\n />\n {Boolean(\n touched.userId && errors.userId && submitCount\n ) && (\n \n {errors.userId}\n \n )}\n \n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(touched.amount && errors.amount)}\n helperText={touched.amount && errors.amount}\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => {\n if (getLoading) {\n return (\n \n \n \n )\n }\n\n return (\n {\n const { value } = event.target\n const loanTypeSelected = loanPropsData.loanTypes.find(\n (type: Object) => type.id === value\n )\n setFieldValue('loanType', loanTypeSelected)\n setFieldValue(name, value)\n\n if (loanTypeSelected.type === constants.FIXED) {\n setFieldValue('capitalPercentage', '')\n }\n }}\n error={Boolean(\n touched.loanTypeId && errors.loanTypeId\n )}\n helperText={\n touched.loanTypeId && errors.loanTypeId\n }\n >\n {(loanPropsData &&\n loanPropsData.loanTypes &&\n loanPropsData.loanTypes.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )) || }\n \n )\n }}\n \n \n \n {({ field: { name, value } }: { field: Object }) => {\n if (!values.loanType) {\n return null\n }\n\n if (getLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {\n const { value } = event.target\n\n setFieldValue(name, value)\n }}\n label='Porcentaje al intereses*'\n error={Boolean(\n touched.interestPercentage &&\n errors.interestPercentage\n )}\n helperText={\n touched.interestPercentage &&\n errors.interestPercentage\n }\n >\n {(loanPropsData &&\n loanPropsData.loanInterestPercentages &&\n loanPropsData.loanInterestPercentages.map(\n (percentage: number) => (\n \n {`${percentage}%`}\n \n )\n )) || }\n \n \n )\n }}\n \n\n \n {({ field: { name, value } }: { field: Object }) => {\n if (\n !values.loanType ||\n values.loanType.type === constants.FIXED\n ) {\n return null\n }\n\n if (getLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {\n const { value } = event.target\n setFieldValue(name, value)\n }}\n label='Porcentaje al capital*'\n error={Boolean(\n touched.capitalPercentage &&\n errors.capitalPercentage\n )}\n helperText={\n touched.capitalPercentage &&\n errors.capitalPercentage\n }\n >\n {(loanPropsData &&\n loanPropsData.loanCapitalPercentages &&\n loanPropsData.loanCapitalPercentages.map(\n (percentage: number) => (\n \n {`${percentage}%`}\n \n )\n )) || }\n \n \n )\n }}\n \n\n \n {({ field: { name, value } }: { field: Object }) => {\n if (!values.loanType) {\n return null\n }\n\n if (getLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {\n const { value } = event.target\n const periodicitySelected = loanPropsData.loanPeriodicities.find(\n (periodicity: Object) =>\n periodicity.id === value\n )\n\n setFieldValue(\n 'periodicity',\n periodicitySelected\n )\n setFieldValue(name, value)\n }}\n label='Periodicidad de pago*'\n error={Boolean(\n touched.loanPeriodicityId &&\n errors.loanPeriodicityId\n )}\n helperText={\n touched.loanPeriodicityId &&\n errors.loanPeriodicityId\n }\n >\n {(loanPropsData &&\n loanPropsData.loanPeriodicities &&\n loanPropsData.loanPeriodicities.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )) || }\n \n \n )\n }}\n \n\n \n {({ field: { value } }: { field: Object }) => {\n const { loanPeriodicityId } = values\n\n if (!loanPeriodicityId) {\n return null\n } else if (\n loanPeriodicityId !== values.lastPeriodicityId\n ) {\n const payday = moment().add(\n values.periodicity && values.periodicity.value,\n values.periodicity && values.periodicity.periodicity\n )\n\n setFieldValue('lastPeriodicityId', loanPeriodicityId)\n setFieldValue('payday', payday)\n setFieldValue('lastPayday', payday)\n setFieldValue('penaltyFee', '')\n }\n\n return (\n \n {\n setFieldValue('payday', date)\n setFieldValue('penaltyFee', '')\n }}\n />\n \n )\n }}\n \n\n \n {({ field: { name, value } }: { field: Object }) => {\n if (\n !values.payday ||\n !loanPropsData ||\n !values.loanPeriodicityId\n ) {\n return null\n }\n\n if (\n moment(values.payday).isSame(values.lastPayday, 'day')\n ) {\n return null\n }\n\n const diff = moment(values.payday)\n .startOf('day')\n .diff(values.lastPayday.startOf('day'), 'days')\n\n return (\n \n 1 ? 's.' : '.'\n }`}\n value={value}\n onValueChange={(values: Object) => {\n setFieldValue(name, values.value)\n }}\n error={Boolean(\n touched.penaltyFee && errors.penaltyFee\n )}\n helperText={\n touched.penaltyFee && errors.penaltyFee\n }\n />\n \n )\n }}\n \n \n {values.amount &&\n values.interestPercentage &&\n values.loanPeriodicityId && (\n \n )}\n \n \n \n \n \n \n \n \n \n
\n )\n }}\n \n \n )\n}\n\nexport default AddLoans\n","// @flow\nimport React, { useEffect } from 'react'\nimport {\n Box,\n Grid,\n Typography,\n Paper,\n Tabs,\n Tab,\n CircularProgress,\n Tooltip,\n Link as MuiLink\n} from '@material-ui/core'\nimport { Payment as PaymentIcon } from '@material-ui/icons'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport moment from 'moment'\nimport { MTableToolbar } from 'material-table'\n\nimport { getFee, formatAmount, auth } from 'utils'\nimport { constants } from 'config'\nimport { Table, Link } from 'components'\nimport { useGet, useMatchSizes, useQueryParameters } from 'hooks'\n\nconst getUrls = (userId: number) => {\n if (userId) {\n return {\n 0: `loan/latePayment/${userId}`,\n 1: `loan/todayPayment/${userId}`,\n 2: `loan/all/${userId}`\n }\n } else {\n return {\n 0: 'loan/latePayment',\n 1: 'loan/todayPayment',\n 2: 'loan/all'\n }\n }\n}\n\nfunction ListLoans() {\n const queryParameters = useQueryParameters()\n const location = useLocation()\n const history = useHistory()\n const userId = queryParameters.get('userId')\n const tabSelected = parseInt(queryParameters.get('tabSelected') || 1)\n const url = getUrls(userId)[tabSelected]\n const { data, loading, error, setUrl } = useGet(url)\n const { xsDown } = useMatchSizes()\n const isAdmin = auth.isAdmin()\n const isAdminOrSupervisor = auth.isAdminOrSupervisor()\n\n useEffect(() => {\n setUrl(url)\n }, [setUrl, url])\n\n const handleTabChange = (_: Object, newValue: number) => {\n queryParameters.set('tabSelected', newValue)\n history.push(`${location.pathname}?${queryParameters.toString()}`)\n }\n\n return (\n \n \n Mostrar Préstamos\n \n \n \n \n \n \n \n \n \n \n \n \n {loading && (\n \n \n \n )}\n\n {error && (\n \n \n {error}\n \n \n )}\n {!loading && !error && (\n sum + item.balance,\n 0\n )) ||\n 0\n\n return (\n <>\n \n\n {isAdminOrSupervisor && (\n \n \n {`Total: ${formatAmount(\n totalAmount\n )}`}\n \n \n )}\n \n )\n },\n Action: function ActionComponent({ data }: { data: Object }) {\n const disabled = data.loanStatus.status === constants.FINISHED\n\n return disabled ? (\n \n ) : (\n \n \n \n \n \n )\n }\n }}\n exportButton={isAdmin}\n actions={[\n (rowData: Object) => ({\n icon: 'payment',\n tooltip: 'Pagar',\n onClick: () => {},\n disabled: rowData.loanStatus.status === constants.FINISHED\n })\n ]}\n columns={[\n {\n title: 'Id',\n field: 'id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.id}\n \n \n )\n }\n },\n {\n title: 'Cliente',\n field: 'client.name',\n render: function ClientNameRow(rowData: Object) {\n return (\n \n \n {rowData.client.name}\n \n \n )\n }\n },\n {\n title: 'Teléfono',\n field: 'client.phoneNumber',\n hidden: xsDown,\n render: function PhoneNumberRow(rowData: Object) {\n return (\n \n \n {rowData.client.phoneNumber}\n \n \n )\n }\n },\n {\n title: 'Tipo',\n field: 'loanType.name',\n hidden: xsDown\n },\n {\n title: 'Interes %',\n field: 'interestPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.interestPercentage.toString() === term.toString()\n )\n },\n hidden: xsDown,\n render: function InterestPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.interestPercentage}%`}\n \n )\n }\n },\n {\n title: 'Capital %',\n field: 'capitalPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.capitalPercentage.toString() === term.toString()\n )\n },\n hidden: xsDown,\n render: function CapitalPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.capitalPercentage}%`}\n \n )\n }\n },\n {\n title: 'Periodicidad',\n field: 'loanPeriodicity.name',\n hidden: xsDown\n },\n {\n title: 'Cuota',\n field: 'amount',\n render: function AmountRow(rowData: Object) {\n const { expectedAmount } = getFee(\n rowData.loanType.type === constants.FIXED\n ? rowData.balance\n : rowData.amount,\n rowData.interestPercentage,\n rowData.capitalPercentage,\n rowData.loanPeriodicity.times,\n rowData.penaltyFee\n )\n\n return (\n \n {formatAmount(expectedAmount)}\n \n )\n }\n },\n {\n title: 'Balance',\n field: 'balance',\n render: function AmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.balance)}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Monto',\n field: 'amount',\n render: function AmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.amount)}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Penalización',\n field: 'penaltyFee',\n render: function PenaltyFeeRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.penaltyFee)}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Fecha de pago',\n field: 'payday',\n customFilterAndSearch: (term: string, rowData: Object) => {\n const value = moment(rowData.payday).format(\n 'dddd, DD/MM/YYYY'\n )\n\n return value.toUpperCase().includes(term.toUpperCase())\n },\n render: function PaydayRow(rowData: Object) {\n return (\n \n {moment(rowData.payday).format('dddd, DD/MM/YYYY')}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Días de atraso',\n field: 'daysLate',\n customFilterAndSearch: (term: string, rowData: Object) => {\n const paydate = moment(rowData.payday)\n const daysLate = moment().diff(paydate, 'days')\n const isFinished =\n rowData.loanStatus.status === constants.FINISHED\n\n const value = isFinished || daysLate < 0 ? 0 : daysLate\n\n return value.toString() === term.toString()\n },\n customSort: (a: Object, b: Object) => {\n return (\n moment().diff(moment(a.payday), 'days') -\n moment().diff(moment(b.payday), 'days')\n )\n },\n render: function DaysLateRow(rowData: Object) {\n const paydate = moment(rowData.payday)\n const daysLate = moment().diff(paydate, 'days')\n const isFinished =\n rowData.loanStatus.status === constants.FINISHED\n\n const value = isFinished || daysLate < 0 ? 0 : daysLate\n\n return {value}\n },\n hidden: xsDown\n },\n {\n title: 'Fecha de creación',\n field: 'createdAt',\n customFilterAndSearch: (term: string, rowData: Object) => {\n const value = moment(rowData.createdAt).format('DD/MM/YYYY')\n\n return value.toUpperCase().includes(term.toUpperCase())\n },\n render: function CreatedAtRow(rowData: Object) {\n return (\n \n {moment(rowData.createdAt).format('DD/MM/YYYY')}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Cobrador',\n field: 'user.name',\n hidden: xsDown\n },\n {\n title: 'Estado',\n field: 'loanStatus.name',\n hidden: xsDown\n }\n ]}\n data={data}\n />\n )}\n \n \n \n )\n}\n\nexport default ListLoans\n","import React, { useState, useEffect } from 'react'\nimport {\n Box,\n Typography,\n CircularProgress,\n MenuItem,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport {\n Edit as EditIcon,\n Close as CloseIcon,\n Save as SaveIcon\n} from '@material-ui/icons'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport { DatePicker } from '@material-ui/pickers'\nimport { useLocation, useParams, useHistory } from 'react-router-dom'\n\nimport { loanScheme } from 'schemas'\nimport {\n Button,\n AmountField,\n TextField,\n Snackbar,\n FilePreview,\n FileUpload\n} from 'components'\nimport { formatDate, auth } from 'utils'\nimport { constants } from 'config'\nimport { useGet, usePost, useFileUpload } from 'hooks'\n\nconst { initialValues, schema } = loanScheme.update\n\nfunction Details() {\n const classes = useStyles()\n const [data, setData] = useState(null)\n const [isEditable, setIsEditable] = useState(false)\n const { state, pathname } = useLocation()\n const { id } = useParams()\n const history = useHistory()\n const isAdmin = auth.isAdmin()\n\n const { loading: loanLoading, error: loanError, data: loanData } = useGet(\n state ? null : `loan/${id}`\n )\n const {\n data: loanPropsData,\n loading: loanPropsLoading,\n error: loanPropsError\n } = useGet('loan/props')\n\n const { data: usersData, loading: userLoading, error: userError } = useGet(\n 'user/allBase'\n )\n\n const {\n post,\n isError: postIsError,\n loading: postLoading,\n error: postError\n } = usePost()\n\n const { upload, loading: uploadLoading, error: uploadError } = useFileUpload()\n\n useEffect(() => {\n if (!state) {\n return\n }\n\n const stateCopy = { ...state }\n\n if (stateCopy && stateCopy.tableData) {\n delete stateCopy.tableData\n }\n\n setData(stateCopy)\n }, [state])\n\n useEffect(() => {\n if (!loanData) {\n return\n }\n\n history.replace({ pathname, state: loanData })\n }, [loanData, history, pathname])\n\n if (\n (loanLoading || (!loanData && !data) || (loanData && !data)) &&\n !loanError\n ) {\n return (\n \n } />\n \n \n \n \n \n \n )\n }\n\n if (loanPropsError || loanError || userError) {\n return (\n \n \n {loanPropsError || loanError || userError}\n \n \n )\n }\n\n if (!data) {\n return (\n \n \n \n )\n }\n\n return (\n <>\n \n\n \n\n {\n post('loan/update', values, (loan: Object) => {\n history.replace({ pathname, state: loan })\n setIsEditable(false)\n })\n }}\n >\n {({\n errors,\n touched,\n setFieldValue,\n resetForm,\n values\n }: {\n errors: Object,\n touched: Object,\n setFieldValue: Function,\n resetForm: Function,\n values: Object\n }) => {\n return (\n
\n \n {\n resetForm({ ...initialValues, ...data })\n setIsEditable(false)\n }}\n >\n \n Cerrar\n \n ) : (\n setIsEditable(true)}\n >\n \n Editar\n \n )\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {({ field }: { field: Object }) => {\n if (userLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {usersData &&\n usersData.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => {\n if (loanPropsLoading) {\n return (\n \n \n \n )\n }\n\n return (\n {\n const { value } = event.target\n const loanTypeSelected = loanPropsData.loanTypes.find(\n (type: Object) => type.id === value\n )\n\n setFieldValue(name, value)\n setFieldValue('loanType', loanTypeSelected)\n\n if (loanTypeSelected.type === constants.FIXED) {\n setFieldValue('capitalPercentage', '')\n }\n }}\n error={Boolean(\n touched.loanTypeId && errors.loanTypeId\n )}\n helperText={\n touched.loanTypeId && errors.loanTypeId\n }\n >\n {loanPropsData &&\n loanPropsData.loanTypes &&\n loanPropsData.loanTypes.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(touched.amount && errors.amount)}\n helperText={touched.amount && errors.amount}\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(touched.balance && errors.balance)}\n helperText={touched.balance && errors.balance}\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => {\n if (loanPropsLoading) {\n return (\n \n \n \n )\n }\n\n return (\n {\n const { value } = event.target\n\n setFieldValue(name, value)\n }}\n label='Porcentaje al intereses*'\n error={Boolean(\n touched.interestPercentage &&\n errors.interestPercentage\n )}\n helperText={\n touched.interestPercentage &&\n errors.interestPercentage\n }\n >\n {loanPropsData &&\n loanPropsData.loanInterestPercentages &&\n loanPropsData.loanInterestPercentages.map(\n (percentage: number) => (\n \n {`${percentage}%`}\n \n )\n )}\n \n )\n }}\n \n \n\n \n {({ field: { name, value } }: { field: Object }) => {\n if (loanPropsLoading) {\n return (\n \n \n \n )\n }\n\n if (\n values.loanType &&\n values.loanType.type === constants.FIXED\n ) {\n return null\n }\n\n return (\n \n {\n const { value } = event.target\n setFieldValue(name, value)\n }}\n label='Porcentaje al capital*'\n error={Boolean(\n touched.capitalPercentage &&\n errors.capitalPercentage\n )}\n helperText={\n touched.capitalPercentage &&\n errors.capitalPercentage\n }\n >\n {loanPropsData &&\n loanPropsData.loanCapitalPercentages &&\n loanPropsData.loanCapitalPercentages.map(\n (percentage: number) => (\n \n {`${percentage}%`}\n \n )\n )}\n \n \n )\n }}\n \n\n \n {({ field: { name, value } }: { field: Object }) => {\n if (loanPropsLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {\n const { value } = event.target\n setFieldValue(name, value)\n }}\n label='Periodicidad de pago*'\n error={Boolean(\n touched.loanPeriodicityId &&\n errors.loanPeriodicityId\n )}\n helperText={\n touched.loanPeriodicityId &&\n errors.loanPeriodicityId\n }\n >\n {loanPropsData &&\n loanPropsData.loanPeriodicities &&\n loanPropsData.loanPeriodicities.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )}\n \n \n )\n }}\n \n\n \n \n {({ field: { value } }: { field: Object }) => {\n return (\n {\n setFieldValue('payday', date)\n }}\n readOnly={!isEditable}\n />\n )\n }}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => {\n return (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(\n touched.penaltyFee && errors.penaltyFee\n )}\n helperText={\n touched.penaltyFee && errors.penaltyFee\n }\n />\n )\n }}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => {\n if (loanPropsLoading) {\n return (\n \n \n \n )\n }\n\n return (\n {\n const { value } = event.target\n setFieldValue(name, value)\n }}\n label='Estado*'\n error={Boolean(\n touched.loanStatusId && errors.loanStatusId\n )}\n helperText={\n touched.loanStatusId && errors.loanStatusId\n }\n >\n {loanPropsData &&\n loanPropsData.loanStatuses &&\n loanPropsData.loanStatuses.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n if (!value && !isEditable) {\n return null\n }\n\n if (!isEditable) {\n return \n }\n\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('contractPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await upload({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('contractPhoto', newName)\n }\n } catch (error) {\n setFieldValue('contractPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n \n \n {isAdmin && isEditable && (\n \n \n \n )}\n \n
\n )\n }}\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n icon: {\n marginRight: theme.spacing(1)\n },\n actionsContainer: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n }\n}))\n\nexport default Details\n","import React, { useState, useEffect } from 'react'\nimport {\n Box,\n Grid,\n Typography,\n MenuItem,\n FormControlLabel,\n Switch,\n Card,\n CardContent,\n CardHeader,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions\n} from '@material-ui/core'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { Formik, Form, Field } from 'formik'\nimport { useLocation, useParams, useHistory } from 'react-router-dom'\n\nimport {\n TextField,\n LoadingButton,\n Button,\n AmountField,\n Snackbar\n} from 'components'\nimport { getFee, formatAmount, formatDate, auth } from 'utils'\nimport { constants } from 'config'\nimport { loanScheme } from 'schemas'\nimport { useGet, usePost } from 'hooks'\n\nconst { initialValues, schema } = loanScheme.pay\n\nfunction Pay() {\n const [data, setData] = useState(null)\n const { state, pathname } = useLocation()\n const { id } = useParams()\n const history = useHistory()\n const [openDialog, setOpenDialog] = useState(false)\n const [paymentData, setPaymentData] = useState(null)\n const { loading: loanLoading, error: loanError, data: loanData } = useGet(\n state ? null : `loan/${id}`\n )\n const {\n post,\n isError: postIsError,\n loading: postLoading,\n error: postError\n } = usePost()\n\n useEffect(() => {\n if (!state) {\n return\n }\n\n const stateCopy = { ...state }\n\n if (stateCopy && stateCopy.tableData) {\n delete stateCopy.tableData\n }\n\n setData(stateCopy)\n }, [state])\n\n useEffect(() => {\n if (!loanData) {\n return\n }\n\n history.replace({ pathname, state: loanData })\n }, [loanData, history, pathname])\n\n const handleCloseDialog = () => {\n setOpenDialog(false)\n setPaymentData(null)\n }\n\n const handleShowReceipt = () => {\n window.open(\n `${constants.baseUrl}/docs/paymentReceipt/${paymentData?.client?.id}/${paymentData?.payment?.id}`\n )\n\n setOpenDialog(false)\n setPaymentData(null)\n }\n\n if (\n (loanLoading || (!loanData && !data) || (loanData && !data)) &&\n !loanError\n ) {\n return (\n \n } />\n \n \n \n \n \n \n )\n }\n\n if (loanError) {\n return (\n \n \n {loanError}\n \n \n )\n }\n\n if (!data) {\n return (\n \n \n \n )\n }\n\n const { expectedAmount, periodicityFee, interestAmount } = getFee(\n data.loanType.type === constants.FIXED ? data.balance : data.amount,\n data.interestPercentage,\n data.capitalPercentage,\n data.loanPeriodicity.times,\n data.penaltyFee\n )\n\n const options = () => {\n const response = []\n if (expectedAmount !== periodicityFee) {\n response.push({\n id: 1,\n label: 'Cuota completa',\n value: expectedAmount,\n formattedValue: formatAmount(expectedAmount)\n })\n }\n\n response.push({\n id: 2,\n label: 'Cuota Fija',\n value: periodicityFee,\n formattedValue: formatAmount(periodicityFee)\n })\n\n if (interestAmount !== periodicityFee) {\n response.push({\n id: 3,\n label: 'Solo intereses',\n value: interestAmount,\n formattedValue: formatAmount(interestAmount)\n })\n }\n\n return response\n }\n\n const details = [\n { id: 1, label: 'Nombre:', value: data.client.name },\n { id: 2, label: 'Monto:', value: formatAmount(data.amount) },\n {\n id: 3,\n label: 'Balance:',\n value: formatAmount(data.balance)\n },\n {\n id: 4,\n label: 'Multas o deudas:',\n value: formatAmount(data.penaltyFee)\n },\n {\n id: 5,\n label: 'Periodicidad:',\n value: data.loanPeriodicity.name\n },\n { id: 6, label: 'Tipo:', value: data.loanType.name },\n {\n id: 7,\n label: 'Fecha de pago:',\n value: formatDate(data.payday)\n }\n ]\n\n return (\n \n \n Pagar préstamo\n \n\n \n\n \n Exito!\n {`El pago a nombre de ${\n paymentData?.client?.name\n } por un monto de ${formatAmount(\n paymentData?.payment?.amount\n )} ha sido registrado exitosamente`}\n \n \n \n \n \n\n \n \n \n \n \n \n {details.map((detail: Object) => (\n \n \n \n {detail.label}
\n
\n \n {detail.value}\n \n
\n
\n ))}\n
\n
\n
\n
\n
\n
\n\n \n \n {\n const body = {\n ...values,\n loandId: data.id,\n userId: auth.decodedToken().id\n }\n\n post('loan/pay', body, (loan: Object) => {\n setOpenDialog(true)\n setPaymentData(loan)\n history.replace({ pathname, state: loan })\n resetForm(initialValues)\n })\n }}\n >\n {({\n errors,\n touched,\n setFieldValue,\n values\n }: {\n errors: Object,\n touched: Object,\n setFieldValue: Function,\n values: Object\n }) => {\n return (\n
\n \n {\n setFieldValue('isTypeField', !values.isTypeField)\n setFieldValue('amount', '')\n setFieldValue('isTypeToCapital', false)\n }}\n value='isTypeField'\n color='primary'\n />\n }\n label={values.isTypeField ? 'Seleccionar' : 'Digitar'}\n />\n \n {({ field }: { field: Object }) => {\n return (\n {\n setFieldValue('isTypeField', true)\n setFieldValue('amount', '')\n setFieldValue(field.name, ev.target.checked)\n }}\n value={field.value}\n color='primary'\n />\n }\n label={field.value ? 'Al Periodo' : 'Al Capital'}\n />\n )\n }}\n \n \n \n {({ field }: { field: Object }) => {\n if (values.isTypeField) {\n return (\n {\n setFieldValue(field.name, values.value)\n }}\n error={Boolean(touched.amount && errors.amount)}\n helperText={touched.amount && errors.amount}\n />\n )\n }\n\n return (\n \n {options().map(\n ({\n id,\n label,\n value,\n formattedValue\n }: {\n id: number,\n label: string,\n value: number,\n formattedValue: string\n }) => (\n \n {`${label} - ${formattedValue}`}\n \n )\n )}\n \n )\n }}\n \n {\n setFieldValue('addNotesField', !values.addNotesField)\n setFieldValue('notes', '')\n }}\n value='addNotesField'\n color='primary'\n />\n }\n label={\n values.addNotesField ? 'Quitar nota' : 'Agregar nota'\n }\n />\n \n {({ field }: { field: Object }) => {\n if (values.addNotesField) {\n return (\n \n )\n }\n return null\n }}\n \n \n \n \n \n \n \n )\n }}\n \n
\n
\n \n )\n}\n\nexport default Pay\n","// @flow\nimport React from 'react'\nimport { Switch } from 'react-router-dom'\n\nimport Add from './Add'\nimport List from './List'\nimport Details from './Details'\nimport Pay from './Pay'\nimport NoMatch from 'screens/NoMatch'\nimport { CustomRoute } from 'components'\n\nfunction LoansRouter() {\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default LoansRouter\n","// @flow\nimport React, { useState } from 'react'\nimport {\n Grid,\n Typography,\n CircularProgress,\n Box,\n MenuItem,\n Button\n} from '@material-ui/core'\nimport { DatePicker } from '@material-ui/pickers'\nimport moment from 'moment'\nimport { MTableToolbar } from 'material-table'\n\nimport { useGet, useMatchSizes } from 'hooks'\nimport { Table, TextField, LoadingButton, Link, Paper } from 'components'\nimport { formatAmount, formatDate } from 'utils'\nimport { constants } from 'config'\n\nconst getUrl = (formValues: Object) => {\n if (formValues.userId === 'all') {\n return `payment/dates/${formValues.from}/${formValues.to}`\n } else {\n return `payment/filter/${formValues.userId}/${formValues.from}/${formValues.to}`\n }\n}\n\nfunction ListPayments() {\n const [filterValues, setFilterValues] = useState({\n from: moment().format(moment.defaultFormat),\n to: moment().format(moment.defaultFormat),\n userId: 'all'\n })\n\n const { data, loading, error, setUrl } = useGet('payment/createdToday')\n\n const handleFilter = () => {\n const url = getUrl(filterValues)\n setUrl(url)\n }\n\n const { data: usersData, loading: loadingUsers, error: errorUsers } = useGet(\n 'user/allBase'\n )\n const haveError = error || errorUsers\n\n const { xsDown } = useMatchSizes()\n\n if (haveError) {\n return (\n \n \n {haveError}\n \n \n )\n }\n\n return (\n \n Lista de Pagos\n\n \n \n \n setFilterValues((values: Object) => ({\n ...values,\n userId: ev.target.value\n }))\n }\n >\n {!loadingUsers &&\n usersData &&\n usersData.map(({ id, name }: { id: number, name: string }) => (\n \n {name}\n \n ))}\n \n Todos\n \n \n \n \n \n setFilterValues((values: Object) => ({\n ...values,\n from: from.format(moment.defaultFormat)\n }))\n }\n />\n \n \n \n setFilterValues((values: Object) => ({\n ...values,\n to: to.format(moment.defaultFormat)\n }))\n }\n />\n \n \n \n \n Filtrar\n \n \n \n\n \n {loading && (\n \n \n \n )}\n {!loading && data && data.payments && (\n sum + item.amount,\n 0\n )) ||\n 0\n\n const capitalAmount =\n (props &&\n props.data &&\n props.data.reduce(\n (sum: number, item: Object) => sum + item.capitalAmount,\n 0\n )) ||\n 0\n\n const interestAmount =\n (props &&\n props.data &&\n props.data.reduce(\n (sum: number, item: Object) =>\n sum + item.interestAmount + item.penaltyAmount,\n 0\n )) ||\n 0\n\n return (\n <>\n \n \n \n {`Total: ${formatAmount(\n totalAmount\n )}`}\n \n\n \n {`Capital: ${formatAmount(\n capitalAmount\n )}`}\n \n\n \n {`Interes: ${formatAmount(\n interestAmount\n )}`}\n \n \n \n )\n }\n }}\n columns={[\n {\n title: 'Id',\n field: 'id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.id}\n \n \n )\n }\n },\n {\n title: 'Préstamo',\n field: 'loan.id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.loan.id}\n \n \n )\n }\n },\n {\n title: 'Cliente',\n field: 'client.name',\n render: function ClientNameRow(rowData: Object) {\n return (\n \n \n {rowData.client.name}\n \n \n )\n }\n },\n {\n title: 'Cobrador',\n field: 'user.name',\n hidden: xsDown,\n render: function UserNameRow(rowData: Object) {\n return (\n \n \n {rowData.user.name}\n \n \n )\n }\n },\n {\n title: 'Tipo',\n field: 'loan.loanType.name',\n hidden: xsDown\n },\n {\n title: 'Interes %',\n field: 'loan.interestPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.loan.interestPercentage.toString() ===\n term.toString()\n )\n },\n hidden: xsDown,\n render: function InterestPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.loan.interestPercentage}%`}\n \n )\n }\n },\n {\n title: 'Capital %',\n field: 'loan.capitalPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.loan.capitalPercentage.toString() ===\n term.toString()\n )\n },\n hidden: xsDown,\n render: function CapitalPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.loan.capitalPercentage}%`}\n \n )\n }\n },\n {\n title: 'Periodicidad',\n field: 'loan.loanPeriodicity.name',\n hidden: xsDown\n },\n {\n title: 'Interes',\n field: 'interestAmount',\n render: function InterestAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.interestAmount)}\n \n )\n }\n },\n {\n title: 'Capital',\n field: 'capitalAmount',\n render: function CapitalAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.capitalAmount)}\n \n )\n }\n },\n {\n title: 'Penalización',\n field: 'penaltyAmount',\n render: function PenaltyAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.penaltyAmount)}\n \n )\n }\n },\n {\n title: 'Monto',\n field: 'amount',\n render: function AmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.amount)}\n \n )\n }\n },\n {\n title: 'Fecha',\n field: 'createdAt',\n render: function DateRow(rowData: Object) {\n return (\n \n {formatDate(rowData.createdAt)}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Balance',\n field: 'currentBalanceAmount',\n render: function DateRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.currentBalanceAmount)}\n \n )\n },\n hidden: xsDown\n }\n ]}\n data={data.payments}\n actions={[\n {\n icon: 'receipt',\n tooltip: 'Ver recibo',\n onClick: (event: Object, rowData: Object) => {\n window.open(\n `${constants.baseUrl}/docs/paymentReceipt/${rowData?.client?.id}/${rowData?.id}`\n )\n }\n }\n ]}\n />\n )}\n \n \n \n )\n}\n\nexport default ListPayments\n","// @flow\nimport React, { useEffect, useState } from 'react'\nimport {\n Grid,\n Typography,\n CircularProgress,\n Box,\n MenuItem\n} from '@material-ui/core'\nimport { MTableToolbar } from 'material-table'\n\nimport { useGet, useMatchSizes } from 'hooks'\nimport { Table, TextField, Link, Paper } from 'components'\nimport { formatAmount, formatDate } from 'utils'\nimport { constants } from 'config'\n\nconst getUrls = (id: number) => {\n if (!id || id === 'all') {\n return 'payment/createdToday'\n }\n return `payment/createdToday/${id}`\n}\n\nfunction ListPayments() {\n const [id, setId] = useState('all')\n const url = getUrls(id)\n const { data, loading, error, setUrl } = useGet(url)\n\n const { data: usersData, loading: loadingUsers, error: errorUsers } = useGet(\n 'user/allBase'\n )\n const haveError = error || errorUsers\n const { xsDown } = useMatchSizes()\n\n useEffect(() => {\n setUrl(url)\n }, [setUrl, url])\n\n if (haveError) {\n return (\n \n \n {haveError}\n \n \n )\n }\n\n return (\n \n Pagos de hoy\n\n setId(ev.target.value)}\n >\n {!loadingUsers &&\n usersData &&\n usersData.map(({ id, name }: { id: number, name: string }) => (\n \n {name}\n \n ))}\n \n Todos\n \n \n\n \n \n {loading && (\n \n \n \n )}\n\n {!loading && data && data.payments && (\n sum + item.amount,\n 0\n )) ||\n 0\n\n const capitalAmount =\n (props &&\n props.data &&\n props.data.reduce(\n (sum: number, item: Object) => sum + item.capitalAmount,\n 0\n )) ||\n 0\n\n const interestAmount =\n (props &&\n props.data &&\n props.data.reduce(\n (sum: number, item: Object) =>\n sum + item.interestAmount + item.penaltyAmount,\n 0\n )) ||\n 0\n\n return (\n <>\n \n \n \n {`Total: ${formatAmount(\n totalAmount\n )}`}\n \n\n \n {`Capital: ${formatAmount(\n capitalAmount\n )}`}\n \n\n \n {`Interes: ${formatAmount(\n interestAmount\n )}`}\n \n \n \n )\n }\n }}\n columns={[\n {\n title: 'Id',\n field: 'id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.id}\n \n \n )\n }\n },\n {\n title: 'Préstamo',\n field: 'loan.id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.loan.id}\n \n \n )\n }\n },\n {\n title: 'Cliente',\n field: 'client.name',\n render: function ClientNameRow(rowData: Object) {\n return (\n \n \n {rowData.client.name}\n \n \n )\n }\n },\n {\n title: 'Cobrador',\n field: 'user.name',\n hidden: xsDown,\n render: function UserNameRow(rowData: Object) {\n return (\n \n \n {rowData.user.name}\n \n \n )\n }\n },\n {\n title: 'Tipo',\n field: 'loan.loanType.name',\n hidden: xsDown\n },\n {\n title: 'Interes %',\n field: 'loan.interestPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.loan.interestPercentage.toString() ===\n term.toString()\n )\n },\n hidden: xsDown,\n render: function InterestPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.loan.interestPercentage}%`}\n \n )\n }\n },\n {\n title: 'Capital %',\n field: 'loan.capitalPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.loan.capitalPercentage.toString() ===\n term.toString()\n )\n },\n hidden: xsDown,\n render: function CapitalPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.loan.capitalPercentage}%`}\n \n )\n }\n },\n {\n title: 'Periodicidad',\n field: 'loan.loanPeriodicity.name',\n hidden: xsDown\n },\n {\n title: 'Interes',\n field: 'interestAmount',\n render: function InterestAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.interestAmount)}\n \n )\n }\n },\n {\n title: 'Capital',\n field: 'capitalAmount',\n render: function CapitalAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.capitalAmount)}\n \n )\n }\n },\n {\n title: 'Penalización',\n field: 'penaltyAmount',\n render: function PenaltyAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.penaltyAmount)}\n \n )\n }\n },\n {\n title: 'Monto',\n field: 'amount',\n render: function AmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.amount)}\n \n )\n }\n },\n {\n title: 'Fecha',\n field: 'createdAt',\n render: function DateRow(rowData: Object) {\n return (\n \n {formatDate(rowData.createdAt)}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Balance',\n field: 'currentBalanceAmount',\n render: function DateRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.currentBalanceAmount)}\n \n )\n },\n hidden: xsDown\n }\n ]}\n data={data.payments}\n actions={[\n {\n icon: 'receipt',\n tooltip: 'Ver recibo',\n onClick: (event: Object, rowData: Object) => {\n window.open(\n `${constants.baseUrl}/docs/paymentReceipt/${rowData?.client?.id}/${rowData?.id}`\n )\n }\n }\n ]}\n />\n )}\n \n \n \n )\n}\n\nexport default ListPayments\n","// @flow\nimport React, { useState } from 'react'\nimport {\n Grid,\n Typography,\n CircularProgress,\n Box,\n Button\n} from '@material-ui/core'\nimport { DatePicker } from '@material-ui/pickers'\nimport moment from 'moment'\nimport { MTableToolbar } from 'material-table'\n\nimport { useGet, useMatchSizes } from 'hooks'\nimport { Table, LoadingButton, Link, Paper } from 'components'\nimport { formatAmount, formatDate, auth } from 'utils'\nimport { constants } from 'config'\n\nfunction PersonalPayments() {\n const [filterValues, setFilterValues] = useState({\n from: moment().format(moment.defaultFormat),\n to: moment().format(moment.defaultFormat),\n userId: 'all'\n })\n\n const { id } = auth.decodedToken()\n\n const { data, loading, error, setUrl } = useGet(`payment/createdToday/${id}`)\n\n const handleFilter = () => {\n const url = `payment/filter/${id}/${filterValues.from}/${filterValues.to}`\n setUrl(url)\n }\n\n const { xsDown } = useMatchSizes()\n\n if (error) {\n return (\n \n \n {error}\n \n \n )\n }\n\n return (\n \n Lista de Pagos\n \n \n \n setFilterValues((values: Object) => ({\n ...values,\n from: from.format(moment.defaultFormat)\n }))\n }\n />\n \n \n \n setFilterValues((values: Object) => ({\n ...values,\n to: to.format(moment.defaultFormat)\n }))\n }\n />\n \n \n \n \n Filtrar\n \n \n \n\n \n {loading && (\n \n \n \n )}\n {!loading && data && data.payments && (\n sum + item.amount,\n 0\n )) ||\n 0\n\n const capitalAmount =\n (props &&\n props.data &&\n props.data.reduce(\n (sum: number, item: Object) => sum + item.capitalAmount,\n 0\n )) ||\n 0\n\n const interestAmount =\n (props &&\n props.data &&\n props.data.reduce(\n (sum: number, item: Object) =>\n sum + item.interestAmount + item.penaltyAmount,\n 0\n )) ||\n 0\n\n return (\n <>\n \n \n \n {`Total: ${formatAmount(\n totalAmount\n )}`}\n \n\n \n {`Capital: ${formatAmount(\n capitalAmount\n )}`}\n \n\n \n {`Interes: ${formatAmount(\n interestAmount\n )}`}\n \n \n \n )\n }\n }}\n columns={[\n {\n title: 'Id',\n field: 'id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.id}\n \n \n )\n }\n },\n {\n title: 'Préstamo',\n field: 'loan.id',\n render: function Column(rowData: Object) {\n return (\n \n \n {rowData.loan.id}\n \n \n )\n }\n },\n {\n title: 'Cliente',\n field: 'client.name',\n render: function ClientNameRow(rowData: Object) {\n return (\n \n \n {rowData.client.name}\n \n \n )\n }\n },\n {\n title: 'Cobrador',\n field: 'user.name',\n hidden: xsDown,\n render: function UserNameRow(rowData: Object) {\n return (\n \n \n {rowData.user.name}\n \n \n )\n }\n },\n {\n title: 'Tipo',\n field: 'loan.loanType.name',\n hidden: xsDown\n },\n {\n title: 'Interes %',\n field: 'loan.interestPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.loan.interestPercentage.toString() ===\n term.toString()\n )\n },\n hidden: xsDown,\n render: function InterestPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.loan.interestPercentage}%`}\n \n )\n }\n },\n {\n title: 'Capital %',\n field: 'loan.capitalPercentage',\n customFilterAndSearch: (term: string, rowData: Object) => {\n return (\n rowData.loan.capitalPercentage.toString() ===\n term.toString()\n )\n },\n hidden: xsDown,\n render: function CapitalPercentageRow(rowData: Object) {\n return (\n \n {`${rowData.loan.capitalPercentage}%`}\n \n )\n }\n },\n {\n title: 'Periodicidad',\n field: 'loan.loanPeriodicity.name',\n hidden: xsDown\n },\n {\n title: 'Interes',\n field: 'interestAmount',\n render: function InterestAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.interestAmount)}\n \n )\n }\n },\n {\n title: 'Capital',\n field: 'capitalAmount',\n render: function CapitalAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.capitalAmount)}\n \n )\n }\n },\n {\n title: 'Penalización',\n field: 'penaltyAmount',\n render: function PenaltyAmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.penaltyAmount)}\n \n )\n }\n },\n {\n title: 'Monto',\n field: 'amount',\n render: function AmountRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.amount)}\n \n )\n }\n },\n {\n title: 'Fecha',\n field: 'createdAt',\n render: function DateRow(rowData: Object) {\n return (\n \n {formatDate(rowData.createdAt)}\n \n )\n },\n hidden: xsDown\n },\n {\n title: 'Balance',\n field: 'currentBalanceAmount',\n render: function DateRow(rowData: Object) {\n return (\n \n {formatAmount(rowData.currentBalanceAmount)}\n \n )\n },\n hidden: xsDown\n }\n ]}\n data={data.payments}\n actions={[\n {\n icon: 'receipt',\n tooltip: 'Ver recibo',\n onClick: (event: Object, rowData: Object) => {\n window.open(\n `${constants.baseUrl}/docs/paymentReceipt/${rowData?.client?.id}/${rowData?.id}`\n )\n }\n }\n ]}\n />\n )}\n \n \n \n )\n}\n\nexport default PersonalPayments\n","import React, { useState, useEffect } from 'react'\nimport {\n Box,\n Typography,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport {\n Edit as EditIcon,\n Close as CloseIcon,\n Save as SaveIcon\n} from '@material-ui/icons'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport { useLocation, useParams, useHistory } from 'react-router-dom'\n\nimport { paymentScheme } from 'schemas'\nimport { Button, TextField, Snackbar, AmountField } from 'components'\nimport { formatDate, auth } from 'utils'\nimport { useGet, usePost } from 'hooks'\n\nconst { initialValues, schema } = paymentScheme.update\n\nfunction Details() {\n const classes = useStyles()\n const [data, setData] = useState(null)\n const [isEditable, setIsEditable] = useState(false)\n const { state, pathname } = useLocation()\n const { id } = useParams()\n const history = useHistory()\n const isAdmin = auth.isAdmin()\n const { loading, error, data: paymentData } = useGet(\n state ? null : `payment/${id}`\n )\n\n const {\n post,\n isError: postIsError,\n loading: postLoading,\n error: postError\n } = usePost()\n\n useEffect(() => {\n if (!state) {\n return\n }\n\n const stateCopy = { ...state }\n\n if (stateCopy && stateCopy.tableData) {\n delete stateCopy.tableData\n }\n\n setData(stateCopy)\n }, [state])\n\n useEffect(() => {\n if (!paymentData) {\n return\n }\n\n history.replace({ pathname, state: paymentData })\n }, [paymentData, history, pathname])\n\n if (\n (loading || (!paymentData && !data) || (paymentData && !data)) &&\n !error\n ) {\n return (\n \n } />\n \n \n \n \n \n \n )\n }\n\n if (error) {\n return (\n \n \n {error}\n \n \n )\n }\n\n if (!data) {\n return (\n \n \n \n )\n }\n\n return (\n <>\n \n\n {\n post('payment/update', values, (payment: Object) => {\n history.replace({ pathname, state: payment })\n setIsEditable(false)\n })\n }}\n >\n {({\n errors,\n touched,\n setFieldValue,\n resetForm,\n values\n }: {\n errors: Object,\n touched: Object,\n setFieldValue: Function,\n resetForm: Function,\n values: Object\n }) => {\n return (\n
\n \n {\n resetForm({ ...initialValues, ...data })\n setIsEditable(false)\n }}\n >\n \n Cerrar\n \n ) : (\n setIsEditable(true)}\n >\n \n Editar\n \n )\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(touched.amount && errors.amount)}\n helperText={touched.amount && errors.amount}\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(\n touched.interestAmount && errors.interestAmount\n )}\n helperText={\n touched.interestAmount && errors.interestAmount\n }\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(\n touched.capitalAmount && errors.capitalAmount\n )}\n helperText={\n touched.capitalAmount && errors.capitalAmount\n }\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(\n touched.penaltyAmount && errors.penaltyAmount\n )}\n helperText={\n touched.penaltyAmount && errors.penaltyAmount\n }\n />\n )}\n \n \n \n \n {({ field: { name, value } }: { field: Object }) => (\n {\n setFieldValue(name, values.value)\n }}\n error={Boolean(\n touched.currentBalanceAmount &&\n errors.currentBalanceAmount\n )}\n helperText={\n touched.currentBalanceAmount &&\n errors.currentBalanceAmount\n }\n />\n )}\n \n \n \n \n \n \n \n \n \n \n {isAdmin && isEditable && (\n \n \n \n )}\n \n
\n )\n }}\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n icon: {\n marginRight: theme.spacing(1)\n },\n actionsContainer: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n }\n}))\n\nexport default Details\n","// @flow\nimport React from 'react'\nimport { Switch } from 'react-router-dom'\n\nimport List from './List'\nimport Today from './Today'\nimport Personal from './Personal'\nimport Details from './Details'\nimport NoMatch from 'screens/NoMatch'\nimport { CustomRoute } from 'components'\n\nfunction PaymentsRouter() {\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default PaymentsRouter\n","// @flow\nimport React, { useState } from 'react'\nimport {\n Typography,\n Box,\n MenuItem,\n CircularProgress,\n InputAdornment,\n IconButton,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport { Save as SaveIcon } from '@material-ui/icons'\nimport { Visibility, VisibilityOff } from '@material-ui/icons'\nimport { Formik, Form, Field } from 'formik'\nimport { useHistory } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\n\nimport { TextField, Button, Snackbar, FileUpload } from 'components'\nimport { userScheme } from 'schemas'\nimport { useGet, usePost, useFileUpload } from 'hooks'\n\nconst { initialValues, schema } = userScheme.create\n\nfunction AddUsers() {\n const classes = useStyles()\n const history = useHistory()\n const { data, loading: userLoading, error: userError } = useGet('user/props')\n const { post, isError, isSucceded, loading, error } = usePost()\n const {\n upload: uploadFront,\n loading: uploadFrontLoading,\n error: uploadFrontError\n } = useFileUpload()\n const {\n upload: uploadBack,\n loading: uploadBackLoading,\n error: uploadBackError\n } = useFileUpload()\n const [showPassword, setShowPassword] = useState(false)\n\n if (userError) {\n return (\n \n \n {userError}\n \n \n )\n }\n\n return (\n <>\n \n\n \n\n \n\n \n\n \n post('user/create', values, (user: Object) => {\n history.push(`/inicio/usuarios/perfil/${user.id}`, user)\n })\n }\n >\n {({ errors, touched }: { errors: Object, touched: Object }) => (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setShowPassword(!showPassword)}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n )\n }}\n />\n \n \n \n {({ field }: { field: Object }) => {\n if (userLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {data &&\n data.userTypes &&\n data.userTypes.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n \n \n {({ field }: { field: Object }) => {\n if (userLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n {data &&\n data.userStatuses &&\n data.userStatuses.map(\n ({\n id,\n name\n }: {\n id: number,\n name: string\n }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idFrontPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadFront({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idFrontPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idFrontPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idBackPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadBack({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idBackPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idBackPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n \n \n\n \n \n \n \n
\n )}\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Object) => ({\n icon: {\n marginRight: theme.spacing(1)\n }\n}))\n\nexport default AddUsers\n","// @flow\nimport React from 'react'\nimport {\n Typography,\n CircularProgress,\n Box,\n Link as MuiLink\n} from '@material-ui/core'\n\nimport { useGet, useMatchSizes } from 'hooks'\nimport { Table, Link } from 'components'\n\nfunction ListUsers() {\n const { data, loading, error } = useGet('user/all')\n\n const { xsDown } = useMatchSizes()\n\n if (loading) {\n return (\n \n \n \n )\n }\n\n if (error) {\n return (\n \n \n {error}\n \n \n )\n }\n\n return (\n <>\n \n Lista de Usuarios\n \n\n \n \n {rowData.id}\n \n \n )\n }\n },\n {\n title: 'Nombre',\n field: 'name'\n },\n {\n title: 'Nombre de Usuario',\n field: 'userName',\n hidden: xsDown\n },\n {\n title: 'Teléfono',\n field: 'phoneNumber',\n disableClick: true,\n render: function PhoneNumberRow(rowData: Object) {\n return (\n \n \n {rowData.phoneNumber}\n \n \n )\n }\n },\n {\n title: 'Cédula',\n field: 'idNumber',\n hidden: xsDown\n },\n {\n title: 'Tipo de usuario',\n field: 'userType.name',\n hidden: xsDown\n },\n {\n title: 'Estado',\n field: 'userStatus.name',\n hidden: xsDown\n }\n ]}\n data={data}\n />\n \n )\n}\n\nexport default ListUsers\n","// @flow\nimport React, { useState, useEffect } from 'react'\nimport {\n Typography,\n Box,\n CircularProgress,\n MenuItem,\n InputAdornment,\n IconButton,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport {\n Edit as EditIcon,\n Close as CloseIcon,\n Save as SaveIcon,\n Visibility as VisibilityIcon,\n VisibilityOff as VisibilityOffIcon\n} from '@material-ui/icons'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport { useLocation, useParams, useHistory } from 'react-router-dom'\n\nimport {\n Button,\n Snackbar,\n TextField,\n FilePreview,\n FileUpload\n} from 'components'\nimport { userScheme } from 'schemas'\nimport { useGet, usePost, useFileUpload } from 'hooks'\nimport { auth, formatDate } from 'utils'\n\nconst { schema } = userScheme.update\n\nfunction Profile() {\n const classes = useStyles()\n const [data, setData] = useState(null)\n const [isEditable, setIsEditable] = useState(false)\n const [showPassword, setShowPassword] = useState(false)\n const { state, pathname } = useLocation()\n const { id } = useParams()\n const history = useHistory()\n const { id: userId } = auth.decodedToken()\n const isAdmin = auth.isAdmin()\n const { loading: userLoading, error: userError, data: userData } = useGet(\n state ? null : `user/${id}`\n )\n const {\n upload: uploadFront,\n loading: uploadFrontLoading,\n error: uploadFrontError\n } = useFileUpload()\n const {\n upload: uploadBack,\n loading: uploadBackLoading,\n error: uploadBackError\n } = useFileUpload()\n\n const {\n data: userPropsData,\n loading: userPropsLoading,\n error: userPropsError\n } = useGet('user/props')\n\n const {\n post,\n isError: postIsError,\n loading: postLoading,\n error: postError\n } = usePost()\n\n useEffect(() => {\n if (!state) {\n return\n }\n\n const stateCopy = {\n ...state\n }\n\n if (stateCopy && stateCopy.tableData) {\n delete stateCopy.tableData\n }\n\n setData(stateCopy)\n }, [state])\n\n useEffect(() => {\n if (!userData) {\n return\n }\n\n history.replace({\n pathname,\n state: userData\n })\n }, [userData, history, pathname])\n\n if (\n (userLoading || (!userData && !data) || (userData && !data)) &&\n !userError\n ) {\n return (\n \n } />\n \n \n \n \n \n \n )\n }\n\n if (userPropsError || userError) {\n return (\n \n \n {userPropsError || userError}\n \n \n )\n }\n\n if (!data) {\n return (\n \n \n \n )\n }\n\n return (\n <>\n \n\n \n\n \n\n {\n post('user/update', values, (user: Object) => {\n history.replace({ pathname, state: user })\n setIsEditable(false)\n })\n }}\n >\n {({\n errors,\n touched,\n resetForm,\n values\n }: {\n errors: Object,\n touched: Object,\n resetForm: Function,\n values: Object\n }) => (\n
\n \n {\n resetForm(data)\n setIsEditable(false)\n }}\n >\n \n Cerrar\n \n ) : (\n setIsEditable(true)}\n >\n \n Editar\n \n )\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {({ field }: { field: Object }) => {\n if (userPropsLoading) {\n return \n }\n\n return (\n \n {userPropsData.userTypes.map(\n ({ id, name }: { id: number, name: string }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n \n \n {({ field }: { field: Object }) => {\n if (userPropsLoading) {\n return \n }\n\n return (\n \n {userPropsData.userStatuses.map(\n ({ id, name }: { id: number, name: string }) => (\n \n {name}\n \n )\n )}\n \n )\n }}\n \n \n\n {isEditable && userId === state.id && (\n <>\n \n \n \n \n \n setShowPassword(!showPassword)}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n )\n }}\n />\n \n \n )}\n\n \n \n \n\n {userId !== state.id && }\n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n if (!value && !isEditable) {\n return null\n }\n\n if (!isEditable) {\n return \n }\n\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idFrontPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadFront({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idFrontPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idFrontPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n\n \n \n {({\n field: { name, value },\n form: { setFieldValue }\n }: {\n field: Object,\n form: Object\n }) => {\n if (!value && !isEditable) {\n return null\n }\n\n if (!isEditable) {\n return \n }\n\n return (\n {\n try {\n if (validity.valid && file) {\n setFieldValue('idBackPhoto', '')\n\n const { name, type } = file\n const newName = `${Date.now().toString()}${name}`\n\n const fileCopy = new File([file], newName, {\n type\n })\n\n await uploadBack({\n name: fileCopy.name,\n type: fileCopy.type,\n file: fileCopy,\n throwError: true\n })\n\n setFieldValue('idBackPhoto', newName)\n }\n } catch (error) {\n setFieldValue('idBackPhoto', '')\n }\n }}\n />\n )\n }}\n \n \n \n \n {isAdmin && isEditable && (\n \n \n \n )}\n \n
\n )}\n \n \n )\n}\n\nconst useStyles = makeStyles({\n form: {\n marginTop: 20,\n width: '100%'\n }\n})\n\nexport default Profile\n","// @flow\nimport React from 'react'\nimport { Switch } from 'react-router-dom'\n\nimport Add from './Add'\nimport List from './List'\nimport Profile from './Profile'\nimport NoMatch from 'screens/NoMatch'\nimport { CustomRoute } from 'components'\n\nfunction UsersRouter() {\n return (\n \n \n \n \n \n \n )\n}\n\nexport default UsersRouter\n","// @flow\nimport React, { useState, useEffect } from 'react'\nimport {\n Typography,\n Box,\n InputAdornment,\n IconButton,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid\n} from '@material-ui/core'\nimport {\n Edit as EditIcon,\n Close as CloseIcon,\n Save as SaveIcon,\n Visibility as VisibilityIcon,\n VisibilityOff as VisibilityOffIcon\n} from '@material-ui/icons'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\n\nimport { Button, Snackbar, TextField } from 'components'\nimport { userScheme } from 'schemas'\nimport { useGet, usePost } from 'hooks'\nimport { formatDate } from 'utils'\n\nconst { schema } = userScheme.update\n\nfunction Profile() {\n const classes = useStyles()\n const [data, setData] = useState(null)\n const [isEditable, setIsEditable] = useState(false)\n const [showPassword, setShowPassword] = useState(false)\n const { loading: userLoading, error: userError, data: userData } = useGet(\n `user/profile`\n )\n\n const {\n post,\n isError: postIsError,\n loading: postLoading,\n error: postError\n } = usePost()\n\n useEffect(() => {\n if (!userData) {\n return\n }\n\n setData(userData)\n }, [userData])\n\n if (\n (userLoading || (!userData && !data) || (userData && !data)) &&\n !userError\n ) {\n return (\n \n } />\n \n \n \n \n \n \n )\n }\n\n if (userError) {\n return (\n \n \n {userError}\n \n \n )\n }\n\n return (\n <>\n \n\n {\n const payload = {\n idNumber: values.idNumber,\n name: values.name,\n phoneNumber: values.phoneNumber,\n email: values.email || '',\n userName: values.userName,\n password: values.password || ''\n }\n\n post('user/profile/update', payload, (user: Object) => {\n setData(user)\n setIsEditable(false)\n })\n }}\n >\n {({\n errors,\n touched,\n resetForm,\n values\n }: {\n errors: Object,\n touched: Object,\n resetForm: Function,\n values: Object\n }) => (\n
\n \n {\n resetForm(data)\n setIsEditable(false)\n }}\n >\n \n Cerrar\n \n ) : (\n setIsEditable(true)}\n >\n \n Editar\n \n )\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n {isEditable && (\n \n \n setShowPassword(!showPassword)}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n )\n }}\n />\n \n )}\n\n \n \n \n \n \n {isEditable && (\n \n \n \n )}\n \n
\n )}\n \n \n )\n}\n\nconst useStyles = makeStyles({\n form: {\n marginTop: 20,\n width: '100%'\n }\n})\n\nexport default Profile\n","// @flow\nimport React, { useState } from 'react'\nimport {\n Grid,\n Typography,\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Tooltip,\n Button,\n MenuItem,\n Box\n} from '@material-ui/core'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { useTheme } from '@material-ui/core/styles'\nimport { VictoryPie } from 'victory'\n\nimport { Snackbar, TextField } from 'components'\nimport { formatAmount } from 'utils'\nimport { useGet, usePost } from 'hooks'\n\nconst REPORT_TYPES = {\n DAILY: 'Diario',\n MONTHY: 'Mensual'\n}\n\nfunction Welcome() {\n const [reportType, setReportType] = useState(REPORT_TYPES.DAILY)\n const { data, loading, error, refetch, setUrl } = useGet(\n 'chart/todayPayments'\n )\n const {\n post,\n loading: postLoading,\n error: postError,\n isError: postIsError\n } = usePost()\n\n const {\n palette: {\n primary: { main: primaryColor },\n secondary: { main: secondaryColor }\n }\n } = useTheme()\n\n const handleOnChangeLocation = (ev: Object) => {\n setReportType(ev.target.value)\n\n setUrl(\n ev.target.value === REPORT_TYPES.DAILY\n ? 'chart/todayPayments'\n : 'chart/monthyPayments'\n )\n }\n\n if (loading) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n\n if (error) {\n return (\n \n {error}\n \n )\n }\n\n return (\n <>\n \n\n \n \n \n \n \n {Object.keys(REPORT_TYPES).map((key: string) => {\n const value = REPORT_TYPES[key]\n\n return (\n \n {value}\n \n )\n })}\n \n \n\n \n {data && data.chartData && (\n \n \n \n {data.totalAmount > 0 && (\n \n \n `${datum.x}: ${formatAmount(datum.y)}`\n }\n />\n \n )}\n \n \n \n post('user/blockAllRoots', {}, () => refetch())\n }\n >\n Bloquear\n \n \n \n \n post('user/unblockAllRoots', {}, () => refetch())\n }\n >\n Desbloquear\n \n \n \n \n \n )}\n\n {data &&\n data.users &&\n data.users.map &&\n data.users.map((user: Object) => {\n return (\n \n \n \n {user.totalAmount > 0 && (\n \n \n `${datum.x}: ${formatAmount(datum.y)}`\n }\n />\n \n )}\n\n {data && data.chartData && (\n \n {user.userStatus.type === 'ACTIVE' && (\n \n \n post('user/blockById', { id: user.id }, () =>\n refetch()\n )\n }\n >\n Bloquear\n \n \n )}\n {user.userStatus.type === 'BLOCKED' && (\n \n \n post(\n 'user/unblockById',\n { id: user.id },\n () => refetch()\n )\n }\n >\n Desbloquear\n \n \n )}\n \n )}\n \n \n )\n })}\n \n \n \n \n )\n}\n\nexport default Welcome\n","// @flow\nimport React from 'react'\nimport { Switch } from 'react-router-dom'\n\nimport Clients from 'screens/Clients'\nimport Loans from 'screens/Loans'\nimport Payments from 'screens/Payments'\nimport Users from 'screens/Users'\nimport Profile from 'screens/Profile'\nimport Welcome from 'screens/Welcome'\nimport NoMatch from 'screens/NoMatch'\nimport { CustomRoute, Drawer } from 'components'\n\nfunction Home() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Home\n","// @flow\nimport React from 'react'\nimport { BrowserRouter as Router, Switch } from 'react-router-dom'\n\nimport Login from 'screens/Login'\nimport Home from 'screens/Home'\nimport NoMatch from 'screens/NoMatch'\nimport { CustomRoute } from 'components'\n\nfunction App() {\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default App\n","// @flow\nimport React from 'react'\nimport { CssBaseline } from '@material-ui/core'\nimport { ThemeProvider } from '@material-ui/styles'\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers'\nimport MomentUtils from '@date-io/moment'\n\nimport 'config/moment'\nimport { theme, alertConfig } from 'config'\n\nimport App from 'screens'\n\nfunction Root() {\n if (alertConfig.alertMessage) {\n alert(alertConfig.alertMessage)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default Root\n","/* eslint-disable */\n\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://bit.ly/CRA-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.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register(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://bit.ly/CRA-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, 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://bit.ly/CRA-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, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\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(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","// @flow\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport './index.css'\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\n\nconst root = document.getElementById('root')\n\nif (root !== null) {\n ReactDOM.render(, 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://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}