{"version":3,"sources":["pages/mantenimiento/configuraciones_del_sistema/modalidadespago.js","pages/mantenimiento/configuraciones_del_sistema/configuracion_calificador.js","pages/mantenimiento/configuraciones_del_sistema/monedas.js"],"names":["Auth","AuthService","ip","globales","border_dialog","movil_pequeño","test","navigator","userAgent","isVisibleRowSelected","VirtualTable_cellComponent","props","column","row","name","_jsx","Table","Cell","style","padding","children","Checkbox","checked","VISIBLE_WEB","MOD_P_INTENSIVO","ESTADO","colorRowSelected","colores","tabla","selection","alternateColorRow1","alternateColorRow2","getRowId","MOD_PAGO_ID","getRowId_detalle","DETALLE_ID","styles","theme","Dialog","borderRadius","margin","backdrop","zIndex","color","flexDirection","select","spacing","minWidth","textField","width","columns","title","columns_detalle","defaultHiddenColumnNames","defaultHiddenColumnNames_detalle","tableColumnExtensions","columnName","wordWrapEnabled","align","window","innerWidth","tableColumnExtensions_detalle","currentdescripcion","currentmatricula","currentdescuento","currentcodigo","currentsecuencia","currentpago","currentdescuento_detalle","withStyles","React","Component","constructor","super","tablaRef","createRef","descripcionRef","matriculaRef","descuentoRef","codigoRef","secuenciaRef","pagoRef","descuento_detalleRef","Limpiar","cerrarmodal","event","this","setState","open_agregar","open_modificar","open_eliminar","selection_tipo","rows_detalle","visible","intensivo","estado","cerrarmodal_detalle","open_ingresar","open_eliminar_detalle","open_modificar_detalle","selection_detalle","abrirmodal_agregar","abrirmodal_modificar","state","length","rows_hijo","forEach","element","index","push","abrirmodal_eliminar","guardar","TIPO","cadena_detalle","DETALLE_SECUENCIA","DETALLE_CODIGO_TRANSACCION","DETALLE_PORC_PAGO","DETALLE_PORC_DESC","funciones","showToast","current","value","undefined","parseInt","suma","openBackDrop","Request","post","set","getToken","send","DESCRIPCION","MATRICULA","DESCUENTO","TIPO_MOD","VISIBLE","INTENSIVO","DETALLE","USUARIO","getProfile","user","retry","timeout","response","deadline","end","err","res","toString","substr","location","reload","rows","JSON","parse","text","RESP","rows_padre","item","find","grupo","ex","guardar_detalle","Array","prototype","apply","splice","handleChangeCheckbox_visible","target","handleChangeCheckbox_intensivo","handleChangeCheckbox_estado","ChangeSelect_tipo","handleClick","l","e","i","actualizarbarra","actualizarcircular","isLoggin","heightTableMain","grouping","expandedGroups","filteringColumnExtensions","filters","expandedRowIds","enabledFilterRows","datos_tipo","MenuItem","dense","trow","TableRow","_ref2","classes","highlighted","rowIndex","selectByRowClick","odd","r","tableRow","Row","onClick","clickselection","MOD_PAGO_DESCRIPCION","MOD_PAGO_MATRICULA","MOD_PAGO_DESCUENTO","TIPO_MOD_PAGO","onDoubleClick","dblclickselection","backgroundColor","trow_detalle","_ref3","componentDidMount","_this","loggedIn","then","b","get","getHeightTableMain","heightTable","tmp","render","botones","icono","toolt","nombre","escritura","onclick","display","naranja","botones_agregar","botones_modificar","botones_eliminar","botones_agregar_detalle","botones_eliminar_detalle","_jsxs","Fragment","Backdrop","className","open","CircularProgress","marginTop","disableEnforceFocus","disableAutoFocus","fullWidth","paper","maxWidth","DialogTitle","Typography","component","variant","DialogContent","BarraBotones","TextField","id","label","required","defaultValue","inputProps","ref","marginRight","onKeyDown","onlyNumbers","fullScreen","alignItems","marginBottom","Select","Label","Datos","Selected","onChange","Multiple","SelectClass","height","Style","ShowItemNone","LabelItemNone","ValueItemNone","AutoFocus","Outlined","shrink","FormControlLabel","control","marginLeft","labelPlacement","paddingLeft","paddingRight","paddingTop","paddingBottom","CustomTable","Columns","Rows","TableColumnExtensions","DefaultHiddenColumnNames","standarPlugin","TableRowsIndexer","rowHeaderCellComponent","valueStudent","_ref","TableHeaderRow","Tooltip","IconButton","size","Icono","fontSize","color_iconos","disabled","color_iconos_SL","borderLeft","RowComponent","showSelectionColumn","background","marginleft_movil","marginleft","marginright_movil","marginright","logout","HeaderRowCellComponent_detalle","movil","getMinReverso","min","ListboxComponent_periodos","virtual","ListboxComponent","ListboxComponent_docentes","ListboxComponent_seccion","ListboxComponent_ponderaciones","ListboxComponent_categorias","borderRight","justifyContent","BLOQUEO","ID_CONFIGURACION_FECHAS_CALIFICADOR","getRowId_docente","ID_HABILITAR_CALIFICADOR_DOCENTE","button","boxShadow","border","columns_docente","defaultHiddenColumnNames_docente","tableColumnExtensions_docentes","horasInicioConfCalificadorRef","minutosInicioConfCalificadorRef","merInicioConfCalificadorRef","horasFinConfCalificadorRef","minutosFinConfCalificadorRef","merFinConfCalificadorRef","horasFinRef","minutosFinRef","merFinRef","horasInicioRef","minutosInicioRef","merInicioRef","fechainicioConf_","getTimeSelect","fechainicio","toISOString","split","fechafinConf_","fechafin","FECHA_INICIO","replace","FECHA_FIN","ID_SECCION","ID_PONDERACION","FECHA_INICIO_DOCENTE","FECHA_FIN_DOCENTE","ID_CATEGORIA","tipo","open_configurar","open_guardar","Obtener_configuracion","cargaconfiguracion","valueAutoCompleteAdd_periodos","guardarFechasDocente","fechainicioDocente_","fechafinDocente_","mensaje","Date","fechainicioDocente","toLocaleDateString","fechafinDocente","selection_docente","valueAutoCompleteAdd_seccion","valueAutoCompleteAdd_ponderaciones","valueAutoCompleteAdd_categorias","open_configurar_fecha","Obtener_docentes","consulta_Categorias","optionAutocompleteAdd_categorias","isLoading_categorias","isSaving_categorias","consulta_Ponderaciones","optionAutocompleteAdd_ponderaciones","isLoading_ponderaciones","isSaving_ponderaciones","consulta_periodos","optionAutocompleteAdd_periodos","openAutoComplete_periodos","isLoading_periodos","isSaving_periodos","configuraciones","docentes","docentes_combo","CUENTA_CATEDRATICO","optionAutocompleteAdd_docentes","openAutoComplete_docentes","isLoading_docentes","isSaving_docentes","periodo_calificador","PERIODO","cargaseccion","valueAutoCompleteAdd_docentes","ID_SECCION_","cargaseccionhab","onChangeAutocompleteAdd_periodos","openAutoCompleteAdd_periodos","onChangeAutocompleteAdd_seccion","onChangeAutocompleteAdd_docentes","openAutoCompleteAdd_docentes","rows_docentes_hab","onChangeAutocompleteAdd_ponderaciones","onChangeAutocompleteAdd_categorias","arr","arr_hab","DESCRIPCION_PONDERACION","optionAutocompleteAdd_seccion","rows_docentes","arr_seccio_hab","ID_CONTROL_MATRICULA","handleDateChange_inicio","date","handleDateChange_fin","cargando","handleDateChange_inicioDocente","horasInicioDocente","handleDateChange_finDocente","cancelar_configurar","cancelar_configurar_fecha","guardamodificar","guardamodificarFechaDocente","cancelar","cancelar_docente","open_docente","abrir_docente","onBlurAutoCompleteAdd_periodos","onBlurAutoCompleteAdd_docentes","setValueAutoCompleteAdd_ponderaciones","x","setValueAutoCompleteAdd_categoria","FECHA_INICIO_MOSTRAR_2","FECHA_FIN_MOSTRAR_2","PERMISO_CONFIG_CALIFICADOR","trow_docente","horaActual","getHours","minutoActual","getMinutes","meridiano","horaActualFin","meridianoFin","getMin","botones_guardar","botones_docente","botones_guardar_fecha_docente","botones_configurar","onEscapeKeyDown","dividers","textAlign","Autocomplete","options","getOptionLabel","option","NOMBRE_COMPLETO","renderInput","params","onBlur","InputProps","endAdornment","readOnly","renderOption","noOptionsText","loadingText","loading","disableListWrap","autoHighlight","disableClearable","clearText","openText","closeText","popper","onBlurAutoCompleteAdd_seccion","isLoading_seccion","isSaving_seccion","columnWidths","Selection","valuedocente","ExpandedRowIds","DialogContentText","tabIndex","BackdropProps","MuiPickersUtilsProvider","utils","DateFnsUtils","locale","esLocale","KeyboardDatePicker","inputVariant","format","ToolbarComponent","CustomToolbar","autoOk","minDate","SelectTime","horasRef","minutosRef","merRef","defaultHoras","substring","defaultMinutos","defaultMeridiano","formStyle","NOMBRE","position","Button","textTransform","iconSizeSmall","startIcon","LockOpenIcon","HeaderRowCellComponent_docente","ESTATUS","ID_MONEDA","currentnombre","currentsimbolo","nombreRef","simboloRef","SIMBOLO","ChangeSelect_estado","selection_estado","datos_estados","maxLength"],"mappings":"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","file":"static/js/main~49115640.c7f6452c.chunk.js","sourcesContent":["import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {colores, globales,funciones} from '../../../global';\r\nimport BarraBotones from '../../../components/Barra_menu';\r\nimport AuthService from '../../../AuthService';\r\nimport Request from 'superagent';\r\nimport CustomTable from '../../../components/CustomTable';\r\nimport {Table} from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer from '../../../components/tableRowsIndexer'\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport Icono from '../../../components/Icono'\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport {Typography,TextField} from '@material-ui/core';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '../../../components/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport {TableHeaderRow} from '@devexpress/dx-react-grid-material-ui';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\n//var movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\n\r\nconst VirtualTable_cellComponent = (props) => {\r\n const { column } = props;\r\n const {row} = props;\r\n\r\n if(column.name==='VISIBLE_WEB'){\r\n return(\r\n <Table.Cell {...props} style={{padding:0}}>\r\n <Checkbox checked={row.VISIBLE_WEB} />\r\n </Table.Cell>\r\n );\r\n }\r\n if(column.name==='MOD_P_INTENSIVO'){\r\n return(\r\n <Table.Cell {...props} style={{padding:0}}>\r\n <Checkbox checked={row.MOD_P_INTENSIVO} />\r\n </Table.Cell>\r\n );\r\n }\r\n if(column.name==='ESTADO'){\r\n return(\r\n <Table.Cell {...props} style={{padding:0}}>\r\n <Checkbox checked={row.ESTADO} />\r\n </Table.Cell>\r\n );\r\n }\r\n\r\n return(\r\n <Table.Cell {...props}/>\r\n );\r\n}\r\n\r\nconst HeaderRowCellComponent_detalle = (valueStudent,handleClick,selection)=> ({ ...props}) => {\r\n\r\n const style={paddingTop: props.column.name === \"ROOT\" ? \"5px\" : undefined, paddingBottom: props.column.name === \"ROOT\" ? \"5px\" : undefined }\r\n\r\n if (props.column.name === \"ROOT\")\r\n {\r\n return (<TableHeaderRow.Cell {...props} style={{padding:0,paddingLeft:5}}>\r\n <Tooltip title={valueStudent.length !== 0 ? \"Editar Nota\" : \"\"}>\r\n <IconButton size=\"small\" onClick={handleClick(1)} >\r\n <Icono icono={'Add'} fontSize='small' style={{ color: colores.tabla.color_iconos }} />\r\n </IconButton>\r\n </Tooltip>\r\n <Tooltip title={valueStudent.length !== 0 ? \"Editar Nota\" : \"\"}>\r\n <IconButton size=\"small\" onClick={handleClick(2)} disabled={valueStudent.length===0}>\r\n <Icono icono={'Edit'} fontSize='small' style={{ color: valueStudent.length !== 0 ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n </IconButton>\r\n </Tooltip>\r\n <Tooltip title={valueStudent.length !== 0 ? \"Editar Nota\" : \"\"}>\r\n <IconButton size=\"small\" onClick={handleClick(3)} disabled={valueStudent.length===0}>\r\n <Icono icono={'Delete'} fontSize='small' style={{ color: valueStudent.length !== 0 ? 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 if (props.column.name === \"NUEVA\")\r\n {\r\n return (<TableHeaderRow.Cell style={{ borderLeft: '1px solid rgba(180,180,180,0.8)'}} {...props}>\r\n </ TableHeaderRow.Cell>\r\n );\r\n }\r\n\r\n\r\n return (<TableHeaderRow.Cell style={style} {...props} />);\r\n\r\n}\r\n\r\nconst colorRowSelected = 'rgb('+ colores.tabla.selection +')';\r\nlet alternateColorRow1 = colores.tabla.alternateColorRow1; \r\nlet alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nconst getRowId = row => row.MOD_PAGO_ID;\r\nconst getRowId_detalle = row => row.DETALLE_ID;\r\n\r\n/* CLASES DE ESTILO */\r\n\r\nvar styles = theme =>({\r\n Dialog:{\r\n borderRadius: border_dialog,\r\n margin:0,\r\n padding:0\r\n },\r\n backdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\r\n },\r\n select: { //CONFIGURA EL SELECT \r\n margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n padding: 0,\r\n minWidth: movil_pequeño?'100%':'50%',\r\n },\r\n textField: {\r\n margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n padding: 0,\r\n minWidth: movil_pequeño?'100%':'20%',\r\n width: '20%' \r\n },\r\n })\r\n\r\n const columns= [\r\n {name:'MOD_PAGO_ID',title: 'MOD_PAGO_ID'},\r\n {name:'MOD_PAGO_DESCRIPCION',title: 'Descripción'},\r\n {name:'MOD_PAGO_MATRICULA',title: '% MatrÃcula'},\r\n {name:'MOD_PAGO_DESCUENTO',title: 'MOD_PAGO_DESCUENTO'},\r\n {name:'TIPO_MOD_PAGO',title: 'TIPO_MOD_PAGO'},\r\n {name:'TIPO',title: 'Modalidad'},\r\n {name:'VISIBLE_WEB',title: 'Visible Alumno'},\r\n {name:'MOD_P_INTENSIVO',title: 'Intensivo'},\r\n {name:'ESTADO',title: 'Activo'},\r\n ];\r\n \r\n const columns_detalle= [\r\n {name:'ROOT',title: ' '},\r\n {name:'DETALLE_ID',title: 'DETALLE_ID'},\r\n {name:'DETALLE_CODIGO_TRANSACCION',title: 'Código'},\r\n {name:'DETALLE_SECUENCIA',title: 'Secuencia'},\r\n {name:'DETALLE_PORC_PAGO',title: '% Pago'},\r\n {name:'DETALLE_PORC_DESC',title: '% Descuento'},\r\n ];\r\n\r\n const defaultHiddenColumnNames= ['MOD_PAGO_DESCUENTO','MOD_PAGO_ID','TIPO_MOD_PAGO'];\r\n const defaultHiddenColumnNames_detalle= ['DETALLE_ID'];\r\n\r\n const tableColumnExtensions= [\r\n { columnName: 'MOD_PAGO_DESCRIPCION', wordWrapEnabled: false, align: 'left',width:movil_pequeño?180:window.innerWidth-(100+150+150+100+100)},\r\n { columnName: 'MOD_PAGO_MATRICULA', wordWrapEnabled: false, align: 'center',width:100},\r\n { columnName: 'TIPO', wordWrapEnabled: false, align: 'left',width:150},\r\n { columnName: 'VISIBLE_WEB', wordWrapEnabled: false, align: 'center',width:100},\r\n { columnName: 'MOD_P_INTENSIVO', wordWrapEnabled: false, align: 'center',width:100},\r\n { columnName: 'ESTADO', wordWrapEnabled: false, align: 'center',width:100},\r\n ];\r\n const tableColumnExtensions_detalle= [\r\n { columnName: 'ROOT',width:70, align: 'center'},\r\n { columnName: 'DETALLE_SECUENCIA', wordWrapEnabled: false, align: 'center',width:100},\r\n { columnName: 'DETALLE_CODIGO_TRANSACCION', wordWrapEnabled: false, align: 'left',width:150},\r\n { columnName: 'DETALLE_PORC_PAGO', wordWrapEnabled: false, align: 'center',width:100},\r\n { columnName: 'DETALLE_PORC_DESC', wordWrapEnabled: false, align: 'center',width:100},\r\n ];\r\n\r\n let currentdescripcion = null;\r\n let currentmatricula = null;\r\n let currentdescuento = null;\r\n let currentcodigo = null;\r\n let currentsecuencia = null;\r\n let currentpago = null;\r\n let currentdescuento_detalle = null;\r\n\r\n/* EXPORT */\r\nexport default withStyles(styles)(\r\n class Modalidad_Pago extends React.Component {\r\n tablaRef = React.createRef();\r\n descripcionRef = React.createRef();\r\n matriculaRef = React.createRef();\r\n descuentoRef = React.createRef();\r\n codigoRef = React.createRef();\r\n secuenciaRef = React.createRef();\r\n pagoRef = React.createRef();\r\n descuento_detalleRef = 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.isVisibleRowSelected=isVisibleRowSelected\r\n this.actualizarbarra= props.actualizarbarra\r\n this.actualizarcircular= props.actualizarcircular\r\n\r\n this.state = {\r\n openBackDrop: false, \r\n isLoggin: undefined,\r\n heightTableMain: 0,\r\n rows: [],\r\n rows_detalle: [],\r\n selection: [],\r\n grouping: [],\r\n expandedGroups: [],\r\n filteringColumnExtensions: [],\r\n filters: [],\r\n expandedRowIds: [],\r\n enabledFilterRows: true,\r\n open_agregar: false,\r\n open_modificar: false,\r\n open_eliminar: false,\r\n datos_tipo: [<MenuItem dense value={0} key={'Contado'} >{'Contado'}</MenuItem>,<MenuItem dense value={1} key={'Financiado'} >{'Financiado'}</MenuItem>],\r\n visible: false,\r\n selection_tipo: '',\r\n selection_detalle: '',\r\n open_ingresar: false,\r\n open_modificar_detalle: false,\r\n open_eliminar_detalle: false,\r\n }\r\n\r\n const trow = TableRow => withStyles(styles, { name: \"Row\" })( ({classes,highlighted, rowIndex, row, selectByRowClick, ...props}) => {\r\n\r\n const odd = !!(rowIndex % 2);\r\n const r = props.tableRow \r\n\r\n const clickselection = (MOD_PAGO_ID,MOD_PAGO_DESCRIPCION,MOD_PAGO_MATRICULA,MOD_PAGO_DESCUENTO,TIPO_MOD_PAGO,VISIBLE_WEB,MOD_P_INTENSIVO,ESTADO) => event =>{\r\n currentdescripcion=MOD_PAGO_DESCRIPCION;\r\n currentmatricula=MOD_PAGO_MATRICULA;\r\n currentdescuento=MOD_PAGO_DESCUENTO;\r\n \r\n this.setState({ selection: [{MOD_PAGO_ID:MOD_PAGO_ID}], visible: VISIBLE_WEB, selection_tipo: TIPO_MOD_PAGO, intensivo: MOD_P_INTENSIVO, estado: ESTADO});\r\n }\r\n const dblclickselection = ((MOD_PAGO_ID,MOD_PAGO_DESCRIPCION,MOD_PAGO_MATRICULA,MOD_PAGO_DESCUENTO,TIPO_MOD_PAGO,VISIBLE_WEB,MOD_P_INTENSIVO,ESTADO) => event =>{ \r\n \r\n var row=[];\r\n\r\n this.state.rows_hijo.forEach((element,index)=>{\r\n if(element.MOD_PAGO_ID===this.state.selection[0].MOD_PAGO_ID)\r\n {\r\n row.push(element);\r\n }\r\n })\r\n \r\n \r\n this.setState({open_modificar: true,selection: [{MOD_PAGO_ID:MOD_PAGO_ID}], visible: VISIBLE_WEB,intensivo: MOD_P_INTENSIVO, estado: ESTADO, selection_tipo: TIPO_MOD_PAGO,rows_detalle: row})\r\n \r\n })\r\n \r\n if (this.state.selection[0]===undefined?this.state.selection[0]:this.state.selection[0].MOD_PAGO_ID === props.tableRow.row.MOD_PAGO_ID) { isVisibleRowSelected = true; }\r\n return (\r\n <Table.Row {...props}\r\n onClick={clickselection(r.row.MOD_PAGO_ID,r.row.MOD_PAGO_DESCRIPCION,r.row.MOD_PAGO_MATRICULA,r.row.MOD_PAGO_DESCUENTO,r.row.TIPO_MOD_PAGO,r.row.VISIBLE_WEB,r.row.MOD_P_INTENSIVO,r.row.ESTADO)}\r\n onDoubleClick={dblclickselection(r.row.MOD_PAGO_ID,r.row.MOD_PAGO_DESCRIPCION,r.row.MOD_PAGO_MATRICULA,r.row.MOD_PAGO_DESCUENTO,r.row.TIPO_MOD_PAGO,r.row.VISIBLE_WEB,r.row.MOD_P_INTENSIVO,r.row.ESTADO)}\r\n style={{\r\n //cursor: 'pointer',\r\n backgroundColor: this.state.selection[0]===undefined?odd ? alternateColorRow1 : alternateColorRow2:this.state.selection[0].MOD_PAGO_ID === props.tableRow.row.MOD_PAGO_ID ? colorRowSelected : \r\n odd ? alternateColorRow1 : alternateColorRow2, \r\n padding: '0rem 0rem !important',\r\n margin: '0px', \r\n }}\r\n />\r\n );\r\n });\r\n\r\n const trow_detalle = TableRow => withStyles(styles, { name: \"Row\" })( ({classes,highlighted, rowIndex, row, selectByRowClick, ...props}) => {\r\n\r\n const odd = !!(rowIndex % 2);\r\n const r = props.tableRow \r\n\r\n const clickselection = (DETALLE_ID,DETALLE_CODIGO_TRANSACCION,DETALLE_SECUENCIA,DETALLE_PORC_PAGO,DETALLE_PORC_DESC) => event =>{\r\n currentcodigo=DETALLE_CODIGO_TRANSACCION;\r\n currentsecuencia=DETALLE_SECUENCIA;\r\n currentpago=DETALLE_PORC_PAGO;\r\n currentdescuento_detalle=DETALLE_PORC_DESC;\r\n \r\n this.setState({ selection_detalle: [{DETALLE_ID:DETALLE_ID}] });\r\n }\r\n\r\n const dblclickselection = (DETALLE_ID,DETALLE_CODIGO_TRANSACCION,DETALLE_SECUENCIA,DETALLE_PORC_PAGO,DETALLE_PORC_DESC) => event =>{ \r\n currentcodigo=DETALLE_CODIGO_TRANSACCION;\r\n currentsecuencia=DETALLE_SECUENCIA;\r\n currentpago=DETALLE_PORC_PAGO;\r\n currentdescuento_detalle=DETALLE_PORC_DESC;\r\n\r\n this.setState({open_modificar_detalle: true,selection_detalle: [{DETALLE_ID:DETALLE_ID}]})\r\n }\r\n \r\n if (this.state.selection_detalle[0]===undefined?this.state.selection_detalle[0]:this.state.selection_detalle[0].DETALLE_ID === props.tableRow.row.DETALLE_ID) { isVisibleRowSelected = true; }\r\n return (\r\n <Table.Row {...props}\r\n onClick={clickselection(r.row.DETALLE_ID,r.row.DETALLE_CODIGO_TRANSACCION,r.row.DETALLE_SECUENCIA,r.row.DETALLE_PORC_PAGO,r.row.DETALLE_PORC_DESC)}\r\n onDoubleClick={dblclickselection(r.row.DETALLE_ID,r.row.DETALLE_CODIGO_TRANSACCION,r.row.DETALLE_SECUENCIA,r.row.DETALLE_PORC_PAGO,r.row.DETALLE_PORC_DESC)}\r\n style={{\r\n //cursor: 'pointer',\r\n backgroundColor: this.state.selection_detalle[0]===undefined?odd ? alternateColorRow1 : alternateColorRow2:this.state.selection_detalle[0].DETALLE_ID === props.tableRow.row.DETALLE_ID ? colorRowSelected : \r\n odd ? alternateColorRow1 : alternateColorRow2, \r\n padding: '0rem 0rem !important',\r\n margin: '0px', \r\n }}\r\n />\r\n );\r\n });\r\n\r\n\r\n this.trow = trow(Table.Row);\r\n this.trow_detalle = trow_detalle(Table.Row);\r\n \r\n }; //FIN CONSTRUCTORS\r\n\r\n\r\ncomponentDidMount()\r\n{\r\n let _this = this;\r\n _this.actualizarbarra(false)\r\n\r\n Auth.loggedIn().then( function(b){\r\n _this.setState({ isLoggin: b})\r\n if(b){\r\n _this.setState({openBackDrop:true},()=>{\r\n Request.get(`${ip}/modalidadesPago/obtener_modalidades_pago_conf/${Auth.getProfile().user}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 20000, deadline: 50000, }) \r\n .end((err, res)=> {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n window.location.reload();\r\n return; \r\n }\r\n (async function() {\r\n funciones.showToast('e','Error de conexión')\r\n _this.setState({openBackDrop:false,rows: [], heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n })();//FIN FUNCION ASYNC\r\n return;\r\n }\r\n const tmp = JSON.parse(res.text);\r\n if(tmp.length>0){\r\n var found\r\n var rows_padre=[]\r\n var rows_hijo=[]\r\n tmp.forEach(\r\n function getCheck(item, index) {\r\n found = rows_padre.find(grupo => grupo.MOD_PAGO_ID === item.MOD_PAGO_ID);\r\n \r\n if (found == null){\r\n rows_padre.push(item);\r\n }else {\r\n found = null;\r\n }\r\n \r\n\r\n if(item.DETALLE_ID !== null){\r\n rows_hijo.push(item);\r\n }\r\n })\r\n\r\n _this.setState({ openBackDrop:false,rows: rows_padre,rows_detalle: [],rows_hijo:rows_hijo, heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable}); \r\n }\r\n else\r\n {\r\n _this.setState({openBackDrop:false,rows: [], heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n }\r\n _this.actualizarbarra(true)\r\n })\r\n })\r\n }\r\n })\r\n}\r\n\r\nLimpiar=()=>{\r\n currentdescripcion=null;\r\n currentmatricula=null;\r\n currentdescuento=null;\r\n currentcodigo=null;\r\n currentdescuento_detalle=null;\r\n currentpago=null;\r\n currentsecuencia=null;\r\n}\r\n\r\ncerrarmodal=()=>event=>{\r\n currentdescripcion=null;\r\n currentmatricula=null;\r\n currentdescuento=null;\r\n\r\n this.setState({open_agregar: false,open_modificar: false,selection: [],open_eliminar: false,selection_tipo:'',rows_detalle:[],visible: false,intensivo: false, estado: false})\r\n}\r\ncerrarmodal_detalle=()=>event=>{\r\n currentcodigo=null;\r\n currentdescuento_detalle=null;\r\n currentpago=null;\r\n currentsecuencia=null;\r\n this.setState({open_ingresar: false,open_eliminar_detalle: false,open_modificar_detalle: false,selection_detalle:''})\r\n}\r\nabrirmodal_agregar=()=>event=>{\r\n currentdescripcion=null;\r\n currentmatricula=null;\r\n currentdescuento=null;\r\n this.setState({open_agregar:true,selection_tipo:'',rows_detalle:[],selection: [],selection_detalle: [],visible: false,intensivo: false,estado: false});\r\n}\r\n\r\nabrirmodal_modificar=()=>event=>{\r\n\r\n if(this.state.selection.length>0)\r\n {\r\n var row=[];\r\n\r\n this.state.rows_hijo.forEach((element,index)=>{\r\n if(element.MOD_PAGO_ID===this.state.selection[0].MOD_PAGO_ID)\r\n {\r\n row.push(element);\r\n }\r\n })\r\n \r\n this.setState({open_modificar:true,rows_detalle: row});\r\n }\r\n}\r\n\r\nabrirmodal_eliminar=()=>event=>{\r\n if(this.state.selection.length>0)\r\n {\r\n this.setState({open_eliminar:true});\r\n }\r\n}\r\n\r\nguardar=(TIPO)=>event=>{\r\n var cadena_detalle=''\r\n if(TIPO!==3)\r\n {\r\n if(this.state.rows_detalle.length>0){\r\n this.state.rows_detalle.forEach((element,index)=>{\r\n if(index===0){\r\n cadena_detalle=element.DETALLE_ID+','+element.DETALLE_SECUENCIA+','+element.DETALLE_CODIGO_TRANSACCION\r\n +','+element.DETALLE_PORC_PAGO+','+element.DETALLE_PORC_DESC\r\n }\r\n else{\r\n cadena_detalle=cadena_detalle+'.'+element.DETALLE_ID+','+element.DETALLE_SECUENCIA+','+element.DETALLE_CODIGO_TRANSACCION\r\n +','+element.DETALLE_PORC_PAGO+','+element.DETALLE_PORC_DESC\r\n }\r\n })\r\n }\r\n\r\n if(cadena_detalle==='' && this.state.selection_tipo===1)\r\n {\r\n funciones.showToast('w','En financiado, debe tener detalle.');\r\n return;\r\n }\r\n if(cadena_detalle!=='' && this.state.selection_tipo===0)\r\n {\r\n funciones.showToast('w','En Contado, no debe tener detalle.');\r\n return;\r\n }\r\n if(this.descripcionRef.current.value===''||this.matriculaRef.current.value===''||this.descuentoRef.current.value===''||this.state.selection_tipo==='')\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n if(this.descripcionRef.current.value===null||this.matriculaRef.current.value===null||this.descuentoRef.current.value===null||this.state.selection_tipo==='')\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n if(this.descripcionRef.current.value===undefined||this.matriculaRef.current.value===undefined||this.descuentoRef.current.value===undefined||this.state.selection_tipo==='')\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n ///\r\n if(this.state.selection_tipo===1){\r\n if(cadena_detalle==='' && this.currentsecuencia.current.value===undefined )\r\n {\r\n funciones.showToast('w','En secuencia, debe tener detalle.');\r\n return;\r\n }\r\n if(cadena_detalle==='' && this.currentsecuencia.current.value===0)\r\n {\r\n funciones.showToast('w','En financiado, debe tener detalle.' );\r\n return;\r\n }\r\n }\r\n \r\n ///\r\n if((parseInt(this.matriculaRef.current.value)+parseInt(this.descuentoRef.current.value))!==100 && this.state.selection_tipo===0)\r\n {\r\n funciones.showToast('w','La suma del pago con el descuento debe de ser el 100%');\r\n return;\r\n }\r\n \r\n\r\n var suma=0;\r\n suma=suma+parseInt(this.matriculaRef.current.value)+parseInt(this.descuentoRef.current.value)\r\n\r\n this.state.rows_detalle.forEach((element,index)=>{\r\n //if (element.matriculaRef=== this.state.matriculaRef.length>0? this.state.rows.matriculaRef:0)\r\n //if (element.MOD_PAGO_ID=== this.state.selection.length>0? this.state.selection[0].MOD_PAGO_ID:null)\r\n //if (element.DETALLE_PORC_PAGO === this.state.selection_detalle.length>0? this.state.selection_detalle[0].DETALLE_PORC_PAGO:null)\r\n //{\r\n suma=suma+parseInt(element.DETALLE_PORC_PAGO)+parseInt(element.DETALLE_PORC_DESC)\r\n \r\n //}\r\n })\r\n\r\n\r\n if(suma!==100)\r\n {\r\n funciones.showToast('w','La suma de los porcentajes debe ser 100%.');\r\n console.log('ENTRE A SUMA2')\r\n console.log(suma)\r\n return;\r\n }\r\n }\r\n\r\n this.setState({ openBackDrop: true }, ()=>{\r\n try{\r\n new Request\r\n .post(`${ip}/modalidadesPago/gestion_modalidades_pago_conf`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ MOD_PAGO_ID:(TIPO!==1?this.state.selection[0].MOD_PAGO_ID:null)\r\n ,DESCRIPCION: TIPO!==3?this.descripcionRef.current.value:null\r\n ,MATRICULA: TIPO!==3?this.matriculaRef.current.value:null\r\n ,DESCUENTO: TIPO!==3?this.descuentoRef.current.value:null\r\n ,TIPO_MOD: this.state.selection_tipo\r\n ,VISIBLE: this.state.visible\r\n ,INTENSIVO: this.state.intensivo\r\n ,ESTADO: this.state.estado\r\n ,DETALLE: cadena_detalle\r\n ,USUARIO: Auth.getProfile().user\r\n ,TIPO: TIPO })\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n\r\n const rows = JSON.parse(res.text);\r\n if (rows.length > 0) \r\n { \r\n if (rows[0].RESP === undefined)\r\n { \r\n var found\r\n var rows_padre=[]\r\n var rows_hijo=[]\r\n rows.forEach(\r\n function getCheck(item, index) {\r\n found = rows_padre.find(grupo => grupo.MOD_PAGO_ID === item.MOD_PAGO_ID);\r\n \r\n if (found == null){\r\n rows_padre.push(item);\r\n }else {\r\n found = null;\r\n }\r\n\r\n if(item.DETALLE_ID !== null){\r\n rows_hijo.push(item);\r\n }\r\n })\r\n this.setState({openBackDrop: false}, ()=>{\r\n funciones.showToast('s', 'Proceso realizado correctamente.'); \r\n this.Limpiar();\r\n this.setState({open_agregar: false,open_modificar: false,open_eliminar: false,rows:rows_padre,rows_hijo:rows_hijo,selection_tipo:'',rows_detalle:[]})\r\n })\r\n }\r\n else{\r\n this.setState({ openBackDrop: false}, ()=>{\r\n funciones.showToast('w', rows[0].RESP);\r\n });\r\n }\r\n }\r\n else\r\n {\r\n this.setState({ openBackDrop: false}, ()=>{\r\n this.Limpiar();\r\n this.setState({open_agregar: false,open_modificar: false,open_eliminar: false,rows:[],selection_tipo:'',rows_detalle:[]});\r\n });\r\n } \r\n }); \r\n }\r\n catch(ex){\r\n this.setState({ openBackDrop: false}, ()=>{\r\n funciones.showToast('e', 'Error de conexión');\r\n });\r\n }\r\n })\r\n\r\n}\r\n\r\nguardar_detalle=()=>{\r\n if(!this.state.open_eliminar_detalle){\r\n if(this.codigoRef.current.value===''||this.descuento_detalleRef.current.value===''||this.pagoRef.current.value===''||this.secuenciaRef.current.value==='')\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n if(this.codigoRef.current.value===null||this.descuento_detalleRef.current.value===null||this.pagoRef.current.value===null||this.secuenciaRef.current.value===null)\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n if(this.codigoRef.current.value===undefined||this.descuento_detalleRef.current.value===undefined||this.pagoRef.current.value===undefined||this.secuenciaRef.current.value===undefined)\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n\r\n if(parseInt(this.pagoRef.current.value)===0){\r\n funciones.showToast('w','No se permiten % de pago en cero.');\r\n return;\r\n }\r\n if(this.matriculaRef.current.value===''||this.descuentoRef.current.value==='')\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n if(this.matriculaRef.current.value===null||this.descuentoRef.current.value===null)\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n if(this.matriculaRef.current.value===undefined||this.descuentoRef.current.value===undefined)\r\n {\r\n funciones.showToast('w','Debe ingresar todos los datos.');\r\n return;\r\n }\r\n }\r\n var row=[];\r\n Array.prototype.push.apply(row,this.state.rows_detalle)\r\n \r\n if(this.state.open_ingresar){\r\n row.push({\r\n \"MOD_PAGO_ID\": this.state.selection.length>0? this.state.selection[0].MOD_PAGO_ID:null//this.state.rows.MOD_PAGO_ID//\r\n ,\"DETALLE_ID\": this.state.rows_detalle.length>0?(parseInt(this.state.rows_detalle[this.state.rows_detalle.length-1].DETALLE_ID+1)):this.state.rows_detalle.length+1\r\n ,\"DETALLE_CODIGO_TRANSACCION\": this.codigoRef.current.value\r\n ,\"DETALLE_SECUENCIA\": this.secuenciaRef.current.value\r\n ,\"DETALLE_PORC_PAGO\": this.pagoRef.current.value\r\n ,\"DETALLE_PORC_DESC\": this.descuento_detalleRef.current.value\r\n \r\n })\r\n }\r\n \r\n else if(this.state.open_modificar_detalle){\r\n row.forEach((element,index)=>{\r\n if(element.DETALLE_ID===this.state.selection_detalle[0].DETALLE_ID)\r\n {\r\n element.DETALLE_CODIGO_TRANSACCION= this.codigoRef.current.value\r\n element.DETALLE_SECUENCIA= this.secuenciaRef.current.value\r\n element.DETALLE_PORC_PAGO= this.pagoRef.current.value\r\n element.DETALLE_PORC_DESC= this.descuento_detalleRef.current.value\r\n }\r\n })\r\n }\r\n else{\r\n row.forEach((element,index)=>{\r\n if(element.DETALLE_ID===this.state.selection_detalle[0].DETALLE_ID)\r\n {\r\n row.splice(index,1);\r\n }\r\n })\r\n }\r\n \r\n this.setState({rows_detalle: row,open_ingresar: false,open_modificar_detalle: false,open_eliminar_detalle: false,selection_detalle:[]})\r\n}\r\n\r\n\r\nhandleChangeCheckbox_visible= event => {\r\n this.setState({ visible: event.target.checked});\r\n}\r\nhandleChangeCheckbox_intensivo= event => {\r\n this.setState({ intensivo: event.target.checked});\r\n}\r\nhandleChangeCheckbox_estado= event => {\r\n this.setState({ estado: event.target.checked});\r\n}\r\nChangeSelect_tipo = event => {\r\n this.setState({ selection_tipo: event.target.value });\r\n}\r\n\r\n\r\nhandleClick=(TIPO)=>event=>{\r\n if(TIPO===1)\r\n {\r\n if(this.state.selection_tipo===1){\r\n currentcodigo=null;\r\n currentdescuento_detalle=null;\r\n currentpago=null;\r\n currentsecuencia=null;\r\n this.setState({open_ingresar: true,selection_detalle:''})\r\n }\r\n else\r\n {\r\n funciones.showToast('w','Para agregar una cuota debe ser tipo financiado.')\r\n }\r\n }\r\n if(TIPO===2)\r\n {\r\n if(this.state.selection_detalle.length>0)\r\n this.setState({open_modificar_detalle: true})\r\n else\r\n {\r\n funciones.showToast('w','Debe seleccionar un detalle.')\r\n }\r\n }\r\n if(TIPO===3)\r\n {\r\n if(this.state.selection_detalle.length>0)\r\n this.setState({open_eliminar_detalle: true})\r\n else\r\n {\r\n funciones.showToast('w','Debe seleccionar un detalle.')\r\n }\r\n }\r\n}\r\n\r\n\r\n/* RENDER */\r\nrender() {\r\n const { classes } = this.props;\r\n\r\n const botones = [\r\n {icono: 'Add', toolt: 'Agregar', nombre: 'Agregar' ,escritura:true, onclick: this.abrirmodal_agregar(),display: 'auto'},\r\n {icono: 'Edit', toolt: 'Modificar', nombre: 'Modificar' ,escritura:true , onclick: this.abrirmodal_modificar(),display:'auto'},\r\n {icono: 'Delete', toolt: 'Eliminar', nombre: 'Eliminar' ,escritura:true , onclick: this.abrirmodal_eliminar(),color: colores.naranja, display: 'auto'},\r\n ]\r\n const botones_agregar = [\r\n {icono: 'Save', nombre: 'Guardar',escritura:true,onclick: this.guardar(1), display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n ]\r\n const botones_modificar = [\r\n {icono: 'Save', nombre: 'Guardar',escritura:true,onclick: this.guardar(2), display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n ]\r\n const botones_eliminar = [\r\n {icono: 'Delete', nombre: 'Eliminar',escritura:true,onclick: this.guardar(3), display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n ]\r\n const botones_agregar_detalle = [\r\n {icono: 'Save', nombre: 'Aceptar',escritura:true,onclick: this.guardar_detalle, display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal_detalle(), display:'auto', color: 'red'},\r\n ]\r\n const botones_eliminar_detalle = [\r\n {icono: 'Delete', nombre: 'Eliminar',escritura:true,onclick: this.guardar_detalle, display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal_detalle(), display:'auto', color: 'red'},\r\n ]\r\n\r\n if (this.state.isLoggin === true )\r\n {\r\n return ( \r\n <React.Fragment>\r\n <Backdrop className={classes.backdrop} open={this.state.openBackDrop}>\r\n <CircularProgress color=\"inherit\" />\r\n <span style={{ marginTop: '10px' }}>{'Cargando...'}</span>\r\n </Backdrop>\r\n {/*--------------------------------------------------------------------DIALOG PARA ELIMINAR ---------------------------------------------------------------------*/}\r\n <Dialog\r\n open={this.state.open_eliminar}\r\n disableEnforceFocus disableAutoFocus\r\n fullWidth= {true} classes = {{ paper: classes.Dialog}}\r\n maxWidth= 'xs'\r\n style={{zIndex: 200000,}} //fullScreen={movil_pequeño?true:false}\r\n >\r\n <DialogTitle>\r\n <Typography component='span' variant='subtitle2'>\r\n {'Eliminar'}\r\n </Typography>\r\n </DialogTitle>\r\n <DialogContent>\r\n <Typography align='center'>\r\n ¿Está seguro de eliminar esta modalidad?\r\n </Typography>\r\n </DialogContent>\r\n <BarraBotones botones={botones_eliminar} l={this.l} e={this.e} i={this.i}/>\r\n </Dialog>\r\n {/*--------------------------------------------------------------------DIALOG PARA ELIMINAR DETALLE---------------------------------------------------------------------*/}\r\n <Dialog\r\n open={this.state.open_eliminar_detalle}\r\n disableEnforceFocus disableAutoFocus\r\n fullWidth= {true} classes = {{ paper: classes.Dialog}}\r\n maxWidth= 'xs'\r\n style={{zIndex: 200000,}} //fullScreen={movil_pequeño?true:false}\r\n >\r\n <DialogTitle>\r\n <Typography component='span' variant='subtitle2'>\r\n {'Eliminar'}\r\n </Typography>\r\n </DialogTitle>\r\n <DialogContent>\r\n <Typography align='center'>\r\n ¿Está seguro de eliminar este detalle?\r\n </Typography>\r\n </DialogContent>\r\n <BarraBotones botones={botones_eliminar_detalle} l={this.l} e={this.e} i={this.i}/>\r\n </Dialog>\r\n {/*--------------------------------------------------------------------DIALOG PARA INGRESAR DETALLE---------------------------------------------------------------------*/}\r\n <Dialog\r\n open={this.state.open_ingresar||this.state.open_modificar_detalle}\r\n disableEnforceFocus disableAutoFocus\r\n fullWidth= {true} classes = {{ paper: classes.Dialog}}\r\n maxWidth= 'xs'\r\n style={{zIndex: 200000,}} //fullScreen={movil_pequeño?true:false}\r\n >\r\n <DialogTitle>\r\n <Typography component='span' variant='subtitle2'>\r\n {'Detalle'}\r\n </Typography>\r\n </DialogTitle>\r\n <DialogContent>\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"codigo\" label=\"Código\" name=\"codigo\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentcodigo}\r\n inputProps={{ ref: this.codigoRef }} style={{marginRight:5,width: movil_pequeño?'100%':'90%'}}\r\n />\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"secuencia\" label=\"Secuencia\" name=\"secuencia\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentsecuencia}\r\n onKeyDown={funciones.onlyNumbers(this.secuenciaRef, false, false)}\r\n inputProps={{ ref: this.secuenciaRef }} style={{marginRight:5,width: movil_pequeño?'100%':'50%'}}\r\n />\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"pago\" label=\"% Pago\" name=\"pago\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentpago}\r\n onKeyDown={funciones.onlyNumbers(this.pagoRef, false, false)}\r\n inputProps={{ ref: this.pagoRef }} style={{marginRight:5,width: movil_pequeño?'100%':'50%'}}\r\n />\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n required\r\n id=\"descuento_Detalle\" label=\"% Descuento\" name=\"descuento_Detalle\" \r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentdescuento_detalle}\r\n onKeyDown={funciones.onlyNumbers(this.descuento_detalleRef, false, false)}\r\n inputProps={{ ref: this.descuento_detalleRef }} style={{marginRight:5,width: movil_pequeño?'100%':'50%'}}\r\n />\r\n </DialogContent>\r\n <BarraBotones botones={botones_agregar_detalle} l={this.l} e={this.e} i={this.i}/>\r\n </Dialog>\r\n {/*---------------------------------------------------------------------------DIALOG PARA AGREGAR---------------------------------------------------------------------*/}\r\n <Dialog\r\n open={this.state.open_agregar||this.state.open_modificar}\r\n disableEnforceFocus disableAutoFocus\r\n fullWidth= {true} classes = {{ paper: classes.Dialog}}\r\n maxWidth= 'sm'\r\n style={{zIndex: 200000,}} fullScreen={movil_pequeño}\r\n >\r\n <DialogTitle>\r\n <Typography component='span' variant='subtitle2'>\r\n {'Modalidad'}\r\n </Typography>\r\n </DialogTitle>\r\n <DialogContent>\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"descripcion\" label=\"Descripción\" name=\"descripcion\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentdescripcion}\r\n inputProps={{ ref: this.descripcionRef }} style={{marginRight:5,width: movil_pequeño?'100%':'100%'}}\r\n />\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"matricula\" label=\"% MatrÃcula\" name=\"matricula\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentmatricula}\r\n onKeyDown={funciones.onlyNumbers(this.matriculaRef, false, false)}\r\n inputProps={{ ref: this.matriculaRef }} style={{marginRight:5,width: movil_pequeño?'100%':'30%'}}\r\n />\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"descuento\" label=\"% Descuento\" name=\"descuento\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentdescuento}\r\n onKeyDown={funciones.onlyNumbers(this.descuentoRef, false, false)}\r\n inputProps={{ ref: this.descuentoRef }} style={{marginRight:5,width: movil_pequeño?'100%':'30%'}}\r\n />\r\n <div style={{display: movil_pequeño?'auto':'flex',alignItems:'center',marginBottom:5}} >\r\n <Select Label=\"Tipo\"\r\n Datos = {this.state.datos_tipo}\r\n Selected={this.state.selection_tipo}\r\n onChange={this.ChangeSelect_tipo}\r\n Multiple = {false}\r\n SelectClass={{height: movil_pequeño?'auto':36,width: movil_pequeño?'100%':'100%',}}\r\n Style = {classes.select}\r\n ShowItemNone = {true}\r\n LabelItemNone = ''\r\n ValueItemNone = ''\r\n AutoFocus = {false}\r\n required\r\n Outlined = {true}\r\n shrink={this.state.selection_tipo !== '' ? true : undefined}\r\n //labelWidth = {60}\r\n />\r\n <FormControlLabel\r\n value={'Visible'}\r\n control={<Checkbox style={{padding:0,marginLeft:0,marginRight:5}} checked={this.state.visible} onChange={this.handleChangeCheckbox_visible} color=\"secondary\" />}\r\n label={'Visible Alumno'}\r\n labelPlacement=\"end\"\r\n style={{paddingLeft:0,paddingRight:0,paddingTop:5,paddingBottom:5,marginLeft:5 ,marginRight: 10, marginTop:1}}\r\n />\r\n <FormControlLabel\r\n value={'Intensivo'}\r\n control={<Checkbox style={{padding:0,marginLeft:0,marginRight:5}} checked={this.state.intensivo} onChange={this.handleChangeCheckbox_intensivo} color=\"secondary\" />}\r\n label={'PerÃodo Intensivo'}\r\n labelPlacement=\"end\"\r\n style={{paddingLeft:0,paddingRight:0,paddingTop:5,paddingBottom:5,marginLeft:5 ,marginRight: 10, marginTop:1}}\r\n />\r\n <FormControlLabel\r\n value={'Estado'}\r\n control={<Checkbox style={{padding:0,marginLeft:0,marginRight:5}} checked={this.state.estado} onChange={this.handleChangeCheckbox_estado} color=\"secondary\" />}\r\n label={'Activo'}\r\n labelPlacement=\"end\"\r\n style={{paddingLeft:0,paddingRight:0,paddingTop:5,paddingBottom:5,marginLeft:5 ,marginRight: 10, marginTop:1}}\r\n />\r\n </div>\r\n <CustomTable\r\n Columns={columns_detalle} \r\n Rows={this.state.rows_detalle} \r\n TableColumnExtensions={tableColumnExtensions_detalle}\r\n DefaultHiddenColumnNames={defaultHiddenColumnNames_detalle}\r\n getRowId = {getRowId_detalle}\r\n height={this.state.selection_tipo === 1 ?movil_pequeño?'200px':'150px':'0px'}\r\n enabledFilterRows= {false}\r\n standarPlugin = { <TableRowsIndexer/> }\r\n rowHeaderCellComponent={HeaderRowCellComponent_detalle(this.state.selection_detalle,this.handleClick,this.state.selection_detalle[0]!==undefined?this.state.selection_detalle[0].DETALLE_ID:'0')}\r\n //VirtualTable_cellComponent={VirtualTable_cellComponent}\r\n RowComponent={this.trow_detalle}\r\n showSelectionColumn={false}\r\n />\r\n </DialogContent>\r\n <BarraBotones botones={this.state.open_agregar?botones_agregar:botones_modificar} l={this.l} e={this.e} i={this.i}/>\r\n </Dialog>\r\n\r\n {/*--------------------------------------------------------------------VENTANA PRINCIPAL--------------------------------------------------------------*/}\r\n\r\n <BarraBotones align='center' botones={botones} l={this.l} e={this.e} i={this.i}/>\r\n <div ref={this.tablaRef} style={{background:'white',marginLeft: movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n <CustomTable\r\n Columns={columns} \r\n Rows={this.state.rows} \r\n TableColumnExtensions={tableColumnExtensions}\r\n DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n getRowId = {getRowId}\r\n height={this.state.heightTableMain}\r\n enabledFilterRows= {false}\r\n standarPlugin = { <TableRowsIndexer/> }\r\n VirtualTable_cellComponent={VirtualTable_cellComponent}\r\n RowComponent={this.trow}\r\n showSelectionColumn={false}\r\n />\r\n </div>\r\n </React.Fragment>\r\n ); /// finaliza return\r\n }\r\n else if (this.state.isLoggin === false)\r\n {\r\n Auth.logout()\r\n window.location.reload();\r\n return; \r\n }\r\n\r\n\r\n return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n\r\n \r\n\r\n ","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {colores, globales,funciones} from '../../../global';\r\nimport BarraBotones from '../../../components/Barra_menu';\r\nimport AuthService from '../../../AuthService';\r\nimport Request from 'superagent';\r\nimport CustomTable from '../../../components/CustomTable';\r\nimport {Table} from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer from '../../../components/tableRowsIndexer';\r\nimport { Plugin, Template, TemplateConnector, TemplatePlaceholder } from \"@devexpress/dx-react-core\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport Icono from '../../../components/Icono'\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport {virtual} from '../../../components/VirtualListBox';\r\nimport { Avatar, Button } from '@material-ui/core';\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider, validate} from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport esLocale from \"date-fns/locale/es\";\r\nimport CustomToolbar from '../../../components/toolbarPicker';\r\nimport LockOpenIcon from '@material-ui/icons/LockOpen';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport {TableHeaderRow} from '@devexpress/dx-react-grid-material-ui';\r\nimport SelectTime from '../../../components/SelectTime';\r\nimport { SignalCellularNull } from '@material-ui/icons';\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\nvar movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\nconst colorRowSelected = 'rgb('+ colores.tabla.selection +')';\r\nlet alternateColorRow1 = colores.tabla.alternateColorRow1; \r\nlet alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nfunction getMin(min) {\r\n while(min%5!=0)\r\n {\r\n if (min<=54)\r\n {\r\n min=min+1;\r\n \r\n }\r\n else{\r\n min=0;\r\n } \r\n }\r\n return min;\r\n}\r\n\r\nfunction getMinReverso(min) {\r\n while(min%5!=0)\r\n {\r\n if (min>=1 & min<=59)\r\n {\r\n min=min-1; \r\n }\r\n else{\r\n min=0;\r\n \r\n }\r\n \r\n }\r\n \r\n return min<10&min.length===1?'0'+min:min;\r\n}\r\n\r\n\r\nconst ListboxComponent_periodos = virtual.ListboxComponent;\r\nconst ListboxComponent_docentes = virtual.ListboxComponent;\r\nconst ListboxComponent_seccion = virtual.ListboxComponent;\r\nconst ListboxComponent_ponderaciones = virtual.ListboxComponent;\r\nconst ListboxComponent_categorias = virtual.ListboxComponent;\r\nconst VirtualTable_cellComponent = (props) => {\r\n const { column } = props;\r\n const {row} = props;\r\n\r\n if(column.name==='BLOQUEO_INFO'){\r\n return(\r\n <Table.Cell {...props} style={{padding:0,borderRight:'1px solid rgba(180,180,180,0.8)',alignItems:'center',justifyContent:'center',display:'flex'}}>\r\n {row.BLOQUEO?\r\n <Icono fontSize='small' icono='Lock' />\r\n :<Icono fontSize='small' icono='LockOpen' /> }\r\n </Table.Cell>\r\n );\r\n }\r\n\r\n return(\r\n <Table.Cell {...props}/>\r\n );\r\n}\r\n\r\nconst getRowId = row => row.ID_CONFIGURACION_FECHAS_CALIFICADOR;\r\nconst getRowId_docente = row => row.ID_HABILITAR_CALIFICADOR_DOCENTE;\r\n\r\n/* CLASES DE ESTILO */\r\n\r\nvar styles = theme =>({\r\n Dialog:{\r\n borderRadius: border_dialog,\r\n margin:0,\r\n padding:0\r\n },\r\n backdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\r\n },\r\n select: { //CONFIGURA EL SELECT \r\n margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n padding: 0,\r\n minWidth: movil_pequeño?'100%':'50%',\r\n },\r\n textField: {\r\n margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n padding: 0,\r\n minWidth: movil_pequeño?'100%':'20%',\r\n width: '20%' \r\n },\r\n button: {\r\n margin: movil_pequeño?3:theme.spacing(1),\r\n paddingRight: theme.spacing(2),\r\n alignItems: 'center',\r\n // boxShadow: 'unset grey 1px 1px 3px 1px',\r\n boxShadow: '0px 0px 1px 2px rgba(179,179,179,0.5);-webkit-box-shadow: 0px 1px 1px 1px rgba(179,179,179,0.5);-moz-box-shadow: 0px 0px 2px 1px rgba(179,179,179,1);',\r\n border: 'none',\r\n borderRadius:2,\r\n },\r\n })\r\n\r\n const columns= [\r\n {name:'BLOQUEO_INFO',title: ' '}\r\n ,{name:'ID_CONFIGURACION_FECHAS_CALIFICADOR',title: 'ID_CONFIGURACION_FECHAS_CALIFICADOR'}\r\n ,{name:'ID_CONTROL_MATRICULA',title: 'ID_CONTROL_MATRICULA'}\r\n ,{name:'ID_PONDERACION',title: 'ID_PONDERACION'}\r\n ,{name:'DESCRIPCION_PONDERACION',title: 'Ponderación'}\r\n ,{name:'FECHA_INICIO',title: 'FECHA_INICIO'}\r\n ,{name:'FECHA_FIN',title: 'FECHA_FIN'}\r\n ,{name:'FECHA_INICIO_MOSTRAR',title: 'Fecha Inicio'}\r\n ,{name:'FECHA_FIN_MOSTRAR',title: 'Fecha Fin'}\r\n ,{name:'FECHA_INICIO_MOSTRAR_2',title: 'Fecha Inicio'}\r\n ,{name:'FECHA_FIN_MOSTRAR_2',title: 'Fecha Fin'} \r\n ,{name:'BLOQUEO',title: 'BLOQUEO'}\r\n ];\r\n\r\n const columns_docente= [\r\n {name:'ROOT',title: ' '}\r\n ,{name:'ID_HABILITAR_CALIFICADOR_DOCENTE',title: 'ID_HABILITAR_CALIFICADOR_DOCENTE'}\r\n ,{name:'ID_SECCION',title: 'ID_SECCION'}\r\n ,{name:'DESCRIPCION',title: 'Descripción'}\r\n ,{name:'ID_PONDERACION',title: 'ID_PONDERACION'}\r\n ,{name:'DESCRIPCION_PONDERACION',title: 'Ponderación'}\r\n ,{name:'FECHA_INICIO_MOSTRAR_2',title: 'Fecha Inicio'}\r\n ,{name:'FECHA_FIN_MOSTRAR_2',title: 'Fecha Fin'}\r\n ,{name:'FECHA_INICIO',title: 'Fecha Inicio'}\r\n ,{name:'FECHA_FIN',title: 'Fecha Fin'} \r\n ,{name:'VIGENCIA',title: 'VIGENCIA'} \r\n ,{name:'ID_CATEGORIA',title: 'ID_CATEGORIA'} \r\n ,{name:'NOMBRE_CATEGORIA',title: 'CategorÃa'} \r\n ];\r\n\r\n const defaultHiddenColumnNames= ['ID_CONFIGURACION_FECHAS_CALIFICADOR','ID_CONTROL_MATRICULA','ID_PONDERACION','BLOQUEO','FECHA_INICIO_MOSTRAR','FECHA_FIN_MOSTRAR','FECHA_INICIO','FECHA_FIN'];\r\n\r\n const defaultHiddenColumnNames_docente= ['ID_HABILITAR_CALIFICADOR_DOCENTE','ID_SECCION','ID_PONDERACION','FECHA_INICIO','FECHA_FIN','ID_CATEGORIA','VIGENCIA'];\r\n\r\n const tableColumnExtensions= [\r\n { columnName: 'DESCRIPCION_PONDERACION', wordWrapEnabled: false, align: 'left'},\r\n { columnName: 'FECHA_INICIO_MOSTRAR', wordWrapEnabled: false, align: 'center'},\r\n { columnName: 'FECHA_FIN_MOSTRAR', wordWrapEnabled: false, align: 'center'},\r\n { columnName: 'BLOQUEO_INFO', wordWrapEnabled: false, align: 'center',width:50},\r\n ];\r\n\r\n const tableColumnExtensions_docentes= [\r\n { columnName: 'ROOT', wordWrapEnabled: false, align: 'left',width:75},\r\n { columnName: 'DESCRIPCION', wordWrapEnabled: false, align: 'left',width:300},\r\n { columnName: 'DESCRIPCION_PONDERACION', wordWrapEnabled: false, align: 'center',width:100},\r\n { columnName: 'FECHA_INICIO_MOSTRAR_2', wordWrapEnabled: false, align: 'center',width:150},\r\n { columnName: 'FECHA_FIN_MOSTRAR_2', wordWrapEnabled: false, align: 'center',width:150},\r\n { columnName: 'NOMBRE_CATEGORIA', wordWrapEnabled: false, align: 'center',width:150},\r\n\r\n ];\r\n\r\n\r\n \r\n const HeaderRowCellComponent_docente = (valueStudent,valuedocente,handleClick,selection)=> ({ ...props}) => {\r\n\r\n const style={paddingTop: props.column.name === \"ROOT\" ? \"5px\" : undefined, paddingBottom: props.column.name === \"ROOT\" ? \"5px\" : undefined }\r\n \r\n\r\n if (props.column.name === \"ROOT\")\r\n {\r\n return (<TableHeaderRow.Cell {...props} style={{padding:2}}>\r\n <IconButton size=\"small\" onClick={handleClick(1)} disabled={valuedocente===null}>\r\n <Icono icono={'Add'} fontSize='small' style={{ color: valuedocente !== null ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n </IconButton>\r\n <IconButton size=\"small\" onClick={handleClick(2)} disabled={valueStudent.length===0}>\r\n <Icono icono={'Edit'} fontSize='small' style={{ color: valueStudent.length !== 0 ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n </IconButton>\r\n <IconButton size=\"small\" onClick={handleClick(3)} disabled={valueStudent.length===0}>\r\n <Icono icono={'Delete'} fontSize='small' style={{ color: valueStudent.length !== 0 ? colores.tabla.color_iconos : colores.tabla.color_iconos_SL }} />\r\n </IconButton>\r\n </ TableHeaderRow.Cell>\r\n );\r\n }\r\n \r\n return (<TableHeaderRow.Cell style={style} {...props} />);\r\n }\r\n\r\n/* EXPORT */\r\nexport default withStyles(styles)(\r\n class Configuracion_Calificador extends React.Component {\r\n tablaRef = React.createRef();\r\n\r\n horasInicioConfCalificadorRef = React.createRef();\r\n minutosInicioConfCalificadorRef = React.createRef();\r\n merInicioConfCalificadorRef = React.createRef();\r\n\r\n horasFinConfCalificadorRef = React.createRef();\r\n minutosFinConfCalificadorRef= React.createRef();\r\n merFinConfCalificadorRef = React.createRef();\r\n horasFinRef = React.createRef();\r\n minutosFinRef = React.createRef();\r\n merFinRef = React.createRef();\r\n \r\n horasInicioRef = React.createRef();\r\n minutosInicioRef = React.createRef();\r\n merInicioRef = 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.isVisibleRowSelected=isVisibleRowSelected\r\n this.actualizarbarra=props.actualizarbarra\r\n this.actualizarcircular=props.actualizarcircular\r\n\r\n this.state = {\r\n openBackDrop: false, \r\n isLoggin: undefined,\r\n heightTableMain: 0,\r\n rows: [],\r\n rows_docentes: [],\r\n rows_docentes_hab: [],\r\n periodo_calificador:'',\r\n selection: [],\r\n selection_docente: [],\r\n grouping: [],\r\n expandedGroups: [],\r\n filteringColumnExtensions: [],\r\n filters: [],\r\n expandedRowIds: [],\r\n enabledFilterRows: true,\r\n optionAutocompleteAdd_periodos: [],\r\n optionAutocompleteAdd_docentes: [],\r\n optionAutocompleteAdd_seccion: [],\r\n optionAutocompleteAdd_ponderaciones: [],\r\n optionAutocompleteAdd_categorias: [],\r\n openAutoCompleteAdd_periodos: false,\r\n openAutoCompleteAdd_docentes: false,\r\n isLoading_docentes: true,\r\n isSaving_docentes: true,\r\n isLoading_periodos: true,\r\n isLoading_ponderaciones: true,\r\n isLoading_categorias: true,\r\n isSaving_periodos: true,\r\n isSaving_ponderaciones: true,\r\n isSaving_categorias: true,\r\n valueAutoCompleteAdd_periodos: null,\r\n valueAutoCompleteAdd_seccion: null,\r\n valueAutoCompleteAdd_docentes: null,\r\n valueAutoCompleteAdd_ponderaciones: null,\r\n valueAutoCompleteAdd_categorias: null,\r\n open_configurar: false,\r\n open_guardar: false,\r\n open_docente: false,\r\n open_configurar_fecha: false,\r\n fechainicio: new Date(),\r\n fechafin: new Date(),\r\n tipo: null,\r\n fechainicioDocente: new Date(),\r\n fechafinDocente: new Date() \r\n }\r\n \r\n const trow = TableRow => withStyles(styles, { name: \"Row\" })( ({classes,highlighted, rowIndex, row, selectByRowClick, ...props}) => {\r\n\r\n const odd = !!(rowIndex % 2);\r\n const r = props.tableRow \r\n\r\n const dblclickselection = (ID_CONFIGURACION_FECHAS_CALIFICADOR,DESCRIPCION_PONDERACION,FECHA_INICIO,FECHA_FIN,FECHA_INICIO_MOSTRAR_2,FECHA_FIN_MOSTRAR_2,ID_PONDERACION,PERMISO_CONFIG_CALIFICADOR) => event =>{ \r\n this.setState({open_configurar: PERMISO_CONFIG_CALIFICADOR===1?true:false,tipo:1\r\n ,fechainicio: new Date(FECHA_INICIO.substr(0,19)),fechafin: new Date(FECHA_FIN.substr(0,19)),selection: [{ID_CONFIGURACION_FECHAS_CALIFICADOR:ID_CONFIGURACION_FECHAS_CALIFICADOR,DESCRIPCION_PONDERACION: DESCRIPCION_PONDERACION\r\n ,FECHA_INICIO:FECHA_INICIO,FECHA_FIN:FECHA_FIN,FECHA_INICIO_MOSTRAR_2:FECHA_INICIO_MOSTRAR_2,FECHA_FIN_MOSTRAR_2:FECHA_FIN_MOSTRAR_2,ID_PONDERACION:ID_PONDERACION,PERMISO_CONFIG_CALIFICADOR:PERMISO_CONFIG_CALIFICADOR}]},()=>{ if(PERMISO_CONFIG_CALIFICADOR===0) {funciones.showToast('w', 'No tiene permitido modificar esta configuración.');}})\r\n }\r\n \r\n if (this.state.selection[0]===undefined?this.state.selection[0]:this.state.selection[0].ID_CONFIGURACION_FECHAS_CALIFICADOR === props.tableRow.row.ID_CONFIGURACION_FECHAS_CALIFICADOR) { isVisibleRowSelected = true; }\r\n return (\r\n <Table.Row {...props}\r\n \r\n onDoubleClick={dblclickselection(r.row.ID_CONFIGURACION_FECHAS_CALIFICADOR, r.row.DESCRIPCION_PONDERACION\r\n , r.row.FECHA_INICIO, r.row.FECHA_FIN,r.row.FECHA_INICIO_MOSTRAR_2,r.row.FECHA_FIN_MOSTRAR_2,r.row.ID_PONDERACION,r.row.PERMISO_CONFIG_CALIFICADOR\r\n )}\r\n style={{\r\n \r\n backgroundColor: this.state.selection[0]===undefined?odd ? alternateColorRow1 : alternateColorRow2:this.state.selection[0].ID_CONFIGURACION_FECHAS_CALIFICADOR === props.tableRow.row.ID_CONFIGURACION_FECHAS_CALIFICADOR ? colorRowSelected : \r\n odd ? alternateColorRow1 : alternateColorRow2, \r\n padding: '0rem 0rem !important',\r\n margin: '0px', \r\n }}\r\n />\r\n );\r\n });\r\n\r\n const trow_docente = TableRow => withStyles(styles, { name: \"Row\" })( ({classes,highlighted, rowIndex, row, selectByRowClick, ...props}) => {\r\n\r\n const odd = !!(rowIndex % 2);\r\n const r = props.tableRow \r\n const clickselection = (ID_HABILITAR_CALIFICADOR_DOCENTE,ID_SECCION,ID_PONDERACION,FECHA_INICIO,FECHA_FIN,ID_CATEGORIA,FECHA_INICIO_MOSTRAR_2,FECHA_FIN_MOSTRAR_2,DESCRIPCION,DESCRIPCION_PONDERACION) => event =>{\r\n \r\n this.setState({ selection_docente: [{ID_HABILITAR_CALIFICADOR_DOCENTE:ID_HABILITAR_CALIFICADOR_DOCENTE,ID_SECCION:ID_SECCION,ID_PONDERACION: ID_PONDERACION\r\n ,FECHA_INICIO:FECHA_INICIO,FECHA_FIN:FECHA_FIN,ID_CATEGORIA:ID_CATEGORIA,FECHA_INICIO_MOSTRAR_2:FECHA_INICIO_MOSTRAR_2,FECHA_FIN_MOSTRAR_2:FECHA_FIN_MOSTRAR_2,DESCRIPCION:DESCRIPCION,DESCRIPCION_PONDERACION:DESCRIPCION_PONDERACION}]})\r\n }\r\n const dblclickselection = (ID_HABILITAR_CALIFICADOR_DOCENTE,ID_SECCION,ID_PONDERACION,FECHA_INICIO,FECHA_FIN,ID_CATEGORIA,FECHA_INICIO_MOSTRAR_2,FECHA_FIN_MOSTRAR_2,DESCRIPCION,DESCRIPCION_PONDERACION,) => event =>{ \r\n let setValueAutoCompleteAdd_ponderaciones = this.state.optionAutocompleteAdd_ponderaciones.find(x => x.ID_PONDERACION === this.state.selection_docente[0].ID_PONDERACION)\r\n let setValueAutoCompleteAdd_categoria = this.state.optionAutocompleteAdd_categorias.find(x => x.ID_CATEGORIA === this.state.selection_docente[0].ID_CATEGORIA)\r\n \r\n this.setState({open_configurar_fecha: true,tipo:3,valueAutoCompleteAdd_ponderaciones:setValueAutoCompleteAdd_ponderaciones,valueAutoCompleteAdd_categorias:setValueAutoCompleteAdd_categoria,fechainicioDocente:this.state.selection_docente[0].FECHA_INICIO.replace('T',' ').replace('.',':').replace('Z',''),fechafinDocente:this.state.selection_docente[0].FECHA_FIN.replace('T',' ').replace('.',':').replace('Z','')\r\n ,selection_docente: [{ID_HABILITAR_CALIFICADOR_DOCENTE:ID_HABILITAR_CALIFICADOR_DOCENTE,ID_SECCION:ID_SECCION,ID_PONDERACION: ID_PONDERACION\r\n ,FECHA_INICIO:FECHA_INICIO,FECHA_FIN:FECHA_FIN,ID_CATEGORIA:ID_CATEGORIA,FECHA_INICIO_MOSTRAR_2:FECHA_INICIO_MOSTRAR_2,FECHA_FIN_MOSTRAR_2:FECHA_FIN_MOSTRAR_2,DESCRIPCION:DESCRIPCION,DESCRIPCION_PONDERACION:DESCRIPCION_PONDERACION}]}) \r\n }\r\n \r\n if (this.state.selection[0]===undefined?this.state.selection_docente[0]:this.state.selection_docente[0].ID_HABILITAR_CALIFICADOR_DOCENTE === props.tableRow.row.ID_HABILITAR_CALIFICADOR_DOCENTE) { isVisibleRowSelected = true; }\r\n return (\r\n <Table.Row {...props}\r\n onClick={clickselection(r.row.ID_HABILITAR_CALIFICADOR_DOCENTE, r.row.ID_SECCION, r.row.ID_PONDERACION\r\n , r.row.FECHA_INICIO, r.row.FECHA_FIN,r.row.ID_CATEGORIA,r.row.FECHA_INICIO_MOSTRAR_2,r.row.FECHA_FIN_MOSTRAR_2,r.row.DESCRIPCION,r.row.DESCRIPCION_PONDERACION)}\r\n onDoubleClick={dblclickselection(r.row.ID_HABILITAR_CALIFICADOR_DOCENTE, r.row.ID_SECCION, r.row.ID_PONDERACION\r\n , r.row.FECHA_INICIO, r.row.FECHA_FIN,r.row.ID_CATEGORIA,r.row.FECHA_INICIO_MOSTRAR_2,r.row.FECHA_FIN_MOSTRAR_2,r.row.DESCRIPCION,r.row.DESCRIPCION_PONDERACION\r\n )}\r\n style={{\r\n //cursor: 'pointer',\r\n backgroundColor: this.state.selection_docente[0]===undefined?odd ? alternateColorRow1 : alternateColorRow2:this.state.selection_docente[0].ID_HABILITAR_CALIFICADOR_DOCENTE === props.tableRow.row.ID_HABILITAR_CALIFICADOR_DOCENTE ? colorRowSelected : \r\n odd ? alternateColorRow1 : alternateColorRow2, \r\n padding: '0rem 0rem !important',\r\n margin: '0px', \r\n }}\r\n />\r\n );\r\n });\r\n\r\n this.trow = trow(Table.Row);\r\n this.trow_docente = trow_docente(Table.Row);\r\n }; //FIN CONSTRUCTORS\r\n \r\nguardar=()=>{ \r\n\r\n let fechainicioConf_ = funciones.getTimeSelect(this.horasInicioConfCalificadorRef .current.value, this.minutosInicioConfCalificadorRef.current.value, this.merInicioConfCalificadorRef.current.value, this.state.fechainicio.toISOString().split('T')[0]);\r\n let fechafinConf_ = funciones.getTimeSelect(this.horasFinConfCalificadorRef.current.value, this.minutosFinConfCalificadorRef.current.value, this.merFinConfCalificadorRef.current.value, this.state.fechafin.toISOString().split('T')[0]);\r\n \r\n this.setState({ openBackDrop: true }, ()=>{\r\n try{\r\n new Request\r\n .post(`${ip}/configuracioncalificador/IUD_conf_calificador`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ \r\n ID_CONFIGURACION_FECHAS_CALIFICADOR: this.state.selection[0].ID_CONFIGURACION_FECHAS_CALIFICADOR\r\n ,FECHA_INICIO: fechainicioConf_!=null? fechainicioConf_.replace('T',' ').replace('.',':')+'Z':null\r\n ,FECHA_FIN: fechafinConf_!=null? fechafinConf_.replace('T',' ').replace('.',':')+'Z':null\r\n ,USUARIO: Auth.getProfile().user\r\n ,ID_HABILITAR_CALIFICADOR_DOCENTE: null\r\n ,ID_SECCION: null \r\n ,ID_PONDERACION: null\r\n ,FECHA_INICIO_DOCENTE: null \r\n ,FECHA_FIN_DOCENTE: null \r\n ,ID_CATEGORIA: null \r\n ,TIPO: this.state.tipo})\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n if (rows.length > 0) \r\n { \r\n if (rows[0].RESP === 'OK')\r\n { \r\n this.setState({openBackDrop: false,open_configurar: false,open_guardar: false}, ()=>{\r\n funciones.showToast('s', 'Información ingresada correctamente.'); \r\n this.Obtener_configuracion();\r\n this.cargaconfiguracion(this.state.valueAutoCompleteAdd_periodos);\r\n })\r\n }\r\n else{\r\n this.setState({ openBackDrop: false,open_guardar:false}, ()=>{\r\n funciones.showToast('w', rows[0].RESP);\r\n });\r\n }\r\n } \r\n }); \r\n }\r\n catch(ex){\r\n this.setState({ openBackDrop: false}, ()=>{\r\n funciones.showToast('e', ex.toString());\r\n });\r\n }\r\n })\r\n \r\n}\r\n\r\nguardarFechasDocente=()=>{ //aqui\r\n\r\n let fechainicioDocente_ = null\r\n let fechafinDocente_ = null\r\n let mensaje = ''\r\n\r\n \r\n if (this.state.tipo!==4)\r\n {\r\n \r\n \r\n fechainicioDocente_ = funciones.getTimeSelect(this.horasInicioRef.current.value, this.minutosInicioRef.current.value, this.merInicioRef.current.value, new Date(this.state.fechainicioDocente).toLocaleDateString('en-CA'));\r\n fechafinDocente_ = funciones.getTimeSelect(this.horasFinRef.current.value, this.minutosFinRef.current.value, this.merFinRef.current.value, new Date(this.state.fechafinDocente).toLocaleDateString('en-CA'));\r\n \r\n }\r\n \r\n \r\n this.setState({ openBackDrop: true }, ()=>{\r\n try{\r\n new Request\r\n .post(`${ip}/configuracioncalificador/IUD_conf_calificador`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ \r\n ID_CONFIGURACION_FECHAS_CALIFICADOR: null\r\n ,FECHA_INICIO: null//this.state.fechainicio\r\n ,FECHA_FIN: null//this.state.fechafin\r\n ,USUARIO: Auth.getProfile().user\r\n ,ID_HABILITAR_CALIFICADOR_DOCENTE: this.state.tipo===2?null:this.state.selection_docente[0].ID_HABILITAR_CALIFICADOR_DOCENTE\r\n ,ID_SECCION: this.state.valueAutoCompleteAdd_seccion.ID_SECCION\r\n ,ID_PONDERACION: this.state.tipo!=4?this.state.valueAutoCompleteAdd_ponderaciones.ID_PONDERACION:null\r\n ,FECHA_INICIO_DOCENTE: fechainicioDocente_!=null? fechainicioDocente_.replace('T',' ').replace('.',':')+'Z':null\r\n ,FECHA_FIN_DOCENTE: fechafinDocente_!=null? fechafinDocente_.replace('T',' ').replace('.',':')+'Z':null\r\n ,ID_CATEGORIA: this.state.tipo!=4?this.state.valueAutoCompleteAdd_categorias.ID_CATEGORIA:null\r\n ,TIPO: this.state.tipo})\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n \r\n const rows = JSON.parse(res.text);\r\n if (rows.length > 0) \r\n { \r\n if (rows[0].RESP === 'OK')\r\n { \r\n\r\n switch (this.state.tipo) { \r\n case 4:\r\n mensaje = 'Se eliminó correctamente.'\r\n break;\r\n \r\n default:\r\n mensaje = 'Información ingresada correctamente.'\r\n }\r\n this.setState({openBackDrop: false,open_configurar: false,open_configurar_fecha: false,open_modificar_detalle:false,open_guardar:false}, ()=>{\r\n funciones.showToast('s', mensaje);\r\n \r\n this.Obtener_docentes(this.state.valueAutoCompleteAdd_seccion.ID_SECCION)\r\n \r\n })\r\n }\r\n else{\r\n this.setState({ openBackDrop: false,open_guardar:false}, ()=>{\r\n funciones.showToast('w', rows[0].RESP);\r\n });\r\n }\r\n } \r\n }); \r\n }\r\n catch(ex){\r\n this.setState({ openBackDrop: false}, ()=>{\r\n funciones.showToast('e', ex.toString());\r\n });\r\n }\r\n })\r\n \r\n \r\n}\r\n\r\ncomponentDidMount()\r\n{\r\n let _this = this;\r\n _this.actualizarbarra(false)\r\n\r\n Auth.loggedIn().then( function(b){\r\n _this.setState({ isLoggin: b})\r\n if(b)\r\n {\r\n _this.consulta_periodos();\r\n _this.Obtener_configuracion();\r\n _this.Obtener_docentes();\r\n _this.consulta_Ponderaciones();\r\n _this.consulta_Categorias();\r\n }\r\n _this.setState({rows: [], heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable});\r\n _this.actualizarbarra(true);\r\n });\r\n}\r\n\r\n\r\nconsulta_Categorias=()=>{\r\n\r\n try{\r\n new Request\r\n .post(`${ip}/configuracioncalificador/obtener_categorias_calificador`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({USUARIO: Auth.getProfile().user })\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n this.setState({optionAutocompleteAdd_categorias: [], /*openAutoComplete_periodos: false,*/isLoading_categorias: false,isSaving_categorias: false})\r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n\r\n const tmp = JSON.parse(res.text);\r\n if (tmp.length > 0) \r\n { \r\n this.setState({optionAutocompleteAdd_categorias: tmp,valueAutoCompleteAdd_categorias: null,rows:[], /*openAutoComplete_periodos: false,*/ isLoading_categorias: false, isSaving_categorias: false})\r\n }\r\n else{\r\n this.setState({optionAutocompleteAdd_categorias: [],valueAutoCompleteAdd_categorias: null,rows:[], /*openAutoComplete_periodos: false,*/ isLoading_categorias: false, isSaving_categorias: false})\r\n }\r\n })\r\n }\r\n catch(ex){\r\n this.setState({optionAutocompleteAdd_categorias: [],valueAutoCompleteAdd_categorias: null,rows:[], /*openAutoComplete_periodos: false,*/ isLoading_categorias: false,isSaving_categorias: false})\r\n }\r\n}\r\n\r\nconsulta_Ponderaciones=()=>{\r\n\r\n try{\r\n new Request\r\n .post(`${ip}/configuracioncalificador/obtener_ponderaciones_calificador`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({USUARIO: Auth.getProfile().user })\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n this.setState({optionAutocompleteAdd_ponderaciones: [], /*openAutoComplete_periodos: false,*/isLoading_ponderaciones: false,isSaving_ponderaciones: false})\r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n\r\n const tmp = JSON.parse(res.text);\r\n if (tmp.length > 0) \r\n { \r\n this.setState({optionAutocompleteAdd_ponderaciones: tmp,valueAutoCompleteAdd_ponderaciones: null,rows:[], /*openAutoComplete_periodos: false,*/ isLoading_ponderaciones: false, isSaving_ponderaciones: false})\r\n }\r\n else{\r\n this.setState({optionAutocompleteAdd_ponderaciones: [],valueAutoCompleteAdd_ponderaciones: null,rows:[], /*openAutoComplete_periodos: false,*/ isLoading_ponderaciones: false, isSaving_ponderaciones: false})\r\n }\r\n })\r\n }\r\n catch(ex){\r\n this.setState({optionAutocompleteAdd_ponderaciones: [],valueAutoCompleteAdd_ponderaciones: null,rows:[], /*openAutoComplete_periodos: false,*/ isLoading_ponderaciones: false,isSaving_ponderaciones: false})\r\n }\r\n}\r\n\r\nconsulta_periodos=()=>{\r\n\r\n try{\r\n new Request\r\n .post(`${ip}/configuracioncalificador/obtener_periodos_calificador`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({USUARIO: Auth.getProfile().user })\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n this.setState({optionAutocompleteAdd_periodos: [], openAutoComplete_periodos: false,isLoading_periodos: false,isSaving_periodos: false})\r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n \r\n const tmp = JSON.parse(res.text);\r\n if (tmp.length > 0) \r\n { \r\n this.setState({optionAutocompleteAdd_periodos: tmp,valueAutoCompleteAdd_periodos: null,rows:[], openAutoComplete_periodos: false, isLoading_periodos: false, isSaving_periodos: false})\r\n }\r\n else{\r\n this.setState({optionAutocompleteAdd_periodos: [],valueAutoCompleteAdd_periodos: null,rows:[], openAutoComplete_periodos: false, isLoading_periodos: false, isSaving_periodos: false})\r\n }\r\n })\r\n }\r\n catch(ex){\r\n this.setState({optionAutocompleteAdd_periodos: [],valueAutoCompleteAdd_periodos: null,rows:[], openAutoComplete_periodos: false,isLoading_periodos: false,isSaving_periodos: false})\r\n }\r\n }\r\n\r\n Obtener_configuracion =()=>{\r\n this.setState({openBackDrop:true},()=>{\r\n new Request\r\n .get(`${globales.ip}/configuracioncalificador/obtener_configuracion_calificador/${Auth.getProfile().user}`)\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 if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n window.location.reload();\r\n return;\r\n }\r\n this.setState({ configuraciones: [],openBackDrop: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexió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({ configuraciones: rows, openBackDrop: false });\r\n if(this.state.valueAutoCompleteAdd_periodos!==null)\r\n {\r\n this.cargaconfiguracion(this.state.valueAutoCompleteAdd_periodos);\r\n }\r\n }\r\n else\r\n {\r\n this.setState({ configuraciones: [], openBackDrop: false })\r\n } \r\n });\r\n });\r\n}\r\n\r\nObtener_docentes =(ID_SECCION)=>{\r\n \r\n this.setState({openBackDrop:true},()=>{\r\n new Request\r\n .get(`${globales.ip}/configuracioncalificador/obtener_docentes_calificador/${Auth.getProfile().user}`)\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 if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n window.location.reload();\r\n return;\r\n }\r\n this.setState({ docentes: [],openBackDrop: false }, ()=>{\r\n funciones.showToast('e', 'No hay conexió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({ docentes: rows, openBackDrop: false });\r\n var found\r\n var docentes_combo=[]\r\n rows.forEach(\r\n function getCheck(item, index) {\r\n found = docentes_combo.find(grupo => grupo.CUENTA_CATEDRATICO === item.CUENTA_CATEDRATICO);\r\n \r\n if (found == null){\r\n docentes_combo.push(item);\r\n }else {\r\n found = null;\r\n }\r\n })\r\n \r\n //aquiiiii\r\n if(ID_SECCION===undefined){\r\n\r\n this.setState({optionAutocompleteAdd_docentes: docentes_combo, openAutoComplete_docentes: false,isLoading_docentes: false,isSaving_docentes: false,periodo_calificador:rows[0].PERIODO}); \r\n \r\n }\r\n \r\n if(ID_SECCION!==undefined)\r\n {\r\n \r\n this.cargaseccion(this.state.valueAutoCompleteAdd_docentes)\r\n \r\n let ID_SECCION_ = {ID_SECCION: ID_SECCION}\r\n this.cargaseccionhab(ID_SECCION_)\r\n \r\n }\r\n \r\n }\r\n else\r\n {\r\n this.setState({ docentes: [], openBackDrop: false })\r\n } \r\n });\r\n });\r\n}\r\n\r\nonChangeAutocompleteAdd_periodos = (event, value) => {\r\n this.setState({ valueAutoCompleteAdd_periodos: value, openAutoCompleteAdd_periodos: false }, ()=>{\r\n if (value!==null)this.cargaconfiguracion(value)\r\n else this.setState({rows:[]});\r\n });\r\n}\r\n\r\nonChangeAutocompleteAdd_seccion = (event, value) => {\r\n this.setState({ valueAutoCompleteAdd_seccion: value,selection_docente:[] }, ()=>{\r\n //this.cargaconfiguracion(value);\r\n this.cargaseccionhab(value);\r\n \r\n });\r\n}\r\n\r\nonChangeAutocompleteAdd_docentes = (event, value) => {\r\n this.setState({ valueAutoCompleteAdd_docentes: value, openAutoCompleteAdd_docentes: false,valueAutoCompleteAdd_seccion:null,rows_docentes_hab:[]}, ()=>{\r\n this.cargaseccion(value);\r\n });\r\n}\r\n\r\nonChangeAutocompleteAdd_ponderaciones = (event, value) => {\r\n this.setState({ valueAutoCompleteAdd_ponderaciones: value}, ()=>{\r\n \r\n });\r\n}\r\n\r\nonChangeAutocompleteAdd_categorias = (event, value) => {\r\n this.setState({ valueAutoCompleteAdd_categorias: value}, ()=>{\r\n \r\n });\r\n}\r\n\r\ncargaseccion=(value)=>{\r\n \r\n var arr=[];\r\n var arr_hab=[];\r\n\r\n if (value !== null){\r\n this.state.docentes.forEach((element,index)=>{\r\n if(value.CUENTA_CATEDRATICO===element.CUENTA_CATEDRATICO)\r\n {\r\n \r\n if(element.DESCRIPCION_PONDERACION !== null)\r\n {\r\n arr_hab.push(element); \r\n }\r\n \r\n var found\r\n \r\n found = arr.find(grupo => grupo.ID_SECCION === element.ID_SECCION);\r\n \r\n if (found == null){\r\n arr.push(element);\r\n }else {\r\n found = null;\r\n }\r\n \r\n }\r\n \r\n });\r\n\r\n //console.log(arr);\r\n this.setState({optionAutocompleteAdd_seccion:arr,rows_docentes:arr_hab});\r\n}\r\n \r\n}\r\n\r\ncargaseccionhab=(value)=>{\r\n \r\n var arr_seccio_hab=[];\r\n\r\n if (value !== null)\r\n this.state.rows_docentes.forEach((element,index)=>{\r\n\r\n if(value.ID_SECCION===element.ID_SECCION)\r\n { \r\n arr_seccio_hab.push(element) \r\n }\r\n });\r\n \r\n \r\n this.setState({rows_docentes_hab:arr_seccio_hab,selection_docente:[]});\r\n \r\n}\r\n\r\ncargaconfiguracion=(value)=>{\r\n var arr=[];\r\n\r\n this.state.configuraciones.forEach((element,index)=>{\r\n if(value.ID_CONTROL_MATRICULA===element.ID_CONTROL_MATRICULA)\r\n arr.push(element);\r\n });\r\n\r\n this.setState({rows:arr});\r\n}\r\n\r\nhandleDateChange_inicio=(date)=>{\r\n \r\n this.setState({ fechainicio: date,fechafin:null },()=>{\r\n \r\n }); \r\n\r\n}\r\n\r\nhandleDateChange_fin=(date)=>{\r\n if(date<this.state.fechainicio){\r\n funciones.showToast('w','La fecha de inicio debe ser menor a la final.');\r\n return;\r\n }\r\n this.setState({ fechafin: date,cargando: true }, ()=>{\r\n \r\n })\r\n \r\n}\r\n\r\nhandleDateChange_inicioDocente=(date)=>{\r\n \r\n this.setState({ fechainicioDocente: date, fechafinDocente:null, horasInicioDocente:'12' },()=>{\r\n \r\n \r\n }); \r\n\r\n}\r\n\r\nhandleDateChange_finDocente=(date)=>{\r\n if(date<this.state.fechainicioDocente){\r\n funciones.showToast('w','La fecha de inicio debe ser menor a la final.');\r\n return;\r\n }\r\n this.setState({ fechafinDocente: date,cargando: true }, ()=>{\r\n \r\n })\r\n \r\n}\r\n\r\ncancelar_configurar=()=>{\r\n this.setState({open_configurar: false,fechainicio:null,fechafin:null})\r\n}\r\n\r\ncancelar_configurar_fecha=()=>{\r\n this.setState({open_configurar_fecha: false,open_configurar:false /*,fechainicio:null,fechafin:null*/})\r\n}\r\n\r\nguardamodificar=()=>{ //aqui\r\n \r\n if (this.state.tipo===2 || this.state.tipo===3 )\r\n {\r\n if (this.state.valueAutoCompleteAdd_categorias!==null && this.state.valueAutoCompleteAdd_ponderaciones!==null && this.state.fechafinDocente!==null)\r\n {\r\n this.setState({open_guardar: true});\r\n } \r\n else\r\n {\r\n funciones.showToast('w', 'Debe completar todos los datos solicitados.');\r\n }\r\n }\r\n else if (this.state.tipo===1)\r\n {\r\n \r\n if (this.state.fechafin!==null)\r\n {\r\n this.setState({open_guardar: true});\r\n } \r\n else\r\n {\r\n funciones.showToast('w', 'Debe completar todos los datos solicitados.');\r\n }\r\n \r\n }\r\n}\r\n\r\nguardamodificarFechaDocente=()=>{\r\n this.setState({open_guardar: true,tipo:2});\r\n}\r\n\r\ncancelar=()=>{\r\n this.setState({open_guardar: false});\r\n}\r\ncancelar_docente=()=>{\r\n this.setState({open_docente: false});\r\n}\r\n\r\nabrir_docente=()=>{\r\n this.setState({open_docente: true,valueAutoCompleteAdd_docentes:null,valueAutoCompleteAdd_seccion:null,rows_docentes_hab:[],selection_docente:[],selection:[]});\r\n}\r\n\r\nonBlurAutoCompleteAdd_periodos = ()=>{\r\n if (this.state.openAutoCompleteAdd_periodos)\r\n {\r\n this.setState({ openAutoCompleteAdd_periodos: false}); \r\n }\r\n}\r\n\r\nonBlurAutoCompleteAdd_docentes = ()=>{\r\n if (this.state.openAutoCompleteAdd_docentes)\r\n {\r\n this.setState({ openAutoCompleteAdd_docentes: false}); \r\n }\r\n}\r\n\r\nhandleClick=(TIPO)=>event=>{ //aqui\r\n \r\n if(TIPO===1)\r\n {\r\n this.setState({open_configurar_fecha: true,selection_detalle:'',tipo:2,valueAutoCompleteAdd_ponderaciones:null,valueAutoCompleteAdd_categorias:null,fechainicioDocente: new Date(),\r\n fechafinDocente: new Date()})\r\n }\r\n if(TIPO===2)\r\n {\r\n \r\n if(this.state.selection_docente!=null)\r\n {\r\n let setValueAutoCompleteAdd_ponderaciones = this.state.optionAutocompleteAdd_ponderaciones.find(x => x.ID_PONDERACION === this.state.selection_docente[0].ID_PONDERACION)\r\n let setValueAutoCompleteAdd_categoria = this.state.optionAutocompleteAdd_categorias.find(x => x.ID_CATEGORIA === this.state.selection_docente[0].ID_CATEGORIA) \r\n this.setState({open_configurar_fecha: true,tipo:3,valueAutoCompleteAdd_ponderaciones:setValueAutoCompleteAdd_ponderaciones,valueAutoCompleteAdd_categorias:setValueAutoCompleteAdd_categoria,fechainicioDocente:this.state.selection_docente[0].FECHA_INICIO.replace('T',' ').replace('.',':').replace('Z',''),fechafinDocente:this.state.selection_docente[0].FECHA_FIN.replace('T',' ').replace('.',':').replace('Z','')})\r\n }\r\n\r\n else\r\n {\r\n funciones.showToast('w','Debe seleccionar una ponderación.')\r\n }\r\n }\r\n if(TIPO===3)\r\n {\r\n if(this.state.selection_docente[0]!=undefined)\r\n this.setState({open_guardar: true,tipo:4})\r\n else\r\n {\r\n funciones.showToast('w','Debe seleccionar un detalle.')\r\n }\r\n }\r\n}\r\n/* RENDER */\r\nrender() {\r\n const { classes } = this.props;\r\n let horaActual = new Date().getHours();\r\n let minutoActual = new Date().getMinutes();\r\n let meridiano = horaActual>=12?1:0\r\n let horaActualFin = horaActual+1;\r\n let meridianoFin = horaActualFin>=12?1:0\r\n \r\n horaActual = horaActual%12; \r\n horaActual = horaActual?horaActual:12;\r\n\r\n horaActualFin = horaActualFin%12; \r\n horaActualFin = horaActualFin?horaActualFin:12;\r\n \r\n if (minutoActual>=56)\r\n {\r\n horaActual+=1;\r\n }\r\n minutoActual = getMin(minutoActual)\r\n \r\n \r\n const botones_modificar = [\r\n {icono: 'Save', toolt: 'Aceptar Cambios', nombre: 'Aceptar'\r\n ,escritura:true, onclick: this.guardamodificar\r\n , display: 'auto'},\r\n {icono: 'Close', toolt: 'Cancelar', nombre: 'Cancelar', onclick: this.cancelar_configurar\r\n , display:'auto', color: 'red'},\r\n ]\r\n\r\n const botones_guardar = [\r\n {icono: 'Save', toolt: 'Guardar Cambio', nombre: 'Guardar'\r\n ,escritura:true, onclick: this.guardar\r\n , display: 'auto'},\r\n {icono: 'Close', toolt: 'Cancelar', nombre: 'Cancelar', onclick: this.cancelar\r\n , display:'auto', color: 'red'},\r\n ]\r\n\r\n const botones_docente = [\r\n {icono: 'Close', toolt: 'Cancelar', nombre: 'Cancelar', onclick: this.cancelar_docente\r\n , display:'auto', color: 'red'},\r\n ]\r\n\r\n \r\nconst botones_guardar_fecha_docente = [\r\n {icono: this.state.tipo===4?'Delete':'Save', toolt: this.state.tipo===4?'Eliminar':'Guardar Cambio', nombre: this.state.tipo===4?'Aceptar':'Guardar'\r\n ,escritura:true, onclick: this.guardarFechasDocente\r\n , display: 'auto'},\r\n {icono: 'Close', toolt: 'Cancelar', nombre: 'Cancelar', onclick: this.cancelar\r\n , display:'auto', color: 'red'},\r\n]\r\n\r\n const botones_configurar = [\r\n {icono: 'Save', toolt: 'Aceptar Cambio', nombre: 'Aceptar'\r\n ,escritura:true, onclick: this.guardamodificar\r\n , display: 'auto'},\r\n {icono: 'Close', toolt: 'Cancelar', nombre: 'Cancelar', onclick: this.cancelar_configurar_fecha\r\n , display:'auto', color: 'red'},\r\n ]\r\n\r\n if (this.state.isLoggin === true )\r\n {\r\n return ( \r\n <React.Fragment>\r\n <Backdrop className={classes.backdrop} open={this.state.openBackDrop}>\r\n <CircularProgress color=\"inherit\" />\r\n <span style={{ marginTop: '10px' }}>{'Guardando...'}</span>\r\n </Backdrop>\r\n {/*--------------------------------------------------------------DIALOG DOCENTE----------------------------------------*/}\r\n <Dialog open={this.state.open_docente} maxWidth='md' \r\n fullWidth onEscapeKeyDown={this.cancelar_docente} fullScreen={movil_pequeño} classes = {{ paper: classes.Dialog}}>\r\n <DialogTitle>\r\n Habilitar Docente \r\n </DialogTitle>\r\n <DialogContent dividers={true} style={{padding:15,marginLeft: 0, marginRight: 0}}>\r\n\r\n <TextField size='small' disabled variant='filled' fullWidth \r\n value={('PerÃodo Calificador: '+this.state.periodo_calificador)} \r\n inputProps={{ style: { textAlign: 'center',color: 'black' }}}\r\n style={{border: 'none'}}\r\n /> \r\n\r\n <div style={{display:movil_pequeño?'auto':'flex',justifyContent:'center',alignItems:'center',marginBottom:4,marginTop:9,padding:0}}>\r\n <Autocomplete\r\n id=\"habilitardocente\"\r\n options={this.state.optionAutocompleteAdd_docentes}\r\n getOptionLabel={(option) => option.CUENTA_CATEDRATICO +' | '+option.NOMBRE_COMPLETO}\r\n style={{ width: !movil ? '400px' : '95%', marginLeft: 10 }} \r\n renderInput={(params) => <TextField {...params} \r\n label=\"Docente\"\r\n variant=\"outlined\" \r\n onBlur={this.onBlurAutoCompleteAdd_docentes} \r\n InputProps={{...params.InputProps,endAdornment: (\r\n <React.Fragment>\r\n {this.state.isLoading_docentes ? <CircularProgress color='secondary' size={25} /> : null}\r\n {params.InputProps.endAdornment}\r\n </React.Fragment>\r\n ),\r\n readOnly: this.state.isSaving_docentes\r\n }}\r\n />}\r\n renderOption={(option) => (\r\n <React.Fragment> \r\n {option.CUENTA_CATEDRATICO +' | '+ option.NOMBRE_COMPLETO} \r\n </React.Fragment>\r\n )}\r\n noOptionsText={'No hay resultados'}\r\n loadingText={'Cargando...'} \r\n onChange={this.onChangeAutocompleteAdd_docentes} \r\n loading = {this.state.isLoading_docentes}\r\n ListboxComponent={ListboxComponent_docentes}\r\n disableListWrap\r\n value={this.state.valueAutoCompleteAdd_docentes} \r\n autoHighlight\r\n disableClearable={this.state.isSaving_docentes}\r\n clearText = 'Borrar'\r\n openText = ''\r\n closeText = ''\r\n classes= {{ popper: classes.popper }} \r\n />\r\n <Autocomplete\r\n id=\"seccion\"\r\n options={this.state.optionAutocompleteAdd_seccion}\r\n getOptionLabel={(option) => option.DESCRIPCION}\r\n style={{ width: !movil ? '400px' : '95%', marginLeft: 10 }} \r\n renderInput={(params) => <TextField {...params} \r\n label=\"Sección\"\r\n variant=\"outlined\" \r\n onBlur={this.onBlurAutoCompleteAdd_seccion} \r\n InputProps={{...params.InputProps,endAdornment: (\r\n <React.Fragment>\r\n {this.state.isLoading_seccion ? <CircularProgress color='secondary' size={25} /> : null}\r\n {params.InputProps.endAdornment}\r\n </React.Fragment>\r\n ),\r\n readOnly: this.state.isSaving_seccion\r\n }}\r\n />}\r\n renderOption={(option) => (\r\n <React.Fragment> \r\n {option.DESCRIPCION} \r\n </React.Fragment>\r\n )}\r\n noOptionsText={'No hay resultados'}\r\n loadingText={'Cargando...'} \r\n onChange={this.onChangeAutocompleteAdd_seccion} \r\n loading = {this.state.isLoading_seccion}\r\n ListboxComponent={ListboxComponent_seccion}\r\n disableListWrap\r\n value={this.state.valueAutoCompleteAdd_seccion} \r\n autoHighlight\r\n disableClearable={this.state.isSaving_seccion}\r\n clearText = 'Borrar'\r\n openText = ''\r\n closeText = ''\r\n classes= {{ popper: classes.popper }} \r\n />\r\n </div> \r\n <CustomTable\r\n Columns={columns_docente} \r\n Rows={this.state.rows_docentes_hab} \r\n TableColumnExtensions={tableColumnExtensions_docentes}\r\n columnWidths={tableColumnExtensions_docentes}\r\n DefaultHiddenColumnNames={defaultHiddenColumnNames_docente}\r\n getRowId = {getRowId_docente}\r\n Selection={this.state.selection_docente} \r\n rowHeaderCellComponent={HeaderRowCellComponent_docente(this.state.selection_docente,this.state.valueAutoCompleteAdd_docentes,this.handleClick,this.state.selection_docente[0]!==undefined?this.state.selection_docente[0].ID_HABILITAR_CALIFICADOR_DOCENTE:'0')}\r\n height={'200px'}\r\n ExpandedRowIds = {this.state.expandedRowIds}\r\n enabledFilterRows= {false}\r\n RowComponent={this.trow_docente}\r\n standarPlugin = { <TableRowsIndexer/> }\r\n showSelectionColumn={false}\r\n />\r\n <BarraBotones botones={botones_docente} l={this.l} e={this.e} i={this.i} />\r\n </DialogContent>\r\n </Dialog>\r\n {/*--------------------------------------------------------------DIALOG GUARDAR----------------------------------------*/}\r\n <Dialog open={this.state.open_guardar} maxWidth='xs' \r\n fullWidth onEscapeKeyDown={this.cancelar} fullScreen={movil_pequeño} classes = {{ paper: classes.Dialog}}>\r\n <DialogTitle>\r\n Confirmación \r\n </DialogTitle>\r\n <DialogContent dividers={true} style={{padding:15,marginLeft: 0, marginRight: 0}}>\r\n <DialogContentText tabIndex={-1} align='justify'>\r\n \r\n <b>{this.state.tipo===4?'¿Esta seguro de eliminar los datos seleccionados?':'¿Desea guardar los datos seleccionados?'} </b>\r\n <br/><br/>\r\n <b>{this.state.tipo===1?'Al guardar, no podrá realizar ninguna modificación posterior.': this.state.selection_docente[0]!=undefined?this.state.selection_docente[0].DESCRIPCION:''} </b>\r\n <br/> \r\n </DialogContentText>\r\n <BarraBotones botones={this.state.tipo===1?botones_guardar:botones_guardar_fecha_docente} l={this.l} e={this.e} i={this.i} />\r\n </DialogContent>\r\n </Dialog>\r\n {/*-------------------------------------------------------------- DIALOG MODIFICAR FECHAS ------------------------------------------------------ */}\r\n \r\n <Dialog open={this.state.open_configurar} maxWidth='sm' fullWidth onEscapeKeyDown={this.cancelar_configurar}\r\n fullScreen={movil_pequeño}\r\n classes = {{ paper: classes.Dialog}}\r\n BackdropProps={{style:{background: 'rgba(0,0,0,0.7)'}}}\r\n >\r\n <DialogTitle>\r\n Modificar Fechas \r\n </DialogTitle>\r\n <DialogContent style={{marginLeft: movil_pequeño?0:20, marginRight: movil_pequeño?0:20,paddingTop: 0}}> \r\n <TextField size='small' disabled variant='filled' fullWidth \r\n value={('PerÃodo: '+(this.state.valueAutoCompleteAdd_periodos!==null?this.state.valueAutoCompleteAdd_periodos.DESCRIPCION:''))+' | Ponderación: '+(this.state.selection[0]!==undefined?this.state.selection[0].DESCRIPCION_PONDERACION:'')} \r\n inputProps={{ style: { textAlign: 'center',color: 'black' }}}\r\n style={{border: 'none'}}\r\n /> \r\n <div align='center' style={{width:'100%', padding: 0,marginTop: 30,marginBottom:20,display:movil_pequeño?'auto':'flex',justifyContent:'center',alignItems:'center'/*, border:'solid',borderColor:'black' */}}>\r\n <div align='left' style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:'left',alignItems:'left'/* ,border:'solid',borderColor:'red' */}}>\r\n <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>\r\n <KeyboardDatePicker\r\n variant=\"inline\" inputVariant=\"outlined\"\r\n format=\"dd / MM / yyyy\" margin=\"dense\" \r\n label={'Fecha Inicio:'}\r\n value={this.state.fechainicio}\r\n onChange={this.handleDateChange_inicio} \r\n InputProps={{ style:{ paddingRight: '1px' },readOnly: true }} \r\n style={{ marginTop: 5, width: !movil_pequeño ? '122px' : '100%' }}\r\n className = {classes.textField} ToolbarComponent={CustomToolbar} \r\n autoOk\r\n minDate={ this.state.fechainicio>new Date()?new Date():this.state.fechainicio} \r\n /> \r\n </MuiPickersUtilsProvider> \r\n <SelectTime \r\n label='Hora Inicio' \r\n horasRef = {this.horasInicioConfCalificadorRef } \r\n minutosRef= {this.minutosInicioConfCalificadorRef } \r\n merRef = {this.merInicioConfCalificadorRef } \r\n defaultHoras={this.state.selection[0]!==undefined ? this.state.selection[0].FECHA_INICIO_MOSTRAR_2.substring(11,13) : horaActual<10?'0'+horaActual.toString():horaActual.toString()}\r\n defaultMinutos={this.state.selection[0]!==undefined ? getMinReverso(this.state.selection[0].FECHA_INICIO_MOSTRAR_2.substring(14,16)) :minutoActual<10?'0'+minutoActual.toString():minutoActual.toString() } \r\n defaultMeridiano={this.state.selection[0]!==undefined ? this.state.selection[0].FECHA_INICIO_MOSTRAR_2.substring(17,19)==='AM'?0:1 : meridiano} \r\n id='InicioConfCalificador'\r\n formStyle={{ width: '122px', marginTop: movil_pequeño?15:5}} \r\n disabled={ this.state.selection[0]!==undefined? this.state.selection[0].ID_PONDERACION===998 || this.state.selection[0].ID_PONDERACION===999 ?false:true:true}\r\n /> \r\n </div>\r\n <div align='right' style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:'right',alignItems:'right'/* ,border:'solid',borderColor:'blue' */}}>\r\n <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>\r\n <KeyboardDatePicker\r\n variant=\"inline\" inputVariant=\"outlined\"\r\n format=\"dd / MM / yyyy\" margin=\"dense\" \r\n label={'Fecha Fin:'}\r\n value={this.state.fechafin}\r\n onChange={this.handleDateChange_fin} \r\n InputProps={{ style:{ paddingRight: '1px' },readOnly: true }} \r\n style={{ marginTop: 5, width: !movil_pequeño ? '122px' : '100%' }}\r\n className = {classes.textField} ToolbarComponent={CustomToolbar} \r\n minDate={this.state.fechainicio} \r\n autoOk \r\n /> \r\n </MuiPickersUtilsProvider> \r\n\r\n <SelectTime \r\n label='Hora Fin' \r\n horasRef = {this.horasFinConfCalificadorRef } \r\n minutosRef= {this.minutosFinConfCalificadorRef } \r\n merRef = {this.merFinConfCalificadorRef } \r\n defaultHoras={this.state.selection[0]!==undefined ? this.state.selection[0].FECHA_FIN_MOSTRAR_2.substring(11,13) : horaActual<10?'0'+horaActual.toString():horaActual.toString()}\r\n defaultMinutos={this.state.selection[0]!==undefined ? getMinReverso(this.state.selection[0].FECHA_FIN_MOSTRAR_2.substring(14,16)) :minutoActual<10?'0'+minutoActual.toString():minutoActual.toString() } \r\n defaultMeridiano={this.state.selection[0]!==undefined ? this.state.selection[0].FECHA_FIN_MOSTRAR_2.substring(17,19)==='AM'?0:1 : meridianoFin} \r\n id='FinConfCalificador'\r\n formStyle={{ width: '122px', marginTop: movil_pequeño?15:5}} \r\n disabled={ this.state.selection[0]!==undefined? this.state.selection[0].ID_PONDERACION===998 || this.state.selection[0].ID_PONDERACION===999 ?false:true:true}\r\n /> \r\n\r\n </div>\r\n </div>\r\n\r\n <BarraBotones botones={botones_configurar} l={this.l} e={this.e} i={this.i} />\r\n </DialogContent>\r\n </Dialog>\r\n\r\n {/*-------------------------------------------------------------- DIALOG CONFIGURAR FECHA-DOCENTE ------------------------------------------------------ */}\r\n \r\n <Dialog open={this.state.open_configurar_fecha} maxWidth='sm' fullWidth onEscapeKeyDown={this.cancelar_configurar_fecha}\r\n fullScreen={movil_pequeño}\r\n /* classes = {{ paper: classes.Dialog}} */\r\n BackdropProps={{style:{background: 'rgba(0,0,0,0.7)'}}}\r\n >\r\n <DialogTitle>\r\n { this.state.tipo===3?'Modificar Fechas':'Nueva Configuración'} \r\n </DialogTitle>\r\n <DialogContent style={{marginLeft: movil_pequeño?0:20, marginRight: movil_pequeño?0:20,paddingTop: 0}}> \r\n \r\n<div align='center' style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:'center',alignItems:'center'/*, border:'solid',borderColor:'black' */}}>\r\n<div align='left' style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:'left',alignItems:'left'/* ,border:'solid',borderColor:'red' */}}>\r\n <Autocomplete\r\n id=\"evaluacion\"\r\n options={this.state.optionAutocompleteAdd_ponderaciones}\r\n getOptionLabel={(option) => option.DESCRIPCION_PONDERACION } \r\n style={{ marginTop: 5, width: !movil_pequeño ? '252px' : '100%' }}\r\n renderInput={(params) => <TextField {...params} \r\n label=\"Evaluación\"\r\n variant=\"outlined\" \r\n InputProps={{...params.InputProps,endAdornment: (\r\n <React.Fragment>\r\n {this.state.isLoading_ponderaciones ? <CircularProgress color='secondary' size={25} /> : null}\r\n {params.InputProps.endAdornment}\r\n </React.Fragment>\r\n ),\r\n readOnly: this.state.isSaving_docentes\r\n }}\r\n />}\r\n renderOption={(option) => (\r\n <React.Fragment> \r\n {option.DESCRIPCION_PONDERACION} \r\n </React.Fragment>\r\n )}\r\n noOptionsText={'No hay resultados'}\r\n loadingText={'Cargando...'} \r\n onChange={this.onChangeAutocompleteAdd_ponderaciones} \r\n loading = {this.state.isLoading_docentes}\r\n ListboxComponent={ListboxComponent_ponderaciones}\r\n disableListWrap\r\n value={this.state.valueAutoCompleteAdd_ponderaciones} \r\n autoHighlight\r\n disableClearable={this.state.isSaving_ponderaciones}\r\n clearText = 'Borrar'\r\n openText = ''\r\n closeText = ''\r\n disabled = {this.state.tipo===3?true:false} \r\n />\r\n</div>\r\n<div align='right' style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:'right',alignItems:'right'/* ,border:'solid',borderColor:'blue' */}}>\r\n <Autocomplete\r\n id=\"categoria\"\r\n options={this.state.optionAutocompleteAdd_categorias}\r\n getOptionLabel={(option) => option.NOMBRE}\r\n style={{ marginTop: 5, width: !movil_pequeño ? '252px' : '100%' }}\r\n renderInput={(params) => <TextField {...params} \r\n label=\"categorÃa\"\r\n variant=\"outlined\" \r\n InputProps={{...params.InputProps,endAdornment: (\r\n <React.Fragment>\r\n {this.state.isLoading_categorias ? <CircularProgress color='secondary' size={25} /> : null}\r\n {params.InputProps.endAdornment}\r\n </React.Fragment>\r\n ),\r\n readOnly: this.state.isSaving_categorias\r\n }}\r\n />}\r\n renderOption={(option) => (\r\n <React.Fragment> \r\n {option.NOMBRE} \r\n </React.Fragment>\r\n )}\r\n noOptionsText={'No hay resultados'}\r\n loadingText={'Cargando...'} \r\n onChange={this.onChangeAutocompleteAdd_categorias}\r\n loading = {this.state.isLoading_categorias}\r\n ListboxComponent={ListboxComponent_categorias}\r\n disableListWrap\r\n value={this.state.valueAutoCompleteAdd_categorias} \r\n autoHighlight\r\n disableClearable={this.state.isSaving_categorias}\r\n clearText = 'Borrar'\r\n openText = ''\r\n closeText = '' \r\n /> \r\n</div>\r\n</div>\r\n<div align='center' style={{width:'100%', padding: 0,marginTop: 30,marginBottom:20,display:movil_pequeño?'auto':'flex',justifyContent:'center',alignItems:'center'/* ,border:'solid',borderColor:'yellow' */}}>\r\n<div align='left' style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:'left',alignItems:'left'/* ,border:'solid',borderColor:'red' */}}>\r\n <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>\r\n <KeyboardDatePicker\r\n variant=\"inline\" inputVariant=\"outlined\"\r\n format=\"dd / MM / yyyy\" margin=\"dense\" \r\n label={'Fecha Inicio:'}\r\n value={this.state.fechainicioDocente}\r\n onChange={this.handleDateChange_inicioDocente} \r\n InputProps={{ style:{ paddingRight: '1px' },readOnly: true }} \r\n style={{ marginTop: 5, width: !movil_pequeño ? '122px' : '100%' }}\r\n className = {classes.textField} ToolbarComponent={CustomToolbar} \r\n autoOk \r\n minDate={ this.state.fechainicioDocente>new Date()?new Date():this.state.fechainicioDocente } \r\n \r\n /> \r\n </MuiPickersUtilsProvider> \r\n \r\n <SelectTime \r\n label='Hora Inicio' \r\n horasRef = {this.horasInicioRef} \r\n minutosRef= {this.minutosInicioRef} \r\n merRef = {this.merInicioRef} \r\n defaultHoras={ this.state.tipo===3&this.state.selection_docente[0]!==undefined ? this.state.selection_docente[0].FECHA_INICIO_MOSTRAR_2.substring(11,13) : horaActual<10?'0'+horaActual.toString():horaActual.toString() } \r\n defaultMinutos= { this.state.tipo===3&this.state.selection_docente[0]!==undefined ? getMinReverso(this.state.selection_docente[0].FECHA_INICIO_MOSTRAR_2.substring(14,16)) :minutoActual<10?'0'+minutoActual.toString():minutoActual.toString() } \r\n defaultMeridiano= {this.state.tipo===3&this.state.selection_docente[0]!==undefined ? this.state.selection_docente[0].FECHA_INICIO_MOSTRAR_2.substring(17,19)==='AM'?0:1 : meridiano} \r\n id='Inicio'\r\n formStyle={{ width: '122px', marginTop: movil_pequeño?15:5}} \r\n /> \r\n\r\n </div>\r\n<div align={movil_pequeño?'left':'right'} style={{width:'100%', padding: 0,marginTop: 0,marginBottom:0,display:movil_pequeño?'auto':'flex',justifyContent:movil_pequeño?'left':'right',alignItems:movil_pequeño?'left':'right'/* ,border:'solid',borderColor:'blue' */}}>\r\n <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>\r\n <KeyboardDatePicker\r\n variant=\"inline\" inputVariant=\"outlined\"\r\n format=\"dd / MM / yyyy\" margin=\"dense\" \r\n label={'Fecha Fin:'}\r\n value={this.state.fechafinDocente}\r\n onChange={this.handleDateChange_finDocente} \r\n InputProps={{ style:{ paddingRight: '1px' },readOnly: true }} \r\n style={{ marginTop: movil_pequeño?15:5, width: !movil_pequeño ? '122px' : '100%' }}\r\n className = {classes.textField} ToolbarComponent={CustomToolbar} \r\n autoOk\r\n minDate={this.state.fechainicioDocente} \r\n /> \r\n </MuiPickersUtilsProvider> \r\n\r\n <SelectTime \r\n label='Hora fin'\r\n horasRef = {this.horasFinRef} \r\n minutosRef= {this.minutosFinRef} \r\n merRef = {this.merFinRef} \r\n defaultHoras={this.state.tipo===3&this.state.selection_docente[0]!==undefined ? this.state.selection_docente[0].FECHA_FIN_MOSTRAR_2.substring(11,13) : horaActualFin<10?'0'+horaActualFin.toString():horaActualFin.toString()} \r\n defaultMinutos= {this.state.tipo===3&this.state.selection_docente[0]!==undefined ? getMinReverso(this.state.selection_docente[0].FECHA_FIN_MOSTRAR_2.substring(14,16)) : minutoActual<10?'0'+minutoActual.toString():minutoActual.toString()} \r\n defaultMeridiano= {this.state.tipo===3&this.state.selection_docente[0]!==undefined ? this.state.selection_docente[0].FECHA_FIN_MOSTRAR_2.substring(17,19)==='AM'?0:1:meridianoFin} \r\n id='Inicio'\r\n formStyle={{ width: '122px', marginTop: movil_pequeño?15:5 }} \r\n /> \r\n\r\n </div>\r\n </div>\r\n <BarraBotones botones={botones_configurar} l={this.l} e={this.e} i={this.i} />\r\n </DialogContent>\r\n </Dialog>\r\n\r\n {/*----------------------------------------------------------------- VENTANA PRINCIPAL -----------------------------------------------------------------------*/}\r\n \r\n <div style={{/*borderStyle:'solid',borderColor:'blue',*/display:movil_pequeño?'auto':'flex',justifyContent:'center',alignItems:'center',marginBottom:4,marginTop:9,padding:0,width:'100%',position:'relative'}}>\r\n \r\n\r\n <div style={{/*borderStyle:'solid',borderColor:'red',*/ position:movil_pequeño?'':'absolute',width:movil_pequeño?'':'100%',marginLeft:movil_pequeño?8:globales.tabla.marginleft}}>\r\n <Button color='primary' size=\"small\" variant='text' style={{textTransform: 'none',marginTop:0,marginBottom:0}} \r\n onClick={this.abrir_docente}\r\n className={classes.button} \r\n classes={{iconSizeSmall: classes.iconSizeSmall }}\r\n startIcon={<LockOpenIcon />}\r\n >\r\n Habilitar Docente\r\n </Button>\r\n </div>\r\n\r\n <div>\r\n\r\n <Autocomplete\r\n id=\"controlmatricula\"\r\n options={this.state.optionAutocompleteAdd_periodos}\r\n getOptionLabel={(option) => option.DESCRIPCION}\r\n style={{ width: !movil ? '400px' : '95%', marginLeft: 10 }} \r\n renderInput={(params) => <TextField {...params} \r\n label=\"PerÃodo\"\r\n variant=\"outlined\" \r\n onBlur={this.onBlurAutoCompleteAdd_periodos} \r\n InputProps={{...params.InputProps,endAdornment: (\r\n <React.Fragment>\r\n {this.state.isLoading_periodos ? <CircularProgress color='secondary' size={25} /> : null}\r\n {params.InputProps.endAdornment}\r\n </React.Fragment>\r\n ),\r\n readOnly: this.state.isSaving_periodos\r\n }}\r\n />}\r\n renderOption={(option) => (\r\n <React.Fragment> \r\n {option.DESCRIPCION} \r\n </React.Fragment>\r\n )}\r\n noOptionsText={'No hay resultados'}\r\n loadingText={'Cargando...'} \r\n onChange={this.onChangeAutocompleteAdd_periodos}\r\n //open={this.state.openAutoCompleteAdd_periodos}\r\n loading = {this.state.isLoading_periodos}\r\n ListboxComponent={ListboxComponent_periodos}\r\n disableListWrap\r\n value={this.state.valueAutoCompleteAdd_periodos} \r\n autoHighlight\r\n disableClearable={this.state.isSaving_periodos}\r\n clearText = 'Borrar'\r\n openText = ''\r\n closeText = ''\r\n classes= {{ popper: classes.popper }} \r\n /> \r\n </div> \r\n\r\n \r\n </div>\r\n \r\n <div ref={this.tablaRef} style={{background:'white',marginLeft:movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n <CustomTable\r\n Columns={columns} \r\n Rows={this.state.rows} \r\n TableColumnExtensions={tableColumnExtensions}\r\n DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n getRowId = {getRowId}\r\n Selection={this.state.selection}\r\n height={this.state.heightTableMain}\r\n ExpandedRowIds = {this.state.expandedRowIds}\r\n enabledFilterRows= {false}\r\n RowComponent={this.trow}\r\n standarPlugin = { <TableRowsIndexer/> }\r\n VirtualTable_cellComponent={VirtualTable_cellComponent}\r\n showSelectionColumn={false}\r\n />\r\n </div>\r\n </React.Fragment>\r\n ); /// finaliza return\r\n }\r\n else if (this.state.isLoggin === false)\r\n {\r\n Auth.logout()\r\n window.location.reload();\r\n return; \r\n }\r\n\r\n\r\n return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {colores, globales,funciones} from '../../../global';\r\nimport BarraBotones from '../../../components/Barra_menu';\r\nimport AuthService from '../../../AuthService';\r\nimport Request from 'superagent';\r\nimport CustomTable from '../../../components/CustomTable';\r\nimport {Table} from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer from '../../../components/tableRowsIndexer'\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\n//import Icono from '../../../components/Icono'\r\nimport {Typography,TextField,Checkbox} from '@material-ui/core';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '../../../components/Select'\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\n//var movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\nconst colorRowSelected = 'rgb('+ colores.tabla.selection +')';\r\nlet alternateColorRow1 = colores.tabla.alternateColorRow1; \r\nlet alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nconst VirtualTable_cellComponent = (props) => {\r\n const { column } = props;\r\n const {row} = props;\r\n\r\n if(column.name==='ESTATUS')\r\n {\r\n return(\r\n <Table.Cell {...props} style={{padding:0}}>\r\n <Checkbox checked={row.ESTATUS} />\r\n </Table.Cell>\r\n );\r\n }\r\n\r\n return(\r\n <Table.Cell {...props}/>\r\n );\r\n}\r\n\r\nconst getRowId = row => row.ID_MONEDA;\r\n\r\n\r\n/* CLASES DE ESTILO */\r\n\r\nvar styles = theme =>({\r\n Dialog:{\r\n borderRadius: border_dialog,\r\n margin:0,\r\n padding:0\r\n },\r\n backdrop: {\r\n zIndex: 500000,\r\n color: '#fff', \r\n flexDirection: 'column'\r\n },\r\n select: { //CONFIGURA EL SELECT \r\n margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n padding: 0,\r\n minWidth: movil_pequeño?'100%':'50%',\r\n },\r\n textField: {\r\n margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n padding: 0,\r\n minWidth: movil_pequeño?'100%':'20%',\r\n width: '20%' \r\n },\r\n })\r\n\r\n const columns= [\r\n {name:'ID_MONEDA',title: 'ID_MONEDA'},\r\n {name:'NOMBRE',title: 'Nombre'},\r\n {name:'SIMBOLO',title: 'Simbolo'},\r\n {name:'ESTATUS',title: 'Estado'},\r\n ];\r\n\r\n const defaultHiddenColumnNames= ['ID_MONEDA'];\r\n\r\n const tableColumnExtensions= [\r\n { columnName: 'NOMBRE', wordWrapEnabled: false, align: 'center'},\r\n { columnName: 'SIMBOLO', wordWrapEnabled: false, align: 'center'},\r\n { columnName: 'ESTATUS', wordWrapEnabled: false, align: 'center'},\r\n ];\r\n\r\n let currentnombre=null;\r\n let currentsimbolo=null;\r\n\r\n/* EXPORT */\r\nexport default withStyles(styles)(\r\n class Monedas extends React.Component {\r\n tablaRef = React.createRef();\r\n nombreRef = React.createRef();\r\n simboloRef = 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.isVisibleRowSelected=isVisibleRowSelected\r\n this.actualizarbarra=props.actualizarbarra\r\n this.actualizarcircular=props.actualizarcircular\r\n\r\n this.state = {\r\n openBackDrop: false, \r\n isLoggin: undefined,\r\n heightTableMain: 0,\r\n rows: [],\r\n selection: [],\r\n selection_estado: '',\r\n datos_estados: \r\n [<MenuItem dense value={1} key={'Activo'} >\r\n {'Activo'}\r\n </MenuItem>,\r\n <MenuItem dense value={0} key={'Inactivo'} >\r\n {'Inactivo'}\r\n </MenuItem>\r\n ],\r\n grouping: [],\r\n expandedGroups: [],\r\n filteringColumnExtensions: [],\r\n filters: [],\r\n expandedRowIds: [],\r\n enabledFilterRows: true,\r\n open_eliminar: false,\r\n open_agregar: false,\r\n open_modificar: false,\r\n estado: '',\r\n }\r\n\r\n const botones = [\r\n {icono: 'Add', toolt: 'Agregar Moneda', nombre: 'Agregar' ,escritura:true , onclick: this.abrirmodal_agregar()\r\n , display: 'auto'},\r\n {icono: 'Edit', toolt: 'Modificar Moneda', nombre: 'Modificar' ,escritura:true , onclick: this.abrirmodal_modificar()\r\n , display:'auto'},\r\n {icono: 'Delete', toolt: 'Eliminar Moneda', nombre: 'Eliminar' ,escritura:true , onclick: this.abrirmodal_eliminar()\r\n , color: colores.naranja, display: 'auto'},\r\n ]\r\n const botones_eliminar = [\r\n {icono: 'Delete', nombre: 'Eliminar',escritura:true ,onclick: this.guardar(3)\r\n , display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n ]\r\n const botones_agregar = [\r\n {icono: 'Save', nombre: 'Guardar',escritura:true ,onclick: this.guardar(1)\r\n , display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n ]\r\n const botones_modificar = [\r\n {icono: 'Save', nombre: 'Guardar',escritura:true ,onclick: this.guardar(2)\r\n , display:'auto'},\r\n {icono: 'Close', nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n ]\r\n\r\n const trow = TableRow => withStyles(styles, { name: \"Row\" })( ({classes,highlighted, rowIndex, row, selectByRowClick, ...props}) => {\r\n\r\n const odd = !!(rowIndex % 2);\r\n const r = props.tableRow \r\n \r\n const clickselection = (ID_MONEDA,NOMBRE,SIMBOLO,ESTADO) => event =>{\r\n currentnombre=NOMBRE;\r\n currentsimbolo=SIMBOLO;\r\n this.setState({ selection: [{ID_MONEDA:ID_MONEDA,NOMBRE:NOMBRE,SIMBOLO:SIMBOLO}],estado: ESTADO?1:0});\r\n }\r\n \r\n if (this.state.selection[0]===undefined?this.state.selection[0]:this.state.selection[0].ID_MONEDA === props.tableRow.row.ID_MONEDA) { isVisibleRowSelected = true; }\r\n return (\r\n <Table.Row {...props}\r\n onClick={clickselection(r.row.ID_MONEDA,r.row.NOMBRE,r.row.SIMBOLO,r.row.ESTATUS)}\r\n //onDoubleClick={dblclickselection(r.row.MOD_PAGO_ID,r.row.MOD_PAGO_DESCRIPCION,r.row.MOD_PAGO_MATRICULA,r.row.MOD_PAGO_DESCUENTO,r.row.TIPO_MOD_PAGO,r.row.VISIBLE_WEB,r.row.MOD_P_INTENSIVO)}\r\n style={{\r\n //cursor: 'pointer',\r\n backgroundColor: this.state.selection[0]===undefined?odd ? alternateColorRow1 : alternateColorRow2:this.state.selection[0].ID_MONEDA === props.tableRow.row.ID_MONEDA ? colorRowSelected : \r\n odd ? alternateColorRow1 : alternateColorRow2, \r\n padding: '0rem 0rem !important',\r\n margin: '0px', \r\n }}\r\n />\r\n );\r\n });\r\n \r\n\r\n\r\n this.trow = trow(Table.Row);\r\n this.botones=botones\r\n this.botones_eliminar=botones_eliminar\r\n this.botones_agregar=botones_agregar\r\n this.botones_modificar=botones_modificar\r\n \r\n }; //FIN CONSTRUCTORS\r\n\r\n\r\ncerrarmodal=()=>event=>{\r\n this.Limpiar();\r\n this.setState({open_agregar: false,open_modificar: false,selection: [],open_eliminar: false,estado: ''})\r\n}\r\n\r\nabrirmodal_agregar=()=>event=>{\r\n this.Limpiar();\r\n this.setState({open_agregar: true,estado:''});\r\n}\r\nabrirmodal_modificar=()=>event=>{\r\n if(this.state.selection.length>0)\r\n this.setState({open_modificar: true});\r\n}\r\nabrirmodal_eliminar=()=>event=>{\r\n if(this.state.selection.length>0)\r\n this.setState({open_eliminar: true});\r\n}\r\n\r\ncomponentDidMount()\r\n{\r\n let _this = this;\r\n _this.actualizarbarra(false)\r\n\r\n Auth.loggedIn().then( function(b){\r\n _this.setState({ isLoggin: b})\r\n if(b)\r\n Request.get(`${ip}/monedas/obtener_monedas_conf/`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(0)\r\n .timeout({ response: 20000, deadline: 50000, }) \r\n .end((err, res)=> {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n {\r\n window.location.reload();\r\n return; \r\n }\r\n (async function() {\r\n funciones.showToast('e','Error de conexión')\r\n })();//FIN FUNCION ASYNC\r\n return;\r\n }\r\n const tmp = JSON.parse(res.text);\r\n if(tmp.length>0){\r\n _this.setState({ rows: tmp, heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable\r\n }); \r\n }\r\n else\r\n {\r\n _this.setState({rows: [], heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n }\r\n _this.actualizarbarra(true)\r\n })\r\n })\r\n}\r\n\r\nLimpiar=()=>{\r\n currentnombre=null;\r\n currentsimbolo=null;\r\n}\r\n\r\nguardar=(TIPO)=>event=>{\r\n\r\n if(TIPO!==3){\r\n\r\n if(this.nombreRef.current.value==='' || this.simboloRef.current.value==='')\r\n {\r\n funciones.showToast('w','Debe ingresar todos los campos.');\r\n return;\r\n }\r\n if(this.state.estado==='')\r\n {\r\n funciones.showToast('w','Ingrese un estado.')\r\n return;\r\n }\r\n }\r\n\r\n\r\n this.setState({ openBackDrop: true }, ()=>{\r\n try{\r\n new Request\r\n .post(`${ip}/monedas/iud_monedas_conf/`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .set('Content-Type', 'application/json')\r\n .send({ ID_MONEDA:(TIPO!==1?this.state.selection[0].ID_MONEDA:null)\r\n ,NOMBRE: TIPO!==3?this.nombreRef.current.value:null\r\n ,SIMBOLO: TIPO!==3?this.simboloRef.current.value:null\r\n ,ESTATUS: this.state.estado\r\n ,USUARIO: Auth.getProfile().user\r\n ,TIPO: TIPO })\r\n .retry(0)\r\n .timeout({ response: 15000, deadline: 60000, }) \r\n .end((err, res) => {\r\n if (err) { \r\n if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n { \r\n window.location.reload();\r\n return; \r\n } \r\n this.setState({ openBackDrop: false }, ()=> { \r\n funciones.showToast('e', 'Error de conexión'); \r\n });\r\n }\r\n\r\n const rows = JSON.parse(res.text);\r\n if (rows.length > 0) \r\n { \r\n if (rows[0].RESP === undefined)\r\n { \r\n this.setState({openBackDrop: false}, ()=>{\r\n funciones.showToast('s', 'Proceso realizado correctamente.'); \r\n this.Limpiar()\r\n this.setState({open_agregar: false,open_modificar: false,open_eliminar: false,rows:rows,estado: '', selection: []})\r\n })\r\n }\r\n else{\r\n this.setState({ openBackDrop: false}, ()=>{\r\n funciones.showToast('w', rows[0].RESP);\r\n });\r\n }\r\n }\r\n else\r\n {\r\n this.setState({ openBackDrop: false}, ()=>{\r\n this.setState({open_agregar: false,open_modificar: false,open_eliminar: false,rows:[]});\r\n });\r\n } \r\n }); \r\n }\r\n catch(ex){\r\n this.setState({ openBackDrop: false}, ()=>{\r\n funciones.showToast('e', 'Error de conexión');\r\n });\r\n }\r\n })\r\n}\r\n\r\nChangeSelect_estado= event =>{\r\n this.setState({ estado: event.target.value });\r\n}\r\n\r\n/* RENDER */\r\nrender() {\r\n const { classes } = this.props;\r\n\r\n\r\n if (this.state.isLoggin === true )\r\n {\r\n return ( \r\n <React.Fragment>\r\n <Backdrop className={classes.backdrop} open={this.state.openBackDrop}>\r\n <CircularProgress color=\"inherit\" />\r\n <span style={{ marginTop: '10px' }}>{'Cargando...'}</span>\r\n </Backdrop>\r\n {/*--------------------------------------------------------------------DIALOG PARA ELIMINAR ---------------------------------------------------------------------*/}\r\n <Dialog\r\n open={this.state.open_eliminar}\r\n disableEnforceFocus disableAutoFocus\r\n fullWidth= {true} classes = {{ paper: classes.Dialog}}\r\n maxWidth= 'xs'\r\n style={{zIndex: 200000,}} //fullScreen={movil_pequeño?true:false}\r\n >\r\n <DialogTitle>\r\n <Typography component='span' variant='subtitle2'>\r\n {'Eliminar'}\r\n </Typography>\r\n </DialogTitle>\r\n <DialogContent>\r\n <Typography align='center'>\r\n ¿Está seguro de eliminar esta moneda?\r\n </Typography>\r\n </DialogContent>\r\n <BarraBotones botones={this.botones_eliminar} l={this.l} e={this.e} i={this.i}/>\r\n </Dialog>\r\n {/*--------------------------------------------------------------------DIALOG PARA AGREGAR Y MODIFICAR ------------------------------------------------------------*/}\r\n <Dialog\r\n open={this.state.open_agregar || this.state.open_modificar}\r\n disableEnforceFocus disableAutoFocus\r\n fullWidth= {true} classes = {{ paper: classes.Dialog}}\r\n maxWidth= 'xs'\r\n style={{zIndex: 200000,}} //fullScreen={movil_pequeño?true:false}\r\n >\r\n <DialogTitle>\r\n <Typography component='span' variant='subtitle2'>\r\n {'Moneda'}\r\n </Typography>\r\n </DialogTitle>\r\n <DialogContent>\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"nombre\" label=\"Nombre\" name=\"nombre\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentnombre}\r\n inputProps={{ ref: this.nombreRef }} style={{width: movil_pequeño?'100%':'100%'}}\r\n />\r\n <TextField\r\n variant=\"outlined\" margin={\"dense\"} \r\n id=\"simbolo\" label=\"SÃmbolo\" name=\"simbolo\" \r\n required\r\n fullWidth={movil_pequeño}\r\n defaultValue= {currentsimbolo}\r\n inputProps={{ ref: this.simboloRef, maxLength: 3 }} style={{width: movil_pequeño?'100%':'50%'}}\r\n />\r\n <Select \r\n Label='Estado'\r\n Datos = {this.state.datos_estados} \r\n Selected= {this.state.estado}\r\n onChange={this.ChangeSelect_estado}\r\n Style = {classes.select} \r\n Outlined\r\n required\r\n shrink={this.state.estado !== '' ? true : undefined}\r\n />\r\n </DialogContent>\r\n <BarraBotones botones={this.state.open_agregar?this.botones_agregar:this.botones_modificar} l={this.l} e={this.e} i={this.i}/>\r\n </Dialog>\r\n <BarraBotones align='center' botones={this.botones} l={this.l} e={this.e} i={this.i}/>\r\n <div ref={this.tablaRef} style={{background:'white',marginLeft:movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n <CustomTable\r\n Columns={columns} \r\n Rows={this.state.rows} \r\n TableColumnExtensions={tableColumnExtensions}\r\n DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n getRowId = {getRowId}\r\n height={this.state.heightTableMain}\r\n enabledFilterRows= {false}\r\n standarPlugin = { <TableRowsIndexer/> }\r\n VirtualTable_cellComponent={VirtualTable_cellComponent}\r\n RowComponent={this.trow}\r\n showSelectionColumn={false}\r\n />\r\n </div>\r\n </React.Fragment>\r\n ); /// finaliza return\r\n }\r\n else if (this.state.isLoggin === false)\r\n {\r\n Auth.logout()\r\n window.location.reload();\r\n return; \r\n }\r\n\r\n\r\n return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n\r\n \r\n\r\n "],"sourceRoot":""}