{"version":3,"sources":["pages/matricula/matricula.js","pages/matricula/retiros.js"],"names":["Auth","AuthService","tokenInfo","movil","test","navigator","userAgent","checkId","checkIdCo","planes","refreshOferta","widthTable","window","screen","width","globales","tabla","marginleft","marginright","columns","name","title","columnExtensions","columnName","align","grouping","columnsCorreq","columnExtensionsCorreq","columnsDetalle","columnExtensionsDetalle","columnsLE","columnExtensionsLE","RowId","row","String","ID_SECCION","ChildRows","rootRows","TREE","GroupCellContent","_ref","column","infoPLan","find","x","ID_PLAN","value","_jsx","children","_jsxs","undefined","DESCRIPCION_NIVEL","VirtualTable_cellComponent","classTooltip","props","style","color","CHECKED","colores","azul","fontWeight","HDR","OPTATIVA","paddingTop","paddingBottom","Table","Cell","INICIO","funciones","getTime","FIN","colorIconChecked","naranja","_styleCell","styleIco","color_disabled","styleDiv","display","alignItems","justifyContent","marginBottom","maxHeight","styleIcoHibridaPre","AUTONOMA","HIBRIDA","styleIcoHibridaPmv","tableRow","ID_ESTADO_MODALIDAD","DISPONIBLE_MODALIDAD","DISPONIBLE","Tooltip","placement","classes","tooltip","PopperProps","zIndex","PersonIcon","fontSize","VideocamIcon","ESTATUS_FINANCIERO","length","isEmpty","GRUPO","estado","position","whiteSpace","arrow","MoreHorizIcon","top","right","cursor","onClick","e","stopPropagation","NUMERO_SECCION","TableTreeColumn_cellComponent","_ref2","newChildren","React","Children","map","child","index","cloneElement","level","Checkbox","icon","height","checkedIcon","CheckIcon","disabled","checked","ROOT_TREE","TableTreeColumn","paddingLeft","paddingRight","CircularProgress","size","reducer","state","action","type","rows","current_rows","item","id_seccion","rows_optativas","ColumnFixed_cellComponent","handleChangeCheck","valueFilterCheck","_ref4","showLeftDivider","showRightDivider","key","tableColumn","TableFixedColumns","backgroundColor","others","inputCheck","FilterCellComponent","_ref5","filteringEnabled","onFilter","getMessage","onChange","indeterminate","className","indeterminateIcon","IndeterminateCheckBoxOutlinedIcon","TableFilterRow","TableSelectionCellComponent","disabledChecks","_ref6","TableSelection","VirtualTableDetalle_cellComponent","_ref7","formatCurrency","RenderOption","option","flexDirection","ListItemAvatar","minWidth","Avatar","CUENTA_ALUMNO","NOMBRE_COMPLETO","withStyles","theme","paperCorrequisito","borderRadius","border_dialog","maxWidth","minHeight","paperDetalle","paperConfirmation","paperListaEspera","innerWidth","innerHeight","closeButton","spacing","palette","grey","backdrop","container","textField","marginRight","marginLeft","marginTop","formControlSelect","textAlign","labelTime","Component","constructor","super","tablaRef","createRef","tablaCorreqRef","dialogActionRef","dialogActionDetalleRef","tablaDetalleRef","tablaLERef","dialogActionLERef","onBlurAutoComplete","this","openAutoComplete","setState","onChangeInput","target","toString","trim","valueAutoComplete","onChangeAutocomplete","event","electivasOpens","datosSelectModPago","selectedModPago","expandedRowIds","selection","expandedGroup","rowsLE","countLE","filters","filterCheck","handleChangeCuenta","filtersClientes","Request","get","ip","set","getToken","retry","timeout","response","deadline","end","err","res","substr","location","reload","optionAutocomplete","loadingClientes","showToast","JSON","parse","text","onRefresh","cuenta","plataforma","user","openBackDropInvisible","modalidades","filter","VISIBLE_WEB","ID_MODALIDAD_CLIENTE","items","datos","i","MenuItem","MOD_PAGO_ID","MOD_PAGO_DESCRIPCION","modalidadSel","loadingMain","obtener_planes","obtener_lista_espera","obtener_oferta","sucursal","expandedGroups","rowsOferta","infoTable","formatRows","ESTADO","changeExpandedGroups","changeSelection","selection_original","slice","getIdRowChecking","split","markAction","push","getIdHdr","rowChecked","getInfoRowChecked","baseHibridaTmp","baseSelectionHibridaTmp","refHibrida","cuposHibridaA","cuposHibridaB","titleModalHibrida","openModalHibrida","CORREQUISITOS","selectionNewTmp","selectionOldTmp","loadingCorreq","rowsCorreq","selectionCorreq","openModalCorrequsito","obtenerSeccionesCorreq","ID_DETALLE_PLAN","loadingCheck","gestion_matricula","CODIGO_CURSO","then","RESP","setValuesRow","DESCRIPCION_CURSO","resetValuesSeccionHibrida","HABILITADO_LE","showButtomsDirLE","HABILITA_CUPO_DIRECTO","messageLE","getMessageLE","closeTimeLE","openModalListaEspera","changeFilters","changeExpandedRowIds","haveOptativas","parseInt","formatOptativeRows","setOptativas","reducerRows","dispatch","parentRows","CREDITOS","DIAS","AULA","PERIODO","foundPlan","foundPeriodo","allGroups","idElectiva","id_row","id_electiva","idRowHdr","_item","__item","handleChangeCheckFilter","operation","changeValueCheck","disponible","disponible_mod","hibrida","setCheckedRowCo","filterStringChildrens","filterValue","findChild","toLocaleLowerCase","includes","handleCloseCorrequisito","selectionCoNewTmp","id_detalle_plan","haveChecked","disabledChecksCo","onEnteringCorrequisito","heightTableCorreq","getHeightTableDialog","changeSelectionCorreq","rowCoChecked","seccionBase","coHibridaTmp","coSelectionHibridaTmp","RESP_CORREQUISITO","_res","DISPONIBLE_CORREQUISITO","DISPONIBLE_MODALIDAD_CORREQUISITO","resetValuesSeccionHibridaCo","async","id_seccion_co","codigo","codigo_co","id_plan","lista_espera","hibrida_co","tipo","Promise","resolve","post","send","codigo_curso","codigo_curso_co","cuenta_alumno","ad_usuario","id_cajero","openBackDrop","handleCloseListaEspera","clearInterval","count","handleChangeModPago","id_mod_pago_old","id_mod_pago_new","transitionDurationBackdrop","enter","exit","messageBackdrop","id_modalidad","handleResumen","document","getElementById","click","handleDetalle","openModalDetalle","handleCloseDetalle","onEnteringDetalle","heightTableDetalle","loadingDetalle","rowsDetalle","handleCloseHibrida","onClickListItem","valueHibrida","infoRow","infoRowCo","director","handleOkCupo","handleOkLE","countDown","time","setInterval","loadingLE","handleLE","openModalSeccionesLE","handleCloseSeccionesLE","onEnteringSeccionesLE","heightTableLE","l","isLoggin","heightTableMain","saveOptionsLE","createStore","unsubscribeRows","subscribe","getState","settingFilter","predicate","IntegratedFiltering","defaultPredicate","notChecked","botones_lista_espera","icono","toolt","nombre","onclick","botones_lista_espera_dir","componentDidMount","getProfile","getHeightTableMain","heightTable","focus","componentWillUnmount","render","Fragment","Paper","square","Autocomplete","id","options","getOptionLabel","renderInput","params","TextField","label","variant","onBlur","InputProps","endAdornment","Fade","in","transitionDelay","unmountOnExit","IconButton","RefreshIcon","fullWidth","renderOption","open","loading","ListboxComponent","virtual","disableClearable","onInputChange","popupIcon","PaperComponent","elevation","Select","Label","Datos","Selected","Style","Outlined","ref","marginleft_movil","marginright_movil","CustomTable","Columns","Rows","Grouping","TableColumnExtensions","DefaultHiddenColumnNames","ExpandedGroups","ChangeExpandedGroups","groupContentComponent","getRowId","rowHeaderCellComponent","valueStudent","handleListaEspera","_ref3","resizingEnabled","TableHeaderRow","left","Badge","badgeContent","HowToRegIcon","color_iconos_SL","color_iconos","PrintIcon","CreditCardIcon","enabledFilterRows","filterCellComponent","TableNameTreeColum","GetChildRows","showSelectionControlsTree","OnExpandedRowIdsChange","ExpandedRowIds","leftColumnsFixed","columnFixedCellComponent","FilteringColumnExtensions","Filters","onFiltersChange","Selection","ChangeSelection","columnWidths","Dialog","TransitionProps","onEntering","paper","fullScreen","DialogTitle","Typography","component","CloseIcon","DialogContent","showSelectionColumn","COLUMN_TYPE","tableSelectionCellComponent","DialogActions","onEntered","gutterBottom","textJustify","BarraBotones","botones","List","root","ListItem","button","ListItemText","primary","secondary","Divider","Reporte","label_reporte","parametros","nom_boton","nom_bar","fill","boton","opciones","color_bar","Backdrop","transitionDuration","invisible","HeaderRowCellComponent","color_periodo_anterior","grouping_nivel","columnsRetiro","columnExtensionsRetiro","wordWrapEnabled","ID_SECCION_CLIENTE","anterior","compoundKey","search","ES_ANTERIOR","VALOR","PORCENTAJE","Table_cellComponentRetiro","styleCell","border","KEY","background","paperTitle","verticalAlign","lineHeight","margin","divSecondary","razonRef","foundGroup","periodo","periodo_anterior","rowsRetiro","LABEL","VALUE","openModal","es_anterior","handleClose","handleRetiroOk","current","id_seccion_cliente","monto_reconocido","parseFloat","porcentaje","razon","openModalConfirmation","botones_retiro","Grid","cellComponent","required","inputProps","maxLength","toLowerCase"],"mappings":"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","file":"static/js/main~ebd73782.3bb6d8d8.chunk.js","sourcesContent":["import React from 'react';\r\nimport CustomTable from '../../components/CustomTable';\r\nimport {globales, colores, funciones } from '../../global';\r\nimport AuthService from '../../AuthService';\r\nimport Request from 'superagent';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport BarraBotones from '../../components/Barra_menu';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport {virtual} from '../../components/VirtualListBox';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '../../components/Select';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport {Table, TableTreeColumn, TableHeaderRow, TableFixedColumns, TableSelection, TableFilterRow} from '@devexpress/dx-react-grid-material-ui';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport {IntegratedFiltering} from '@devexpress/dx-react-grid';\r\nimport {createStore} from 'redux';\r\nimport IndeterminateCheckBoxOutlinedIcon from '@material-ui/icons/IndeterminateCheckBoxOutlined';\r\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport VideocamIcon from '@material-ui/icons/Videocam';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport HowToRegIcon from '@material-ui/icons/HowToReg';\r\nimport CreditCardIcon from '@material-ui/icons/CreditCard';\r\nimport Reporte from '../../components/Modalreporte';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\n\r\nlet Auth = new AuthService();\r\nlet tokenInfo = [];\r\n\r\nvar movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nlet planes = [];\r\nlet checkId = undefined;\r\nlet checkIdCo = undefined;\r\nlet refreshOferta = false;\r\n\r\nconst styles = theme => ({\r\n \r\npaperCorrequisito: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: !movil ? '1024px' : undefined, \r\n maxWidth: !movil ? '1024px' : undefined,\r\n minHeight: !movil ? '570px' : undefined, \r\n maxHeight: !movil ? '570px' : undefined,\r\n},\r\npaperDetalle: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: !movil ? '700px' : undefined, \r\n maxWidth: !movil ? '700px' : undefined,\r\n minHeight: !movil ? '420px' : undefined, \r\n maxHeight: !movil ? '420px' : undefined,\r\n}, \r\npaperConfirmation: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: '320px', \r\n maxWidth: '320px', \r\n},\t\r\npaperListaEspera: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: !movil ? '340px' : window.innerWidth < window.innerHeight ? window.innerWidth - 20 + 'px' : window.innerHeight - 20 + 'px', \r\n maxWidth: '340px !important',\r\n},\t\r\ncloseButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n},\r\nbackdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\r\n},\r\ncontainer: {\r\n display: 'flex',\r\n justifyContent: !movil ? 'center' : undefined, \r\n alignItems: \"center\",\r\n flexDirection: !movil ? \"row\" : \"column\",\r\n paddingTop: \"2px\",\r\n paddingBottom: \"5px\", \r\n paddingLeft: theme.spacing(1),\r\n paddingRight: theme.spacing(1)\r\n},\r\ntextField: {\r\n marginRight: !movil ? theme.spacing(1) : undefined \r\n},\r\ninputCheck: { \r\n marginLeft: '31px', \r\n marginTop: '0px', \r\n},\r\ntooltip: {\r\n maxWidth: !movil ? 'none' : undefined,\r\n},\r\nformControlSelect: {\r\n width: movil ? '100%' : '430px', \r\n marginLeft: !movil ? theme.spacing(1) : undefined, \r\n textAlign: 'left',\r\n},\r\nlabelTime: {\r\n position: 'absolute',\r\n right: theme.spacing(4.5),\r\n top: theme.spacing(1.3),\r\n color: theme.palette.grey[500],\r\n fontSize: 12\r\n}\r\n\r\n});\r\nconst widthTable = !movil ? window.screen.width - (globales.tabla.marginleft + globales.tabla.marginright) : 1336;\r\nconst columns= [\r\n { name: 'ROOT_TREE', title: ' ' },\r\n { name: 'ID_SECCION', title: 'ID_SECCION' },\r\n { name: 'CODIGO_CURSO', title: 'Código' },\r\n { name: 'DESCRIPCION_CURSO', title: 'Descripción' },\r\n { name: 'CREDITOS', title: 'Uv' },\r\n { name: 'DIAS', title: 'Dias' },\r\n { name: 'INICIO', title: 'Desde' },\r\n { name: 'FIN', title: 'Hasta' },\r\n { name: 'AULA', title: 'Aula' },\r\n { name: 'NUMERO_SECCION', title: 'Sección' },\r\n { name: 'MODALIDAD', title: 'Grupo' },\r\n { name: 'PERIODO', title: 'Período' },\r\n { name: 'DISPONIBLE', title: 'Cupos' }, \r\n { name: 'ID_PLAN', title: 'ID_PLAN' },\r\n { name: 'ESTATUS_FINANCIERO', title: 'Financiero' },\r\n { name: 'NOMBRE_COMPLETO', title: 'Catedrático' },\r\n { name: 'GRUPO', title: 'Grupo' },\r\n { name: 'OPTATIVA', title: 'OPTATIVA' },\r\n { name: 'TREE', title: ' ' },\r\n];\r\nconst columnExtensions = [\r\n { columnName: 'ROOT_TREE', width: 100 },\r\n { columnName: 'CODIGO_CURSO', width: widthTable * 0.06 },\r\n { columnName: 'DESCRIPCION_CURSO', width: !movil ? widthTable * 0.16 : 280}, \r\n { columnName: 'CREDITOS', width: widthTable * 0.05, align: 'center'},\r\n { columnName: 'DIAS', width: widthTable * 0.06, align: 'center'}, \r\n { columnName: 'INICIO', width: widthTable * 0.06, align: 'center'},\r\n { columnName: 'FIN', width: widthTable * 0.06, align: 'center'}, \r\n { columnName: 'AULA', width: widthTable * 0.06, align: 'center'}, \r\n { columnName: 'NUMERO_SECCION', width: widthTable * 0.05, align: 'center'}, \r\n { columnName: 'MODALIDAD', width: widthTable * 0.06, align: 'center'}, \r\n { columnName: 'DISPONIBLE', width: widthTable * 0.06, align: 'center'}, \r\n { columnName: 'NOMBRE_COMPLETO', width: !movil ? widthTable * 0.13 : 250},\r\n { columnName: 'ID_SECCION', width: 0 },\r\n { columnName: 'ID_PLAN', width: 0 },\r\n { columnName: 'ESTATUS_FINANCIERO', width: 100 },\r\n { columnName: 'GRUPO', width: 0 },\r\n { columnName: 'OPTATIVA', width: 0 },\r\n { columnName: 'TREE', width: 0 }, \r\n { columnName: 'PERIODO', width: 0 },\r\n];\r\nconst grouping = [{ columnName: 'ID_PLAN' }, { columnName: 'PERIODO' }];\r\n\r\nconst columnsCorreq= [\r\n { name: 'ID_SECCION', title: 'ID_SECCION' },\r\n { name: 'CODIGO_CURSO', title: 'Código' },\r\n { name: 'DESCRIPCION_CURSO', title: 'Descripción' },\r\n { name: 'DIAS', title: 'Dias' },\r\n { name: 'INICIO', title: 'Desde' },\r\n { name: 'FIN', title: 'Hasta' },\r\n { name: 'AULA', title: 'Aula' },\r\n { name: 'NUMERO_SECCION', title: 'Sección' },\r\n { name: 'MODALIDAD', title: 'Grupo' },\r\n { name: 'DISPONIBLE', title: 'Cupos' },\r\n { name: 'NOMBRE_COMPLETO', title: 'Catedrático' },\r\n];\r\nconst columnExtensionsCorreq = [\r\n { columnName: 'CODIGO_CURSO', width: 60 },\r\n { columnName: 'DESCRIPCION_CURSO', width: 230 }, \r\n { columnName: 'DIAS', width: 60, align: 'center'}, \r\n { columnName: 'INICIO', width: 80, align: 'center'},\r\n { columnName: 'FIN', width: 80, align: 'center'}, \r\n { columnName: 'AULA', width: 70, align: 'center'}, \r\n { columnName: 'NUMERO_SECCION', width: 64, align: 'center'}, \r\n { columnName: 'MODALIDAD', width: 75, align: 'center'}, \r\n { columnName: 'DISPONIBLE', width: !movil ? 75 : 100, align: 'center'}, \r\n { columnName: 'NOMBRE_COMPLETO', width: !movil ? 110 : 180},\r\n];\r\n\r\nconst columnsDetalle=[\r\n { name: 'DESCRIPCIÓN', title: 'Descripción' },\r\n { name: 'FECHA DE PAGO', title: 'Fecha de pago' },\r\n { name: 'MONTO', title: 'Monto' },\r\n];\r\nconst columnExtensionsDetalle = [\r\n { columnName: 'DESCRIPCIÓN', width: 400 },\r\n { columnName: 'FECHA DE PAGO', width: 110, align: 'center' },\r\n { columnName: 'MONTO', width: 110, align: 'right' },\r\n];\r\n\r\nconst columnsLE = [\r\n { name: 'DESCRIPCION_CURSO', title: 'Descripción' },\r\n { name: 'DIAS', title: 'Dias' },\r\n { name: 'INICIO', title: 'Desde' },\r\n { name: 'FIN', title: 'Hasta' },\r\n { name: 'AULA', title: 'Aula' },\r\n { name: 'POSICION_LE', title: 'Posición' },\r\n { name: 'MODALIDAD', title: 'Grupo' },\r\n { name: 'CONCEPTO', title: 'Concepto' },\r\n];\r\nconst columnExtensionsLE = [\r\n { columnName: 'DESCRIPCION_CURSO', width: 280 }, \r\n { columnName: 'DIAS', width: 65, align: 'center'}, \r\n { columnName: 'INICIO', width: 80, align: 'center'},\r\n { columnName: 'FIN', width: 80, align: 'center'}, \r\n { columnName: 'AULA', width: 70, align: 'center'}, \r\n { columnName: 'POSICION_LE', width: 65, align: 'center'}, \r\n { columnName: 'MODALIDAD', width: 100, align: 'center'}, \r\n { columnName: 'CONCEPTO', width: 200 },\r\n];\r\n\r\nconst RowId = row => String(row.ID_SECCION);\r\nconst ChildRows = (row, rootRows) => (row ? row.TREE : rootRows);\r\nconst GroupCellContent = ({ column, row }) => {\r\n const infoPLan = planes.find(x => x.ID_PLAN === row.value);\r\n return(\r\n \r\n {column.name === 'ID_PLAN' ? (infoPLan !== undefined ? infoPLan.DESCRIPCION_NIVEL : \" \") : 'Período ' + row.value} \r\n \r\n );\r\n\r\n}\r\nconst VirtualTable_cellComponent = (classTooltip) => (props) => { \r\n\r\n const style={ color: props.row.CHECKED || props.row.CHECKED === 1 ? colores.azul : undefined, \r\n fontWeight: props.row.HDR === 1 || props.row.OPTATIVA === 1 ? 'bold' : undefined,\r\n paddingTop: props.row.HDR === 1 || props.row.OPTATIVA === 1 ? 0 : undefined, \r\n paddingBottom: props.row.HDR === 1 || props.row.OPTATIVA === 1 ? 0 : undefined}\r\n\r\n if (props.column.name === 'INICIO')\r\n {\r\n return ( \r\n { props.row.INICIO !== null ? funciones.getTime(props.row.INICIO, 1) : null }\r\n );\r\n }\r\n \r\n if (props.column.name === 'FIN')\r\n {\r\n return ( \r\n { props.row.FIN !== null ? funciones.getTime(props.row.FIN, 1) : null }\r\n );\r\n }\r\n \r\n if (props.column.name === 'DISPONIBLE')\r\n { \r\n const colorIconChecked = colores.naranja;\r\n const _styleCell = {...style, paddingTop: 0, paddingBottom: 0}\r\n const styleIco = { color: (props.row.CHECKED === 1 || props.row.CHECKED) ? colorIconChecked : colores.color_disabled} \r\n const styleDiv = { display: \"flex\", alignItems: \"center\", justifyContent: \"center\", marginBottom: \"2px\", maxHeight: \"100%\", width: \"100%\" }; \r\n const styleIcoHibridaPre = { color: (props.row.CHECKED === 1 || props.row.CHECKED) ?\r\n (props.row.AUTONOMA === 2 && (props.row.HIBRIDA === 1 || props.row.HIBRIDA)) || (props.row.AUTONOMA === 1 && (props.row.HIBRIDA !== 1 && !props.row.HIBRIDA)) ? colorIconChecked\r\n : colores.color_disabled\r\n : colores.color_disabled }\r\n const styleIcoHibridaPmv = { color: (props.row.CHECKED === 1 || props.row.CHECKED) ?\r\n (props.row.AUTONOMA === 2 && (props.row.HIBRIDA !== 1 && !props.row.HIBRIDA)) || (props.row.AUTONOMA === 1 && (props.row.HIBRIDA === 1 || props.row.HIBRIDA)) ? colorIconChecked\r\n : colores.color_disabled\r\n : colores.color_disabled }\r\n\r\n if (props.tableRow.row.ID_ESTADO_MODALIDAD === 2){\r\n \r\n return (\r\n
\r\n {props.row.AUTONOMA === 2 ? props.row.DISPONIBLE_MODALIDAD : props.row.DISPONIBLE}\r\n \r\n \r\n \r\n {\" | \" + (props.row.AUTONOMA === 2 ? props.row.DISPONIBLE : props.row.DISPONIBLE_MODALIDAD)}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n }\r\n\r\n if ((props.tableRow.row.ID_ESTADO_MODALIDAD === 1 && props.tableRow.row.AUTONOMA === 1) || (props.tableRow.row.ID_ESTADO_MODALIDAD === 3 && props.tableRow.row.AUTONOMA === 2)){\r\n return (\r\n
\r\n {props.row.DISPONIBLE}\r\n \r\n \r\n \r\n
\r\n
);\r\n }\r\n\r\n if ((props.tableRow.row.ID_ESTADO_MODALIDAD === 1 && props.tableRow.row.AUTONOMA === 2) || (props.tableRow.row.ID_ESTADO_MODALIDAD === 3 && props.tableRow.row.AUTONOMA === 1)){\r\n return (\r\n
\r\n {props.row.DISPONIBLE}\r\n \r\n \r\n \r\n
\r\n
);\r\n }\r\n\r\n\r\n }\r\n\r\n if (props.column.name === 'NUMERO_SECCION' && props.row.HDR === 0 && props.row.OPTATIVA !== 1 && props.row.ESTATUS_FINANCIERO !== undefined && ((props.row.ESTATUS_FINANCIERO !== null && props.row.ESTATUS_FINANCIERO.length > 0) || !funciones.isEmpty(props.row.GRUPO)))\r\n { \r\n var estado = props.row.ESTATUS_FINANCIERO === \"T\" ? \"Prematriculado\" : \r\n props.row.ESTATUS_FINANCIERO === \"P\" ? \"Matriculado\" :\r\n props.row.ESTATUS_FINANCIERO === \"W\" ? \"En lista de espera\" :\r\n props.row.ESTATUS_FINANCIERO === \"X\" ? \"Congelado\" : \"Desconocido\";\r\n estado = props.row.ID_ESTADO_MODALIDAD === 2 ? \r\n (props.row.AUTONOMA === 2 && (props.row.HIBRIDA === 1 || props.row.HIBRIDA)) || (props.row.AUTONOMA === 1 && (props.row.HIBRIDA !== 1 && !props.row.HIBRIDA)) ? estado + \" (Presencial)\" : \r\n (props.row.AUTONOMA === 2 && (props.row.HIBRIDA !== 1 && !props.row.HIBRIDA)) || (props.row.AUTONOMA === 1 && (props.row.HIBRIDA === 1 || props.row.HIBRIDA)) ? estado + \" (Por Videoconferencia)\" : estado\r\n : estado;\r\n\r\n var title = props.row.ESTATUS_FINANCIERO !== null && props.row.ESTATUS_FINANCIERO.length > 0 ? \"Estado\\n\" + estado : \"\"; \r\n title = title + (title.length > 0 && !funciones.isEmpty(props.row.GRUPO) ? \"\\n\\n\" : \"\") + (!funciones.isEmpty(props.row.GRUPO) ? \"Grupo\\n\" + props.row.GRUPO : \"\");\r\n \r\n return (\r\n {title}} placement=\"top\" classes={{ tooltip: classTooltip }} PopperProps={{style:{zIndex:500000}}} arrow>\r\n e.stopPropagation()}/>\r\n \r\n {props.row.NUMERO_SECCION}\r\n );\r\n }\r\n\r\n if (props.column.name === \"CREDITOS\" && props.row.HDR === 1)\r\n { \r\n return (\r\n {null} \r\n );\r\n }\r\n\r\n return ();\r\n \r\n }\r\nconst TableTreeColumn_cellComponent = (estado, checkId) => ({children, style, ...props}) => {\r\n \r\n const newChildren = React.Children.map(children, (child, index) => {\r\n \r\n if (index === 0){\r\n return React.cloneElement(child, { \r\n ...child.props,\r\n level: (child.props.level === 1 && props.row.HDR === 0) ? 0 : child.props.level === 2 ? 1 : child.props.level\r\n });\r\n }\r\n\r\n if (index === 2){\r\n return (\r\n props.row.HDR === 1 || props.row.OPTATIVA === 1?\r\n } checkedIcon={} disabled checked={(props.row.CHECKED || (props.row.CHECKED===1))}/>\r\n :\r\n React.cloneElement(child, { \r\n ...child.props,\r\n disabled: (props.row.OPTATIVA === 1 || \r\n (props.row.ESTATUS_FINANCIERO !== \"T\" && props.row.ESTATUS_FINANCIERO !== \"W\" && props.row.ESTATUS_FINANCIERO !== null && props.row.ESTATUS_FINANCIERO.length > 0)) || \r\n props.row.HDR === 1\r\n ? true : false\r\n })\r\n );\r\n }\r\n\r\n return child;\r\n });\r\n\r\n if (props.row.ROOT_TREE === \"...\" || (estado && String(props.row.ID_SECCION) === checkId))\r\n { \r\n return (\r\n \r\n ) \r\n }\r\n \r\n return ()\r\n \r\n}\r\nconst HeaderRowCellComponent = (valueStudent, handleResumen, handleListaEspera, handleDetalle, countLE)=> ({resizingEnabled, ...props}) => {\r\n \r\n const style={paddingTop: props.column.name === \"ROOT_TREE\" ? \"5px\" : undefined, paddingBottom: props.column.name === \"ROOT_TREE\" ? \"5px\" : undefined }\r\n const disabled = tokenInfo.plataforma === 1 && valueStudent === null ? true : false;\r\n\r\n if (props.column.name === \"ROOT_TREE\")\r\n { \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return ();\r\n\r\n}\r\nconst reducer = (state, action) => {\r\n\r\nif (action.type === \"SET_OPTATIVAS\")\r\n{\r\n return {\r\n ...state,\r\n rows: action.current_rows.map(item => { \r\n if (String(item.ID_SECCION) === action.id_seccion) {\r\n return {...item, TREE: action.rows_optativas } \r\n };\r\n return item;\r\n }),\r\n }\r\n\r\n} \r\n\r\nreturn state;\r\n\r\n}\r\nconst ColumnFixed_cellComponent = (classes, handleChangeCheck, valueFilterCheck) => ({showLeftDivider, showRightDivider, ...props}) => { \r\n \r\n if (props.tableRow.key === \"Symbol(filter)\" && props.tableColumn.column.name === 'ROOT_TREE')\r\n { \r\n return ();\r\n\r\n }\r\n \r\n return ();\r\n\r\n}\r\nconst FilterCellComponent = ({children, filteringEnabled, onFilter, getMessage, others, ...props})=>{ \r\n \r\n if (props.column.name === \"ROOT_TREE\"){\r\n return (\r\n }\r\n style={{width: 28, height: 28}}\r\n />\r\n );\r\n }\r\n\r\n return ();\r\n}\r\nconst TableSelectionCellComponent = (estado, checkId, disabledChecks) => ({style, ...props}) =>{\r\n \r\n if (estado && String(props.row.ID_SECCION) === checkId)\r\n {\r\n return ( \r\n \r\n \r\n );\r\n } \r\n \r\n if (disabledChecks)\r\n {\r\n return(\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n return ( );\r\n}\r\nconst VirtualTableDetalle_cellComponent = ({value, ...props})=>{\r\n\r\n if (props.column.name === \"MONTO\")\r\n {\r\n return ();\r\n }\r\n\r\n return ();\r\n\r\n}\r\nconst RenderOption = (option) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{option.CUENTA_ALUMNO}\r\n
{option.NOMBRE_COMPLETO}
\r\n \r\n);\r\n\r\nexport default withStyles(styles) ( \r\nclass App extends React.Component {\r\n\r\ntablaRef = React.createRef();\r\ntablaCorreqRef = React.createRef();\r\ndialogActionRef = React.createRef();\r\ndialogActionDetalleRef = React.createRef();\r\ntablaDetalleRef = React.createRef();\r\ntablaLERef = React.createRef();\r\ndialogActionLERef = React.createRef();\r\n\r\n constructor (props) {\r\n super(props);\r\n this.l=props.l\r\n this.e=props.e\r\n this.i=props.i\r\n this.state = {\r\n isLoggin : undefined,\r\n heightTableMain: 0,\r\n loadingMain: false,\r\n rows: [],\r\n openBackDrop: false,\r\n messageBackdrop: \"\",\r\n transitionDurationBackdrop: undefined,\r\n optionAutocomplete: [],\r\n loadingClientes: true,\r\n openAutoComplete: false,\r\n valueAutoComplete: null,\r\n selectedModPago: '',\r\n datosSelectModPago: [],\r\n openBackDropInvisible: false,\r\n expandedGroup: [],\r\n loadingCheck: false,\r\n expandedGroups: [],\r\n filters: [],\r\n filterCheck: undefined,\r\n expandedRowIds: [],\r\n selection: [],\r\n openModalCorrequsito: false,\r\n rowsCorreq: [],\r\n loadingCorreq: false,\r\n heightTableCorreq: 0,\r\n selectionCorreq: [],\r\n disabledChecksCo: false,\r\n openModalListaEspera: false,\r\n openModalDetalle: false,\r\n rowsDetalle: [],\r\n loadingDetalle: false,\r\n heightTableDetalle: 0,\r\n showButtomsDirLE: false,\r\n messageLE: \"\", \r\n openModalHibrida: false,\r\n cuposHibridaA: 0, \r\n cuposHibridaB: 0,\r\n refHibrida: 0,\r\n saveOptionsLE: false,\r\n closeTimeLE: 30,\r\n rowsLE: [],\r\n countLE: 0,\r\n loadingLE: false,\r\n openModalSeccionesLE: false,\r\n heightTableLE: 0,\r\n titleModalHibrida: \"\",\r\n };\r\n this.cuenta= null;\r\n this.reducerRows = createStore(reducer, { rows: [] });\r\n this.unsubscribeRows = this.reducerRows.subscribe(() => {\r\n this.setState({ rows: this.reducerRows.getState().rows });\r\n });\r\n this.electivasOpens=[];\r\n this.settingFilter = [\r\n { columnName: 'INICIO',\r\n predicate: (value, filter, row) => {\r\n value = value !== null ? funciones.getTime(value, 1) : value; \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n },\r\n { columnName: 'FIN',\r\n predicate: (value, filter, row) => {\r\n value = value !== null ? funciones.getTime(value, 1) : value; \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n },\r\n { columnName: 'ID_PLAN',\r\n predicate: (value, filter, row) => { \r\n if (filter.value.length === 0 || filter.value.find(x => x === value)){\r\n return true;\r\n }\r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n },\r\n { columnName: 'ROOT_TREE',\r\n predicate: (value, filter, row) => {\r\n filter.operation = 'equal'; \r\n \r\n if (filter.value === true) {\r\n \r\n if (row.CHECKED === 1 || row.CHECKED) { \r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n else if (filter.value === false)\r\n { \r\n \r\n let notChecked = false;\r\n const id_electiva = String(row.ID_SECCION).split(\"-\")[1];\r\n this.state.rows.map((item)=>{\r\n\r\n if (item.TREE !== null && (id_electiva === undefined || String(item.ID_SECCION) === id_electiva))\r\n {\r\n item.TREE.map((_item)=>{\r\n\r\n if (_item.TREE !== null){\r\n _item.TREE.map((__item)=>{\r\n if (String(__item.ID_SECCION).split(\"-\")[1] === id_electiva && (__item.CHECKED === 1 || __item.CHECKED))\r\n notChecked = true; \r\n\r\n return __item;\r\n });\r\n }\r\n\r\n if (_item.CODIGO_CURSO === row.CODIGO_CURSO && (_item.CHECKED === 1 || _item.CHECKED) && row.ROOT_TREE !== \"...\")\r\n notChecked = true; \r\n\r\n return _item;\r\n });\r\n }\r\n\r\n if (item.CODIGO_CURSO === row.CODIGO_CURSO && (item.CHECKED === 1 || item.CHECKED))\r\n notChecked = true; \r\n\r\n return item;\r\n });\r\n\r\n\r\n if ((row.CHECKED === 0 || !row.CHECKED) && !notChecked) { \r\n \r\n return true; \r\n }\r\n \r\n return false;\r\n\r\n }\r\n\r\n return true;\r\n\r\n },\r\n }, \r\n { columnName: 'CODIGO_CURSO',\r\n predicate: (value, filter, row) => {\r\n \r\n if (this.filterStringChildrens(\"CODIGO_CURSO\", filter.value, row))\r\n return true;\r\n \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n }\r\n },\r\n { columnName: 'DESCRIPCION_CURSO',\r\n predicate: (value, filter, row) => {\r\n \r\n if (this.filterStringChildrens(\"DESCRIPCION_CURSO\", filter.value, row))\r\n return true;\r\n \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n }\r\n },\r\n ];\r\n this.botones_lista_espera=[\r\n {icono: 'Check', toolt: '', nombre: 'Aceptar', onclick: this.handleOkLE, display:'auto'},\r\n {icono: 'Close', toolt: '', nombre: 'Cerrar' ,onclick: this.handleCloseListaEspera, display:'auto', color: 'red'},\r\n ];\r\n this.botones_lista_espera_dir=[\r\n {icono: 'Person', toolt: '', nombre: 'Agregar cupo', onclick: this.handleOkCupo, display:'auto', color: 'green'},\r\n {icono: 'Check', toolt: '', nombre: 'Lista esp.', onclick: this.handleOkLE, display:'auto'},\r\n ];\r\n this.selectionNewTmp=[];\r\n this.selectionOldTmp=[];\r\n this.baseHibridaTmp=null;\r\n this.baseSelectionHibridaTmp=[];\r\n this.coHibridaTmp=null;\r\n this.coSelectionHibridaTmp=[];\r\n this.selectionCoNewTmp = [];\r\n}\r\n\r\nonBlurAutoComplete = ()=>{\r\n\r\n if (this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: false }); \r\n \r\n}\r\n \r\nonChangeInput = (e, value)=>{ \r\n \r\n if (e === null || e.target.value === undefined)\r\n {\r\n if (this.state.openAutoComplete) \r\n this.setState({ openAutoComplete: false });\r\n \r\n return;\r\n }\r\n \r\n if ((e.target.value.toString().trim().length < 3 || (this.state.valueAutoComplete !== null && value === this.state.valueAutoComplete.CUENTA_ALUMNO + ' | ' + this.state.valueAutoComplete.NOMBRE_COMPLETO)) && this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: false });\r\n else if (e.target.value.toString().trim().length >= 3 && !this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: true });\r\n \r\n}\r\n\r\nonChangeAutocomplete = (event, value) =>{\r\n \r\nplanes = [];\r\nthis.electivasOpens=[];\r\nthis.setState({ valueAutoComplete: value, \r\n openAutoComplete: false, \r\n rows: [], \r\n datosSelectModPago: [],\r\n selectedModPago: '',\r\n expandedRowIds: [], \r\n selection: [], \r\n expandedGroup: [],\r\n rowsLE: [],\r\n countLE: 0,\r\n filters: [],\r\n filterCheck: undefined }, ()=>{\r\n \r\n if (value === null)\r\n {\r\n return;\r\n }\r\n \r\n this.handleChangeCuenta(null); \r\n \r\n }); \r\n \r\n}\r\n\r\nfiltersClientes = (value)=>{ \r\n \r\n new Request\r\n .get(`${globales.ip}/matricula/estudiantes/${value}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(0)\r\n .timeout({ response: 40000, deadline: 50000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ optionAutocomplete: [], openAutoComplete: false, loadingClientes: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n this.setState({ optionAutocomplete: rows, loadingClientes: false }); \r\n \r\n \r\n});\r\n \r\n}\r\n\r\nonRefresh = ()=>{\r\n \r\n this.setState({ loadingClientes: true }, ()=>{ \r\n this.filtersClientes('-');\r\n });\r\n \r\n}\r\n\r\nhandleChangeCuenta = (event) => {\r\n \r\nthis.cuenta = (event === null && tokenInfo.plataforma === 2) ? tokenInfo.user : tokenInfo.plataforma === 1 ? this.state.valueAutoComplete.CUENTA_ALUMNO : null;\r\nthis.setState({ openBackDropInvisible: true }, ()=>{ \r\n \r\n new Request\r\n .get(`${globales.ip}/matricula/modalidades_pago/${this.cuenta}/${tokenInfo.user}/${tokenInfo.plataforma}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 20000, deadline: 50000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ datosSelectModPago: [], selectedModPago: '', openBackDropInvisible: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n }); \r\n \r\n return;\r\n }\r\n \r\n let modalidades = JSON.parse(res.text); \r\n \r\n if (tokenInfo.plataforma !== 1){\r\n modalidades = modalidades.filter(x => x.VISIBLE_WEB || x.ID_MODALIDAD_CLIENTE);\r\n if (modalidades.find(x => x.ID_MODALIDAD_CLIENTE && !x.VISIBLE_WEB))\r\n modalidades = modalidades.filter(x => x.ID_MODALIDAD_CLIENTE && !x.VISIBLE_WEB);\r\n }\r\n \r\n let items = modalidades.map((datos, i) =>{\r\n return {datos.MOD_PAGO_DESCRIPCION} \r\n });\r\n\r\n const modalidadSel = modalidades.find(x => x.ID_MODALIDAD_CLIENTE);\r\n\r\n this.setState({ datosSelectModPago: items, \r\n selectedModPago: modalidadSel !== undefined ? modalidadSel.MOD_PAGO_ID : \"\", \r\n openBackDropInvisible: false,\r\n loadingMain: true }, ()=>{ \r\n this.obtener_planes(this.cuenta)\r\n this.obtener_lista_espera(this.cuenta);\r\n this.obtener_oferta(this.cuenta); \r\n });\r\n \r\n }); \r\n \r\n });\r\n \r\n}\r\n\r\nobtener_oferta = (cuenta)=>{\r\n\r\n new Request\r\n .get(`${globales.ip}/matricula/oferta/${cuenta}/${tokenInfo.user}/${tokenInfo.sucursal}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 60000, deadline: 60000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ rows: [], expandedGroups: [], selection: [], loadingMain: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n }); \r\n \r\n return;\r\n }\r\n \r\n const rowsOferta = JSON.parse(res.text); \r\n \r\n if (rowsOferta.length > 0)\r\n { \r\n \r\n const infoTable = this.formatRows(rowsOferta); \r\n this.setState({ rows: infoTable.rows, expandedGroups: infoTable.expandedGroup, selection: infoTable.selection, loadingMain: false });\r\n \r\n }\r\n else \r\n {\r\n this.setState({ rows: [], expandedGroups: [], selection: [], loadingMain: false });\r\n } \r\n \r\n });\r\n\r\n}\r\n\r\nobtener_planes= (cuenta)=>{\r\n\r\nnew Request\r\n .get(`${globales.ip}/matricula/planes/${cuenta}/${tokenInfo.plataforma}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 50000, deadline: 50000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n funciones.showToast('e', 'No hay conexión');\r\n \r\n return;\r\n }\r\n \r\n planes = JSON.parse(res.text).filter(x => x.ESTADO.trim() === 'ACTIVO'); \r\n \r\n}); \r\n\r\n}\r\n\r\nchangeExpandedGroups = expandedGroups =>\r\n{\r\n this.setState({ expandedGroups }); \r\n}\r\n\r\nchangeSelection = selection =>{ \r\n\r\n if (funciones.isEmpty(this.state.selectedModPago)){\r\n funciones.showToast(\"w\", \"Es necesario que seleccione una modalidad de pago\");\r\n return;\r\n }\r\n \r\n const selection_original = selection.slice(); \r\n\r\n let row = funciones.getIdRowChecking(selection, this.state.selection).split(\"-\"); \r\n const markAction = selection.length > this.state.selection.length ? true : false;\r\n\r\n checkId = row[1] !== undefined ? row[0] + \"-\" + row[1] : row[0];\r\n\r\n if (markAction){\r\n selection.push(this.getIdHdr(row[0], row[1])); \r\n if (row[1] !== undefined)\r\n selection.push(row[1]);\r\n }\r\n else{\r\n selection = selection.filter(x => x !== this.getIdHdr(row[0], row[1]));\r\n if (row[1] !== undefined)\r\n selection = selection.filter(x => x !== row[1]);\r\n }\r\n \r\n let rowChecked = this.getInfoRowChecked(checkId); \r\n if (rowChecked.ID_ESTADO_MODALIDAD === 2 && this.baseHibridaTmp === null && markAction)\r\n {\r\n this.baseSelectionHibridaTmp = selection_original;\r\n this.setState({ refHibrida: 1,\r\n cuposHibridaA: rowChecked.AUTONOMA !== 2 ? rowChecked.DISPONIBLE : rowChecked.DISPONIBLE_MODALIDAD, \r\n cuposHibridaB: rowChecked.AUTONOMA !== 2 ? rowChecked.DISPONIBLE_MODALIDAD : rowChecked.DISPONIBLE, \r\n titleModalHibrida: \"Sección híbrida\",\r\n openModalHibrida: true });\r\n return;\r\n }\r\n \r\n if (rowChecked.CORREQUISITOS === 1 && markAction)\r\n { \r\n this.selectionNewTmp = selection;\r\n this.selectionOldTmp = this.state.selection;\r\n this.setState({ loadingCorreq: true, rowsCorreq: [], selectionCorreq: [], openModalCorrequsito: true }, ()=>{\r\n this.obtenerSeccionesCorreq(rowChecked.ID_DETALLE_PLAN); \r\n });\r\n return;\r\n }\r\n \r\n this.setState({ loadingCheck: true }, ()=>{\r\n \r\n this.gestion_matricula(row[0], \r\n 'null', \r\n rowChecked.CODIGO_CURSO,\r\n 'null', \r\n rowChecked.ID_PLAN, \r\n row[1] !== undefined ? row[1] : 'null', \r\n !markAction && rowChecked.ESTATUS_FINANCIERO === \"W\" ? 1 : 0, \r\n this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp, \r\n 'null', \r\n markAction ? 1 : 2)\r\n .then((res)=>{\r\n \r\n if (res === null){\r\n this.resetValuesSeccionHibrida();\r\n return; \r\n } \r\n\r\n if (res[0].RESP === 'OK')\r\n { \r\n this.setState({ selection, loadingCheck: false }, ()=> { \r\n if (!markAction && rowChecked.ESTATUS_FINANCIERO === \"W\") {\r\n this.setState({ countLE: this.state.countLE - 1 }); \r\n }\r\n this.setValuesRow(checkId, true, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD, markAction ? \"T\" : null, markAction ? this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp : null); \r\n funciones.showToast('s', \"Ha \" + (markAction ? \"marcado \" : \"desmarcado \") + rowChecked.DESCRIPCION_CURSO + \" Sección \" + rowChecked.NUMERO_SECCION); \r\n this.resetValuesSeccionHibrida();\r\n }); \r\n\r\n }\r\n else if (res[0].RESP === 'LISTA_ESPERA' && res[0].HABILITADO_LE && markAction){\r\n\r\n this.selectionNewTmp = selection;\r\n this.setState({ loadingCheck: false, \r\n showButtomsDirLE: res[0].HABILITA_CUPO_DIRECTO, \r\n messageLE: this.getMessageLE(res[0].HABILITA_CUPO_DIRECTO), \r\n closeTimeLE: 30,\r\n openModalListaEspera: true }, ()=>{\r\n this.setValuesRow(checkId, false, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD);\r\n });\r\n\r\n }\r\n else\r\n {\r\n this.setState({ loadingCheck: false }, ()=> { \r\n this.setValuesRow(checkId, false, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD);\r\n funciones.showToast('w', res[0].RESP); \r\n this.resetValuesSeccionHibrida();\r\n }); \r\n\r\n }\r\n\r\n });\r\n \r\n });\r\n \r\n}\r\n\r\nchangeFilters = filters =>{\r\n this.setState({ filters });\r\n}\r\n\r\nchangeExpandedRowIds = expandedRowIds => {\r\n\r\n const row = funciones.getIdRowChecking(expandedRowIds, this.state.expandedRowIds).split(\"-\"); \r\n const haveOptativas = this.state.rows.find(x => String(x.ID_SECCION) === row[0]); \r\n\r\n if (this.electivasOpens.find(x => x === row[0]) || haveOptativas === undefined || haveOptativas.OPTATIVA === 0){ \r\n return this.setState({ expandedRowIds});\r\n } \r\n\r\n this.electivasOpens.push(row[0]); \r\n this.setState({ expandedRowIds, openBackDropInvisible: true }, ()=>{\r\n \r\n new Request\r\n .get(`${globales.ip}/matricula/oferta_optativa/${this.cuenta}/${parseInt(row[0])}/${tokenInfo.sucursal}/${tokenInfo.user}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 50000, deadline: 40000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.electivasOpens = this.electivasOpens.filter(x => x !== row[0]);\r\n this.setState({ expandedRowIds: this.state.expandedRowIds.filter(x => x !== row[0]), \r\n openBackDropInvisible: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n \r\n if (rows.length > 0)\r\n { \r\n const infoTable = this.formatOptativeRows(rows, row[0]);\r\n this.setOptativas(this.state.rows, infoTable.rows, row[0]);\r\n this.setState({ selection: infoTable.selection, openBackDropInvisible: false });\r\n }\r\n else \r\n { \r\n this.setOptativas(this.state.rows, null, row[0]);\r\n this.setState({ openBackDropInvisible: false });\r\n } \r\n \r\n });\r\n\r\n });\r\n}\r\n\r\nsetOptativas = (current_rows, rows_optativas, id_seccion)=>{\r\n \r\n this.reducerRows.dispatch({\r\n type: \"SET_OPTATIVAS\",\r\n current_rows: current_rows,\r\n rows_optativas: rows_optativas,\r\n id_seccion: id_seccion\r\n });\r\n\r\n}\r\n\r\nformatRows = (rows)=>{\r\n\r\nlet parentRows = rows.filter(x => (x.HDR === 1 || x.OPTATIVA === 1));\r\n\r\nparentRows.map((item, index)=>{\r\n\r\nitem.TREE = item.OPTATIVA === 1 ? \r\n [{ ROOT_TREE: \"...\",\r\n ID_SECCION: index * -1, \r\n CODIGO_CURSO: null, \r\n DESCRIPCION_CURSO: null, \r\n CREDITOS: null, \r\n DIAS: null, \r\n INICIO: null, \r\n FIN: null,\r\n AULA: null, \r\n NUMERO_SECCION: null, \r\n PERIODO: item.PERIODO, \r\n DISPONIBLE: null, \r\n ID_PLAN: item.ID_PLAN, \r\n ESTATUS_FINANCIERO: null, \r\n NOMBRE_COMPLETO: null, \r\n GRUPO: null,\r\n OPTATIVA: 0, \r\n CHECKED: item.CHECKED,\r\n TREE: null,\r\n HDR: 1 }] :\r\n rows.filter(x => x.CODIGO_CURSO === item.CODIGO_CURSO && x.HDR === 0);\r\n\r\nreturn item;\r\n\r\n});\r\n\r\nlet allGroups = [];\r\nlet foundPlan;\r\nlet foundPeriodo;\r\nlet selection = [];\r\n\r\nrows.map((item, index)=>{\r\n\r\n foundPlan = allGroups.find(x => x === item.ID_PLAN.toString());\r\n if (foundPlan === undefined){\r\n allGroups.push(item.ID_PLAN.toString());\r\n }else {\r\n foundPlan = undefined;\r\n }\r\n\r\n foundPeriodo= allGroups.find(x => x === item.ID_PLAN + '|' + item.PERIODO);\r\n if (foundPeriodo === undefined){\r\n allGroups.push(item.ID_PLAN + '|' + item.PERIODO);\r\n }else {\r\n foundPeriodo = undefined;\r\n }\r\n \r\n if (item.CHECKED)\r\n {\r\n selection.push(String(item.ID_SECCION));\r\n }\r\n\r\n return item;\r\n});\r\n\r\nreturn { rows: parentRows, selection: selection, expandedGroup: allGroups }\r\n\r\n}\r\n\r\nformatOptativeRows = (rows, idElectiva)=>{\r\n\r\nlet parentRows = rows.filter(x => (x.HDR === 1));\r\n\r\nparentRows.map((item, index)=>{ \r\n\r\n item.TREE = rows.filter(x => x.CODIGO_CURSO === item.CODIGO_CURSO && x.HDR === 0);\r\n\r\n return item;\r\n});\r\n\r\nlet selection = this.state.selection; \r\n \r\nrows.map((item, index)=>{\r\n item.ID_SECCION = String(item.ID_SECCION) + \"-\" + idElectiva;\r\n \r\n if (item.CHECKED)\r\n {\r\n selection.push(String(item.ID_SECCION));\r\n }\r\n\r\n return item;\r\n});\r\n\r\nreturn { rows: parentRows, selection: selection }\r\n\r\n}\r\n\r\ngetIdHdr = (id_row, id_electiva)=>{\r\n\r\n let idRowHdr = null;\r\n \r\n this.state.rows.map((item)=>{\r\n \r\n if (item.TREE !== null && (id_electiva === undefined || String(item.ID_SECCION) === id_electiva)){\r\n \r\n item.TREE.map((_item)=>{\r\n \r\n if (_item.TREE !== null){\r\n \r\n _item.TREE.map((__item)=>{\r\n if (String(__item.ID_SECCION).split(\"-\")[0] === id_row && _item.HDR === 1 && idRowHdr === null){\r\n idRowHdr = String(_item.ID_SECCION); \r\n }\r\n return __item; \r\n });\r\n \r\n }\r\n \r\n if (String(_item.ID_SECCION) === id_row && item.HDR === 1 && idRowHdr === null)\r\n {\r\n idRowHdr = String(item.ID_SECCION); \r\n }\r\n \r\n return _item;\r\n });\r\n \r\n }\r\n \r\n return item;\r\n });\r\n \r\n return idRowHdr;\r\n \r\n}\r\n\r\nhandleChangeCheckFilter = (event) => {\r\n \r\n const value = event === null ? this.state.filterCheck\r\n : this.state.filterCheck === false ? undefined: event.target.checked;\r\n let filter = this.state.filters.filter(x=> x.columnName !== 'ROOT_TREE');\r\n \r\n this.setState({ filterCheck: value, \r\n filters: [...filter, {columnName: 'ROOT_TREE', \r\n operation: 'equal', \r\n value: value }], \r\n });\r\n\r\n}\r\n\r\nsetValuesRow = (id_row, changeValueCheck, disponible, disponible_mod, estado, hibrida)=>{\r\n\r\nthis.state.rows.map((item)=>{\r\n\r\n if (item.TREE !== null)\r\n {\r\n item.TREE.map((_item)=>{\r\n \r\n if (_item.TREE !== null){\r\n _item.TREE.map((__item)=>{\r\n if (String(__item.ID_SECCION) === id_row){ \r\n if (changeValueCheck){\r\n item.CHECKED = item.CHECKED === 0 ? 1 : 0;\r\n _item.CHECKED = !_item.CHECKED ? true : false;\r\n __item.CHECKED = !__item.CHECKED ? true : false;\r\n }\r\n\r\n __item.DISPONIBLE = disponible !== undefined ? disponible : __item.DISPONIBLE;\r\n __item.DISPONIBLE_MODALIDAD = disponible_mod !== undefined ? disponible_mod : __item.DISPONIBLE_MODALIDAD;\r\n __item.ESTATUS_FINANCIERO = estado !== undefined ? estado : __item.ESTATUS_FINANCIERO;\r\n __item.HIBRIDA = hibrida !== undefined ? hibrida : __item.HIBRIDA;\r\n }\r\n return __item;\r\n });\r\n }\r\n\r\n if (String(_item.ID_SECCION) === id_row)\r\n { \r\n if (changeValueCheck){\r\n item.CHECKED = item.CHECKED === 0 ? 1 : 0;\r\n _item.CHECKED = _item.CHECKED === 0 ? 1 : 0;\r\n }\r\n\r\n _item.DISPONIBLE = disponible !== undefined ? disponible : _item.DISPONIBLE;\r\n _item.DISPONIBLE_MODALIDAD = disponible_mod !== undefined ? disponible_mod : _item.DISPONIBLE_MODALIDAD;\r\n _item.ESTATUS_FINANCIERO = estado !== undefined ? estado : _item.ESTATUS_FINANCIERO;\r\n _item.HIBRIDA = hibrida !== undefined ? hibrida : _item.HIBRIDA;\r\n }\r\n\r\n return _item;\r\n });\r\n }\r\n\r\n return item;\r\n}); \r\nthis.handleChangeCheckFilter(null);\r\n}\r\n\r\nsetCheckedRowCo = (id_row, changeValueCheck, disponible, disponible_mod, hibrida)=>{\r\n\r\nthis.state.rowsCorreq.map((item)=>{\r\n \r\n if (String(item.ID_SECCION) === id_row){\r\n if (changeValueCheck)\r\n item.CHECKED = item.CHECKED ? false : true;\r\n \r\n item.DISPONIBLE = disponible;\r\n item.DISPONIBLE_MODALIDAD = disponible_mod;\r\n item.HIBRIDA = hibrida !== undefined ? hibrida : item.HIBRIDA;\r\n }\r\n\r\n return item;\r\n});\r\n\r\n}\r\n\r\nfilterStringChildrens = (columnName, filterValue, row)=>{\r\n\r\n let findChild=false;\r\n \r\n this.state.rows.map((item)=>{ \r\n\r\n if (item.TREE !== null)\r\n {\r\n item.TREE.map((_item)=>{ \r\n \r\n if (_item.TREE !== null){\r\n _item.TREE.map((__item)=> { \r\n\r\n if (item[columnName].toLocaleLowerCase().includes(filterValue.toLocaleLowerCase()) && \r\n String(__item.ID_SECCION) === String(row.ID_SECCION)){\r\n findChild= true;\r\n }\r\n\r\n return __item;\r\n });\r\n }\r\n\r\n if (item[columnName].toLocaleLowerCase().includes(filterValue.toLocaleLowerCase()) && \r\n String(_item.ID_SECCION) === String(row.ID_SECCION)){\r\n findChild= true;\r\n }\r\n \r\n return _item; \r\n });\r\n\r\n }\r\n \r\n return item;\r\n\r\n });\r\n\r\nreturn findChild;\r\n\r\n}\r\n\r\ngetInfoRowChecked=(id_seccion)=>{\r\n\r\n var row=[];\r\n\r\n this.state.rows.map((item)=>{\r\n\r\n if (item.TREE !== null)\r\n {\r\n item.TREE.map((_item)=>{\r\n \r\n if (_item.TREE !== null){\r\n _item.TREE.map((__item)=>{\r\n if (String(__item.ID_SECCION) === id_seccion){ \r\n row=__item;\r\n }\r\n return __item;\r\n });\r\n }\r\n \r\n if (String(_item.ID_SECCION) === id_seccion)\r\n { \r\n row=_item;\r\n }\r\n \r\n return _item;\r\n });\r\n }\r\n \r\n return item;\r\n });\r\n\r\n return row;\r\n\r\n}\r\n\r\nhandleCloseCorrequisito= ()=>{\r\n checkIdCo = undefined;\r\n this.selectionNewTmp= [];\r\n this.selectionOldTmp= [];\r\n this.selectionCoNewTmp = [];\r\n this.resetValuesSeccionHibrida();\r\n this.setState({ openModalCorrequsito: false });\r\n}\r\n\r\nobtenerSeccionesCorreq = (id_detalle_plan)=>{\r\n\r\nnew Request\r\n.get(`${globales.ip}/matricula/oferta_correquisito/${this.cuenta}/${id_detalle_plan}`)\r\n.set({'authorization': 'Bearer ' + Auth.getToken() })\r\n.retry(1)\r\n.timeout({ response: 30000, deadline: 40000, }) \r\n.end((err, res) => {\r\n \r\n if (err) { \r\n\r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n\r\n this.setState({ rowsCorreq: [], loadingCorreq: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n }); \r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text); \r\n \r\n if (rows.length > 0) \r\n { \r\n const haveChecked = rows.find(x => x.CHECKED) ? true : false; \r\n this.setState({ rowsCorreq: rows, disabledChecksCo: haveChecked, loadingCorreq: false }); \r\n }\r\n else \r\n {\r\n this.setState({ rowsCorreq: [], loadingCorreq: false });\r\n } \r\n \r\n});\r\n\r\n} \r\n\r\nonEnteringCorrequisito = ()=>{\r\n\r\nthis.setState({ heightTableCorreq: funciones.getHeightTableDialog(movil, this.tablaCorreqRef, this.dialogActionRef, 3) });\r\n\r\n}\r\n\r\nchangeSelectionCorreq = selectionCorreq =>{\r\n \r\n checkIdCo = funciones.getIdRowChecking(selectionCorreq, this.state.selectionCorreq);\r\n const markAction = selectionCorreq.length > this.state.selectionCorreq.length ? true : false;\r\n \r\n let rowChecked = this.getInfoRowChecked(checkId);\r\n let rowCoChecked = this.state.rowsCorreq.find(x => x.ID_SECCION === parseInt(checkIdCo)); \r\n\r\n let seccionBase = String(rowChecked.ID_SECCION).split(\"-\");\r\n\r\n if (rowCoChecked.ID_ESTADO_MODALIDAD === 2 && this.coHibridaTmp === null && markAction)\r\n {\r\n this.coSelectionHibridaTmp = selectionCorreq;\r\n this.setState({ refHibrida: 2, \r\n cuposHibridaA: rowCoChecked.AUTONOMA !== 2 ? rowCoChecked.DISPONIBLE : rowCoChecked.DISPONIBLE_MODALIDAD,\r\n cuposHibridaB: rowCoChecked.AUTONOMA !== 2 ? rowCoChecked.DISPONIBLE_MODALIDAD : rowCoChecked.DISPONIBLE,\r\n titleModalHibrida: \"Sección correquisito híbrida\",\r\n openModalHibrida: true });\r\n return;\r\n }\r\n\r\n this.setState({ loadingCheck: true }, ()=>{\r\n \r\n this.gestion_matricula(parseInt(seccionBase[0]),\r\n rowCoChecked.ID_SECCION, \r\n rowChecked.CODIGO_CURSO, \r\n rowCoChecked.CODIGO_CURSO,\r\n rowChecked.ID_PLAN, \r\n seccionBase[1] !== undefined ? seccionBase[1] : 'null', \r\n !markAction && rowChecked.ESTATUS_FINANCIERO === \"W\" ? 1 : 0, \r\n this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp,\r\n this.coHibridaTmp === null ? 0 : this.coHibridaTmp, \r\n markAction ? 3 : 2)\r\n .then((res)=>{ \r\n\r\n if (res === null){\r\n this.resetValuesSeccionHibridaCo();\r\n return;\r\n }\r\n \r\n if (res[0].RESP === 'OK' && res[0].RESP_CORREQUISITO === 'OK')\r\n { \r\n \r\n if (markAction){\r\n\r\n this.gestion_matricula(parseInt(seccionBase[0]),\r\n rowCoChecked.ID_SECCION, \r\n rowChecked.CODIGO_CURSO, \r\n rowCoChecked.CODIGO_CURSO,\r\n rowChecked.ID_PLAN, \r\n seccionBase[1] !== undefined ? seccionBase[1] : 'null', \r\n 0, \r\n this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp,\r\n this.coHibridaTmp === null ? 0 : this.coHibridaTmp, \r\n 1)\r\n .then((_res)=>{\r\n\r\n if (_res === null){\r\n this.resetValuesSeccionHibridaCo();\r\n return;\r\n } \r\n\r\n if (_res[0].RESP === 'OK' && _res[0].RESP_CORREQUISITO === 'OK')\r\n {\r\n this.setState({selection: this.selectionNewTmp, selectionCorreq, loadingCheck: false }, ()=> { \r\n this.setCheckedRowCo(checkIdCo, true, _res[0].DISPONIBLE_CORREQUISITO, _res[0].DISPONIBLE_MODALIDAD_CORREQUISITO, this.coHibridaTmp === null ? 0 : this.coHibridaTmp);\r\n this.setValuesRow(checkId, true, _res[0].DISPONIBLE, _res[0].DISPONIBLE_MODALIDAD, \"T\", this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp);\r\n funciones.showToast('s', \"Ha marcado \" + rowChecked.DESCRIPCION_CURSO + \" Sección \" + rowChecked.NUMERO_SECCION);\r\n funciones.showToast('s', \"Ha marcado \" + rowCoChecked.DESCRIPCION_CURSO + \" Sección \" + rowCoChecked.NUMERO_SECCION);\r\n this.resetValuesSeccionHibridaCo();\r\n }); \r\n\r\n }\r\n else\r\n {\r\n this.setState({ loadingCheck: false }, ()=> { \r\n this.setCheckedRowCo(checkIdCo, false, _res[0].DISPONIBLE_CORREQUISITO, _res[0].DISPONIBLE_MODALIDAD_CORREQUISITO);\r\n this.setValuesRow(checkId, false, _res[0].DISPONIBLE, _res[0].DISPONIBLE_MODALIDAD);\r\n this.resetValuesSeccionHibridaCo();\r\n\r\n if (_res[0].RESP !== 'OK')\r\n return funciones.showToast('w', _res[0].RESP + \" (Curso base)\"); \r\n \r\n funciones.showToast('w', _res[0].RESP_CORREQUISITO + \" (Correquisito)\")\r\n \r\n });\r\n }\r\n\r\n });\r\n\r\n }\r\n else{\r\n \r\n this.setState({ selection: this.selectionOldTmp, selectionCorreq, loadingCheck: false}, ()=>{\r\n if (!markAction && rowChecked.ESTATUS_FINANCIERO === \"W\") {\r\n this.setState({ countLE: this.state.countLE - 1 }); \r\n }\r\n this.setCheckedRowCo(checkIdCo, true, res[0].DISPONIBLE_CORREQUISITO, res[0].DISPONIBLE_MODALIDAD_CORREQUISITO, null);\r\n this.setValuesRow(checkId, true, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD, null, null);\r\n funciones.showToast('s', \"Ha desmarcado \" + rowChecked.DESCRIPCION_CURSO + \" Sección \" + rowChecked.NUMERO_SECCION);\r\n funciones.showToast('s', \"Ha desmarcado \" + rowCoChecked.DESCRIPCION_CURSO + \" Sección \" + rowCoChecked.NUMERO_SECCION);\r\n });\r\n \r\n }\r\n\r\n }\r\n else if (res[0].RESP === 'LISTA_ESPERA' && res[0].HABILITADO_LE && markAction){\r\n\r\n this.selectionCoNewTmp = selectionCorreq;\r\n this.setState({ loadingCheck: false, \r\n showButtomsDirLE: res[0].HABILITA_CUPO_DIRECTO, \r\n messageLE: this.getMessageLE(res[0].HABILITA_CUPO_DIRECTO) + \" (Curso base)\", \r\n closeTimeLE: 30,\r\n openModalListaEspera: true }, ()=>{\r\n this.setValuesRow(checkId, false, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD);\r\n this.setCheckedRowCo(checkIdCo, false, res[0].DISPONIBLE_CORREQUISITO, res[0].DISPONIBLE_MODALIDAD_CORREQUISITO);\r\n\r\n });\r\n \r\n }\r\n else \r\n {\r\n this.setState({ loadingCheck: false }, ()=> { \r\n this.setCheckedRowCo(checkIdCo, false, res[0].DISPONIBLE_CORREQUISITO, res[0].DISPONIBLE_MODALIDAD_CORREQUISITO);\r\n this.setValuesRow(checkId, false, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD);\r\n this.resetValuesSeccionHibridaCo(); \r\n \r\n if (res[0].RESP !== 'OK')\r\n return funciones.showToast('w', res[0].RESP + \" (Curso base)\"); \r\n \r\n funciones.showToast('w', res[0].RESP_CORREQUISITO + \" (Correquisito)\")\r\n\r\n }); \r\n }\r\n \r\n\r\n });\r\n \r\n \r\n });\r\n\r\n}\r\n\r\ngestion_matricula = async (id_seccion, id_seccion_co, codigo, codigo_co, id_plan, id_detalle_plan, lista_espera, hibrida, hibrida_co, tipo)=>{\r\n\r\n return await new Promise(resolve => {\r\n\r\n new Request\r\n .post(`${globales.ip}/matricula`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ id_seccion: parseInt(id_seccion), \r\n id_seccion_co: id_seccion_co,\r\n codigo_curso: codigo, \r\n codigo_curso_co: codigo_co,\r\n cuenta_alumno: this.cuenta,\r\n id_plan: id_plan,\r\n ad_usuario: tokenInfo.user,\r\n id_cajero: 2,\r\n id_detalle_plan: id_detalle_plan,\r\n lista_espera: lista_espera,\r\n hibrida: hibrida,\r\n hibrida_co: hibrida_co,\r\n tipo: tipo,\r\n })\r\n .retry(0)\r\n .timeout({ response: 50000, deadline: 60000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ loadingCheck: false, openBackDrop: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión'); \r\n });\r\n \r\n return resolve(null);\r\n }\r\n \r\n const rows = JSON.parse(res.text); \r\n \r\n if (rows.length > 0)\r\n { \r\n resolve(rows);\r\n } \r\n \r\n });\r\n\r\n});\r\n\r\n}\r\n\r\nhandleCloseListaEspera = ()=>{\r\n \r\n this.setState({ openModalListaEspera: false }, ()=>{\r\n clearInterval(this.count);\r\n this.resetValuesSeccionHibridaCo();\r\n if (!this.state.openModalCorrequsito){\r\n this.resetValuesSeccionHibrida();\r\n }\r\n });\r\n\r\n}\r\n\r\nhandleChangeModPago = (event)=>{\r\n\r\n const id_mod_pago_old = this.state.selectedModPago;\r\n const id_mod_pago_new = event.target.value; \r\n\r\n this.setState({ selectedModPago: event.target.value, \r\n transitionDurationBackdrop: { enter: 2000, exit: 500 },\r\n messageBackdrop: \"Configurando modalidad de pago...\",\r\n openBackDrop: true }, ()=>{\r\n \r\n new Request\r\n .post(`${globales.ip}/matricula/modalidades_pago/modalidad`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ cuenta_alumno: this.cuenta, \r\n ad_usuario: tokenInfo.user,\r\n id_modalidad: id_mod_pago_new })\r\n .retry(0)\r\n .timeout({ response: 50000, deadline: 50000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ selectedModPago: id_mod_pago_old, openBackDrop: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión'); \r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text); \r\n \r\n if (rows[0].RESP === 'OK')\r\n this.setState({ openBackDrop: false }); \r\n else\r\n this.setState({ selectedModPago: id_mod_pago_old, openBackDrop: false }, ()=>{ \r\n funciones.showToast('w', rows[0].RESP); \r\n }); \r\n \r\n });\r\n\r\n });\r\n\r\n}\r\n\r\nhandleResumen = ()=>{\r\n document.getElementById(\"BTRM\").click();\r\n}\r\n\r\nhandleDetalle = ()=>{\r\n\r\n this.setState({ openModalDetalle: true });\r\n\r\n}\r\n\r\nhandleCloseDetalle = ()=>{\r\n\r\n this.setState({ openModalDetalle: false });\r\n\r\n}\r\n\r\nonEnteringDetalle= ()=>{\r\n\r\n this.setState({ heightTableDetalle: funciones.getHeightTableDialog(movil, this.tablaDetalleRef, this.dialogActionDetalleRef, 3), loadingDetalle: true }, ()=>{\r\n \r\n new Request\r\n .get(`${globales.ip}/matricula/modalidades_pago/detalle_pago/${this.cuenta}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 40000, deadline: 40000, })\r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ rowsDetalle: [], loadingDetalle: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text); \r\n \r\n if (rows.length > 0)\r\n { \r\n this.setState({ rowsDetalle: rows, loadingDetalle: false });\r\n }\r\n else\r\n {\r\n this.setState({ rowsDetalle: [], loadingDetalle: false });\r\n } \r\n \r\n });\r\n\r\n });\r\n\r\n}\r\n\r\nhandleCloseHibrida = ()=>{\r\n this.setState({ openModalHibrida: false });\r\n}\r\n\r\nonClickListItem = (valueHibrida) => async (event)=>{\r\n \r\n if (this.state.refHibrida === 1){\r\n const infoRow = this.getInfoRowChecked(checkId);\r\n this.baseHibridaTmp = (infoRow.AUTONOMA === 2 && valueHibrida === \"PRE\") ||\r\n (infoRow.AUTONOMA === 1 && valueHibrida === \"PMV\") ? 1 : 0;\r\n await Promise.resolve(this.setState({ openModalHibrida: false }));\r\n this.changeSelection(this.baseSelectionHibridaTmp);\r\n }\r\n\r\n if (this.state.refHibrida === 2){\r\n const infoRowCo = this.state.rowsCorreq.find(x => x.ID_SECCION === parseInt(checkIdCo)); \r\n this.coHibridaTmp = (infoRowCo.AUTONOMA === 2 && valueHibrida === \"PRE\") ||\r\n (infoRowCo.AUTONOMA === 1 && valueHibrida === \"PMV\") ? 1 : 0;\r\n await Promise.resolve(this.setState({ openModalHibrida: false }));\r\n this.changeSelectionCorreq(this.coSelectionHibridaTmp);\r\n }\r\n\r\n \r\n}\r\n\r\nresetValuesSeccionHibrida=()=>{\r\n this.baseHibridaTmp=null;\r\n this.baseSelectionHibridaTmp=[];\r\n}\r\n\r\nresetValuesSeccionHibridaCo = ()=>{\r\n this.coHibridaTmp=null;\r\n this.coSelectionHibridaTmp=[];\r\n}\r\n\r\ngetMessageLE = (director)=>{\r\n\r\n return director ? \"Ya no hay cupo disponible en la sección. ¿Qué desea hacer?\" : \r\n \"Ya no hay cupo disponible en la sección. ¿Desea hacer la inscripción en lista de espera hasta que se libere un cupo?\";\r\n\r\n}\r\n\r\nhandleOkCupo = ()=>{\r\n\r\nclearInterval(this.count);\r\nconst rowChecked = this.getInfoRowChecked(checkId); \r\nconst id_seccion = parseInt(rowChecked.ID_SECCION.toString().split(\"-\")[0]);\r\n\r\nthis.setState({ transitionDurationBackdrop: undefined,\r\n messageBackdrop: \"Procesando...\",\r\n openBackDrop: true, \r\n openModalListaEspera: false }, ()=>{ \r\n\r\n new Request\r\n .post(`${globales.ip}/matricula/aumentar_cupo`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ id_seccion: id_seccion, \r\n hibrida: this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp, \r\n ad_usuario: tokenInfo.user })\r\n .retry(0)\r\n .timeout({ response: 30000, deadline: 40000 }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ openBackDrop: false }, ()=>{ \r\n this.resetValuesSeccionHibridaCo();\r\n funciones.showToast('e', 'No hay conexión'); \r\n });\r\n \r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n \r\n if (rows.length > 0)\r\n { \r\n if (rows[0].RESP === 'OK') \r\n { \r\n this.setState({ openBackDrop: false }, ()=> {\r\n this.setValuesRow(checkId, false, rows[0].DISPONIBLE, rows[0].DISPONIBLE_MODALIDAD);\r\n this.resetValuesSeccionHibridaCo();\r\n funciones.showToast('s', 'Se ha incrementado el cupo en la sección'); \r\n }); \r\n\r\n }\r\n else\r\n { \r\n this.setState({ openBackDrop: false }, ()=>{ \r\n this.setValuesRow(checkId, false, rows[0].DISPONIBLE, rows[0].DISPONIBLE_MODALIDAD);\r\n this.resetValuesSeccionHibridaCo();\r\n funciones.showToast('w', rows[0].RESP);\r\n }); \r\n }\r\n } \r\n \r\n });\r\n\r\n });\r\n\r\n}\r\n\r\nhandleOkLE = ()=>{\r\n\r\nclearInterval(this.count);\r\nconst rowChecked = this.getInfoRowChecked(checkId); \r\nconst rowCoChecked = this.state.rowsCorreq.find(x => x.ID_SECCION === parseInt(checkIdCo));\r\nconst row = rowChecked.ID_SECCION.toString().split(\"-\");\r\n\r\nthis.setState({ transitionDurationBackdrop: undefined,\r\n messageBackdrop: \"Procesando...\",\r\n openBackDrop: true, \r\n openModalListaEspera: false }, ()=>{ \r\n\r\n this.gestion_matricula(parseInt(row[0]),\r\n checkIdCo === undefined ? 'null' : rowCoChecked.ID_SECCION,\r\n rowChecked.CODIGO_CURSO,\r\n checkIdCo === undefined ? 'null' : rowCoChecked.CODIGO_CURSO,\r\n rowChecked.ID_PLAN,\r\n row[1] !== undefined ? row[1] : 'null',\r\n 1,\r\n this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp,\r\n this.coHibridaTmp === null ? 0 : this.coHibridaTmp,\r\n 1)\r\n .then((res)=>{ \r\n\r\n if (res === null){\r\n if (checkIdCo === undefined){\r\n this.resetValuesSeccionHibrida();\r\n }\r\n this.resetValuesSeccionHibridaCo();\r\n return; \r\n } \r\n \r\n if (res[0].RESP === 'OK' && (checkIdCo === undefined || (checkIdCo !== undefined && res[0].RESP_CORREQUISITO === 'OK')))\r\n { \r\n this.setState({ selection: this.selectionNewTmp,\r\n selectionCorreq: checkIdCo === undefined ? this.state.selectionCorreq : this.selectionCoNewTmp,\r\n countLE: this.state.countLE + 1, \r\n openBackDrop: false }, ()=>{\r\n\r\n this.setValuesRow(checkId, true, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD, \"W\", this.baseHibridaTmp === null ? 0 : this.baseHibridaTmp);\r\n if (checkIdCo !== undefined){\r\n this.setCheckedRowCo(checkIdCo, true, res[0].DISPONIBLE_CORREQUISITO, res[0].DISPONIBLE_MODALIDAD_CORREQUISITO, this.coHibridaTmp === null ? 0 : this.coHibridaTmp);\r\n }\r\n if (checkIdCo === undefined){\r\n this.resetValuesSeccionHibrida();\r\n }\r\n this.resetValuesSeccionHibridaCo();\r\n funciones.showToast('s', \"Se registró en lista de espera para \" + rowChecked.DESCRIPCION_CURSO + \" sección \" + rowChecked.NUMERO_SECCION);\r\n \r\n });\r\n }\r\n else \r\n {\r\n this.setState({ openBackDrop: false }, ()=>{\r\n this.setValuesRow(checkId, false, res[0].DISPONIBLE, res[0].DISPONIBLE_MODALIDAD);\r\n if (checkIdCo !== undefined){\r\n this.setCheckedRowCo(checkIdCo, false, res[0].DISPONIBLE_CORREQUISITO, res[0].DISPONIBLE_MODALIDAD_CORREQUISITO);\r\n }\r\n if (checkIdCo === undefined){\r\n this.resetValuesSeccionHibrida();\r\n }\r\n this.resetValuesSeccionHibridaCo();\r\n\r\n if (res[0].RESP !== \"OK\")\r\n return funciones.showToast('w', res[0].RESP);\r\n\r\n funciones.showToast('w', res[0].RESP_CORREQUISITO);\r\n\r\n });\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n}\r\n\r\ncountDown = ()=>{\r\n\r\n let time = this.state.closeTimeLE;\r\n \r\n this.count = setInterval(() => {\r\n time--;\r\n this.setState({ closeTimeLE: time < 0 ? 0 : time }, ()=>{\r\n if (time === -1){\r\n this.handleCloseListaEspera();\r\n return;\r\n }\r\n });\r\n \r\n }, 1000);\r\n\r\n}\r\n\r\nobtener_lista_espera = (cuenta)=>{\r\n\r\nthis.setState({ loadingLE: true }, ()=>{ \r\n\r\n new Request\r\n .get(`${globales.ip}/matricula/lista_espera/${cuenta}/${tokenInfo.user}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 30000, deadline: 40000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n\r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n\r\n this.setState({ rowsLE: [], countLE: 0, loadingLE: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n\r\n if (this.state.countLE !== rows.length){\r\n refreshOferta = true;\r\n }\r\n\r\n if (rows.length > 0) \r\n { \r\n this.setState({ rowsLE: rows, countLE: rows.length, loadingLE: false });\r\n }\r\n else \r\n {\r\n this.setState({ rowsLE: [], countLE: 0, loadingLE: false });\r\n } \r\n \r\n });\r\n\r\n});\r\n\r\n}\r\n\r\nhandleLE = ()=>{\r\nthis.setState({ openModalSeccionesLE: true });\r\n}\r\n\r\nhandleCloseSeccionesLE = ()=>{\r\n this.setState({ openModalSeccionesLE: false }, ()=>{\r\n if (refreshOferta)\r\n this.setState({ loadingMain: true }, ()=>{\r\n this.obtener_oferta(this.cuenta);\r\n });\r\n });\r\n}\r\n\r\nonEnteringSeccionesLE = ()=> {\r\n\r\nthis.setState({ heightTableLE: funciones.getHeightTableDialog(movil, this.tablaLERef, this.dialogActionLERef, 3) }, ()=>{ \r\n refreshOferta = false;\r\n if (!this.state.loadingLE)\r\n this.obtener_lista_espera(this.cuenta);\r\n});\r\n\r\n}\r\n\r\ncomponentDidMount() { \r\n\r\ntokenInfo = Auth.getProfile(); //Token decodificado\r\n\r\nthis.setState({ isLoggin: tokenInfo.plataforma !== undefined ? true : false }, ()=>{ \r\n\r\n if (tokenInfo.plataforma === 1) // Usuario Admin\r\n {\r\n this.filtersClientes('-');\r\n }\r\n else if (tokenInfo.plataforma === 2) //Usuario estudiante\r\n {\r\n this.setState({ loadingClientes: false });\r\n this.handleChangeCuenta(null); \r\n }\r\n\r\n this.setState({ heightTableMain: funciones.getHeightTableMain(movil, this).heightTable }, ()=>{\r\n if (!movil && tokenInfo.plataforma === 1)\r\n document.getElementById('Est_Matricula').focus();\r\n }); \r\n\r\n}); \r\n \r\n}\r\n\r\ncomponentWillUnmount() { \r\n this.unsubscribeRows();\r\n}\r\n\r\nrender() {\r\nconst { classes } = this.props;\r\n\r\n if (this.state.isLoggin === true)\r\n {\r\n return (\r\n \r\n \r\n \r\n {\r\n (() => {\r\n \r\n if (tokenInfo.plataforma === 1) //Si es Usuario Admin\r\n {\r\n \r\n return (\r\n \r\n
\r\n option.CUENTA_ALUMNO + ' - ' + option.NOMBRE_COMPLETO}\r\n style={{ width: movil ? '100%' : '430px' }}\r\n renderInput={(params) => \r\n {this.state.loadingClientes ? \r\n \r\n \r\n \r\n : \r\n this.state.valueAutoComplete === null ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n fullWidth\r\n />}\r\n renderOption={RenderOption} \r\n onChange={this.onChangeAutocomplete}\r\n open={this.state.openAutoComplete}\r\n loading = {this.state.loadingClientes}\r\n ListboxComponent={virtual.ListboxComponent}\r\n value={this.state.valueAutoComplete} \r\n className={classes.textField}\r\n disableClearable={this.state.loadingMain}\r\n onInputChange={this.onChangeInput}\r\n popupIcon={null}\r\n PaperComponent={(props)=>()} \r\n /> \r\n \r\n
\r\n
\r\n );\r\n\r\n } \r\n \r\n })()\r\n\r\n }\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n Correquisito\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Detalle de cuotas\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n Inscripción\r\n {\"(\" + this.state.closeTimeLE + \")\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.messageLE}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {this.state.titleModalHibrida}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Secciones en lista de espera\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n {this.state.messageBackdrop}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\nelse if (this.state.isLoggin === false)\r\n{\r\n //Auth.logout();\r\n window.location.reload();\r\n return; //(())\r\n}\r\nreturn null;\r\n\r\n}//FIN RENDER\r\n}\r\n\r\n)","import React from 'react';\r\nimport CustomTable from '../../components/CustomTable';\r\nimport {globales, funciones } from '../../global';\r\nimport AuthService from '../../AuthService';\r\nimport Request from 'superagent';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport BarraBotones from '../../components/Barra_menu';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {Table, Grid, TableSelection, TableFixedColumns} from '@devexpress/dx-react-grid-material-ui';\r\nimport {IntegratedFiltering} from '@devexpress/dx-react-grid';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport {virtual} from '../../components/VirtualListBox';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\nlet Auth = new AuthService();\r\nlet tokenInfo = [];\r\n\r\nvar movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nlet checkId = undefined;\r\n\r\nvar color_periodo_anterior='red';\r\n\r\nconst styles = theme => ({\r\n \r\npaper: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: !movil ? '500px' : \"98%\", \r\n maxWidth: !movil ? '500px' : \"98%\", \r\n},\t\r\ncloseButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n},\r\nbackdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\r\n},\r\ncontainer: {\r\n display: 'flex',\r\n justifyContent: !movil ? 'center' : undefined, \r\n alignItems: \"center\",\r\n flexDirection: !movil ? \"row\" : \"column\",\r\n paddingTop: \"2px\",\r\n paddingBottom: \"5px\", \r\n paddingLeft: theme.spacing(1),\r\n paddingRight: theme.spacing(1)\r\n},\r\ntextField: {\r\n marginRight: !movil ? theme.spacing(1) : undefined, \r\n},\r\npaperTitle: { \r\n height: '40px', \r\n textAlign: 'center',\r\n verticalAlign: 'middle',\r\n lineHeight: '40px',\r\n margin: \"1px \" + globales.tabla.marginright + \"px 0px \" + globales.tabla.marginleft + \"px\", \r\n},\r\ndivSecondary: {\r\n marginBottom: '10px'\r\n},\r\n\r\n});\r\nconst widthTable = !movil ? window.screen.width - (globales.tabla.marginleft + globales.tabla.marginright) : 1336;\r\nconst columns = [ \r\n { name: 'PERIODO', title: 'PERIODO'}, \r\n { name: 'ID_SECCION_CLIENTE', title: 'ID_SECCION_CLIENTE'},\r\n { name: 'CODIGO_CURSO', title: 'Código'},\r\n { name: 'DESCRIPCION_CURSO', title: 'Descripción'},\r\n { name: 'CREDITOS', title: 'Uv'},\r\n { name: 'SECCION_DIAS', title: 'Dias'},\r\n { name: 'INICIO', title: 'Desde'},\r\n { name: 'FIN', title: 'Hasta'},\r\n { name: 'AULA', title: 'Aula'}, \r\n { name: 'VALOR', title: 'Valor'},\r\n { name: 'PORCENTAJE', title: '% Retiro'},\r\n { name: 'DESCRIPCION_NIVEL', title: 'DESCRIPCION_NIVEL'},\r\n];\r\nconst columnExtensions = [\r\n { columnName: 'PERIODO', width: 0},\r\n { columnName: 'CODIGO_CURSO', width: widthTable * 0.07 },\r\n { columnName: 'DESCRIPCION_CURSO', width: !movil ? widthTable * 0.24 : 280},\r\n { columnName: 'CREDITOS', width: widthTable * 0.06, align: 'center'},\r\n { columnName: 'SECCION_DIAS', width: widthTable * 0.07, align: 'center'}, \r\n { columnName: 'INICIO', width: widthTable * 0.07, align: 'center'},\r\n { columnName: 'FIN', width: widthTable * 0.07, align: 'center'}, \r\n { columnName: 'AULA', width: widthTable * 0.07, align: 'center'}, \r\n { columnName: 'VALOR', width: widthTable * 0.08, align: 'center'},\r\n { columnName: 'PORCENTAJE', width: widthTable * 0.08, align: 'center'},\r\n { columnName: 'ID_SECCION_CLIENTE', width: 0},\r\n { columnName: 'DESCRIPCION_NIVEL', width: 0},\r\n];\r\n\r\nconst grouping = [{ columnName: 'PERIODO' },{ columnName: 'DESCRIPCION_NIVEL' }];\r\n\r\nconst grouping_nivel = [{ columnName: 'DESCRIPCION_NIVEL' }];\r\n\r\nconst columnsRetiro = [\r\n { name: 'LABEL', title: 'Label' },\r\n { name: 'VALUE', title: 'Value' },\r\n];\r\nconst columnExtensionsRetiro = [\r\n { columnName: 'LABEL', width: \"45%\", wordWrapEnabled: true }, \r\n { columnName: 'VALUE', wordWrapEnabled: true },\r\n];\r\n\r\nconst settingFilter = [\r\n\r\n { columnName: 'VALOR',\r\n predicate: (value, filter, row) => {\r\n value = funciones.formatCurrency(value); \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n\r\n },\r\n { columnName: 'INICIO',\r\n predicate: (value, filter, row) => {\r\n value = value !== null ? funciones.getTime(value, 1) : value;\r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n\r\n },\r\n { columnName: 'FIN',\r\n predicate: (value, filter, row) => {\r\n value = value !== null ? funciones.getTime(value, 1) : value;\r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n\r\n },\r\n { columnName: 'PORCENTAJE',\r\n predicate: (value, filter, row) => {\r\n value = value + \"%\";\r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n\r\n },\r\n \r\n];\r\n\r\nconst RowId = row => row.ID_SECCION_CLIENTE;\r\n\r\nconst GroupCellContent = ({ column, row }) => {\r\n var color=''\r\n var anterior=false;\r\n\r\n if(row.compoundKey.search('Período Anterior')===0)\r\n {\r\n anterior=true;\r\n color=color_periodo_anterior;\r\n }\r\n else\r\n color='black';\r\n\r\n return(\r\n \r\n {anterior?row.value:{row.value}} \r\n \r\n );\r\n}\r\n\r\nconst VirtualTable_cellComponent = (props) => { \r\n \r\n if (props.column.name === 'INICIO')\r\n {\r\n return ( \r\n {props.row.INICIO !== null ? funciones.getTime(props.row.INICIO, 1) : null}\r\n );\r\n }\r\n \r\n if (props.column.name === 'FIN')\r\n {\r\n return ( \r\n {props.row.FIN !== null ? funciones.getTime(props.row.FIN, 1) : null}\r\n );\r\n }\r\n \r\n if (props.column.name === 'VALOR')\r\n {\r\n return (\r\n {props.row.VALOR !== null ? funciones.formatCurrency(props.row.VALOR) : props.row.VALOR} \r\n \r\n );\r\n }\r\n\r\n if (props.column.name === 'PORCENTAJE')\r\n {\r\n return (\r\n {props.row.CHECKED ? null : props.row.PORCENTAJE + \"%\"} \r\n \r\n );\r\n }\r\n \r\n return ();\r\n \r\n}\r\nconst Table_cellComponentRetiro = ({style, ...props}) => {\r\n\r\n const styleCell = { border: \"none\", paddingBottom: 12 }\r\n \r\n if (props.column.name === \"LABEL\"){\r\n return ();\r\n }\r\n \r\n return ();\r\n \r\n}\r\nconst TableSelectionCellComponent = (estado, checkId) => ({style, ...props}) =>{\r\n \r\n if (estado && props.row.ID_SECCION_CLIENTE === checkId)\r\n {\r\n return ( \r\n \r\n \r\n );\r\n } \r\n \r\n return ( );\r\n}\r\nconst ColumnFixed_cellComponent = ({ showRightDivider, showLeftDivider, ...props}) => { \r\n \r\n if (props.tableRow.key === \"Symbol(filter)\"){\r\n return (\r\n
\r\n );\r\n }\r\n\r\n return ();\r\n}\r\nconst RenderOption = (option) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{option.CUENTA_ALUMNO}\r\n
{option.NOMBRE_COMPLETO}
\r\n \r\n);\r\n\r\nexport default withStyles(styles) ( \r\nclass App extends React.Component {\r\n\r\nrazonRef = React.createRef();\r\ntablaRef = React.createRef();\r\n\r\n constructor (props) {\r\n super(props);\r\n this.l=props.l\r\n this.e=props.e\r\n this.i=props.i\r\n this.state = {\r\n isLoggin : undefined,\r\n heightTableMain: 0,\r\n loadingMain: false,\r\n rows: [],\r\n optionAutocomplete: [],\r\n loadingClientes: true,\r\n valueAutoComplete: null,\r\n openAutoComplete: false,\r\n openModal: false,\r\n openModalConfirmation: false,\r\n expandedGroups: [],\r\n rowsRetiro: [],\r\n loadingCheck: false,\r\n es_anterior: false,\r\n };\r\n this.cuenta= null;\r\n this.botones_retiro =[\r\n {icono: 'Check', toolt: '', nombre: 'Retirar', onclick: this.handleRetiroOk, display:'auto'},\r\n {icono: 'Close', toolt: '', nombre: 'Cerrar' ,onclick: this.handleClose, display:'auto', color: 'red'},\r\n ];\r\n}\r\n\r\nonBlurAutoComplete = ()=>{\r\n\r\n if (this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: false }); \r\n \r\n} \r\n \r\nonChangeInput = (e, value)=>{ \r\n \r\n if (e === null || e.target.value === undefined)\r\n {\r\n if (this.state.openAutoComplete) \r\n this.setState({ openAutoComplete: false });\r\n \r\n return;\r\n }\r\n \r\n if ((e.target.value.toString().trim().length < 3 || (this.state.valueAutoComplete !== null && value === this.state.valueAutoComplete.CUENTA_ALUMNO + ' | ' + this.state.valueAutoComplete.NOMBRE_COMPLETO)) && this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: false });\r\n else if (e.target.value.toString().trim().length >= 3 && !this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: true });\r\n \r\n}\r\n \r\nonChangeAutocomplete = (event, value) =>{\r\n \r\n this.setState({ valueAutoComplete: value, openAutoComplete: false, rows: [] }, ()=>{\r\n \r\n if (value === null)\r\n {\r\n return;\r\n }\r\n \r\n this.handleChangeCuenta(null); \r\n \r\n });\r\n \r\n}\r\n \r\nfiltersClientes = (value)=>{ \r\n \r\n new Request\r\n .get(`${globales.ip}/retiros/estudiantes/${value}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(0)\r\n .timeout({ response: 20000, deadline: 30000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ optionAutocomplete: [], openAutoComplete: false, loadingClientes: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n this.setState({ optionAutocomplete: rows, loadingClientes: false }); \r\n \r\n \r\n});\r\n \r\n}\r\n\r\nonRefresh = ()=>{\r\n \r\n this.setState({ loadingClientes: true }, ()=>{ \r\n this.filtersClientes('-');\r\n });\r\n \r\n}\r\n\r\nhandleChangeCuenta = (event) => {\r\n \r\nif (this.state.loadingMain)\r\n{ \r\n return;\r\n}\r\n \r\nthis.cuenta = (event === null && tokenInfo.plataforma === 2) ? tokenInfo.user : tokenInfo.plataforma === 1 ? this.state.valueAutoComplete.CUENTA_ALUMNO : null;\r\nthis.setState({ loadingMain: true }, ()=>{ \r\n \r\n new Request\r\n .get(`${globales.ip}/retiros/oferta/${this.cuenta}/${tokenInfo.user}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 15000, deadline: 30000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ loadingMain: false}, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text); \r\n \r\n let allGroups = [];\r\n let foundGroup;\r\n let periodo=null;\r\n \r\n rows.map((item)=>{\r\n foundGroup = allGroups.find(x => x === item.DESCRIPCION_NIVEL);\r\n if(item.PERIODO!==null)\r\n {\r\n if(item.PERIODO.search('Período Anterior')===-1)\r\n if (foundGroup === undefined)\r\n {\r\n allGroups.push(item.PERIODO);\r\n allGroups.push(item.PERIODO+'|'+item.DESCRIPCION_NIVEL);\r\n }\r\n else {\r\n foundGroup = undefined;\r\n }\r\n }\r\n else\r\n {\r\n if (foundGroup === undefined)\r\n {\r\n allGroups.push(item.DESCRIPCION_NIVEL);\r\n }\r\n else {\r\n foundGroup = undefined;\r\n }\r\n }\r\n periodo=item.PERIODO;\r\n \r\n return item;\r\n }); \r\n \r\n this.setState({ rows,expandedGroups: allGroups, loadingMain: false, periodo_anterior: periodo }); \r\n \r\n });\r\n \r\n});\r\n \r\n}\r\n\r\nchangeExpandedGroups = expandedGroups =>\r\n{ \r\n this.setState({ expandedGroups }); \r\n}\r\n\r\nchangeSelection = selection => { \r\n\r\n checkId = selection[0];\r\n const rowChecked = this.state.rows.find(x => x.ID_SECCION_CLIENTE === selection[0]); \r\n\r\n if (!rowChecked.CHECKED){\r\n\r\n const rowsRetiro = [{ KEY: 0, LABEL: \"Curso\", VALUE: rowChecked.DESCRIPCION_CURSO },\r\n { KEY: 1, LABEL: \"Dias transcurridos (matrícula)\", VALUE: rowChecked.DIAS },\r\n { KEY: 2, LABEL: \"Valor porcentual a reconocer\", VALUE: rowChecked.PORCENTAJE + \"%\" },\r\n { KEY: 3, LABEL: \"Valor total del curso\", VALUE: funciones.formatCurrency(rowChecked.VALOR) },\r\n { KEY: 4, LABEL: \"Valor total a reconocer\", VALUE: funciones.formatCurrency((rowChecked.VALOR * rowChecked.PORCENTAJE)/100) },];\r\n \r\n this.setState({ rowsRetiro,openModal: true,es_anterior:rowChecked.ES_ANTERIOR,periodo_anterior:rowChecked.PERIODO });\r\n }\r\n}\r\n\r\nhandleClose = ()=>{\r\n\r\nthis.setState({ openModal: false,es_anterior: false });\r\n\r\n}\r\n\r\nhandleRetiroOk = ()=>{\r\n\r\nif (funciones.isEmpty(this.razonRef.current.value)){\r\n funciones.showToast(\"w\", \"Debe ingresar la razón de retiro\");\r\n this.razonRef.current.focus();\r\n return;\r\n}\r\n\r\nthis.setState({ openModal: false, loadingCheck: true }, ()=>{ \r\n\r\n const rowChecked = this.state.rows.find(x => x.ID_SECCION_CLIENTE === checkId); \r\n\r\n new Request\r\n .post(`${globales.ip}/retiros`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ id_seccion_cliente: rowChecked.ID_SECCION_CLIENTE, \r\n monto_reconocido: parseFloat(rowChecked.VALOR * rowChecked.PORCENTAJE/100), \r\n porcentaje: rowChecked.PORCENTAJE,\r\n razon: this.razonRef.current.value.trim(),\r\n cuenta_alumno: this.cuenta,\r\n ad_usuario: tokenInfo.user })\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 30000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ loadingCheck: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión'); \r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n \r\n if (rows.length === 0 || rows[0].RESP === undefined)\r\n { \r\n\r\n this.setState({ rows,loadingCheck: false,es_anterior: false }, ()=> { \r\n funciones.showToast(\"s\", \"Se ha retirado del curso \" + rowChecked.DESCRIPCION_CURSO); \r\n }); \r\n\r\n }\r\n else\r\n {\r\n this.setState({ loadingCheck: false,es_anterior: false }, ()=>{\r\n funciones.showToast(\"w\", rows[0].RESP); \r\n });\r\n \r\n }\r\n \r\n \r\n \r\n });\r\n\r\n});\r\n\r\n}\r\n\r\ncomponentDidMount() { \r\n\r\n tokenInfo = Auth.getProfile(); //Token decodificado\r\n\r\n this.setState({ isLoggin: tokenInfo.plataforma !== undefined ? true : false }, ()=>{\r\n\r\n if (tokenInfo.plataforma === 1) // Usuario Admin\r\n {\r\n this.cuenta= null;\r\n this.filtersClientes('-');\r\n \r\n }\r\n else if (tokenInfo.plataforma === 2) //Usuario estudiante\r\n { \r\n this.setState({ loadingClientes: false });\r\n this.handleChangeCuenta(null); \r\n }\r\n \r\n this.setState({ heightTableMain: funciones.getHeightTableMain(movil, this).heightTable }, ()=>{\r\n if (!movil && tokenInfo.plataforma === 1)\r\n document.getElementById('Est_Retiros').focus(); \r\n }); \r\n\r\n }); \r\n \r\n}\r\n\r\nrender() {\r\nconst { classes } = this.props;\r\n\r\n if (this.state.isLoggin === true)\r\n {\r\n return (\r\n \r\n \r\n \r\n {\r\n (() => {\r\n \r\n if (tokenInfo.plataforma === 1) //Si es Usuario Admin\r\n {\r\n \r\n return (\r\n \r\n
\r\n option.CUENTA_ALUMNO + ' - ' + option.NOMBRE_COMPLETO}\r\n style={{ width: movil ? '100%' : '430px' }}\r\n renderInput={(params) => \r\n {this.state.loadingClientes ? \r\n \r\n \r\n \r\n : \r\n this.state.valueAutoComplete === null ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n {params.InputProps.endAdornment}\r\n \r\n )\r\n }}\r\n fullWidth\r\n />}\r\n renderOption={RenderOption} \r\n onChange={this.onChangeAutocomplete}\r\n open={this.state.openAutoComplete}\r\n loading={this.state.loadingClientes}\r\n ListboxComponent={virtual.ListboxComponent} \r\n value={this.state.valueAutoComplete} \r\n className={classes.textField} \r\n disableClearable={this.state.loadingMain} \r\n onInputChange={this.onChangeInput}\r\n popupIcon={null}\r\n PaperComponent={(props)=>()} \r\n /> \r\n
\r\n \r\n
\r\n );\r\n\r\n } \r\n \r\n if (tokenInfo.plataforma === 2){\r\n\r\n return(\r\n \r\n \r\n \r\n Cursos disponibles para retirar\r\n \r\n \r\n
\r\n );\r\n \r\n } \r\n\r\n })()\r\n\r\n }\r\n\r\n
\r\n \r\n
\r\n \r\n Retiro de curso\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.es_anterior?Nota: El curso es del {this.state.periodo_anterior.toLowerCase()}:null}\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\nelse if (this.state.isLoggin === false)\r\n{\r\n //Auth.logout();\r\n window.location.reload();\r\n return; //(())\r\n}\r\nreturn null;\r\n\r\n}//FIN RENDER\r\n}\r\n\r\n)"],"sourceRoot":""}