{"version":3,"sources":["pages/matricula/matricula.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"],"mappings":"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","file":"static/js/main~492a81d0.5bb74f3b.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  <span>    \r\n    <strong> {column.name === 'ID_PLAN' ? (infoPLan !== undefined ? infoPLan.DESCRIPCION_NIVEL : \" \") : 'Período ' + row.value} </strong> \r\n  </span>\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 ( <Table.Cell style={style} {...props}>\r\n              { props.row.INICIO !== null ? funciones.getTime(props.row.INICIO, 1) : null }\r\n             </Table.Cell>);\r\n  }\r\n     \r\n  if (props.column.name === 'FIN')\r\n  {\r\n    return ( <Table.Cell style={style} {...props}>\r\n             { props.row.FIN !== null ? funciones.getTime(props.row.FIN, 1) : null }\r\n            </Table.Cell>);\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 (<Table.Cell style={_styleCell} {...props}>\r\n             <div style={styleDiv}>\r\n             {props.row.AUTONOMA === 2 ? props.row.DISPONIBLE_MODALIDAD : props.row.DISPONIBLE}\r\n             <Tooltip title=\"Cupos en Presencial\" placement=\"top\" classes={{ tooltip: classTooltip }} PopperProps={{style:{zIndex:500000}}}>\r\n              <PersonIcon style={styleIcoHibridaPre} fontSize=\"small\"/>\r\n             </ Tooltip>\r\n             {\"  |  \" + (props.row.AUTONOMA === 2 ? props.row.DISPONIBLE : props.row.DISPONIBLE_MODALIDAD)}\r\n             <Tooltip title=\"Cupos en Por Videoconferencia\" placement=\"top\" classes={{ tooltip: classTooltip }} PopperProps={{style:{zIndex:500000}}}>\r\n              <VideocamIcon style={styleIcoHibridaPmv} fontSize=\"small\"/>\r\n             </ Tooltip>\r\n             </ div>\r\n            </Table.Cell>);\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 (<Table.Cell style={_styleCell} {...props}>\r\n                 <div style={styleDiv}>\r\n                 {props.row.DISPONIBLE}\r\n                 <Tooltip title=\"Cupos en Presencial\" placement=\"top\" classes={{ tooltip: classTooltip }} PopperProps={{style:{zIndex:500000}}}>\r\n                    <PersonIcon style={styleIco} fontSize=\"small\"/>\r\n                 </ Tooltip>\r\n                 </div>\r\n                </Table.Cell>);\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 (<Table.Cell style={_styleCell} {...props}>\r\n               <div style={styleDiv}>\r\n               {props.row.DISPONIBLE}\r\n              <Tooltip title=\"Cupos en Por Videoconferencia\" placement=\"top\" classes={{ tooltip: classTooltip }} PopperProps={{style:{zIndex:500000}}}>\r\n               <VideocamIcon style={styleIco} fontSize=\"small\"/>\r\n              </ Tooltip>\r\n              </div>\r\n             </Table.Cell>);\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 (<Table.Cell style={{ ...style, position: \"relative\" }} {...props}>\r\n              <Tooltip title={<span style={{ whiteSpace: \"pre-line\" }}>{title}</ span>} placement=\"top\" classes={{ tooltip: classTooltip }} PopperProps={{style:{zIndex:500000}}} arrow>\r\n                <MoreHorizIcon fontSize=\"small\" style={{ position: \"absolute\", top: 0, right: 10, color: colores.color_disabled, cursor: \"default\" }} onClick={(e)=> e.stopPropagation()}/>\r\n              </Tooltip>\r\n              <span>{props.row.NUMERO_SECCION}</span>\r\n            </Table.Cell>);\r\n  }\r\n\r\n  if (props.column.name === \"CREDITOS\" && props.row.HDR === 1)\r\n  { \r\n    return (<Table.Cell style={style} {...props}>\r\n            <span>{null}</span> \r\n            </Table.Cell>);\r\n  }\r\n\r\n  return (<Table.Cell style={style} {...props}/>);\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      <Checkbox icon={<span style={{ width: 0, height: 0 }} />} checkedIcon={<CheckIcon/>} 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 (<TableTreeColumn.Cell style={{ ...style, paddingLeft: props.row.ROOT_TREE !== \"...\" ? newChildren[0].props.level === 0 ? \"37px\" : \"62px\" \r\n                                                                                                    : undefined, \r\n                                  paddingRight: 0}} \r\n                                  {...props}>\r\n                <CircularProgress size={22} color=\"secondary\"/>\r\n             </ TableTreeColumn.Cell>) \r\n  }\r\n  \r\n  return (<TableTreeColumn.Cell children={newChildren} style={style} {...props}/>)\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 (<TableHeaderRow.Cell style={{...style, left: 0}} resizingEnabled={false} {...props}>\r\n             <Tooltip title={!disabled ? \"Lista de espera\" : \"\"}>\r\n              <IconButton style ={{ left: -100 }} size=\"small\" onClick={handleListaEspera} disabled={disabled}>\r\n               <Badge color=\"error\" badgeContent={countLE} variant=\"dot\">\r\n                <HowToRegIcon style={{ color: !disabled ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n               </Badge>\r\n              </IconButton>\r\n             </Tooltip>\r\n             <Tooltip title={!disabled ? \"Resumen de matricula\" : \"\"}>\r\n              <IconButton style ={{ left: -84 }} size=\"small\" onClick={handleResumen} disabled={disabled}>\r\n                <PrintIcon style={{ color: !disabled ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n              </IconButton>\r\n             </Tooltip>\r\n             <Tooltip title={!disabled ? \"Detalle a pagar\" : \"\"}>\r\n              <IconButton style ={{ left: -68 }} size=\"small\" onClick={handleDetalle} disabled={disabled}>\r\n                <CreditCardIcon style={{ color: !disabled ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n              </IconButton>\r\n             </Tooltip>\r\n            </ TableHeaderRow.Cell>\r\n           );\r\n  }\r\n\r\n  return (<TableHeaderRow.Cell style={style} resizingEnabled={resizingEnabled} {...props} />);\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 (<TableFixedColumns.Cell  \r\n              style={{ backgroundColor: 'white', paddingTop: 0, paddingBottom: 0, paddingLeft: 3 }}\r\n              others={{ inputCheck: classes.inputCheck, handleChangeCheck: handleChangeCheck, valueFilterCheck: valueFilterCheck }}\r\n              {...props} \r\n          />);\r\n\r\n  }\r\n \r\n   return (<TableFixedColumns.Cell \r\n            style={{ backgroundColor: 'inherit', paddingTop: 0, paddingBottom: 0 }}\r\n            showRightDivider={false}\r\n            showLeftDivider={false}\r\n            {...props} \r\n        />);\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 (<Table.Cell style={{ paddingTop: 0, paddingBottom: 0 }} {...props}>\r\n             <Checkbox\r\n              checked={others.valueFilterCheck === undefined ? false : others.valueFilterCheck} \r\n              onChange={others.handleChangeCheck}                 \r\n              value=\"filterCheck\"\r\n              indeterminate = {others.valueFilterCheck === undefined ? true : false }\r\n              className={others.inputCheck}\r\n              indeterminateIcon = {<IndeterminateCheckBoxOutlinedIcon />}\r\n              style={{width: 28, height: 28}}\r\n            />\r\n            </Table.Cell>);\r\n  }\r\n\r\n  return (<TableFilterRow.Cell children={children} \r\n                               getMessage={getMessage}\r\n                               filteringEnabled={filteringEnabled}\r\n                               onFilter={onFilter}\r\n                               {...props} />);\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 ( <Table.Cell style={{ ...style, paddingLeft: '21px', paddingTop: \"2px\", paddingBottom: \"0px\" }} {...props}>\r\n             <CircularProgress size={22} color=\"secondary\"/>\r\n           </Table.Cell> \r\n          );\r\n  }  \r\n  \r\n  if (disabledChecks)\r\n  {\r\n    return(\r\n          <Table.Cell style={{ ...style, paddingBottom: '0px', paddingTop: '0px', paddingRight: '0px', paddingLeft: '12px' }} {...props}>\r\n              <Checkbox disabled checked={props.row.CHECKED} />\r\n          </Table.Cell>\r\n          );\r\n  }\r\n    \r\n  return ( <TableSelection.Cell style={style} {...props}/>);\r\n}\r\nconst VirtualTableDetalle_cellComponent = ({value, ...props})=>{\r\n\r\n  if (props.column.name === \"MONTO\")\r\n  {\r\n    return (<Table.Cell value={funciones.formatCurrency(value)} {...props}/>);\r\n  }\r\n\r\n  return (<Table.Cell value={value} {...props}/>);\r\n\r\n}\r\nconst RenderOption = (option) => (\r\n  <div style={{ display: \"flex\", flexDirection: \"row\", width: \"100%\", alignItems: \"center\" }}>\r\n   <ListItemAvatar style={{ minWidth: 32 }}>\r\n    <Avatar style={{ height: 23, width: 23 }}>\r\n     <PersonIcon size=\"small\"/>\r\n    </Avatar>\r\n   </ListItemAvatar>\r\n  <div style={{ minWidth: \"55px\", color: \"gray\" }}>{option.CUENTA_ALUMNO}</ div>\r\n  <div>{option.NOMBRE_COMPLETO}</div>\r\n </ div>\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: 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({ 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 <MenuItem value={datos.MOD_PAGO_ID} key={i} >{datos.MOD_PAGO_DESCRIPCION}</MenuItem> \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: 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({ 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: 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    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: 30000, 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.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: 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({ 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: 25000, 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({ 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: 20000, 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: 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({ 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: 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({ 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    <React.Fragment>\r\n      <Paper className=\"Paper-main\" square>\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                <React.Fragment>\r\n                 <div className={classes.container}>    \r\n                   <Autocomplete\r\n                      id=\"Est_Matricula\"\r\n                      options={this.state.optionAutocomplete}\r\n                      getOptionLabel={(option) => option.CUENTA_ALUMNO + ' - ' + option.NOMBRE_COMPLETO}\r\n                      style={{ width: movil ? '100%' : '430px' }}\r\n                      renderInput={(params) => <TextField {...params} \r\n                                                  label=\"Estudiante\"\r\n                                                  variant=\"outlined\"\r\n                                                  onBlur={this.onBlurAutoComplete}                                                                                                                         \r\n                                                  InputProps={{\r\n                                                              ...params.InputProps,\r\n                                                              endAdornment: (\r\n                                                             <React.Fragment>\r\n                                                              {this.state.loadingClientes ? \r\n                                                              <Fade in style={{\r\n                                                                transitionDelay: '1000ms',\r\n                                                              }} unmountOnExit>\r\n                                                              <CircularProgress size={18}/>\r\n                                                              </Fade> \r\n                                                              : \r\n                                                               this.state.valueAutoComplete === null ?\r\n                                                                <Tooltip title=\"Actualizar lista\" placement=\"top\">\r\n                                                                <IconButton style={{ width: 23, height: 23 }} onClick={this.onRefresh}>\r\n                                                                  <RefreshIcon color=\"primary\"/>\r\n                                                                </IconButton>\r\n                                                                </Tooltip>\r\n                                                               : null\r\n                                                              }\r\n                                                              {params.InputProps.endAdornment}\r\n                                                              </React.Fragment>\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)=>(<Paper elevation={8} {...props} />)}                                                                              \r\n                       />           \r\n                      <Select Label='Modalidad de pago'\r\n                              Datos = {this.state.datosSelectModPago} \r\n                              Selected= {this.state.selectedModPago}\r\n                              onChange={this.handleChangeModPago}\r\n                              Style = {classes.formControlSelect}                                  \r\n                              Outlined                            \r\n                              />                   \r\n                   </div>\r\n                </React.Fragment>\r\n              );\r\n\r\n             }\r\n             else if (tokenInfo.plataforma === 2) //Si es Usuario Estudiante\r\n             {\r\n\r\n              return (\r\n                <React.Fragment >\r\n                  <div  className={classes.container}>\r\n                   <Select Label='Modalidad de pago'\r\n                           Datos = {this.state.datosSelectModPago} \r\n                           Selected= {this.state.selectedModPago}\r\n                           onChange={this.handleChangeModPago}\r\n                           Style = {classes.formControlSelect}                                  \r\n                           Outlined                            \r\n                           />  \r\n                  </div>\r\n                </React.Fragment>\r\n                  );\r\n\r\n             }             \r\n             \r\n            })()\r\n\r\n          }\r\n\r\n          <div ref={this.tablaRef} style={{ marginLeft: !movil ? globales.tabla.marginleft : globales.tabla.marginleft_movil, marginRight: !movil ? globales.tabla.marginright : globales.tabla.marginright_movil }} className=\"disableTouchOptions\">\r\n           <CustomTable \r\n            Columns={columns} \r\n            Rows={this.state.rows}\r\n            Grouping={grouping}                      \r\n            TableColumnExtensions={columnExtensions} \r\n            DefaultHiddenColumnNames={['ID_SECCION', 'ID_PLAN', 'ESTATUS_FINANCIERO', 'GRUPO', 'OPTATIVA', 'TREE']}\r\n            ExpandedGroups={this.state.expandedGroups}\r\n            ChangeExpandedGroups = {this.changeExpandedGroups}\r\n            groupContentComponent={GroupCellContent}\r\n            getRowId={RowId}\r\n            rowHeaderCellComponent={HeaderRowCellComponent(this.state.valueAutoComplete, this.handleResumen, this.handleLE, this.handleDetalle, this.state.countLE)}\r\n            VirtualTable_cellComponent={VirtualTable_cellComponent(classes.tooltip)}\r\n            height={this.state.heightTableMain} \r\n            loading={this.state.loadingMain} \r\n            enabledFilterRows\r\n            filterCellComponent={FilterCellComponent}\r\n            TableNameTreeColum='ROOT_TREE'\r\n            GetChildRows={ChildRows}\r\n            showSelectionControlsTree\r\n            OnExpandedRowIdsChange = {this.changeExpandedRowIds}\r\n            ExpandedRowIds={this.state.expandedRowIds}\r\n            TableTreeColumn_cellComponent= {TableTreeColumn_cellComponent(this.state.loadingCheck, checkId)}\r\n            leftColumnsFixed={['ROOT_TREE']}\r\n            columnFixedCellComponent = {ColumnFixed_cellComponent(classes, this.handleChangeCheckFilter, this.state.filterCheck)}\r\n            FilteringColumnExtensions = {this.settingFilter}\r\n            Filters = {this.state.filters} \r\n            onFiltersChange={this.changeFilters}\r\n            Selection ={this.state.selection}\r\n            ChangeSelection={this.changeSelection}\r\n            columnWidths={columnExtensions}\r\n            />                  \r\n            </div>\r\n            \r\n            <Dialog open= {this.state.openModalCorrequsito}                            \r\n                    TransitionProps={{ onEntering: this.onEnteringCorrequisito }} \r\n                    classes={{ paper: classes.paperCorrequisito }}\r\n                    fullScreen={movil}>\r\n            <DialogTitle><Typography component='span' variant='subtitle2'>Correquisito</Typography>\r\n              <IconButton className={classes.closeButton} onClick={this.handleCloseCorrequisito} size=\"small\">\r\n                <CloseIcon fontSize=\"small\" />\r\n              </IconButton>\r\n             </DialogTitle>\r\n             <DialogContent style={{ paddingBottom: !movil ? '0px' : '5px' }}>\r\n             <div ref={this.tablaCorreqRef} className=\"disableTouchOptions\">\r\n              <CustomTable \r\n                Columns={columnsCorreq} \r\n                Rows={this.state.rowsCorreq}\r\n                DefaultHiddenColumnNames={['ID_SECCION']}\r\n                loading={this.state.loadingCorreq}\r\n                height = {this.state.heightTableCorreq}\r\n                getRowId={RowId} \r\n                showSelectionColumn\r\n                VirtualTable_cellComponent={VirtualTable_cellComponent(classes.tooltip)}\r\n                TableColumnExtensions={columnExtensionsCorreq} \r\n                columnWidths={columnExtensionsCorreq} \r\n                leftColumnsFixed={[TableSelection.COLUMN_TYPE]}\r\n                tableSelectionCellComponent= {TableSelectionCellComponent(this.state.loadingCheck, checkIdCo, this.state.disabledChecksCo)}\r\n                Selection ={this.state.selectionCorreq}\r\n                ChangeSelection = {this.changeSelectionCorreq}\r\n                columnFixedCellComponent = {ColumnFixed_cellComponent(classes, null, null)}\r\n              /> \r\n              </div>\r\n             </ DialogContent>\r\n             <DialogActions ref={this.dialogActionRef} />\r\n             </Dialog>\r\n             \r\n             <Dialog open= {this.state.openModalDetalle}                            \r\n                     TransitionProps={{ onEntering: this.onEnteringDetalle }} \r\n                     classes = {{ paper: classes.paperDetalle }}\r\n                     fullScreen={movil}\r\n                    >\r\n            <DialogTitle><Typography component='span' variant='subtitle2'>Detalle de cuotas</Typography>\r\n              <IconButton className={classes.closeButton} onClick={this.handleCloseDetalle} size=\"small\">\r\n                <CloseIcon fontSize=\"small\" />\r\n              </IconButton>\r\n             </DialogTitle>\r\n            <DialogContent style={{ paddingBottom: '0px'}}>\r\n            <div ref={this.tablaDetalleRef} className=\"disableTouchOptions\">\r\n              <CustomTable \r\n                Columns={columnsDetalle} \r\n                Rows={this.state.rowsDetalle}                \r\n                loading={this.state.loadingDetalle}\r\n                height = {this.state.heightTableDetalle}                \r\n                VirtualTable_cellComponent={VirtualTableDetalle_cellComponent}\r\n                TableColumnExtensions={columnExtensionsDetalle}\r\n              /> \r\n              </div>\r\n            </ DialogContent>\r\n            <DialogActions ref={this.dialogActionDetalleRef} />\r\n            </Dialog>\r\n\r\n             <Dialog open= {this.state.openBackDrop ? false : this.state.openModalListaEspera}\r\n                     TransitionProps={{ onEntered: this.countDown }} \r\n                     classes ={{ paper: classes.paperListaEspera}}>\r\n              <DialogTitle><Typography component='span' variant='subtitle2'>Inscripción</Typography>\r\n                 <span className={classes.labelTime}>{\"(\" + this.state.closeTimeLE + \")\"}</span>\r\n                 <IconButton className={classes.closeButton} onClick={this.handleCloseListaEspera} size=\"small\">\r\n                  <CloseIcon fontSize=\"small\" />\r\n                 </IconButton>\r\n               </DialogTitle>\r\n               <DialogContent style={{ paddingTop: \"20px\" }}>\r\n                <Typography variant=\"body1\" gutterBottom style={{ textAlign: \"justify\", textJustify: \"inter-word\" }}>                \r\n                 {this.state.messageLE}\r\n                 </Typography>   \r\n                </DialogContent>                       \r\n                <DialogActions style={{ marginTop: '20px', paddingLeft: 0, paddingRight: 0}}>\r\n                  <BarraBotones botones={this.state.showButtomsDirLE ? this.botones_lista_espera_dir : this.botones_lista_espera} />\r\n                </DialogActions>\r\n                </Dialog>\r\n\r\n                <Dialog open= {this.state.openModalHibrida}\r\n                        classes ={{ paper: classes.paperListaEspera}}>\r\n                <DialogTitle><Typography component='span' variant='subtitle2'>{this.state.titleModalHibrida}</Typography>\r\n                 <IconButton className={classes.closeButton} onClick={this.handleCloseHibrida} size=\"small\">\r\n                  <CloseIcon fontSize=\"small\" />\r\n                 </IconButton>\r\n                </DialogTitle>\r\n                <DialogContent style={{ paddingTop: \"10px\", paddingBottom: \"10px\" }}>\r\n                <List className={classes.root}>\r\n                <ListItem alignItems=\"flex-start\" button onClick={this.onClickListItem(\"PRE\")}> \r\n                  <ListItemAvatar>\r\n                   <Avatar>\r\n                     <PersonIcon />\r\n                    </Avatar>\r\n                  </ListItemAvatar>\r\n                  <ListItemText\r\n                    primary=\"Presencial\"\r\n                    secondary={\"Grupo convencional, deberá presentarse al aula de clases especificada. (\" + this.state.cuposHibridaA + \" cupo(s) disponibles)\"}\r\n                    />\r\n                </ListItem>\r\n                <Divider variant=\"inset\" component=\"li\" />\r\n                <ListItem alignItems=\"flex-start\" button onClick={this.onClickListItem(\"PMV\")}> \r\n                  <ListItemAvatar>\r\n                   <Avatar>\r\n                     <VideocamIcon />\r\n                    </Avatar>\r\n                  </ListItemAvatar>\r\n                  <ListItemText\r\n                    primary=\"Por Videoconferencia\"\r\n                    secondary={\"Grupo que permite interactuar en la clase mediante video conferencia. (\" + this.state.cuposHibridaB + \" cupo(s) disponibles)\"}\r\n                    />\r\n                </ListItem>\r\n                </List>\r\n               </DialogContent>                       \r\n               </Dialog>\r\n\r\n               <Dialog open= {this.state.openModalSeccionesLE}                            \r\n                       TransitionProps={{ onEntering: this.onEnteringSeccionesLE }} \r\n                       classes = {{ paper: classes.paperCorrequisito }}\r\n                       fullScreen={movil}\r\n                    >\r\n              <DialogTitle><Typography component='span' variant='subtitle2'>Secciones en lista de espera</Typography>\r\n                <IconButton className={classes.closeButton} onClick={this.handleCloseSeccionesLE} size=\"small\">\r\n                  <CloseIcon fontSize=\"small\" />\r\n                </IconButton>\r\n              </DialogTitle>\r\n              <DialogContent style={{ paddingBottom: '0px' }}>\r\n              <div ref={this.tablaLERef} className=\"disableTouchOptions\">\r\n                <CustomTable \r\n                  Columns={columnsLE} \r\n                  Rows={this.state.rowsLE}                \r\n                  loading={this.state.loadingLE}\r\n                  height = {this.state.heightTableLE}                \r\n                  VirtualTable_cellComponent={VirtualTable_cellComponent(classes.tooltip)}\r\n                  TableColumnExtensions={columnExtensionsLE} \r\n                /> \r\n                </div>\r\n              </ DialogContent>\r\n              <DialogActions ref={this.dialogActionLERef} />\r\n              </Dialog>\r\n\r\n                <Reporte label_reporte=\"RESUMEN_MATRICULA\" \r\n                         id=\"BTRM\"\r\n                         parametros={tokenInfo.plataforma !== 2 ? this.cuenta : tokenInfo.user} \r\n                         nom_boton=\"\" \r\n                         nom_bar=\"Resumen Matrícula\"  \r\n                         fill=\"white\"\r\n                         fullScreen\r\n                         boton={false} \r\n                         opciones={false}\r\n                         color_bar='primary'/>\r\n\r\n                <Backdrop className={classes.backdrop} \r\n                          open={this.state.openBackDrop} \r\n                          transitionDuration={this.state.transitionDurationBackdrop}>                                       \r\n                  <CircularProgress color=\"inherit\" />\r\n                  <span style={{ marginTop: '10px' }}>{this.state.messageBackdrop}</span>\r\n                </Backdrop>\r\n                <Backdrop open={this.state.openBackDropInvisible || this.state.loadingMain || this.state.loadingClientes || this.state.loadingCheck || this.state.loadingCorreq || this.state.loadingDetalle || (this.state.loadingLE && this.state.openModalSeccionesLE)}\r\n                          className={classes.backdrop} \r\n                          invisible \r\n                          transitionDuration={0}/>\r\n          \r\n        </Paper>\r\n      </React.Fragment>\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; //((<Redirect to=\"/login\"/>))\r\n}\r\nreturn null;\r\n\r\n}//FIN RENDER\r\n}\r\n\r\n)"],"sourceRoot":""}