{"version":3,"sources":["pages/pagina404.js","pages/paginasinpermiso.js","pages/registro/Historicos_Academicos.js","pages/registro/consultaAsistencias.js"],"names":["withStyles","theme","Dialog","borderRadius","margin","padding","React","Component","constructor","props","super","this","height","movil_pequeño","state","isLoggin","undefined","render","_jsx","style","width","bottom","top","window","innerHeight","background","children","Card","boxShadow","_jsxs","CardActionArea","CardContent","textAlign","fontSize","color","CardMedia","image","title","backgroundSize","actualizarbarra","Auth","AuthService","componentDidMount","_this","loggedIn","then","b","setState","setTimeout","logout","location","reload","tokenInfo","movil","test","navigator","userAgent","colorEqu","planes","widthTable","screen","globales","tabla","marginleft","marginright","columns","name","columnExtensions","columnName","align","grouping","columnsInfo","columnExtensionsInfo","settingFilter","predicate","value","filter","row","funciones","getTime","IntegratedFiltering","defaultPredicate","RowId","ID_SECCION_CLIENTE","VirtualTable_cellComponent","colorFont","ESTATUS_ACADEMICO","Table","Cell","VirtualTable_cellComponentInfo","classes","_ref","column","promType","LABEL","toLowerCase","includes","border","paddingTop","paddingBottom","display","alignItems","Tooltip","PopperProps","zIndex","placement","arrow","InfoIcon","marginLeft","colores","color_iconos_SL","className","customCellBold","paddingLeft","GroupCellContent","_ref2","search","parseInt","RenderOption","option","flexDirection","ListItemAvatar","minWidth","Avatar","PersonIcon","size","CUENTA_ALUMNO","NOMBRE_COMPLETO","DataTypeProviders","DataTypeProvider","for","formatterComponent","_ref5","container","justifyContent","spacing","paddingRight","textField","marginRight","formControlSelect","paper","border_dialog","maxWidth","maxHeight","paperDetail","minHeight","closeButton","position","right","palette","grey","small","divDetailLoading","divDetail","azul","fontWeight","tooltip","divInfo","marginBottom","marginTop","backdrop","tablaRef","createRef","tablaInfoRef","planesRef","rowRef","tablaDetailRef","dialogAction2Ref","dialogRef","drawInnerText","chart","ctx","restore","font","textBaseline","text","config","options","centerText","textX","Math","round","measureText","textY","fillStyle","naranja","fillText","save","drawLabelsPoints","rowsDetail","length","indexDataset","Object","keys","data","datasets","_meta","map","item","dataset","labelDraw","totalPoints","forEach","points","index","FECHA_APLICO_NOTA","find","x","ID_PONDERACION","VALOR","PORCENTAJE","lessIdExtra","ID_CALIFICACION","fillRect","_view","y","selectionPlanEstudio","arrayPlanes","ID_PLAN","select","ESTADO","toString","trim","toUpperCase","handleChangeCuenta","event","cuenta","plataforma","user","valueAutoComplete","loadingPlanes","Request","get","ip","set","getToken","retry","timeout","response","deadline","end","err","res","substr","selectedPlan","datosSelectPlan","rows","idRowSelected","showToast","JSON","parse","niveles","datosSelect","i","ID_NIVEL","push","label","DESCRIPCION_NIVEL","itemx","j","DESCRIPCION_PLAN","estado","datosSelect_","MenuItem","handleChangePlan","obtenerHistorial","id_plan","loadingMain","expandedGroups","foundAnio","foundPeriodo","allGroups","anio","ANIO","periodo","PERIODO","obtenerTotalCumplidas","totalCumplidas","TOTAL_CUMPLIDAS","obtenerPromedios","rowsInfo","loadingInfo","VALUE","CODIGO_PLAN","TOTAL_CURSOS_PLAN","PROMEDIO_GRADUACION","toFixed","PROMEDIO_HISTORICO","async","target","Promise","resolve","changeExpandedGroups","handleCloseInfo","openModalInfo","onEnteringInfo","recorrido","chartData","labels","backgroundColor","hoverBackgroundColor","hoverBorderColor","borderColor","chartOptions","maintainAspectRatio","legend","fullWidth","onClick","plugins","args","precision","fontColor","showZero","tooltips","enabled","animation","easing","handleCloseDetail","openModalDetail","chartDetailData","onEnteringDetail","loadingDetail","extraValue","availableExtra","EXTRAORDINARIO","PERMITE_EXTRAORDINARIO","labelChart","dataChart","PONDERACION","parseFloat","fill","lineTension","azul_rgb","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","onChangeAutocomplete","openAutoComplete","filtersClientes","optionAutocomplete","loadingClientes","onBlurAutoComplete","handleRowDetailsClick","preventDefault","DESCRIPCION_CURSO","split","titleDetail","handleClickInfo","isEmpty","handleRowClick","IdSeccionCliente","onChangeInput","e","heightTableMain","tableDetailHeight","chartDetailOptions","scales","yAxes","ticks","beginAtZero","steps","stepValue","max","callback","layout","callbacks","tooltipItems","getProfile","getHeightTableMain","heightTable","current","focus","document","getElementById","Chart","pluginService","register","afterDraw","afterDatasetsDraw","Fragment","Paper","square","Autocomplete","id","getOptionLabel","renderInput","params","TextField","variant","onBlur","InputProps","endAdornment","Fade","in","transitionDelay","unmountOnExit","CircularProgress","renderOption","onChange","open","loading","ListboxComponent","virtual","disableClearable","onInputChange","popupIcon","PaperComponent","elevation","Select","Label","Datos","Selected","Style","Outlined","Ref","ref","marginleft_movil","marginright_movil","CustomTable","Columns","Rows","Grouping","TableColumnExtensions","columnWidths","DefaultHiddenColumnNames","ExpandedGroups","ChangeExpandedGroups","getRowId","rowSelected","rowClick","enabledFilterRows","rowHeaderCellComponent","Icon","SchoolIcon","color_iconos","ToolTipText","_ref4","resizingEnabled","TableHeaderRow","IconButton","left","groupContentComponent","stubCellComponentTable","_ref3","colSpan","tableRow","type","tableColumn","StubCell","TimelineIcon","ETIQUETA","LabelImportantIcon","cursor","key","FilteringColumnExtensions","TransitionProps","onEntering","fullScreen","DialogTitle","Typography","component","Box","lineHeight","m","CloseIcon","Pie","disableHeader","disableBoxShadow","disabledAlternateRowColor","DialogActions","PaperProps","DialogContent","overflowY","Line","Backdrop","invisible","transitionDuration","StubCellComponentTable","totalSummaryItems","groupSummaryItems","columnsCopy","columnExtensionsCopy","ID_ASISTENCIA_ALUMNO","HORA_ENTRADA","HORA_SALIDA","ColumnFixed_cellComponent","showLeftDivider","showRightDivider","TableFixedColumns","paperConfirm","paperCopy","formControlSelectCopy","divProgressCopy","tableCopyRef","selectCopyRef","dialogActionsRef","ListSubheader","disableSticky","obtenerActividadesCop","expandedGroupsCopy","found","area","NOMBRE_AREA","handleOkDelete","openModalConfirm","openBackDrop","post","send","cuenta_alumno","puntos","id_actividad","id_asistencia_alumno","ad_usuario","RESP","handleCloseConfirm","handleClickDelete","onEnteringCopy","heightTableCopy","getHeightTableDialog","indexSelected","tmpValues","datosSelectCopy","handleCloseCopy","copyLoading","openModalCopy","rowsCopy","selectedCopy","selection","handleOkCopy","strActividades","idActividadTmp","ID_ACTIVIDADES_X_AREA","id_plan_origen","id_plan_destino","str_actividades","changeExpandedGroupsCopy","handleChangeCopy","changeSelection","idRow","handleClick","isLoading","botones_eliminar","icono","toolt","nombre","onclick","botones_copy","gutterBottom","BarraBotones","botones","showSelectionColumn","Selection","ChangeSelection","showSelectAll","leftColumnsFixed","TableSelection","COLUMN_TYPE","columnFixedCellComponent","LinearProgress","rowsLength","FileCopyIcon","totalItems","groupItems","summaryRowMessages","count","sum","idRowSelection","DeleteIcon"],"mappings":"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","file":"static/js/main~37306aed.934a9f2e.chunk.js","sourcesContent":["import React from 'react';\r\nimport CardMedia from '@material-ui/core/CardMedia';\r\nimport CardActionArea from '@material-ui/core/CardActionArea';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n \r\n /* CLASES DE ESTILO */\r\n\r\n var styles = theme =>({\r\n Dialog:{\r\n borderRadius: 30,\r\n margin:0,\r\n padding:0\r\n },\r\n})\r\n/* EXPORT */\r\nexport default withStyles(styles)(\r\n class Pagina404 extends React.Component {\r\n constructor(props) {\r\n \r\n super(props);\r\n this.height=props.height\r\n this.movil_pequeño=props.movil_pequeño\r\n \r\n this.state = {\r\n isLoggin : undefined,\r\n }\r\n } \r\n \r\n /* RENDER */\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n ¡¡ Página no encontrada !!\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n }\r\n)","import React from 'react';\r\nimport CardMedia from '@material-ui/core/CardMedia';\r\nimport CardActionArea from '@material-ui/core/CardActionArea';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport AuthService from '../AuthService';\r\nvar Sinpermiso='/Multimedia/sinpermiso.png'\r\n \r\n /* CLASES DE ESTILO */\r\n\r\n var styles = theme =>({\r\n Dialog:{\r\n borderRadius: 30,\r\n margin:0,\r\n padding:0\r\n },\r\n})\r\n/* EXPORT */\r\nexport default withStyles(styles)(\r\n class Pagina404 extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.actualizarbarra=props.actualizarbarra\r\n this.Auth = new AuthService();\r\n this.height=props.height\r\n this.movil_pequeño=props.movil_pequeño\r\n this.state = {\r\n isLoggin : undefined,\r\n }\r\n }\r\n\r\n componentDidMount()\r\n {\r\n let _this = this;\r\n _this.actualizarbarra(false)\r\n this.Auth.loggedIn().then( function(b){\r\n _this.setState({ isLoggin: b})\r\n setTimeout(function(){ _this.actualizarbarra(true); }, 2000);\r\n })\r\n }\r\n\r\n /* RENDER */\r\n render() {\r\n \r\n if (this.state.isLoggin === true )\r\n {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n No tiene permiso para esta ventana \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n else if (this.state.isLoggin === false)\r\n {\r\n this.Auth.logout()\r\n window.location.reload();\r\n return; \r\n }\r\n return null;\r\n }\r\n }\r\n)","import React from 'react';\r\nimport CustomTable from '../../components/CustomTable';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport {globales, colores, funciones} from '../../global';\r\nimport AuthService from '../../AuthService';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport Select from '../../components/Select';\r\nimport Request from 'superagent';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n//import ListSubheader from '@material-ui/core/ListSubheader';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport {Table} from '@devexpress/dx-react-grid-material-ui';\r\nimport {TableHeaderRow} from '@devexpress/dx-react-grid-material-ui';\r\nimport {DataTypeProvider, IntegratedFiltering} from '@devexpress/dx-react-grid';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport SchoolIcon from '@material-ui/icons/School';\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 { Pie, Chart, Line } from 'react-chartjs-2';\r\nimport Typography from '@material-ui/core/Typography'\r\nimport Box from '@material-ui/core/Box';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport TimelineIcon from '@material-ui/icons/Timeline';\r\nimport LabelImportantIcon from '@material-ui/icons/LabelImportant';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport {virtual} from '../../components/VirtualListBox';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Fade from '@material-ui/core/Fade';\r\n//import { Divider } from '@material-ui/core';\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\n\r\nlet colorRep = '#CB4335';\r\nlet colorEqu = '#886F0B';\r\nlet colorRet = '#7D3C98';\r\nlet colorCur = '#229954';\r\nlet colorAus = '#D35400';\r\nlet colorProped = '#0e4682';\r\nlet planes = [];\r\n\r\nconst styles = theme => ({\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\nformControlSelect: {\r\n width: movil ? '100%' : '430px', \r\n marginLeft: !movil ? theme.spacing(1) : undefined, \r\n textAlign: 'left',\r\n},\r\npaper: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: !movil ? '420px' : undefined,\r\n maxWidth: !movil ? '420px' : undefined,\r\n height: !movil ? '620px' : undefined,\r\n maxHeight: !movil ? '95%' : undefined,\r\n},\r\npaperDetail: { \r\n borderRadius: globales.border_dialog,\r\n minHeight: !movil ? '490px' : undefined,\r\n maxHeight: !movil ? '490px' : undefined,\r\n minWidth: !movil ? '717px' : undefined,\r\n maxWidth: !movil ? '717px' : undefined,\r\n},\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\nsmall: {\r\n width: theme.spacing(3),\r\n height: theme.spacing(3),\r\n marginLeft: '30px',\r\n fontSize: '12px'\r\n},\r\ndivDetailLoading: {\r\n width: '100%', \r\n height: '100%', \r\n display: 'flex', \r\n alignItems: 'center', \r\n justifyContent: 'center'\r\n},\r\ndivDetail:{\r\n width: '100%', \r\n height: '100%',\r\n},\r\ncustomCellBold: {\r\n color: colores.azul,\r\n fontWeight: 'bold'\r\n},\r\ntooltip: {\r\n maxWidth: !movil ? 'none' : undefined,\r\n},\r\ndivInfo: {\r\npaddingBottom: '0px', \r\nmarginBottom:'0px', \r\nmarginTop: \"0px\", \r\npaddingLeft: '10px', \r\npaddingRight: '10px', \r\nmarginLeft: '8px', \r\nmarginRight: '8px',\r\n},\r\nbackdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\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: 'ICON', title: 'ICON'},\r\n { name: 'ANIO', title: 'Año'},\r\n { name: 'PERIODO', title: 'Período'},\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: 'NOTA', title: 'Nota'},\r\n { name: 'ESTATUS', title: 'Estado'},\r\n { name: 'ID_SECCION_CLIENTE', title: 'ID_SECCION_CLIENTE'},\r\n { name: 'DIAS', title: 'Dias' },\r\n { name: 'INICIO', title: 'Desde'},\r\n { name: 'FIN', title: 'Hasta'},\r\n { name: 'CATEDRATICO', title: 'Catedrático' },\r\n { name: 'ETIQUETA', title: 'ETIQUETA'}\r\n ];\r\nconst columnExtensions = [\r\n { columnName: 'ICON', width: 1},\r\n { columnName: 'CODIGO_CURSO', width: widthTable * 0.09},\r\n { columnName: 'DESCRIPCION_CURSO', width: widthTable * 0.22 }, \r\n { columnName: 'CREDITOS', width: widthTable * 0.06, align: 'center'},\r\n { columnName: 'NOTA', width: widthTable * 0.06, align: 'center'},\r\n { columnName: 'ESTATUS', width: widthTable * 0.08, align: 'center'}, \r\n { columnName: 'DIAS', width: widthTable * 0.07, align: 'center'},\r\n { columnName: 'INICIO', width: widthTable * 0.08, align: 'center'},\r\n { columnName: 'FIN', width: widthTable * 0.08, align: 'center'},\r\n { columnName: 'CATEDRATICO', width: widthTable * 0.15, }, \r\n { columnName: 'ID_SECCION_CLIENTE', width: 0},\r\n { columnName: 'ETIQUETA', width: 0}, \r\n { columnName: 'ANIO', width: 0},\r\n { columnName: 'PERIODO', width: 0}, \r\n];\r\nconst grouping = [{ columnName: 'ANIO' }, { columnName: 'PERIODO' }];\r\n\r\nconst columnsInfo = [ { name: 'LABEL', title: ' ' },\r\n { name: 'VALUE', title: ' ' },\r\n ];\r\nconst columnExtensionsInfo = [\r\n { columnName: 'LABEL', width: movil ? 145 : 180}, \r\n ];\r\n\r\nconst settingFilter = [{ 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 ];\r\n\r\nconst RowId = row => row.ID_SECCION_CLIENTE;\r\nconst VirtualTable_cellComponent = (props) => {\r\n \r\nconst {row} = props; \r\nconst colorFont = row.ESTATUS_ACADEMICO === '' ? colorCur : \r\n row.ESTATUS_ACADEMICO === 'R' ? colorRep : \r\n row.ESTATUS_ACADEMICO === 'E' ? colorRet :\r\n row.ESTATUS_ACADEMICO === 'C' ? colorEqu :\r\n row.ESTATUS_ACADEMICO === 'N' ? colorAus :\r\n row.ESTATUS_ACADEMICO === 'S' ? colorEqu :\r\n row.ESTATUS_ACADEMICO === 'P' ? colorProped :\r\n undefined;\r\n \r\n\r\nreturn ();\r\n \r\n} \r\nconst VirtualTable_cellComponentInfo= (classes)=>({value, ...props}) => {\r\n \r\n const {column, row} = props;\r\n const promType = row.LABEL.toLowerCase().includes(\"his\") ? 2 : 1;\r\n const border = promType === 2 ? \"none\" : undefined;\r\n \r\n if (column.name === 'VALUE' && row.LABEL.toLowerCase().includes(\"promedio\"))\r\n {\r\n return (\r\n {value}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (); \r\n \r\n}\r\n\r\nconst GroupCellContent = ({ column, row }) => (\r\n \r\n {row.value.search('Equivalencias') === '0' ? 'Equivalencias' : parseInt(row.value) <= 100 ? 'Período ' + row.value : row.value } \r\n \r\n);\r\n\r\nconst StubCellComponentTable = (idRowSelected, handleRowDetailsClick) => ({colSpan, ...props}) => {\r\n\r\nif (props.tableRow.type.toString() === 'Symbol(data)' && props.tableColumn.column !== undefined && props.tableColumn.column.name === 'PERIODO' && props.tableRow.row.ID_SECCION_CLIENTE === idRowSelected \r\n && props.tableRow.row.ESTATUS_ACADEMICO !== 'C' && props.tableRow.row.ESTATUS_ACADEMICO !== 'E' && props.tableRow.row.ESTATUS_ACADEMICO !== 'S' && props.tableRow.row.ESTATUS_ACADEMICO !== 'P') \r\n{\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nif (props.tableRow.type.toString() === 'Symbol(data)' && props.tableColumn.column !== undefined && props.tableColumn.column.name === 'ANIO' && props.tableRow.row.ETIQUETA !== null)\r\n{\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nreturn ();\r\n\r\n}\r\nconst ColumnHeader_cellComponent = (Icon, ToolTipText, handleClickInfo) => ({resizingEnabled, ...props}) => {\r\n \r\n const {column} = props;\r\n \r\n if (column.name === 'ICON')\r\n { \r\n return (\r\n '} >\r\n \r\n\r\n {\r\n (() => {\r\n\r\n return (\r\n Icon\r\n );\r\n\r\n })()\r\n\r\n }\r\n\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n return ();\r\n \r\n}\r\nconst RenderOption = (option) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{option.CUENTA_ALUMNO}\r\n
{option.NOMBRE_COMPLETO}
\r\n \r\n);\r\nconst DateFormatter = ({ value }) => (value != null) ? funciones.getTime(value, 1) : value; \r\nconst DataTypeProviders = ();\r\n\r\nexport default withStyles(styles) ( \r\nclass App extends React.Component {\r\n\r\ntablaRef = React.createRef();\r\ntablaInfoRef = React.createRef();\r\nplanesRef = React.createRef();\r\nrowRef = React.createRef();\r\ntablaDetailRef = React.createRef();\r\ndialogAction2Ref = React.createRef();\r\ndialogRef = React.createRef();\r\n\r\n constructor (props) {\r\n super(props);\r\n this.state = { \r\n isLoggin : undefined,\r\n heightTableMain: 0, \r\n datosSelectPlan : null,\r\n selectedPlan: '',\r\n rows: [],\r\n expandedGroups: [],\r\n loadingMain: false,\r\n idRowSelected: null,\r\n openModalInfo: false,\r\n chartData: {},\r\n chartOptions:{},\r\n rowsInfo: [], \r\n totalCumplidas: -1,\r\n openModalDetail: false,\r\n rowsDetail: [],\r\n tableDetailHeight: 0,\r\n lessIdExtra: -1,\r\n valueAutoComplete: null,\r\n loadingClientes: true,\r\n openAutoComplete: false,\r\n optionAutocomplete: [],\r\n chartDetailData: {},\r\n chartDetailOptions: {\r\n legend: { display: false},\r\n scales: { yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: true,\r\n steps: 10,\r\n stepValue: 10, //5,\r\n max: 105,\r\n callback: function (value) { \r\n return value === 105 ? null : value;\r\n } \r\n }, \r\n }]\r\n \r\n },\r\n layout: { \r\n padding: {\r\n top: !movil ? 15 : 20\r\n },\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (tooltipItems){ \r\n return 'Promedio en el parcial: ' + tooltipItems.value.toString() + '%';\r\n }\r\n }\r\n }\r\n },\r\n loadingDetail: false,\r\n titleDetail: '',\r\n loadingInfo: false,\r\n loadingPlanes: false,\r\n };\r\n this.cuenta = null;\r\n}\r\n\r\ndrawInnerText = (chart) => {\r\n \r\n var width = chart.chart.width,\r\n height = chart.chart.height,\r\n ctx = chart.chart.ctx;\r\n\r\n ctx.restore();\r\n var fontSize = 1.8; \r\n ctx.font = fontSize + \"em sans-serif\";\r\n ctx.textBaseline = \"middle\";\r\n\r\n var text = chart.config.options.centerText.text,\r\n textX = Math.round((width - ctx.measureText(text).width) / 2), \r\n textY = (height / 2) - 5; \r\n \r\n ctx.fillStyle = colores.naranja;\r\n ctx.fillText(text, textX, textY);\r\n ctx.save();\r\n}\r\n\r\ndrawLabelsPoints = (chart) =>{\r\n\r\nif (this.state.rowsDetail.length === 0) {return; } \r\n\r\nlet indexDataset;\r\n\r\nObject.keys(chart.config.data.datasets[0]._meta).map((item)=>{\r\n indexDataset = item;\r\n return item;\r\n});\r\n\r\nvar ctx = chart.chart.ctx;\r\n\r\nlet dataset = chart.config.data.datasets[0]._meta[indexDataset].data; \r\nlet _this =this;\r\nlet labelDraw = '';\r\nlet totalPoints = chart.config.data.datasets[0]._meta[indexDataset].data.length;\r\n\r\ndataset.forEach(function (points, index) { \r\n labelDraw = '';\r\n if (_this.state.rowsDetail[index].FECHA_APLICO_NOTA !== null || _this.state.rowsDetail.find(x => x.ID_PONDERACION === 100).VALOR !== null || _this.state.rowsDetail[index].VALOR > 0 || (_this.state.rowsDetail[index].VALOR === 0 && _this.state.rowsDetail[index].ID_PONDERACION!==99))\r\n {\r\n labelDraw = _this.state.rowsDetail[index].VALOR + ' | ' + _this.state.rowsDetail[index].PORCENTAJE; \r\n }\r\n\r\n if (_this.state.lessIdExtra === _this.state.rowsDetail[index].ID_CALIFICACION)\r\n {\r\n ctx.fillStyle = 'red'; \r\n ctx.fillRect(points._view.x - 8, points._view.y - 27, 48, 20);\r\n ctx.fillStyle = 'white';\r\n }\r\n else\r\n {\r\n ctx.fillStyle = 'black';\r\n }\r\n\r\n ctx.textAlign = \"center\";\r\n ctx.textBaseline = \"bottom\";\r\n ctx.fillText(labelDraw, index === 0 ? points._view.x + 22 : index === totalPoints - 1 ? points._view.x + 5 : points._view.x + 15, points._view.y - 10);\r\n \r\n ctx.save(); \r\n \r\n});\r\n\r\n\r\n\r\n}\r\n\r\nselectionPlanEstudio = (arrayPlanes) => {\r\n \r\n if (arrayPlanes.length === 0){\r\n \r\n return '';\r\n\r\n } \r\n\r\n if (arrayPlanes.length === 1){\r\n \r\n return arrayPlanes[0].ID_PLAN;\r\n\r\n } \r\n \r\n let select = arrayPlanes.filter(x => x.ESTADO.toString().trim().toUpperCase() ==='ACTIVO');\r\n\r\n if (select !== null && select.length > 0)\r\n { \r\n return select[0].ID_PLAN;\r\n }\r\n\r\n\r\n select = arrayPlanes.filter(x => x.ESTADO.toString().trim().toUpperCase() ==='EGRESADO');\r\n\r\n if (select !== null && select.length > 0)\r\n {\r\n return select[0].ID_PLAN;\r\n }\r\n\r\n\r\n select = arrayPlanes.filter(x => x.ESTADO.toString().trim().toUpperCase() ==='GRADUADO');\r\n\r\n if (select !== null && select.length > 0)\r\n {\r\n return select[0].ID_PLAN;\r\n }\r\n \r\n return '';\r\n \r\n\r\n}\r\n\r\nhandleChangeCuenta = (event) => {\r\n \r\n this.cuenta = (event === null && tokenInfo.plataforma === 2) ? tokenInfo.user : tokenInfo.plataforma === 1 ? this.state.valueAutoComplete.CUENTA_ALUMNO : null;\r\n this.setState({ loadingPlanes: true }, ()=>{ \r\n\r\n new Request\r\n .get(`${globales.ip}/historial/planes/${this.cuenta}/${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 planes = [];\r\n this.setState({ selectedPlan: '', datosSelectPlan: null, rows: [], idRowSelected: null, loadingPlanes: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n planes = JSON.parse(res.text);\r\n let niveles = [];\r\n let datosSelect = [];\r\n \r\n if (planes.length > 0) \r\n { \r\n planes.map((item, i) =>{\r\n\r\n if (!niveles.find(x => x === item.ID_NIVEL))\r\n {\r\n niveles.push(item.ID_NIVEL);\r\n\r\n if (!datosSelect.find(x => x.label === item.DESCRIPCION_NIVEL.trim())){\r\n datosSelect.push({value: item.ID_NIVEL * -1, label: item.DESCRIPCION_NIVEL.trim() })\r\n }\r\n\r\n planes.map((itemx, j) =>{ \r\n if (itemx.ID_NIVEL === item.ID_NIVEL)\r\n datosSelect.push({value: itemx.ID_PLAN, label: itemx.DESCRIPCION_PLAN ,estado: itemx.ESTADO})\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\n let datosSelect_ = datosSelect.map((item, i) =>{\r\n if (item.value < 0)\r\n return (\r\n
\r\n {item.label}\r\n
\r\n ); \r\n else\r\n return ({item.estado==='ACTIVO'?{item.label}- Activo:item.label});\r\n });\r\n \r\n this.setState({ datosSelectPlan: datosSelect_, selectedPlan: this.selectionPlanEstudio(planes), loadingPlanes: false });\r\n this.handleChangePlan('auto');\r\n } \r\n else\r\n { \r\n planes = [];\r\n this.setState({ selectedPlan: '', datosSelectPlan: null, rows: [], idRowSelected: null, loadingPlanes: false }); \r\n }\r\n \r\n\r\n }); \r\n\r\n});\r\n\r\n}\r\n\r\nobtenerHistorial = (cuenta, id_plan) => {\r\n \r\nthis.setState({ loadingMain: true }, ()=>{ \r\n\r\n new Request\r\n .get(`${globales.ip}/historial/informacion/${cuenta}/${id_plan}`)\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({ rows: [], expandedGroups: [], loadingMain: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n \r\n if (rows.length > 0)\r\n { \r\n\r\n let allGroups = [];\r\n let foundAnio;\r\n let foundPeriodo; \r\n\r\n rows.map((item, i) => {\r\n\r\n foundAnio = allGroups.find(anio => anio === item.ANIO);\r\n \r\n if (foundAnio === undefined && item.ANIO !== \"0\")\r\n allGroups.push(item.ANIO);\r\n else\r\n foundAnio = undefined;\r\n\r\n foundPeriodo= allGroups.find(periodo => periodo === item.ANIO + '|' + item.PERIODO);\r\n\r\n if (foundPeriodo === undefined && item.ANIO !== \"0\")\r\n allGroups.push(item.ANIO + '|' + item.PERIODO);\r\n else \r\n foundPeriodo = undefined;\r\n \r\n return item;\r\n }); \r\n\r\n this.setState({ rows: rows, expandedGroups: allGroups, loadingMain: false });\r\n }\r\n else\r\n this.setState({ rows: [], expandedGroups: [], loadingMain: false });\r\n \r\n });\r\n\r\n});\r\n\r\n}\r\n\r\nobtenerTotalCumplidas = (cuenta, id_plan) =>\r\n{\r\n \r\n new Request\r\n .get(`${globales.ip}/historial/total_cumplidos/${cuenta}/${id_plan}`)\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({ totalCumplidas: 0 }, ()=>{ \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 this.setState({ totalCumplidas: rows[0].TOTAL_CUMPLIDAS }); \r\n \r\n });\r\n}\r\n\r\nobtenerPromedios = (cuenta, id_plan) =>{\r\n \r\n new Request\r\n .get(`${globales.ip}/historial/promedios/${cuenta}/${id_plan}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 20000, deadline: 15000, }) \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({ rowsInfo: [], loadingInfo: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n }); \r\n \r\n return;\r\n\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n \r\n if (rows.length > 0)\r\n { \r\n \r\n const rowsInfo = [\r\n { LABEL: 'Código de plan', VALUE: planes.find(x => x.ID_PLAN === this.state.selectedPlan).CODIGO_PLAN },\r\n { LABEL: 'Descripción de plan', VALUE: planes.find(x => x.ID_PLAN === this.state.selectedPlan).DESCRIPCION_PLAN },\r\n { LABEL: 'Estado de plan', VALUE: planes.find(x => x.ID_PLAN === this.state.selectedPlan).ESTADO + ' (' + this.state.totalCumplidas + ' de ' + planes.find(x => x.ID_PLAN === this.state.selectedPlan).TOTAL_CURSOS_PLAN + ' cursos)' },\r\n { LABEL: 'Promedio graduación', VALUE: rows[0].PROMEDIO_GRADUACION < 100 ? rows[0].PROMEDIO_GRADUACION.toFixed(2) + '%' : rows[0].PROMEDIO_GRADUACION + '%' }, \r\n { LABEL: 'Promedio histórico', VALUE: rows[0].PROMEDIO_HISTORICO < 100 ? rows[0].PROMEDIO_HISTORICO.toFixed(2) + '%' : rows[0].PROMEDIO_HISTORICO + '%'}, \r\n ];\r\n \r\n this.setState({ rowsInfo, loadingInfo: false }); \r\n \r\n }\r\n else\r\n this.setState({ rowsInfo: [], loadingInfo: false });\r\n \r\n });\r\n\r\n}\r\n\r\nhandleChangePlan = async (event) => {\r\n\r\nif (event !== 'auto' && this.state.selectedPlan === event.target.value)\r\n return;\r\n\r\n \r\nif (event === 'auto' || event.target.value > 0 )\r\n{ \r\n this.obtenerTotalCumplidas(this.cuenta, event === 'auto' ? this.state.selectedPlan : event.target.value ); \r\n await Promise.resolve(this.setState({ totalCumplidas: -1, selectedPlan: event === 'auto' ? this.state.selectedPlan : event.target.value, rowsInfo: [] })); \r\n this.obtenerHistorial(this.cuenta, event === 'auto' ? this.state.selectedPlan : event.target.value );\r\n}\r\n \r\n}\r\n\r\nchangeExpandedGroups = expandedGroups =>\r\n{\r\n this.setState({ expandedGroups }); \r\n}\r\n\r\nhandleCloseInfo = () => {\r\n\r\nthis.setState({ openModalInfo: false });\r\n\r\n}\r\n\r\nonEnteringInfo = () => {\r\n \r\n let recorrido = this.state.rows.length > 0 ? this.state.totalCumplidas * 100 / planes.find(x => x.ID_PLAN === this.state.selectedPlan).TOTAL_CURSOS_PLAN : 0;\r\n\r\n let chartData = {\r\n\r\n labels : ['Cursado', 'Restante'],\r\n datasets: [ { data: [recorrido , 100 - recorrido ], \r\n backgroundColor: [ colores.azul, 'white' ], \r\n hoverBackgroundColor: [colores.azul, 'white'],\r\n hoverBorderColor: [colores.azul,'#E5E7E9'],\r\n borderColor: recorrido < 100 ? [colores.azul,'#E5E7E9'] : colores.azul, \r\n }, \r\n ],\r\n };\r\n \r\n let chartOptions = {\r\n\r\n maintainAspectRatio: true, \r\n legend: { position: 'bottom', fullWidth: false, onClick: null }, \r\n plugins: {\r\n labels: { \r\n render: (args) => { \r\n return '';\r\n },\r\n precision: 2,\r\n fontColor: colores.naranja,\r\n fontSize: 25,\r\n showZero: true, \r\n },\r\n },\r\n tooltips: { enabled: false },\r\n title: {\r\n display: true,\r\n text: 'Porcentaje completado de carrera',\r\n },\r\n centerText: {\r\n display: true,\r\n text: recorrido < 100 ? recorrido.toFixed(2) + '%' : recorrido + '%', \r\n }, \r\n animation: { \r\n easing: 'easeOutExpo' //'linear' \r\n },\r\n\r\n }\r\n \r\n this.setState({ chartData: chartData, chartOptions: chartOptions });\r\n \r\n}\r\n\r\nhandleCloseDetail = () => {\r\n \r\n this.setState({ openModalDetail: false, rowsDetail: [], chartDetailData: {}, });\r\n \r\n}\r\n\r\nonEnteringDetail = () => {\r\n \r\n new Request\r\n .get(`${globales.ip}/historial/calificaciones/${this.state.idRowSelected}/${this.cuenta}`)\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({ openModalDetail: false, rowsDetail: [], chartDetailData: {}, loadingDetail: 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 let extraValue = rows.find(x => x.ID_PONDERACION === 99);\r\n let lessIdExtra = [];\r\n let availableExtra =[];\r\n \r\n if (extraValue !== null && extraValue !== undefined && (extraValue.VALOR > 0 || rows[0].EXTRAORDINARIO))\r\n {\r\n \r\n availableExtra = rows.filter(x => x.PERMITE_EXTRAORDINARIO === 1);\r\n\r\n if (availableExtra.length === 0)\r\n {\r\n lessIdExtra.push({ ID_CALIFICACION: rows.find(x => x.ID_PONDERACION === 99).ID_CALIFICACION, VALOR: rows.find(x => x.ID_PONDERACION === 99).VALOR });\r\n }\r\n\r\n availableExtra.map((item, index)=> {\r\n\r\n if (index === 0)\r\n {\r\n lessIdExtra = [];\r\n lessIdExtra.push({ ID_CALIFICACION: item.ID_CALIFICACION, VALOR: item.VALOR });\r\n }\r\n else\r\n {\r\n if (item.VALOR < lessIdExtra[0].VALOR)\r\n {\r\n lessIdExtra = [];\r\n lessIdExtra.push({ ID_CALIFICACION: item.ID_CALIFICACION, VALOR: item.VALOR });\r\n }\r\n }\r\n\r\n return item;\r\n });\r\n\r\n }\r\n else\r\n { \r\n if (extraValue !== undefined)\r\n {\r\n lessIdExtra.push({ ID_CALIFICACION: rows.find(x => x.ID_PONDERACION === 99).ID_CALIFICACION, VALOR: rows.find(x => x.ID_PONDERACION === 99).VALOR });\r\n }\r\n }\r\n \r\n let labelChart = []; \r\n let dataChart = []; \r\n rows.map((item)=>{\r\n\r\n if ((item.ID_PONDERACION !== 100 && item.ID_PONDERACION !== 99 && item.PORCENTAJE > 0) || (item.ID_PONDERACION === 99 && item.ID_CALIFICACION !== lessIdExtra[0].ID_CALIFICACION))\r\n {\r\n labelChart.push(item.PONDERACION);\r\n dataChart.push(parseFloat(item.VALOR*100/item.PORCENTAJE).toFixed(2) > 100 ? 100 : parseFloat(item.VALOR*100/item.PORCENTAJE).toFixed(2));\r\n }\r\n return item;\r\n });\r\n \r\n dataChart = { \r\n labels: labelChart,\r\n datasets: [\r\n {\r\n label: 'Valor porcentual',\r\n fill: true,\r\n lineTension: 0.1,\r\n backgroundColor: 'rgba(' + colores.azul_rgb + ', 0.6)', \r\n borderColor: 'rgba(' + colores.azul_rgb + ', 1)',\r\n borderCapStyle: 'butt',\r\n borderDash: [],\r\n borderDashOffset: 0.0,\r\n borderJoinStyle: 'miter',\r\n pointBorderColor: 'rgba(' + colores.azul_rgb + ', 1)',\r\n pointBackgroundColor: '#fff',\r\n pointBorderWidth: 1,\r\n pointHoverRadius: 5,\r\n pointHoverBackgroundColor: 'rgba(75,192,192,1)',\r\n pointHoverBorderColor: 'rgba(220,220,220,1)',\r\n pointHoverBorderWidth: 3,\r\n pointRadius: 5,\r\n pointHitRadius: 10,\r\n data: dataChart\r\n }\r\n ]\r\n }\r\n \r\n this.setState({ lessIdExtra: lessIdExtra[0] !== undefined ? lessIdExtra[0].ID_CALIFICACION : -1, rowsDetail: rows, chartDetailData: dataChart, loadingDetail: false }); \r\n } \r\n \r\n });\r\n\r\n\r\n}\r\n\r\nonChangeAutocomplete = (event, value) =>{\r\n \r\n planes = [];\r\n this.setState({ valueAutoComplete: value, \r\n openAutoComplete: false, \r\n selectedPlan: '', \r\n datosSelectPlan: null, \r\n rows: [], \r\n idRowSelected: null,\r\n rowsInfo: [] }, ()=>{\r\n \r\n if (value === null)\r\n return;\r\n \r\n this.handleChangeCuenta(null); \r\n \r\n });\r\n \r\n\r\n}\r\n\r\nfiltersClientes = (value)=>{ \r\n \r\n new Request\r\n .get(`${globales.ip}/historial/estudiantes/${value}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(0)\r\n .timeout({ response: 20000, deadline: 30000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ optionAutocomplete: [], openAutoComplete: false, loadingClientes: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n this.setState({ optionAutocomplete: rows, loadingClientes: false }); \r\n \r\n \r\n});\r\n \r\n}\r\n\r\nonBlurAutoComplete = ()=>{\r\n\r\n if (this.state.openAutoComplete)\r\n this.setState({ openAutoComplete: false }); \r\n \r\n}\r\n\r\nhandleRowDetailsClick = event => {\r\n \r\nevent.preventDefault();\r\nconst title = this.state.rows.find(x => x.ID_SECCION_CLIENTE === this.state.idRowSelected).DESCRIPCION_CURSO.split('(')[0].trim();\r\n\r\nthis.setState({ loadingDetail: true, \r\n titleDetail: title, \r\n openModalDetail: true });\r\n \r\n}\r\n\r\nhandleClickInfo = () => {\r\n \r\nif (funciones.isEmpty(this.state.selectedPlan)) { return; }\r\n \r\nif (this.state.totalCumplidas < 0)\r\n return;\r\n \r\nif (this.state.rowsInfo.length > 0){\r\n this.setState({ openModalInfo: true });\r\n return;\r\n}\r\n\r\nthis.setState({ loadingInfo: true, openModalInfo: true }, ()=>{ \r\n this.obtenerPromedios(this.cuenta, this.state.selectedPlan);\r\n}); \r\n\r\n}\r\n\r\nhandleRowClick = (IdSeccionCliente) => event => {\r\n \r\nevent.preventDefault();\r\nthis.setState({ idRowSelected: IdSeccionCliente });\r\n\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\ncomponentDidMount() { \r\n\r\n tokenInfo = Auth.getProfile(); //Token decodificado\r\n\r\n this.setState({ isLoggin: tokenInfo.plataforma !== undefined ? true : false }, ()=>{ \r\n \r\n if (tokenInfo.plataforma === 1) // Usuario Admin\r\n {\r\n this.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_historial\").focus();\r\n return;\r\n }\r\n\r\n if (!movil){\r\n this.planesRef.current.focus();\r\n }\r\n }); \r\n\r\n let _this = this; \r\n Chart.Chart.pluginService.register({\r\n afterDraw: function (chart) { \r\n \r\n if (_this.state.openModalInfo)\r\n {\r\n if (chart.config.options.centerText.display !== null &&\r\n typeof chart.config.options.centerText.display !== 'undefined' &&\r\n chart.config.options.centerText.display) {\r\n _this.drawInnerText(chart);\r\n }\r\n }\r\n \r\n },\r\n afterDatasetsDraw: function (chart) { \r\n if (_this.state.openModalDetail){ \r\n _this.drawLabelsPoints(chart);\r\n }\r\n }\r\n });\r\n \r\n });\r\n\r\n}\r\n\r\nrender() {\r\nconst { classes } = this.props; \r\n\r\n if (this.state.isLoggin === true)\r\n {\r\n return (\r\n \r\n \r\n \r\n {\r\n (() => {\r\n\r\n if (tokenInfo.plataforma === 1) //Si es Usuario Admin\r\n {\r\n \r\n return (\r\n \r\n
\r\n option.CUENTA_ALUMNO + ' - ' + option.NOMBRE_COMPLETO}\r\n style={{ width: movil ? '100%' : '430px' }}\r\n renderInput={(params) => \r\n {this.state.loadingClientes ? \r\n \r\n \r\n \r\n : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n fullWidth \r\n />}\r\n renderOption={RenderOption} \r\n onChange={this.onChangeAutocomplete}\r\n open={this.state.openAutoComplete}\r\n loading={this.state.loadingClientes}\r\n ListboxComponent={virtual.ListboxComponent}\r\n value={this.state.valueAutoComplete} \r\n className={classes.textField}\r\n disableClearable={this.state.loadingMain}\r\n onInputChange={this.onChangeInput}\r\n popupIcon={null} \r\n PaperComponent={(props)=>()} \r\n /> \r\n \r\n
\r\n
\r\n );\r\n\r\n }\r\n \r\n })()\r\n\r\n }\r\n\r\n
\r\n = 0 ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />, this.state.selectedPlan !== '' ? this.state.totalCumplidas >= 0 ? 'Estado de plan: ' + planes.find(x => x.ID_PLAN === this.state.selectedPlan ).ESTADO : 'cargando por favor espere...' : undefined, this.handleClickInfo)}\r\n groupContentComponent={GroupCellContent}\r\n stubCellComponentTable = {StubCellComponentTable(this.state.idRowSelected, this.handleRowDetailsClick)} \r\n FilteringColumnExtensions = {settingFilter}\r\n /> \r\n
\r\n\r\n \r\n {this.state.selectedPlan !== '' ? planes.find(x => x.ID_PLAN === this.state.selectedPlan ).DESCRIPCION_NIVEL : undefined} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {this.state.titleDetail}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {(()=>{\r\n \r\n if (!this.state.loadingDetail && this.state.openModalDetail) \r\n { \r\n return (\r\n \r\n \r\n
\r\n
{'Parcial sustituído por extra ordinario.'}\r\n
\r\n \r\n );\r\n \r\n }\r\n else if (this.state.loadingDetail && this.state.openModalDetail)\r\n return();\r\n\r\n })()\r\n }\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\nelse if (this.state.isLoggin === false)\r\n{\r\n //Auth.logout();\r\n window.location.reload();\r\n return; //(())\r\n}\r\nreturn null;\r\n\r\n}//FIN RENDER\r\n}\r\n\r\n)\r\n","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 {withStyles} from '@material-ui/core/styles';\r\nimport {Table, TableHeaderRow, TableSelection, TableFixedColumns} from '@devexpress/dx-react-grid-material-ui';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Select from '../../components/Select';\r\nimport ListSubheader from '@material-ui/core/ListSubheader';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport BarraBotones from '../../components/Barra_menu';\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 Typography from '@material-ui/core/Typography';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport {virtual} from '../../components/VirtualListBox';\r\nimport {IntegratedFiltering} from '@devexpress/dx-react-grid';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\nlet Auth = new AuthService();\r\nlet tokenInfo = [];\r\n\r\nvar movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet planes = [];\r\nconst settingFilter = [\r\n { columnName: 'HORA_ENTRADA',\r\n predicate: (value, filter, row) => {\r\n value = value !== null ? funciones.getTime(value) : value; \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n },\r\n { columnName: 'HORA_SALIDA',\r\n predicate: (value, filter, row) => {\r\n value = value !== null ? funciones.getTime(value) : value; \r\n return IntegratedFiltering.defaultPredicate(value, filter, row);\r\n },\r\n },\r\n ];\r\n\r\nconst styles = theme => ({\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\nformControlSelect: {\r\n width: movil ? '100%' : '430px', \r\n marginLeft: !movil ? theme.spacing(1) : undefined, \r\n textAlign: 'left',\r\n},\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\npaperConfirm: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: '320px', \r\n maxWidth: '320px', \r\n},\r\npaperCopy: { \r\n borderRadius: globales.border_dialog,\r\n minWidth: !movil ? '500px' : undefined,\r\n maxWidth: !movil ? '500px' : undefined,\r\n height: !movil ? '620px' : undefined,\r\n maxHeight: !movil ? '95%' : undefined\r\n},\r\nformControlSelectCopy: {\r\n width: '100%', \r\n marginTop: theme.spacing(0), \r\n textAlign: 'left',\r\n marginBottom: theme.spacing(1.5)\r\n},\r\nbackdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\r\n},\r\ndivProgressCopy:{\r\n height: '48px',\r\n width: \"100%\",\r\n paddingTop: '20px', \r\n},\r\n});\r\nconst widthTable = !movil ? window.screen.width - (globales.tabla.marginleft + globales.tabla.marginright) : 1336;\r\nconst columns = [\r\n { name: 'ICON', title: ' ' },\r\n { name: 'ID_ASISTENCIA_ALUMNO', title: 'ID_ASISTENCIA_ALUMNO' },\r\n { name: 'DESCRIPCION_ACTIVIDAD', title: 'Descripción de actividad' },\r\n { name: 'HORA_ENTRADA', title: 'Hora de entrada' },\r\n { name: 'HORA_SALIDA', title: 'Hora de salida' },\r\n { name: 'PUNTAJE', title: 'Puntos' },\r\n { name: 'NOMBRE_AREA', title: 'Área' },\r\n];\r\nconst columnExtensions = [\r\n { columnName: 'ICON', width: 1 }, \r\n { columnName: 'DESCRIPCION_ACTIVIDAD', width: widthTable * 0.50 }, \r\n { columnName: 'HORA_ENTRADA', width: widthTable * 0.15, align: 'center' }, \r\n { columnName: 'HORA_SALIDA', width: widthTable * 0.15, align: 'center' },\r\n { columnName: 'PUNTAJE', width: widthTable * 0.08, align: 'center' },\r\n { columnName: 'ID_ASISTENCIA_ALUMNO', width: 0}, \r\n { columnName: 'NOMBRE_AREA', width: 0}, \r\n];\r\nconst grouping = [{ columnName: 'NOMBRE_AREA' }];\r\n\r\nconst totalSummaryItems = [\r\n { columnName: \"DESCRIPCION_ACTIVIDAD\", type: \"count\" },\r\n { columnName: \"PUNTAJE\", type: \"sum\" }, \r\n];\r\nconst groupSummaryItems = [ \r\n { columnName: \"DESCRIPCION_ACTIVIDAD\", type: \"count\" },\r\n { columnName: \"PUNTAJE\", type: \"sum\" },\r\n];\r\nconst columnsCopy = [ \r\n { name: 'ID_ASISTENCIA_ALUMNO', title: 'ID_ASISTENCIA_ALUMNO' },\r\n { name: 'DESCRIPCION_ACTIVIDAD', title: 'Descripción de actividad' },\r\n { name: 'PUNTAJE', title: 'Puntos' },\r\n { name: 'NOMBRE_AREA', title: 'Área' }\r\n];\r\nconst columnExtensionsCopy = [\r\n { columnName: 'DESCRIPCION_ACTIVIDAD', width: 270 },\r\n { columnName: 'PUNTAJE', width: 65, align: 'center' }, \r\n { columnName: 'ID_ASISTENCIA_ALUMNO', width: 0}, \r\n { columnName: 'NOMBRE_AREA', width: 0} \r\n];\r\n\r\nconst RowId = row => row.ID_ASISTENCIA_ALUMNO;\r\nconst VirtualTable_cellComponent = (props) => { \r\n\r\n if (props.column.name === 'HORA_ENTRADA')\r\n {\r\n return ( \r\n { props.row.HORA_ENTRADA !== null ? funciones.getTime(props.row.HORA_ENTRADA) : props.row.HORA_ENTRADA }\r\n );\r\n }\r\n \r\n if (props.column.name === 'HORA_SALIDA')\r\n {\r\n return ( \r\n { props.row.HORA_SALIDA !== null ? funciones.getTime(props.row.HORA_SALIDA) : props.row.HORA_SALIDA }\r\n );\r\n }\r\n\r\n return ();\r\n \r\n}\r\nconst stubCellComponentTable = (handleClickDelete, idRowSelection) => ({ colSpan,...props}) => {\r\n \r\n if (props.tableRow.type.toString() === 'Symbol(data)' && props.tableColumn.type.toString() === 'Symbol(group)')\r\n { \r\n if (props.tableRow.row.ID_ASISTENCIA_ALUMNO === idRowSelection && tokenInfo.plataforma === 1)\r\n { \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n \r\n return (); \r\n\r\n}\r\nconst ColumnFixed_cellComponent = ({showLeftDivider, showRightDivider, ...props}) => { \r\n \r\n if (props.tableRow.key === \"Symbol(filter)\"){\r\n return (\r\n
\r\n )\r\n }\r\n\r\n return ();\r\n}\r\nconst ColumnHeader_cellComponent = (rowsLength, handleClick) => ({resizingEnabled, ...props}) => {\r\n \r\n resizingEnabled = props.column.name === 'ICON' ? false : resizingEnabled;\r\n\r\n if (props.column.name === 'ICON' && tokenInfo.plataforma === 1)\r\n {\r\n return ( \r\n \r\n \r\n 1 && rowsLength > 0 ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n return ();\r\n \r\n}\r\nconst RenderOption = (option) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{option.CUENTA_ALUMNO}\r\n
{option.NOMBRE_COMPLETO}
\r\n \r\n);\r\n\r\nexport default withStyles(styles) ( \r\nclass App extends React.Component {\r\n\r\ntablaRef = React.createRef();\r\nplanesRef = React.createRef();\r\ntableCopyRef = React.createRef();\r\nselectCopyRef = React.createRef();\r\ndialogActionsRef = React.createRef();\r\n\r\n constructor (props) {\r\n super(props);\r\n this.state = {\r\n isLoggin: undefined,\r\n heightTableMain: 0,\r\n loadingMain: false,\r\n rows: [],\r\n valueAutoComplete: null,\r\n loadingClientes: true,\r\n openAutoComplete: false,\r\n optionAutocomplete: [],\r\n datosSelectPlan : null,\r\n selectedPlan: '',\r\n expandedGroups: [],\r\n idRowSelected: null,\r\n openModalConfirm: false,\r\n openModalCopy: false,\r\n rowsCopy: [],\r\n heightTableCopy: 0,\r\n expandedGroupsCopy: [],\r\n selectedCopy: '',\r\n datosSelectCopy: null,\r\n selection: [],\r\n copyLoading: false,\r\n openBackDrop: false,\r\n loadingPlanes: false,\r\n };\r\n this.cuenta= null;\r\n this.botones_eliminar =[\r\n {icono: 'Check', toolt: '', nombre: 'Aceptar', onclick: this.handleOkDelete, display:'auto'},\r\n {icono: 'Close', toolt: '', nombre: 'Cerrar' ,onclick: this.handleCloseConfirm, display:'auto', color: 'red'},\r\n ];\r\n this.botones_copy =[\r\n {icono: 'Check', toolt: '', nombre: 'Aceptar', onclick: this.handleOkCopy , display:'auto'},\r\n {icono: 'Close', toolt: '', nombre: 'Cerrar' ,onclick: this.handleCloseCopy, display:'auto', color: 'red'},\r\n ];\r\n \r\n}\r\n\r\nselectionPlanEstudio = (arrayPlanes) => {\r\n \r\n if (arrayPlanes.length === 0){\r\n \r\n return '';\r\n \r\n } \r\n \r\n if (arrayPlanes.length === 1){\r\n \r\n return arrayPlanes[0].ID_PLAN;\r\n \r\n } \r\n \r\n let select = arrayPlanes.filter(x => x.ESTADO.toString().trim().toUpperCase() ==='ACTIVO');\r\n \r\n if (select !== null && select.length > 0)\r\n { \r\n return select[0].ID_PLAN;\r\n }\r\n \r\n \r\n select = arrayPlanes.filter(x => x.ESTADO.toString().trim().toUpperCase() ==='EGRESADO');\r\n \r\n if (select !== null && select.length > 0)\r\n {\r\n return select[0].ID_PLAN;\r\n }\r\n \r\n \r\n select = arrayPlanes.filter(x => x.ESTADO.toString().trim().toUpperCase() ==='GRADUADO');\r\n \r\n if (select !== null && select.length > 0)\r\n {\r\n return select[0].ID_PLAN;\r\n }\r\n \r\n return '';\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({ loadingPlanes: true }, ()=>{ \r\n \r\nnew Request\r\n .get(`${globales.ip}/actividades_coprogramaticas/planes/${this.cuenta}/${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 planes = [];\r\n this.setState({ selectedPlan: '', datosSelectPlan: null, rows: [], idRowSelected: null, loadingPlanes: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n planes = JSON.parse(res.text);\r\n let niveles = [];\r\n let datosSelect = [];\r\n \r\n if (planes.length > 0) \r\n { \r\n planes.map((item, i) =>{\r\n \r\n if (!niveles.find(x => x === item.ID_NIVEL))\r\n {\r\n niveles.push(item.ID_NIVEL); \r\n if (!datosSelect.find(x => x.label === item.DESCRIPCION_NIVEL.trim())){\r\n datosSelect.push({value: item.ID_NIVEL * -1, label: item.DESCRIPCION_NIVEL.trim() });\r\n }\r\n \r\n planes.map((itemx, j) =>{ \r\n if (itemx.ID_NIVEL === item.ID_NIVEL)\r\n datosSelect.push({value: itemx.ID_PLAN, label: itemx.DESCRIPCION_PLAN });\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\n let datosSelect_ = datosSelect.map((item, i) =>{\r\n if (item.value < 0)\r\n return ({item.label});\r\n else\r\n return ({item.label});\r\n });\r\n \r\n this.setState({ datosSelectPlan: datosSelect_, selectedPlan: this.selectionPlanEstudio(planes), loadingPlanes: false });\r\n this.handleChangePlan('auto');\r\n } \r\n else{ \r\n planes = [];\r\n this.setState({ selectedPlan: '', datosSelectPlan: null, rows: [], idRowSelected: null, loadingPlanes: false }); \r\n }\r\n \r\n }); \r\n \r\n }); \r\n\r\n}\r\n\r\nhandleChangePlan = async (event) => {\r\n\r\n if (event !== 'auto' && this.state.selectedPlan === event.target.value)\r\n {\r\n return;\r\n }\r\n \r\n if (event === 'auto' || event.target.value > 0 )\r\n { \r\n await Promise.resolve(this.setState({ selectedPlan: event === 'auto' ? this.state.selectedPlan : event.target.value, })); \r\n this.obtenerActividadesCop(this.cuenta, event === 'auto' ? this.state.selectedPlan : event.target.value); \r\n }\r\n\r\n \r\n}\r\n\r\nobtenerActividadesCop = (cuenta, id_plan)=>{\r\n\r\nthis.setState({ loadingMain: true }, ()=>{ \r\n\r\n new Request\r\n .get(`${globales.ip}/actividades_coprogramaticas/alumno/historial/${cuenta}/${id_plan}`)\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 window.location.reload();\r\n return; \r\n }\r\n \r\n this.setState({ rows: [], expandedGroups: [], expandedGroupsCopy: [], loadingMain: false }, ()=>{ \r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n \r\n let allGroups = [];\r\n let found = null;\r\n\r\n rows.map((item, i) => {\r\n found = allGroups.find(area => area === item.NOMBRE_AREA);\r\n if (found == null)\r\n allGroups.push(item.NOMBRE_AREA);\r\n else \r\n found = null;\r\n \r\n return null;\r\n });\r\n \r\n this.setState({ rows, expandedGroups: [], expandedGroupsCopy: allGroups, loadingMain: false }); \r\n \r\n });\r\n\r\n });\r\n\r\n}\r\n\r\nonChangeAutocomplete = (event, value) =>{\r\n \r\n planes = [];\r\n this.setState({ valueAutoComplete: value, openAutoComplete: false, selectedPlan: '', datosSelectPlan: null, rows: [], idRowSelected: null }, ()=>{\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\n\r\nfiltersClientes = (value)=>{ \r\n \r\n new Request\r\n .get(`${globales.ip}/actividades_coprogramaticas/estudiantes/${value}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(0)\r\n .timeout({ response: 20000, deadline: 30000, }) \r\n .end((err, res) => {\r\n \r\n if (err) { \r\n \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n \r\n window.location.reload();\r\n return;\r\n \r\n }\r\n \r\n this.setState({ optionAutocomplete: [], openAutoComplete: false, loadingClientes: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexión');\r\n });\r\n \r\n return;\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n this.setState({ optionAutocomplete: rows, loadingClientes: false }); \r\n \r\n \r\n});\r\n \r\n}\r\n\r\nchangeExpandedGroups = expandedGroups =>\r\n{\r\n this.setState({ expandedGroups }); \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\nhandleOkDelete = ()=> {\r\n\r\n this.setState({ openModalConfirm: false, openBackDrop: true }, ()=>{ \r\n\r\n new Request\r\n .post(`${globales.ip}/actividades_coprogramaticas/alumno/operaciones`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ cuenta_alumno: '-', puntos: 0, id_actividad: 0, id_asistencia_alumno: this.state.idRowSelected, ad_usuario: tokenInfo.user })\r\n .retry(0)\r\n .timeout({ response: 15000, 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({ 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.length > 0)\r\n { \r\n if (rows[0].RESP === 'OK')\r\n { \r\n this.setState({ rows: this.state.rows.filter(x => x.ID_ASISTENCIA_ALUMNO !== this.state.idRowSelected) }, ()=>{\r\n funciones.showToast('s', 'Actividad eliminada');\r\n this.setState({ idRowSelected: null, openBackDrop: false }); \r\n })\r\n \r\n }\r\n else\r\n {\r\n this.setState({ 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\n });\r\n\r\n}\r\n\r\nhandleCloseConfirm = ()=>{\r\n this.setState({ openModalConfirm: false });\r\n}\r\n\r\nhandleClickDelete = () => {\r\n \r\nif (this.state.idRowSelected === null)\r\n return;\r\n\r\nthis.setState({ openModalConfirm: true });\r\n\r\n}\r\n\r\nonEnteringCopy = ()=>{\r\n\r\n this.setState({ heightTableCopy: funciones.getHeightTableDialog(movil, this.tableCopyRef, this.dialogActionsRef, !movil ? 7 : 5) }, ()=>{\r\n \r\n let indexSelected = this.state.datosSelectPlan.find(x => x.props.value === this.state.selectedPlan).key;\r\n let tmpValues = this.state.datosSelectPlan.filter(x => x.props.value !== this.state.selectedPlan);\r\n \r\n if (tmpValues[indexSelected - 1].props.value === '' && ((tmpValues[indexSelected] === undefined) || (tmpValues[indexSelected] !== undefined && tmpValues[indexSelected].props.value === '')))\r\n { \r\n tmpValues = tmpValues.filter(x => parseInt(x.key) !== indexSelected - 1); \r\n }\r\n\r\n this.setState({ datosSelectCopy: tmpValues }); \r\n\r\n });\r\n\r\n}\r\n\r\nhandleCloseCopy = ()=>{\r\n \r\n if (this.state.copyLoading)\r\n {\r\n return;\r\n }\r\n\r\n this.setState({ openModalCopy: false }, \r\n ()=>{\r\n this.setState({ rowsCopy: [], selectedCopy: '', selection: [] })\r\n });\r\n\r\n}\r\n\r\nhandleOkCopy = ()=>{\r\n\r\nif (this.state.selection.length === 0)\r\n{\r\n funciones.showToast('w', 'No hay actividades seleccionadas');\r\n return;\r\n}\r\n\r\nthis.setState({ copyLoading: true }, ()=>{\r\n \r\n let strActividades = '';\r\n let idActividadTmp = null;\r\n\r\n this.state.selection.map((item, index )=>{\r\n \r\n idActividadTmp = this.state.rows.find(x => x.ID_ASISTENCIA_ALUMNO === item).ID_ACTIVIDADES_X_AREA;\r\n\r\n strActividades = (index + 1 < this.state.selection.length) ? strActividades + idActividadTmp + 'x' : strActividades + idActividadTmp;\r\n\r\n\r\n if (index + 1 === this.state.selection.length)\r\n {\r\n \r\n new Request\r\n .post(`${globales.ip}/actividades_coprogramaticas/alumno/copia_masiva`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ cuenta_alumno: this.cuenta, \r\n id_plan_origen: this.state.selectedPlan, \r\n id_plan_destino: this.state.selectedCopy, \r\n str_actividades: strActividades, \r\n ad_usuario: tokenInfo.user })\r\n .retry(0)\r\n .timeout({ response: 15000, 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({ copyLoading: 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 if (rows[0].RESP === 'OK')\r\n { \r\n \r\n this.setState({ copyLoading: false }, ()=> { \r\n funciones.showToast('s', 'Se copiaron todas las actividades seleccionadas');\r\n }); \r\n\r\n }\r\n else\r\n {\r\n \r\n this.setState({ copyLoading: false }, ()=> { \r\n funciones.showToast('w', rows[0].RESP);\r\n }); \r\n\r\n }\r\n }\r\n \r\n \r\n });\r\n\r\n }\r\n\r\n return item;\r\n\r\n });\r\n\r\n \r\n\r\n});\r\n\r\n}\r\n\r\nchangeExpandedGroupsCopy = expandedGroupsCopy =>\r\n{\r\n this.setState({ expandedGroupsCopy }); \r\n}\r\n\r\nhandleChangeCopy = event => { \r\n\r\nif (event.target.value > 0)\r\n{\r\n\r\n this.setState({ selectedCopy: event.target.value }, ()=>{\r\n\r\n if (this.state.rowsCopy !== this.state.rows)\r\n {\r\n this.setState({ rowsCopy: this.state.rows });\r\n }\r\n\r\n });\r\n\r\n}\r\n\r\n}\r\n\r\nchangeSelection = selection =>{\r\n\r\n if (this.state.copyLoading)\r\n {\r\n return;\r\n }\r\n\r\n this.setState({ selection });\r\n\r\n}\r\n\r\nhandleRowClick = (idRow) => event => {\r\n this.setState({ idRowSelected: idRow }); \r\n}\r\n\r\nhandleClick = () => {\r\n \r\n if (planes.length > 1 && this.state.rows.length > 0 && !this.state.isLoading)\r\n { \r\n this.setState({ openModalCopy: true });\r\n }\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\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 }\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 {\r\n document.getElementById('Est_Consulta').focus();\r\n return;\r\n }\r\n\r\n if (!movil)\r\n this.planesRef.current.focus();\r\n }); \r\n \r\n}); \r\n \r\n}\r\n\r\nrender() {\r\n \r\nconst { classes } = this.props;\r\n\r\n if (this.state.isLoggin === true)\r\n {\r\n return (\r\n \r\n \r\n \r\n {\r\n (() => {\r\n \r\n if (tokenInfo.plataforma === 1) //Si es Usuario Admin\r\n {\r\n \r\n return (\r\n \r\n
\r\n option.CUENTA_ALUMNO + ' - ' + option.NOMBRE_COMPLETO}\r\n style={{ width: movil ? '100%' : '430px' }}\r\n renderInput={(params) => \r\n {this.state.loadingClientes ? \r\n \r\n \r\n \r\n : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n fullWidth\r\n />}\r\n renderOption={RenderOption} \r\n onChange={this.onChangeAutocomplete}\r\n open={this.state.openAutoComplete}\r\n loading={this.state.loadingClientes}\r\n ListboxComponent={virtual.ListboxComponent}\r\n value={this.state.valueAutoComplete} \r\n className={classes.textField}\r\n disableClearable={this.state.isLoading}\r\n onInputChange={this.onChangeInput}\r\n popupIcon={null}\r\n PaperComponent={(props)=>()} \r\n /> \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {(() => {\r\n\r\n if (this.state.copyLoading) \r\n return(
\r\n \r\n
);\r\n \r\n return();\r\n \r\n })()}\r\n
\r\n \r\n\r\n \r\n );\r\n\r\n } \r\n else if (tokenInfo.plataforma === 2) //Si es estudiante\r\n {\r\n return(\r\n \r\n
\r\n