{"version":3,"sources":["actions/types.js","actions/administracion.js","image/marca1.png","image/marca2.png","components/general/Util.js","components/general/UploadFile.js","services/auth.service.js","services/auth-header.js","components/Sala.js","services/administracion.service.js","components/general/ControlJuego.js","reducers/auth.js","reducers/message.js","reducers/banner.js","reducers/juego.js","reducers/user.js","reducers/controlJuego.js","reducers/administracion.js","reducers/index.js","store.js","services/juego.service.js","image/logoRF1.png","config.js","services/banner.service.js","components/general/GestionOrden.js","components/general/Adjudicacion.js","components/general/UseLocalStorage.js","components/general/ReporteUserRueda.js","components/general/UsuarioActivo.js","components/juego/ItemRentaFija.js","components/juego/ItemRentaVariable.js","image/img01.jpg","image/img02.jpg","image/imgNoticiaBig.jpg","image/imgNoticiaBig2.jpg","image/arrowRight.svg","image/arrowLeft.svg","audio/campana.mp3","components/general/EditarCatalogo.js","components/general/EditarItemCatalogo.js","components/general/ItemCatalogo.js","components/general/Catalogos.js","components/general/EditarEmpresa.js","components/general/SeleccionarUsuarioEmpresa.js","components/general/UsuarioEmpresa.js","components/general/Empresa.js","components/general/EditarEvento.js","components/general/SeleccionarEventoEmpresa.js","components/general/EventoEmpresa.js","components/general/Evento.js","components/general/EditarInversionista.js","components/general/Inversionista.js","components/general/EditarUsuario.js","components/general/Usuario.js","components/general/EditarParametro.js","components/general/Parametro.js","components/general/AgregarInversionista.js","components/general/EditarOrden.js","components/general/EditarComentarioLiqui.js","components/general/Liquidaciones.js","components/general/ImageVideoGallery.js","actions/banner.js","actions/juego.js","image/investTraderLogo.png","components/general/VerEmpresas.js","image/profileImg.png","components/Login.js","actions/auth.js","components/Register.js","components/juego/RentaFija.js","components/Juego.js","components/BoardUser.js","components/BoardModerator.js","components/BoardAdmin.js","components/general/ConfigurarUsuario.js","components/general/Header.js","components/AperturaRueda.js","components/errors/NoJuego.js","components/Recuperar.js","actions/user.js","components/ElegirEvento.js","components/SeleccionarEvento.js","helpers/history.js","components/CondicionesLegales.js","App.js","actions/message.js","serviceWorker.js","index.js","components/general/ProgressBar.js","components/general/LoadingContainer.js","services/user.service.js","actions/controlJuego.js"],"names":["REGISTER_SUCCESS","REGISTER_FAIL","LOGIN_SUCCESS","LOGIN_FAIL","LOGOUT","SET_MESSAGE","CLEAR_MESSAGE","SHOW_BANNER","SHOW_BANNER_INIT","SHOW_BANNER_FAIL","GET_EVENT_BY_USER","GET_EVENT_BY_USER_FAIL","GET_EVENT_BY_USER_INIT","GET_EVENT_TITLE_BY_USER","SEND_EMAIL_PASSWORD","SEND_EMAIL_PASSWORD_FAIL","GET_GESTION_CATALOGOS","GET_GESTION_CATALOGOS_FAIL","UPDATE_GESTION_CATALOGOS","UPDATE_GESTION_CATALOGOS_FAIL","DELETE_GESTION_CATALOGOS","DELETE_GESTION_CATALOGOS_FAIL","GET_CATALOGOS_PADRE","GET_CATALOGOS_PADRE_FAIL","DELETE_ITEM_CATALOGO","DELETE_ITEM_CATALOGO_FAIL","UPDATE_ITEM_CATALOGO","UPDATE_ITEM_CATALOGO_FAIL","GET_ITEM_CATALOGOS","GET_ITEM_CATALOGOS_FAIL","UPDATE_STATUS_BY_KEY_ADM","CATALOGOS_INI","ITEMS_INI","GET_EMPRESA","GET_EMPRESA_FAIL","EMPRESA_INI","DELETE_EMPRESA","DELETE_EMPRESA_FAIL","UPDATE_EMPRESA","UPDATE_EMPRESA_FAIL","GET_INVERSIONISTA","GET_INVERSIONISTA_FAIL","INVERSIONISTA_INI","DELETE_INVERSIONISTA","DELETE_INVERSIONISTA_FAIL","UPDATE_INVERSIONISTA","UPDATE_INVERSIONISTA_FAIL","GET_USUARIOS_INV","GET_USUARIOS_INV_FAIL","GET_EMPRESA_INST_FAIL","GET_EMPRESA_INST","SELECT_EVENTO","SELECT_EVENTO_FAIL","GET_ORDEN","GET_ORDEN_FAIL","GET_ORDEN_USER_ID","GET_ORDEN_USER_ID_FAIL","ORDEN_USER_ID_INI","UPDATE_ORDEN","UPDATE_ORDEN_FAIL","DELETE_ORDEN","DELETE_ORDEN_FAIL","ORDEN_INI","GET_EMPRESA_SELECT","GET_EMPRESA_SELECT_FAIL","GET_INVERSIONISTA_SELECT","GET_INVERSIONISTA_SELECT_FAIL","INVERSIONISTA_SELECT_INI","GET_EVENTO","GET_EVENTO_FAIL","UPDATE_EVENTO","UPDATE_EVENTO_FAIL","DELETE_EVENTO","DELETE_EVENTO_FAIL","EVENTO_INI","GET_USUARIO_EMPRESA","GET_USUARIO_EMPRESA_FAIL","GET_USUARIO_EMPRESA_SIN_ASIG","GET_USUARIO_EMPRESA_SIN_ASIG_FAIL","SELECT_USUARIO_EMPRESA","SELECT_USUARIO_EMPRESA_FAIL","DELETE_USUARIO_EMPRESA","DELETE_USUARIO_EMPRESA_FAIL","USUARIO_EMPRESA_INI","UPDATE_USER","UPDATE_USER_FAIL","GET_USERS","GET_USERS_FAIL","DELETE_USER","DELETE_USER_FAIL","USER_INI","GET_PARAMETRO","GET_PARAMETRO_FAIL","DELETE_PARAMETRO","DELETE_PARAMETRO_FAIL","UPDATE_PARAMETRO","UPDATE_PARAMETRO_FAIL","PARAMETRO_INI","GET_EMPRESA_CON_EVENTO","GET_EMPRESA_CON_EVENTO_FAIL","GET_TODO_EVENTO","GET_TODO_EVENTO_FAIL","EMPRESA_CON_EVENTO_INI","UPDATE_STATUS_BY_KEY","UPDATE_EVENTO_OBJECT","EVENTO_EMPRESA_INI","GET_EVENTO_EMPRESA_FAIL","GET_EVENTO_EMPRESA","GET_EVENTO_EMPRESA_SIN_ASIG_FAIL","GET_EVENTO_EMPRESA_SIN_ASIG","SELECT_EVENTO_EMPRESA_FAIL","SELECT_EVENTO_EMPRESA","DELETE_EVENTO_EMPRESA_FAIL","DELETE_EVENTO_EMPRESA","UPDATE_USER_PROFILE","UPDATE_USER_PROFILE_FAIL","ONLY_EVENT_DATA","ONLY_EVENT_DATA_FAIL","ONLY_EVENT_DATA_INI","DATA_EVENT_ID","EVENT_SELECT","GET_ADJUDICACION","GET_ADJUDICACION_FAIL","ADJUDICACION_INI","EMPRESA_SELECT","SALA_INI","GET_DATA_EMPRESA","GET_DATA_EMPRESA_FAIL","GET_DATA_EMPRESA_INI","INSCRIPCION","COLOCACION","SUBASTA","ADJUDICACION","GET_EMPRESA_SELECT_INVERSIONISTA","GET_EMPRESA_SELECT_INVERSIONISTA_FAIL","GET_DATOS_ADJUDICACIONES","GET_DATOS_ADJUDICACIONES_FAIL","UPDATE_IMPRESION_LIQUIDACIONES","UPDATE_IMPRESION_LIQUIDACIONES_FAIL","UPDATE_IMPRESION_TITULOS","UPDATE_IMPRESION_TITULOS_FAIL","UPDATE_IMPRESION_REPORT_RUEDA","UPDATE_IMPRESION_REPORT_RUEDA_FAIL","UPDATE_INVITACION_EMAIL","UPDATE_INVITACION_EMAIL_FAIL","UPDATE_LIQUIDACION_EMAIL","UPDATE_LIQUIDACION_EMAIL_FAIL","UPDATE_LIQUIDACION","UPDATE_LIQUIDACION_FAIL","SEND_VALUE","GET_CATALOGOS_MODALIDAD","GET_CATALOGOS_MODALIDAD_FAIL","UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL","UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL","UPDATE_COBRAR_LIQUIDACION","UPDATE_COBRAR_LIQUIDACION_FAIL","UPDATE_COMENTARIO_LIQUIDACION","UPDATE_COMENTARIO_LIQUIDACION_FAIL","UPDATE_ESTADO_IMPRIMIR_CERTIFICADO","UPDATE_ESTADO_IMPRIMIR_CERTIFICADO_FAIL","UPDATE_ESTADO_IMPRIMIR_LIQUIDACION","UPDATE_ESTADO_IMPRIMIR_LIQUIDACION_FAIL","UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA","UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA_FAIL","UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA","UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA_FAIL","UPDATE_IMPRESION_REPORT_LIQUIDACION","UPDATE_IMPRESION_REPORT_LIQUIDACION_FAIL","UPDATE_IMPRESION_REPORT_ADJUDICACION","UPDATE_IMPRESION_REPORT_ADJUDICACION_FAIL","setStatusByKey","key","value","dispatch","type","payload","Promise","resolve","getDataEmpresaAct","empresaId","AdmService","getDataEmpresaSer","then","data","error","message","response","toString","reject","getAdjudicacionAct","eventoId","usuarioId","page","filterField","filer","typeOrd","sort","getAdjudicacionSer","getDataEventAct","getDataEventSer","updatePerfilUsuario","nombre","nick","email","clave","image","uploadId","deleteEventoEmpresaAct","eventoEmpresaId","deleteEventoEmpresaSer","getEventoEmpresaAct","NotificationManager","success","selectEventoEmpresaAct","usuarioIdRegistro","selectEventoEmpresaSer","getEventoEmpresaSinAsigAct","getEventoEmpresaSinAsigSer","getEventoEmpresaSer","getTodoEventoAct","getTodoEventoSer","getEmpresaConEventoAct","getEmpresaConEventoSer","deleteParametroAct","parametroId","deleteParametroSer","getParametroAct","getParametroSer","updateParametroAct","codigo","descripcion","valor","usaurioIdRegistro","estado","updateParametroSer","deleteUsuario","getUsuarios","console","log","updateUsuario","rol","imagenUrl","deleteUsuarioEmpresaAct","usuarioEmpresaId","deleteUsuarioEmpresaSer","getUsuarioEmpresaAct","selectUsuarioEmpresaAct","selectUsuarioEmpresaSer","getUsuarioEmpresaSinAsigAct","getUsuarioEmpresaSinAsigSer","getUsuarioEmpresaSer","deleteEventoAct","deleteEventoSer","getEventoAct","updateEventoAct","logoUrl","modalidadId","nombreEvento","logo","usuarioRegistroId","fechaSubasta","inscripcion","subasta","colocacion","adjudicacion","nombreEmpresaCorto","nombreExponente","updateEventoSer","getEventoSer","getEmpresaSelectAct","getEmpresaSelectSer","getInversionistaSelectAct","getInversionistaSelectSer","getOrdenPorUsuarioAct","getOrdenPorUsuarioSer","updateOrdenAct","ordenId","inversionistaId","accionesComprar","precioPagar","updateOrdenSer","getInstitucionesEmpresaAct","getInstitucionesEmpresaSer","deleteInversionistaAct","deleteInversionistaSer","getInversionistaAct","updateInversionistaAct","apellido","cedula","telefono","direccion","empresaUsuarioId","updateInversionistaSer","getInversionistaSer","deleteEmpresaAct","deleteEmpresaSer","getEmpresaAct","updateEmpresaAct","institucion","gerente","operador","receptor","numAccionesOferta","precioInicialPorAccion","valorUnitarioAccion","montoMinMejoraPrecio","comisionOperador","comisionBVQ","porcentajePrecioTechoMax","fechaConstitucion","fechaInscripcion","capitalPagado","divididoEn","updateEmpresaSer","getEmpresaSer","deleteItemCatalogo","itemId","catalogoId","getItemCatalogos","updateItemCatalogo","activo","editar","itemPadreId","nombreCorto","getItemsCatalogosPag","deleteCatalogo","deleteGestionCatalogo","getCatalogos","updateGestionCatalogo","catalogoPadreId","getCatalogosPadre","getGestionCatalogosPag","getEmpresaSelectInversionista","getDatosAdjudicaciones","updateImpresionLiquidaciones","liquidacionId","updateImpresionTitulos","updateImpresionReportRueda","adjudicacionId","sendEmailInvitacionUser","sendLiquidacionUser","updateLiquidacion","getCatalogosModalidad","sendLiquidacionInversionista","updateCobrarLiquidacion","updateComentarioLiquidacion","comentario","updateImprimirCertificado","updateImprimirLiquidacion","updateEstadoEmailEmpresa","updateEstadoEmailInversionista","updateImpresionReportLiquidacion","updateImpresionReportAdjudicacion","module","exports","enableFuncionalityForRole","fun","filter","length","formatDateTime","dateT","date","Date","month","getMonth","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","getFullYear","formatTime","padStart","generateMessageAdm","strType","JSON","stringify","secondFormatComplete","toISOString","slice","formatNumber","Number","parseFloat","toFixed","register","username","password","axios","post","global","config","URL_SERVICE","headers","login","process","params","itemR","split","join","result","parse","accessToken","localStorage","setItem","logout","removeItem","authHeader","user","getItem","refWebSocket","connect","state","props","currentUser","useSelector","auth","useState","minHeight","height","gridStyle","setGridStyle","useDispatch","history","useHistory","loadEmpresaConEvento","setLoadEmpresaEvento","juego","eventoSeleccionado","listEventos","administracion","listaEmpresaConEvento","loadingAdjudicacion","loadingSala","loadingOrdenUserId","loadingEmpresaConEvento","loadingInversionistaSelect","openCatalogo","setOpenCatalogo","openEmpresa","setOpenEmpresa","openInversionista","setOpenInversionista","openUsuario","setOpenUsuario","openEvento","setOpenEvento","openParametro","setOpenParametro","openLiquidaciones","setOpenLiquidaciones","openReporte","setOpenReporte","setOpenControlJuego","setOpenUsuarioActivo","UseLocalStorage","even","setEven","loadEvent","setLoadEvent","showEmpresa","datosjuego","controlJuego","isDisabled","setIsDisabled","showMenu","setShowMenu","useEffect","userList","setUserList","listMessage","setListMessage","startJuego","valueVisibleSelectEditarOrden","maximizeEmpresa","setMaximizeEmpresa","maximizeAdj","setMaximizeAdj","maximizeOrd","setMaximizeOrd","maximizeRegis","setMaximizeRegis","empresaFilterGen","setEmpresaFilterGen","setDatosTicket","undefined","admFuncionality","userFuntion","userRuedaFuncionality","userCajaFuncionality","userLiquidacionFuncionality","userRegistradorFuncionality","empresaFilter","setEmpresaFilter","gridInfor","setGridInfor","datosTicket","catch","selected","setSelected","columns","name","header","defaultFlex","xdefaultLocked","headerAlign","className","render","to","sendMessageLocal","msg","sendMessage","sendMessageChat","clientId","lsTmp","itemMsg","push","addMessageHistory","ref","Websocket","url","URL_WEB_SOCKET","encodeURIComponent","onMessage","trim","initObject","setEventoObject","toggleBotonApertura","objectJugada","window","location","reload","usuarioObject","xml2js","Parser","parseString","err","usuarios","a","b","localeCompare","ex","closeEmpresaClick","closeCatalogosClick","closeInversionistaClick","closeUsuarioClick","closeEventoClick","closeParametroClick","closeReporteClick","closeLiquidacionesClick","ControlJuego","closeControlJuegoClick","UsuarioActivo","closeUsuarioActivoClick","onClick","href","e","preventDefault","slideSpeed","isNewsTicker","show","map","element","id","EmpresaId","change","symbol","NombreEmpresa","lastPrice","PrecioInicialPorAccion","percentage","currentPrice","NumAccionesOferta","placeholder","onChange","target","nego","item","toLowerCase","includes","toLocaleLowerCase","filterCatalogo","idProperty","style","enableSelection","selection","mode","dataSource","theme","onSelectionChange","empFil","x","PorcentajePrecioTechoMax","getUsuariosSer","getOrdenSer","deleteOrdenSer","getEventoSelectSer","React","createContext","setShowButtonSubasta","setshowButtonAdjudicacion","estadoObtenidoBotonApertura","valueApertura","valueSubasta","valueAdjudicacion","valueBotonApertura","estadoObtenidoBotonSubasta","valueBotonSubasta","valueBotonAdjudicacion","mostratBotonesRigth","setMostratBotonesRigth","toggleValueSubasta","toggleValueAdjudicacion","toggleBotonVisibleEditarOrden","initialState","isLoggedIn","listBanner","loadingBanner","eventos","titulosRVCount","listTitleEvent","empresaSeleccionada","pInscripcion","pColocacion","pSubasta","pAdjudicaion","loadingEventosPorUsr","parseInt","showLablesTime","allTime","timeLastPlay","loadingAccionEvt","modalidadCodigo","reducer","action","listaCatalogosPag","listaCatalogosCount","listaCatalogosPadre","listaItemsPag","listaItemsCount","loadingCatalogos","loadingItems","listaEmpresa","listaEmpresaCount","loadingEmpresa","listaInversionista","listaInversionistaCount","loadingInversionista","listaInstitucionEmpresa","listaUsuarios","listaOrdenes","listaOrdenesCount","listaOrdenesPorUsuario","listaOrdenesPorUsuarioCount","loadingOrden","listaEmpresaSelect","listaInversionistaSelect","listaEventos","listaEventosCount","loadingEventos","listaUsuarioEmpresa","listaUsuarioEmpresaSinAsig","loadingUsuarioEmpresa","listaUser","listaUserCount","loadingUser","listaEventoSelect","listaParametro","listaParametroCount","loadingParametro","listaTodosLosEventos","listaEventoEmpresa","listaEventoEmpresaSinAsig","loadingEventoEmpresa","listaDatosEvento","loadingDatosEvento","datoEventoId","listaAdjudicacion","listaAdjudicacionCount","combineReducers","banner","segundosApertura","segundosSubasta","segundosAdjudicacion","recuperarLoading","datosEmpresa","listaEmpresasSelecInversionista","listaDatosAdjudicaciones","loadingControl","listaCatalogosModalidad","usuariosLoading","laodingDatosEmpresa","listaAdjudicacionesCount","loadingAdjudicacionesD","liquidacionesLoading","middleware","thunk","store","createStore","rootReducer","composeWithDevTools","applyMiddleware","getEventosPorUsuario","userId","getTitulosEventoById","eventId","getBannerByGame","loadOrden","setLoadOrden","rowData","updateFiltro","useCallback","menuProps","rowProps","autoDismiss","items","text","maximizeOrn","loadAdjudicacion","setLoadAdjudicacion","listaAdjudicacionEmpresa","setlistaAdjudicacionEmpresa","empresa","renderRowContextMenu","filterEmpresa","initialValue","storedValue","setStoreValue","eventoSeleccionadoId","plantillaFilter","loadEventoEmpresa","setloadEventoEmpresa","isLoading","setIsLoading","downloadExcel","file","open","handleClickReporEvento","EventoId","textAlign","fontSize","minWidth","handleClickReporLiquidacion","handleClickReporAdjudicacion","width","innerWidth","innerHeight","getWindowDimensions","userFilter","setUserFilter","showUserList","setShowUserList","enableUserList","i","title","ItemRentaFija","src","URL_IMAGE_EMISOR","this","alt","displayType","thousandSeparator","decimalScale","fixedDecimalScale","Component","ItemRentaVariable","index","getStyleByIndex","errors","setErrors","catalogoSeleccionado","setCodigo","setNombre","setIsError","setActivo","setEditar","closeEditCat","closeCatalogo","cambioEstado","label","estadoSelect","setEstadoSelect","textoRegex","autocomplete","maxLength","toUpperCase","onBlur","options","right","defaultChecked","checked","valid","test","itemSeleccionado","setNombreCorto","closeEditItem","editarItemOpen","setEditarItemOpen","setItemSeleccionado","setCatalogoId","loadItems","setLoadItems","itemFilter","setItemFilter","confirmAlert","buttons","defaultWidth","EditarItemCatalogo","menuButton","filterItem","closeItemCatalogo","editCatalogoOpen","setEditCatalogoOpen","itemCatalogoOpen","setItemCatalogoOpen","setCatalogoSeleccionado","loadCatalogs","setLoadCatalogs","catalogoFilter","setCatalogoFilter","formatEstado","ItemCatalogo","usuarioErr","emailErr","gerenteErr","logoErr","operadorErr","direccionErr","receptorErr","comisionOperadorErr","comisionBvqErr","porcentajeTechoErr","precioInicialPorAccionErr","valorUnitarioAccionErr","montoMinMejoraPrecioErr","capitalPagadoErr","valorErr","divididoErr","setLogo","setDireccion","setInstitucion","setEmail","setGerente","setOperador","setReceptor","setNumAccionesOferta","setPrecioInicialPorAccion","setValorUnitarioAccion","setMontoMinMejoraPrecio","setComisionOperador","setComisionBVQ","setPorcentajePrecioTechoMax","setFechaConstitucion","setFechaInscripcion","setCapitalPagado","setDivididoEn","setValor","loadInstitucion","setLoadInstitucion","closeEditEmpresa","nombreRegex","accept","files","Array","from","forEach","reader","FileReader","readAsDataURL","onload","arrayImage","showMonthDropdown","showYearDropdown","dateFormat","allowNegative","decimalSeparator","prefix","onValueChange","values","formattedValue","loadListaUsuariosEmpresaSinAsig","setLoadListaUsuariosEmpresaSinAsig","closeSeleccionarUsuarioEmpresa","closeSelectUsuarioEmpresa","empresaSeleccionadaId","toArray","Object","keys","0","checkboxColumn","margin","defaultVisible","nombreEmpresa","selectUsuarioEmpresaOpen","setSelectUsuarioEmpresaOpen","loadUsuarioEmpresa","setloadUsuarioEmpresa","str","getRol","closeUsuarioEmpresa","setEmpresaSeleccionada","usuarioEmpresaOpen","setUsuarioEmpresaOpen","editEmpresaOpen","setEditEmpresaOpen","loadEmpresa","setLoadEmpresa","setNombreEvento","setLogoUrl","setInscripcion","setColocacion","setSubasta","setAdjudicacion","setFechaSubasta","setNombreEmpresaCorto","setNombreExponente","cambioModalidad","loadModalidades","setLoadModalidades","modalidad","setModalidad","closeEditEvento","multiple","showTimeSelect","timeIntervals","timeCaption","timeFormat","loadListaEventoEmpresaSinAsig","setloadListaEventoEmpresaSinAsig","closeSeleccionarEventoEmpresa","closeSelectEventoEmpresa","selectEventoEmpresaOpen","setSelectEventoEmpresaOpen","SeleccionarEventoEmpresa","closeEventoEmpresaClick","setEventoSeleccionado","eventoEmpresaOpen","setEventoEmpresaOpen","editEventoOpen","setEditEventoOpen","loadEvento","setLoadEvento","toLocaleString","replace","inversionistaSeleccionado","setApellido","setCedula","setTelefono","setEmpresa","boolListEmpresaEvento","setboolListEmpresaEvento","cambioEmpresa","closeEditInversionista","capitalizedText","allowLeadingZeros","setInversionistaSeleccionado","editInversionistaOpen","setEditInversionistaOpen","loadInverisonista","setLoadInversionista","formatter","cell","c","usuarioSeleccionado","setNick","setImagenUrl","setClave","optionsEstado","cambioRol","rolSelect","setRolSelect","optionsRol","closeEditU","closeUser","passwordVisible","setPasswordVisible","numeros","inferior","superior","numPosibilidades","aleatorio","Math","random","floor","editUsuarioOpen","setEditUsuarioOpen","setUsuarioSeleccionado","mostrarUsuarios","setMostrarUsuarios","setPlantillaFilter","EditarUsuario","filterPlantilla","parametroSeleccionado","setDescripcion","closeEditParametro","setParametroSeleccionado","editParametroOpen","setEditParametroOpen","loadParametro","setLoadParametro","parametroFilter","setparametroFilter","EditarParametro","filterParametro","setAccionesComprar","precio","setPrecio","nuevoInversionistaOpen","setNuevoInversionistaOpen","isActiveButton","setIsActiveButton","clicked","setClicked","precioUltimo","setPrecioUltimo","list","setList","inversionista","setInversionista","arrPrice","arrPrice2","sumaAcciones","arr","column","sum","sumColumn","Precio","precioMejo","AgregarInversionista","tabIndex","disabled","class","isAllowed","floatValue","setTimeout","warning","actualizar","liquidacionSeleccionada","setComentario","closeEditComentario","closeEditComentarioLiqui","mostrarDatosAdjudicaciones","setMostrarDatosAdjudicaciones","setLiquidacionSeleccionada","editComentarioLiquiOpen","setEditComentarioLiquiOpen","renderButtonELiquidacion","border","outline","handleClickLiquidacionIndividual","renderButtonEmailLiquidacionInversionista","handleClickLiquidacionIndividualInversionista","renderButtonICertificado","handleClickCertificado","renderButtonITitulo","handleClickTitulo","Liquidacion","openPDF","AdjudicacionId","pdf","renderButtonObservaciones","BannerService","required","role","Login","form","useRef","setUsername","setPassword","loading","setLoading","shown","setError","logojunior","onSubmit","current","validateAll","AuthService","for","validations","Register","RentaFija","titulos","currentTitle","currentEventos","marca1","marca2","imagenEmisor","imagenNoticiaPositivaBig","imagenNoticiaNegativaBig","leftArrow","rightArrow","img01","img02","BoardUser","content","setContent","UserService","getUserBoard","_content","BoardModerator","getModeratorBoard","BoardAdmin","getAdminBoard","nombreErr","nickErr","closeWindow","closeProfileClick","secondsApertura","setSecondsApertura","secondsSubasta","setSecondsSubasta","secondsAdj","setSecondsAdj","intervalReloj","setIntervalReloj","dateInit","setDateInit","pAdjudicacion","insc","setInsc","colo","setColo","sub","setSub","adj","setAdj","openProfile","setOpenProfile","userOperadorFuncionality","loadDatosEvento","setLoadDatosEvento","setMostrarHora","loadCargarHora","setLoadCargarHora","muestraReloj","fechaHora","horas","minutos","segundos","setSeconds","document","getElementById","innerHTML","toLocaleDateString","timer","setInterval","fechaActual","mostrarHora","clearInterval","intertmp","interval","ConfigurarUsuario","createRef","audCampana","autoPlay","playsInline","NoJuego","getPassword","sendEmailPassword","setEventoSeleccionadoId","loadTodosLosEventos","setLoadTodosLosEventos","formatModalidad","stickyHeader","createBrowserHistory","CondicionesLegales","loadCssClass","setLoadCssClass","classList","add","App","listen","exact","path","component","Recuperar","Sala","Juego","AperturaRueda","ElegirEvento","SeleccionarEvento","Boolean","hostname","match","ReactDOM","navigator","serviceWorker","ready","registration","unregister","ProgressBar","bgcolor","completed","fillerStyles","backgroundColor","borderRadius","transition","padding","color","fontWeight","require","API_URL","getPublicContent","get"],"mappings":"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2I,sBAAoBC,QAClB,mBACA,UACA,KACA,cACA,KAGFvC,EAAS,CACPC,KAAMrG,MAER0I,sBAAoB3B,MAClB,oBACA,UACA,KACA,cACA,IAGGR,QAAQC,aAEjB,SAACO,GACC,IAAMC,EACHD,EAAME,UACLF,EAAME,SAASH,MACfC,EAAME,SAASH,KAAKE,SACtBD,EAAMC,SACND,EAAMG,WAQR,OAPAd,EAAS,CACPC,KAAMrG,MAERoG,EAAS,CACPC,KAAMzK,KACN0K,QAASU,IAEJT,QAAQY,cAKRkE,EAAkB,SAC7BhE,EACAiE,EACAC,EACAC,EACAC,EACAzB,EACA0B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1E,EACAC,EACAC,EACAC,EACAC,GAAI,OACD,SAACvB,GAIJ,OAHAA,EAAS,CACPC,KAAMpG,MAED0G,IAAWuF,gBAChB7E,EACAiE,EACAC,EACAC,EACAC,EACAzB,EACA0B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACApF,MACA,SAACI,GA0BC,OAzBiB,IAAbA,GACFb,EAASgF,EAAa7D,EAAMC,EAAaC,EAAOC,EAASC,IAEzDvB,EAAS,CACPC,KAAMxG,OAER6I,sBAAoBC,QAClB,kBACA,UACA,KACA,cACA,KAGFvC,EAAS,CACPC,KAAMvG,OAER4I,sBAAoB3B,MAClB,mBACA,UACA,KACA,cACA,IAGGR,QAAQC,aAEjB,SAACO,GACC,IAAMC,EACHD,EAAME,UACLF,EAAME,SAASH,MACfC,EAAME,SAASH,KAAKE,SACtBD,EAAMC,SACND,EAAMG,WAQR,OAPAd,EAAS,CACPC,KAAMvG,OAERsG,EAAS,CACPC,KAAMzK,KACN0K,QAASU,IAEJT,QAAQY,cAKRiE,EAAe,SAAC7D,EAAMC,EAAaC,EAAOC,EAASC,GAAI,OAAK,SACvEvB,GAKA,OAHAA,EAAS,CACPC,KAAMpG,MAED0G,IAAWwF,aAAa5E,EAAMC,EAAaC,EAAOC,EAASC,GAAMd,MACtE,SAACC,GACC,OAAY,MAARA,GACFV,EAAS,CACPC,KAAM1G,KACN2G,QAAS,CAA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lB,oBACA,UACA,KACA,cACA,IAGGR,QAAQC,aAEjB,SAACO,GACC,IAAMC,EACHD,EAAME,UACLF,EAAME,SAASH,MACfC,EAAME,SAASH,KAAKE,SACtBD,EAAMC,SACND,EAAMG,WAQR,OAPAd,EAAS,CACPC,KAAMzI,MAERwI,EAAS,CACPC,KAAMzK,KACN0K,QAASU,IAEJT,QAAQY,cAKR6G,EAAmB,SAC9BtH,EACAsB,EACAyD,EACAgC,EACAzD,EACA0B,EACAuC,EACA/F,EACAgG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjF,EACAvC,EACAC,EACAC,EACAC,EACAC,GAAI,OACD,SAACvB,GAIJ,OAHAA,EAAS,CACPC,KAAM3I,MAEDiJ,IAAWqI,iBAChBtI,EACAsB,EACAyD,EACAgC,EACAzD,EACA0B,EACAuC,EACA/F,EACAgG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjF,GACAjD,MACA,SAACI,GA0BC,OAzBiB,IAAbA,GACFb,EAAS2H,EAAcxG,EAAMC,EAAaC,EAAOC,EAASC,IAC1DvB,EAASgG,KACThG,EAAS,CACPC,KAAMxI,OAER6K,sBAAoBC,QAClB,mBACA,UACA,KACA,cACA,KAGFvC,EAAS,CACPC,KAAMvI,OAER4K,sBAAoB3B,MAClB,mBACA,UACA,KACA,cACA,IAGGR,QAAQC,aAEjB,SAACO,GACC,IAAMC,EACHD,EAAME,UACLF,EAAME,SAASH,MACfC,EAAME,SAASH,KAAKE,SACtBD,EAAMC,SACND,EAAMG,WAQR,OAPAd,EAAS,CACPC,KAAMvI,OAERsI,EAAS,CACPC,KAAMzK,KACN0K,QAASU,IAEJT,QAAQY,cAKR4G,EAAgB,SAACxG,EAAMC,EAAaC,EAAOC,EAASC,GAAI,OAAK,SACxEvB,GAKA,OAHAA,EAAS,CACPC,KAAM3I,MAEDiJ,IAAWsI,cAAc1H,EAAMC,EAAaC,EAAOC,EAASC,GAAMd,MACvE,SAACC,GA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","file":"static/js/main.32bf870d.chunk.js","sourcesContent":["export const REGISTER_SUCCESS = \"REGISTER_SUCCESS\";\r\nexport const REGISTER_FAIL = \"REGISTER_FAIL\";\r\nexport const LOGIN_SUCCESS = \"LOGIN_SUCCESS\";\r\nexport const LOGIN_FAIL = \"LOGIN_FAIL\";\r\nexport const LOGOUT = \"LOGOUT\";\r\n\r\nexport const SET_MESSAGE = \"SET_MESSAGE\";\r\nexport const CLEAR_MESSAGE = \"CLEAR_MESSAGE\";\r\n\r\n//Sala de espera\r\nexport const SHOW_BANNER = \"SHOW_BANNER\";\r\nexport const SHOW_BANNER_INIT = \"SHOW_BANNER_INIT\";\r\nexport const SHOW_BANNER_FAIL = \"SHOW_BANNER_FAIL\";\r\n\r\n//Eventos\r\nexport const GET_EVENT_BY_USER = \"GET_EVENT_BY_USER\";\r\nexport const GET_EVENT_BY_USER_FAIL = \"GET_EVENT_BY_USER_FAIL\";\r\nexport const GET_EVENT_BY_USER_INIT = \"GET_EVENT_BY_USER_INIT\";\r\n\r\n//Titulos\r\nexport const GET_EVENT_TITLE_BY_USER = \"GET_EVENT_TITLE_BY_USER\";\r\nexport const GET_EVENT_TITLE_BY_USER_FAIL = \"GET_EVENT_TITLE_BY_USER_FAIL\";\r\nexport const GET_EVENT_TITLE_BY_USER_INIT = \"GET_EVENT_TITLE_BY_USER_INIT\";\r\n\r\n//recuperar clave\r\n//recuperar contraseña \r\n\r\nexport const SEND_EMAIL_PASSWORD = \"SEND_EMAIL_PASSWORD\";\r\nexport const SEND_EMAIL_PASSWORD_FAIL = \"SEND_EMAIL_PASSWORD_FAIL\";\r\n\r\n//catalogos\r\nexport const GET_GESTION_CATALOGOS = \"GET_GESTION_CATALOGOS\";\r\nexport const GET_GESTION_CATALOGOS_FAIL = \"GET_GESTION_CATALOGOS_FAIL\";\r\n\r\nexport const UPDATE_GESTION_CATALOGOS = \"UPDATE_GESTION_CATALOGOS\";\r\nexport const UPDATE_GESTION_CATALOGOS_FAIL = \"UPDATE_GESTION_CATALOGOS_FAIL\";\r\n\r\nexport const DELETE_GESTION_CATALOGOS = \"DELETE_GESTION_CATALOGOS\";\r\nexport const DELETE_GESTION_CATALOGOS_FAIL = \"DELETE_GESTION_CATALOGOS_FAIL\";\r\n\r\nexport const GET_CATALOGOS_PADRE = \"GET__CATALOGOS_PADRE\";\r\nexport const GET_CATALOGOS_PADRE_FAIL = \"GET__CATALOGOS_PADRE_FAIL\";\r\n\r\n//item catalogo\r\n\r\nexport const DELETE_ITEM_CATALOGO = \"DELETE_ITEM_CATALOGO\";\r\nexport const DELETE_ITEM_CATALOGO_FAIL = \"DELETE_ITEM_CATALOGO_FAIL\";\r\n\r\nexport const UPDATE_ITEM_CATALOGO = \"UPDATE_ITEM_CATALOGO\";\r\nexport const UPDATE_ITEM_CATALOGO_FAIL = \"UPDATE_ITEM_CATALOGO_FAIL\";\r\n\r\nexport const GET_ITEM_CATALOGOS = \"GET_ITEM_CATALOGOS\";\r\nexport const GET_ITEM_CATALOGOS_FAIL = \"GET_ITEM_CATALOGOS_FAIL\";\r\n\r\n\r\nexport const UPDATE_STATUS_BY_KEY_ADM = \"UPDATE_STATUS_BY_KEY_ADM\";\r\n\r\nexport const CATALOGOS_INI = \"CATALOGOS_INI\";\r\n\r\nexport const ITEMS_INI = \"ITEMS_INI\";\r\n\r\n//empresa\r\n\r\n\r\nexport const GET_EMPRESA = \"GET_EMPRESA\";\r\nexport const GET_EMPRESA_FAIL = \"GET_EMPRESA_FAIL\";\r\n\r\nexport const EMPRESA_INI = \"EMPRESA_INI\";\r\n\r\nexport const DELETE_EMPRESA = \"DELETE_EMPRESA\";\r\nexport const DELETE_EMPRESA_FAIL = \"DELETE_EMPRESA_FAIL\";\r\n\r\n\r\nexport const UPDATE_EMPRESA = \"UPDATE_EMPRESA\";\r\nexport const UPDATE_EMPRESA_FAIL = \"UPDATE_EMPRESA_FAIL\";\r\n\r\nexport const GET_INVERSIONISTA = \"GET_INVERSIONISTA\";\r\nexport const GET_INVERSIONISTA_FAIL = \"GET_INVERSIONISTA_FAIL\";\r\nexport const INVERSIONISTA_INI = \"INVERSIONISTA_INI\";\r\nexport const DELETE_INVERSIONISTA = \"DELETE_INVERSIONISTA\";\r\nexport const DELETE_INVERSIONISTA_FAIL = \"DELETE_INVERSIONISTA_FAIL\";\r\nexport const UPDATE_INVERSIONISTA = \"UPDATE_INVERSIONISTA\";\r\nexport const UPDATE_INVERSIONISTA_FAIL = \"UPDATE_INVERSIONISTA_FAIL\";\r\n\r\nexport const GET_USUARIOS_INV = \"GET_USUARIOS_INV\";\r\nexport const GET_USUARIOS_INV_FAIL = \"GET_USUARIOS_INV_FAIL\";\r\n\r\nexport const GET_EMPRESA_INST_FAIL = \"GET_EMPRESA_INST_FAIL\";\r\nexport const GET_EMPRESA_INST = \"GET_EMPRESA_INST\";\r\n\r\n//ORDENES\r\n\r\nexport const SELECT_EVENTO = \"SELECT_EVENTO\";\r\nexport const SELECT_EVENTO_FAIL = \"SELECT_EVENTO_FAIL\";\r\n\r\nexport const GET_ORDEN = \"GET_ORDEN\";\r\nexport const GET_ORDEN_FAIL = \"GET_ORDEN_FAIL\";\r\nexport const GET_ORDEN_USER_ID = \"GET_ORDEN_USER_ID\";\r\nexport const GET_ORDEN_USER_ID_FAIL = \"GET_ORDEN_USER_ID_FAIL\";\r\nexport const ORDEN_USER_ID_INI = \"ORDEN_USER_ID_INI\";\r\n\r\nexport const UPDATE_ORDEN = \"UPDATE_ORDEN\";\r\nexport const UPDATE_ORDEN_FAIL = \"UPDATE_ORDEN_FAIL\";\r\nexport const DELETE_ORDEN = \"DELETE_ORDEN\";\r\nexport const DELETE_ORDEN_FAIL = \"DELETE_ORDEN_FAIL\";\r\nexport const ORDEN_INI = \"ORDEN_INI\";\r\nexport const GET_EMPRESA_SELECT = \"GET_EMPRESA_SELECT\";\r\nexport const GET_EMPRESA_SELECT_FAIL = \"GET_EMPRESA_SELECT_FAIL\";\r\n\r\nexport const GET_INVERSIONISTA_SELECT = \"GET_INVERSIONISTA_SELECT\";\r\nexport const GET_INVERSIONISTA_SELECT_FAIL = \"GET_INVERSIONISTA_SELECT_FAIL\";\r\nexport const INVERSIONISTA_SELECT_INI = \"GET_INVERSIONISTA_SELECT_INI\";\r\n// EVENTO\r\n\r\nexport const GET_EVENTO = \"GET_EVENTO\";\r\nexport const GET_EVENTO_FAIL = \"GET_EVENTO_FAIL\";\r\nexport const UPDATE_EVENTO = \"UPDATE_EVENTO\";\r\nexport const UPDATE_EVENTO_FAIL = \"UPDATE_EVENTO_FAIL\";\r\nexport const DELETE_EVENTO = \"DELETE_EVENTO\";\r\nexport const DELETE_EVENTO_FAIL = \"DELETE_EVENTO_FAIL\";\r\nexport const EVENTO_INI = \"EVENTO_INI\";\r\n\r\n//USUARIO EMPRESA\r\n\r\nexport const GET_USUARIO_EMPRESA = \"GET_USUARIO_EMPRESA\";\r\nexport const GET_USUARIO_EMPRESA_FAIL = \"GET_USUARIO_EMPRESA_FAIL\";\r\nexport const GET_USUARIO_EMPRESA_SIN_ASIG = \"GET_USUARIO_EMPRESA_SIN_ASIG\";\r\nexport const GET_USUARIO_EMPRESA_SIN_ASIG_FAIL = \"GET_USUARIO_EMPRESA_SIN_ASIG_FAIL\";\r\nexport const SELECT_USUARIO_EMPRESA = \"SELECT_USUARIO_EMPRESA\";\r\nexport const SELECT_USUARIO_EMPRESA_FAIL = \"SELECT_USUARIO_EMPRESA_FAIL\";\r\nexport const DELETE_USUARIO_EMPRESA = \"DELETE_USUARIO_EMPRESA\";\r\nexport const DELETE_USUARIO_EMPRESA_FAIL = \"DELETE_USUARIO_EMPRESA_FAIL\";\r\nexport const USUARIO_EMPRESA_INI = \"USUARIO_EMPRESA_INI\";\r\n\r\n//USERS\r\n\r\nexport const UPDATE_USER = \"UPDATE_USER\";\r\nexport const UPDATE_USER_FAIL = \"UPDATE_USER_FAIL\";\r\nexport const GET_USERS = \"GET_USERS\";\r\nexport const GET_USERS_FAIL = \"GET_USERS_FAIL\";\r\nexport const DELETE_USER = \"DELETE_USER\";\r\nexport const DELETE_USER_FAIL = \"DELETE_USER_FAIL\";\r\nexport const USER_INI = \"USER_INI\";\r\n\r\n//parametro\r\nexport const GET_PARAMETRO = \"GET_PARAMETRO\";\r\nexport const GET_PARAMETRO_FAIL = \"GET_PARAMETRO_FAIL\";\r\nexport const DELETE_PARAMETRO = \"DELETE_PARAMETRO\";\r\nexport const DELETE_PARAMETRO_FAIL = \"DELETE_PARAMETRO_FAIL\";\r\nexport const UPDATE_PARAMETRO = \"UPDATE_PARAMETRO\";\r\nexport const UPDATE_PARAMETRO_FAIL = \"UPDATE_PARAMETRO_FAIL\";\r\nexport const PARAMETRO_INI = \"PARAMETRO_INI\";\r\n\r\n//eventos y empresas \r\n\r\nexport const GET_EMPRESA_CON_EVENTO = \"GET_EMPRESA_CON_EVENTO\";\r\nexport const GET_EMPRESA_CON_EVENTO_FAIL = \"GET_EMPRESA_CON_EVENTO_FAIL\";\r\nexport const GET_TODO_EVENTO = \"GET_TODO_EVENTO\";\r\nexport const GET_TODO_EVENTO_FAIL = \"GET_TODO_EVENTO_FAIL\";\r\nexport const EMPRESA_CON_EVENTO_INI = \"EMPRESA_CON_EVENTO_INI\";\r\n\r\n\r\nexport const UPDATE_STATUS_BY_KEY = \"UPDATE_STATUS_BY_KEY\";\r\nexport const UPDATE_EVENTO_OBJECT = \"UPDATE_EVENTO_OBJECT\";\r\n\r\n//EVENTO EMPRESA\r\n\r\nexport const EVENTO_EMPRESA_INI = \"EVENTO_EMPRESA_INI\";\r\nexport const GET_EVENTO_EMPRESA_FAIL = \"GET_EVENTO_EMPRESA_FAIL\";\r\nexport const GET_EVENTO_EMPRESA = \"GET_EVENTO_EMPRESA\";\r\nexport const GET_EVENTO_EMPRESA_SIN_ASIG_FAIL = \"GET_EVENTO_EMPRESA_SIN_ASIG_FAIL\";\r\nexport const GET_EVENTO_EMPRESA_SIN_ASIG = \"GET_EVENTO_EMPRESA_SIN_ASIG\";\r\nexport const SELECT_EVENTO_EMPRESA_FAIL = \"SELECT_EVENTO_EMPRESA_FAIL\";\r\nexport const SELECT_EVENTO_EMPRESA = \"SELECT_EVENTO_EMPRESA\";\r\nexport const DELETE_EVENTO_EMPRESA_FAIL = \"DELETE_EVENTO_EMPRESA_FAIL\";\r\nexport const DELETE_EVENTO_EMPRESA = \"DELETE_EVENTO_EMPRESA\";\r\n\r\n//perfil usuario \r\n\r\n\r\nexport const UPDATE_USER_PROFILE = \"UPDATE_USER_PROFILE\";\r\nexport const UPDATE_USER_PROFILE_FAIL = \"UPDATE_USER_PROFILE_FAIL\";\r\n\r\n//obtener datos del evento\r\n\r\nexport const ONLY_EVENT_DATA = \"ONLY_EVENT_DATA\";\r\nexport const ONLY_EVENT_DATA_FAIL = \"ONLY_EVENT_DATA_FAIL\";\r\nexport const ONLY_EVENT_DATA_INI = \"ONLY_EVENT_DATA_INI\";\r\n\r\nexport const DATA_EVENT_ID = \"DATA_EVENT_ID\";\r\nexport const EVENT_SELECT = \"EVENT_SELECT\";\r\n\r\n//ADJUDICACION \r\n\r\nexport const GET_ADJUDICACION = \"GET_ADJUDICACION\";\r\nexport const GET_ADJUDICACION_FAIL = \"GET_ADJUDICACION_FAIL\";\r\nexport const ADJUDICACION_INI = \"ADJUDICACION_INI\";\r\n//select empresa \r\n\r\nexport const EMPRESA_SELECT = \"EMPRESA_SELECT\";\r\nexport const EMPRESA_SELEC_INI = \"\"\r\n\r\n//LOADING SALA INI SALA_INI\r\nexport const SALA_INI = \"EMPRESA_SELEC_INI SALA_INI\";\r\n\r\n//obtener datos oslo de una empresa \r\n\r\nexport const GET_DATA_EMPRESA = \"GET_DATA_EMPRESA\";\r\nexport const GET_DATA_EMPRESA_FAIL = \"GET_DATA_EMPRESA_FAIL\";\r\nexport const GET_DATA_EMPRESA_INI = \"GET_DATA_EMPRESA_INI\";\r\n\r\n//datos header tiempo \r\n\r\nexport const INSCRIPCION = \"INSCRIPCION\";\r\nexport const COLOCACION = \"COLOCACION\";\r\nexport const SUBASTA = \"SUBASTA\";\r\nexport const ADJUDICACION = \"ADJUDICACION\";\r\n\r\n\r\n// agg JP\r\n//inversionista\r\n\r\nexport const GET_EMPRESA_SELECT_INVERSIONISTA = \"GET_EMPRESA_SELECT_INVERSIONISTA\";\r\nexport const GET_EMPRESA_SELECT_INVERSIONISTA_FAIL = \"GET_EMPRESA_SELECT_INVERSIONISTA_FAIL\";\r\n\r\n// Datos de adjudicaciones\r\n\r\nexport const GET_DATOS_ADJUDICACIONES = \"GET_DATOS_ADJUDICACIONES\";\r\nexport const GET_DATOS_ADJUDICACIONES_FAIL = \"GET_DATOS_ADJUDICACIONES_FAIL\";\r\n\r\n// Impresion de certificados\r\nexport const UPDATE_IMPRESION_LIQUIDACIONES = \"UPDATE_IMPRESION_LIQUIDACIONES\";\r\nexport const UPDATE_IMPRESION_LIQUIDACIONES_FAIL = \"UPDATE_IMPRESION_LIQUIDACIONES_FAIL\";\r\n\r\n// Impresion de titulos\r\nexport const UPDATE_IMPRESION_TITULOS = \"UPDATE_IMPRESION_TITULOS\";\r\nexport const UPDATE_IMPRESION_TITULOS_FAIL = \"UPDATE_IMPRESION_TITULOS_FAIL\";\r\n\r\n// Impresion de reporte user rueda\r\nexport const UPDATE_IMPRESION_REPORT_RUEDA = \"UPDATE_IMPRESION_REPORT_RUEDA\";\r\nexport const UPDATE_IMPRESION_REPORT_RUEDA_FAIL = \"UPDATE_IMPRESION_REPORT_RUEDA_FAIL\";\r\n\r\n// Invitacion email usuario\r\nexport const UPDATE_INVITACION_EMAIL = \"UPDATE_INVITACION_EMAIL\";\r\nexport const UPDATE_INVITACION_EMAIL_FAIL = \"UPDATE_INVITACION_EMAIL_FAIL\";\r\n\r\n// Liquidacion email \r\nexport const UPDATE_LIQUIDACION_EMAIL = \"UPDATE_LIQUIDACION_EMAIL\";\r\nexport const UPDATE_LIQUIDACION_EMAIL_FAIL = \"UPDATE_LIQUIDACION_EMAIL_FAIL\";\r\n\r\n// Guardar Liquidacion \r\nexport const UPDATE_LIQUIDACION = \"UPDATE_LIQUIDACION\";\r\nexport const UPDATE_LIQUIDACION_FAIL = \"UPDATE_LIQUIDACION_FAIL\";\r\n\r\nexport const SEND_VALUE = \"SEND_VALUE\";\r\n\r\n// catalogos modalidad\r\nexport const GET_CATALOGOS_MODALIDAD = \"GET_CATALOGOS_MODALIDAD\";\r\nexport const GET_CATALOGOS_MODALIDAD_FAIL = \"GET_CATALOGOS_MODALIDAD_FAIL\";\r\n\r\n// email para inversionista\r\nexport const UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL = \"UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL\";\r\nexport const UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL = \"UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL\";\r\n\r\n// cobrar liquidacion \r\nexport const UPDATE_COBRAR_LIQUIDACION = \"UPDATE_COBRAR_LIQUIDACION\";\r\nexport const UPDATE_COBRAR_LIQUIDACION_FAIL = \"UPDATE_COBRAR_LIQUIDACION_FAIL\";\r\n\r\n// comentario liquidacion \r\nexport const UPDATE_COMENTARIO_LIQUIDACION = \"UPDATE_COMENTARIO_LIQUIDACION\";\r\nexport const UPDATE_COMENTARIO_LIQUIDACION_FAIL = \"UPDATE_COMENTARIO_LIQUIDACION_FAIL\";\r\n\r\n// estado iconos liquidacion \r\nexport const UPDATE_ESTADO_IMPRIMIR_CERTIFICADO = \"UPDATE_ESTADO_IMPRIMIR_CERTIFICADO\";\r\nexport const UPDATE_ESTADO_IMPRIMIR_CERTIFICADO_FAIL = \"UPDATE_ESTADO_IMPRIMIR_CERTIFICADO_FAIL\";\r\n\r\nexport const UPDATE_ESTADO_IMPRIMIR_LIQUIDACION = \"UPDATE_ESTADO_IMPRIMIR_LIQUIDACION\";\r\nexport const UPDATE_ESTADO_IMPRIMIR_LIQUIDACION_FAIL = \"UPDATE_ESTADO_IMPRIMIR_LIQUIDACION_FAIL\";\r\n\r\nexport const UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA = \"UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA\";\r\nexport const UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA_FAIL = \"UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA_FAIL\";\r\n\r\nexport const UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA = \"UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA\";\r\nexport const UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA_FAIL = \"UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA_FAIL\";\r\n\r\n// Impresion de reportes excel\r\nexport const UPDATE_IMPRESION_REPORT_LIQUIDACION = \"UPDATE_IMPRESION_REPORT_LIQUIDACION\";\r\nexport const UPDATE_IMPRESION_REPORT_LIQUIDACION_FAIL = \"UPDATE_IMPRESION_REPORT_LIQUIDACION_FAIL\";\r\n\r\nexport const UPDATE_IMPRESION_REPORT_ADJUDICACION = \"UPDATE_IMPRESION_REPORT_ADJUDICACION\";\r\nexport const UPDATE_IMPRESION_REPORT_ADJUDICACION_FAIL = \"UPDATE_IMPRESION_REPORT_ADJUDICACION_FAIL\";\r\n\r\n\r\n\r\n\r\n\r\n","import { NotificationManager } from \"react-notifications\";\r\nimport {\r\n SET_MESSAGE,\r\n GET_GESTION_CATALOGOS,\r\n GET_GESTION_CATALOGOS_FAIL,\r\n UPDATE_GESTION_CATALOGOS,\r\n UPDATE_GESTION_CATALOGOS_FAIL,\r\n DELETE_GESTION_CATALOGOS,\r\n DELETE_GESTION_CATALOGOS_FAIL,\r\n GET_CATALOGOS_PADRE,\r\n GET_CATALOGOS_PADRE_FAIL,\r\n DELETE_ITEM_CATALOGO,\r\n DELETE_ITEM_CATALOGO_FAIL,\r\n UPDATE_ITEM_CATALOGO,\r\n UPDATE_ITEM_CATALOGO_FAIL,\r\n GET_ITEM_CATALOGOS,\r\n GET_ITEM_CATALOGOS_FAIL,\r\n UPDATE_STATUS_BY_KEY_ADM,\r\n CATALOGOS_INI,\r\n ITEMS_INI,\r\n GET_EMPRESA,\r\n GET_EMPRESA_FAIL,\r\n EMPRESA_INI,\r\n DELETE_EMPRESA,\r\n DELETE_EMPRESA_FAIL,\r\n UPDATE_EMPRESA,\r\n UPDATE_EMPRESA_FAIL,\r\n GET_INVERSIONISTA,\r\n GET_INVERSIONISTA_FAIL,\r\n INVERSIONISTA_INI,\r\n DELETE_INVERSIONISTA,\r\n DELETE_INVERSIONISTA_FAIL,\r\n UPDATE_INVERSIONISTA,\r\n UPDATE_INVERSIONISTA_FAIL,\r\n GET_EMPRESA_INST,\r\n GET_EMPRESA_INST_FAIL,\r\n GET_USUARIOS_INV,\r\n GET_USUARIOS_INV_FAIL,\r\n GET_ORDEN,\r\n GET_ORDEN_FAIL,\r\n GET_ORDEN_USER_ID,\r\n GET_ORDEN_USER_ID_FAIL,\r\n ORDEN_USER_ID_INI,\r\n UPDATE_ORDEN,\r\n UPDATE_ORDEN_FAIL,\r\n DELETE_ORDEN,\r\n DELETE_ORDEN_FAIL,\r\n ORDEN_INI,\r\n GET_EMPRESA_SELECT,\r\n GET_EMPRESA_SELECT_FAIL,\r\n EMPRESA_SELECT_INI,\r\n GET_INVERSIONISTA_SELECT,\r\n GET_INVERSIONISTA_SELECT_FAIL,\r\n GET_EVENTO,\r\n GET_EVENTO_FAIL,\r\n UPDATE_EVENTO,\r\n UPDATE_EVENTO_FAIL,\r\n DELETE_EVENTO,\r\n DELETE_EVENTO_FAIL,\r\n EVENTO_INI,\r\n GET_USUARIO_EMPRESA,\r\n GET_USUARIO_EMPRESA_FAIL,\r\n GET_USUARIO_EMPRESA_SIN_ASIG,\r\n GET_USUARIO_EMPRESA_SIN_ASIG_FAIL,\r\n SELECT_USUARIO_EMPRESA,\r\n SELECT_USUARIO_EMPRESA_FAIL,\r\n DELETE_USUARIO_EMPRESA,\r\n DELETE_USUARIO_EMPRESA_FAIL,\r\n USUARIO_EMPRESA_INI,\r\n UPDATE_USER,\r\n UPDATE_USER_FAIL,\r\n GET_USERS,\r\n GET_USERS_FAIL,\r\n DELETE_USER,\r\n DELETE_USER_FAIL,\r\n USER_INI,\r\n SELECT_EVENTO,\r\n SELECT_EVENTO_FAIL,\r\n GET_PARAMETRO,\r\n GET_PARAMETRO_FAIL,\r\n DELETE_PARAMETRO,\r\n DELETE_PARAMETRO_FAIL,\r\n UPDATE_PARAMETRO,\r\n UPDATE_PARAMETRO_FAIL,\r\n PARAMETRO_INI,\r\n GET_EMPRESA_CON_EVENTO,\r\n GET_EMPRESA_CON_EVENTO_FAIL,\r\n EMPRESA_CON_EVENTO_INI,\r\n GET_TODO_EVENTO,\r\n GET_TODO_EVENTO_FAIL,\r\n\r\n DELETE_EVENTO_EMPRESA,\r\n DELETE_EVENTO_EMPRESA_FAIL,\r\n SELECT_EVENTO_EMPRESA,\r\n SELECT_EVENTO_EMPRESA_FAIL,\r\n GET_EVENTO_EMPRESA_SIN_ASIG,\r\n GET_EVENTO_EMPRESA_SIN_ASIG_FAIL,\r\n GET_EVENTO_EMPRESA,\r\n GET_EVENTO_EMPRESA_FAIL,\r\n EVENTO_EMPRESA_INI,\r\n UPDATE_USER_PROFILE,\r\n UPDATE_USER_PROFILE_FAIL,\r\n ONLY_EVENT_DATA,\r\n ONLY_EVENT_DATA_FAIL,\r\n ONLY_EVENT_DATA_INI,\r\n GET_ADJUDICACION,\r\n GET_ADJUDICACION_FAIL,\r\n ADJUDICACION_INI,\r\n SALA_INI,\r\n INVERSIONISTA_SELECT_INI,\r\n GET_DATA_EMPRESA,\r\n GET_DATA_EMPRESA_FAIL,\r\n GET_DATA_EMPRESA_INI,\r\n\r\n // agg JP\r\n GET_EMPRESA_SELECT_INVERSIONISTA,\r\n GET_EMPRESA_SELECT_INVERSIONISTA_FAIL,\r\n\r\n GET_DATOS_ADJUDICACIONES,\r\n GET_DATOS_ADJUDICACIONES_FAIL,\r\n\r\n UPDATE_IMPRESION_LIQUIDACIONES,\r\n UPDATE_IMPRESION_LIQUIDACIONES_FAIL,\r\n\r\n UPDATE_IMPRESION_TITULOS,\r\n UPDATE_IMPRESION_TITULOS_FAIL,\r\n\r\n UPDATE_IMPRESION_REPORT_RUEDA,\r\n UPDATE_IMPRESION_REPORT_RUEDA_FAIL,\r\n\r\n UPDATE_INVITACION_EMAIL,\r\n UPDATE_INVITACION_EMAIL_FAIL,\r\n\r\n UPDATE_LIQUIDACION_EMAIL,\r\n UPDATE_LIQUIDACION_EMAIL_FAIL,\r\n\r\n UPDATE_LIQUIDACION,\r\n UPDATE_LIQUIDACION_FAIL,\r\n\r\n GET_CATALOGOS_MODALIDAD,\r\n GET_CATALOGOS_MODALIDAD_FAIL,\r\n\r\n UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL,\r\n UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL,\r\n\r\n UPDATE_COBRAR_LIQUIDACION,\r\n UPDATE_COBRAR_LIQUIDACION_FAIL,\r\n\r\n UPDATE_COMENTARIO_LIQUIDACION,\r\n UPDATE_COMENTARIO_LIQUIDACION_FAIL,\r\n\r\n UPDATE_ESTADO_IMPRIMIR_CERTIFICADO,\r\n UPDATE_ESTADO_IMPRIMIR_CERTIFICADO_FAIL,\r\n\r\n\r\n UPDATE_ESTADO_IMPRIMIR_LIQUIDACION,\r\n UPDATE_ESTADO_IMPRIMIR_LIQUIDACION_FAIL,\r\n\r\n UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA,\r\n UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA_FAIL,\r\n\r\n UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA,\r\n UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA_FAIL,\r\n\r\n UPDATE_IMPRESION_REPORT_LIQUIDACION,\r\n UPDATE_IMPRESION_REPORT_LIQUIDACION_FAIL,\r\n\r\n UPDATE_IMPRESION_REPORT_ADJUDICACION,\r\n UPDATE_IMPRESION_REPORT_ADJUDICACION_FAIL,\r\n\r\n\r\n // control jueg\r\n SEND_VALUE\r\n\r\n\r\n\r\n} from \"./types\";\r\nimport AdmService from \"../services/administracion.service\";\r\n\r\nexport const setStatusByKey = (key, value) => (dispatch) => {\r\n dispatch({\r\n type: UPDATE_STATUS_BY_KEY_ADM,\r\n payload: { key: key, value: value },\r\n });\r\n return Promise.resolve();\r\n};\r\n//OBTENER DATA EMPRESA\r\nexport const getDataEmpresaAct = (empresaId) => (dispatch) => {\r\n dispatch({\r\n type: GET_DATA_EMPRESA_INI,\r\n });\r\n return AdmService.getDataEmpresaSer(empresaId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_DATA_EMPRESA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_DATA_EMPRESA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_DATA_EMPRESA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\n// FIN OBTENER DATA EMPRESA \r\n//obtener adjudicacion getAdjudicacionSer\r\nexport const getAdjudicacionAct = (eventoId, empresaId, usuarioId, page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: ADJUDICACION_INI,\r\n });\r\n return AdmService.getAdjudicacionSer(eventoId, empresaId, usuarioId, page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_ADJUDICACION,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_ADJUDICACION_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_ADJUDICACION_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n// fin de obtener adjudicacion\r\n\r\n//obtener datos evento getDataEventSer\r\nexport const getDataEventAct = (eventoId) => (dispatch) => {\r\n dispatch({\r\n type: ONLY_EVENT_DATA_INI,\r\n });\r\n return AdmService.getDataEventSer(eventoId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: ONLY_EVENT_DATA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: ONLY_EVENT_DATA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: ONLY_EVENT_DATA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n//fin de obtener datos evento\r\n\r\n//perfil usuario \r\nexport const updatePerfilUsuario = (usuarioId, nombre, nick, email, clave, image, uploadId) => (dispatch) => {\r\n return AdmService.updatePerfilUsuario(usuarioId, nombre, nick, email, clave, image, uploadId).then(\r\n (response) => {\r\n dispatch({\r\n type: UPDATE_USER_PROFILE,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: response.data.message,\r\n });\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_USER_PROFILE_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n//fin perfil usuario\r\n//EVENTO EMPRESA\r\nexport const deleteEventoEmpresaAct = (eventoEmpresaId, eventoId) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: EVENTO_EMPRESA_INI,\r\n });\r\n return AdmService.deleteEventoEmpresaSer(eventoEmpresaId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getEventoEmpresaAct(eventoId));\r\n\r\n dispatch({\r\n type: DELETE_EVENTO_EMPRESA,\r\n });\r\n NotificationManager.success(\r\n \"Empresa Eliminada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_EVENTO_EMPRESA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_EVENTO_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const selectEventoEmpresaAct = (eventoId, empresaId, usuarioIdRegistro) => (dispatch) => {\r\n dispatch({\r\n type: EVENTO_EMPRESA_INI,\r\n });\r\n return AdmService.selectEventoEmpresaSer(eventoId, empresaId, usuarioIdRegistro).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getEventoEmpresaAct(eventoId));\r\n dispatch(getEventoEmpresaSinAsigAct(eventoId));\r\n dispatch({\r\n type: SELECT_EVENTO_EMPRESA,\r\n });\r\n NotificationManager.success(\r\n \"Empresa guardada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: SELECT_EVENTO_EMPRESA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: SELECT_EVENTO_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getEventoEmpresaSinAsigAct = (eventoId) => (dispatch) => {\r\n dispatch({\r\n type: EVENTO_EMPRESA_INI,\r\n });\r\n return AdmService.getEventoEmpresaSinAsigSer(eventoId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EVENTO_EMPRESA_SIN_ASIG,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EVENTO_EMPRESA_SIN_ASIG_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EVENTO_EMPRESA_SIN_ASIG_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getEventoEmpresaAct = (eventoId) => (dispatch) => {\r\n dispatch({\r\n type: EVENTO_EMPRESA_INI,\r\n });\r\n return AdmService.getEventoEmpresaSer(eventoId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EVENTO_EMPRESA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EVENTO_EMPRESA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EVENTO_EMPRESA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n//FIN EVENTO EMPRESA\r\n\r\n\r\n// obtener eventos y empresas de eventos selccionado\r\nexport const getTodoEventoAct = (usuarioId) => (dispatch) => {\r\n dispatch({\r\n type: EMPRESA_CON_EVENTO_INI,\r\n });\r\n return AdmService.getTodoEventoSer(usuarioId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_TODO_EVENTO,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_TODO_EVENTO_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_TODO_EVENTO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\nexport const getEmpresaConEventoAct = (eventoId, usuarioId, empresaId) => (dispatch) => {\r\n dispatch({\r\n type: EMPRESA_CON_EVENTO_INI,\r\n });\r\n return AdmService.getEmpresaConEventoSer(eventoId, usuarioId, empresaId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EMPRESA_CON_EVENTO,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EMPRESA_CON_EVENTO_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EMPRESA_CON_EVENTO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n// fin btener evento y empresas de ventos seleccionados\r\n\r\n\r\n//Parametros \r\nexport const deleteParametroAct = (parametroId) => (dispatch) => {\r\n\r\n dispatch({\r\n type: PARAMETRO_INI,\r\n });\r\n return AdmService.deleteParametroSer(parametroId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getParametroAct(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: DELETE_PARAMETRO,\r\n });\r\n NotificationManager.success(\r\n \"Parámetro Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_PARAMETRO_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar parámetro\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: DELETE_PARAMETRO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getParametroAct = (page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: PARAMETRO_INI,\r\n });\r\n return AdmService.getParametroSer(page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_PARAMETRO,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_PARAMETRO_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_PARAMETRO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\nexport const updateParametroAct = (\r\n parametroId,\r\n codigo,\r\n nombre,\r\n descripcion,\r\n valor,\r\n usaurioIdRegistro,\r\n estado\r\n) => (dispatch) => {\r\n dispatch({\r\n type: USER_INI,\r\n });\r\n return AdmService.updateParametroSer(\r\n parametroId,\r\n codigo,\r\n nombre,\r\n descripcion,\r\n valor,\r\n usaurioIdRegistro,\r\n estado\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getParametroAct(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_PARAMETRO,\r\n });\r\n NotificationManager.success(\r\n \"Parámetro guardado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n if (response === -1) {\r\n dispatch({\r\n type: UPDATE_PARAMETRO_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_PARAMETRO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n//fin parametros\r\n\r\n//usuarios\r\nexport const deleteUsuario = (usuarioId) => (dispatch) => {\r\n\r\n dispatch({\r\n type: USER_INI,\r\n });\r\n return AdmService.deleteUsuario(usuarioId).then(\r\n (response) => {\r\n\r\n if (response === 0) {\r\n dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: DELETE_USER,\r\n });\r\n NotificationManager.success(\r\n \"Usuario Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_USER_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar usuario\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: DELETE_USER_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getUsuarios = (page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: USER_INI,\r\n });\r\n return AdmService.getUsuarios(page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n console.log(data);\r\n if (data != null) {\r\n dispatch({\r\n type: GET_USERS,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_USERS_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_USERS_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\nexport const updateUsuario = (\r\n usuarioId,\r\n nombre,\r\n nick,\r\n email,\r\n rol,\r\n clave,\r\n estado,\r\n uploadId,\r\n imagenUrl\r\n) => (dispatch) => {\r\n dispatch({\r\n type: USER_INI,\r\n });\r\n return AdmService.updateUsuario(\r\n usuarioId,\r\n nombre,\r\n nick,\r\n email,\r\n rol,\r\n clave,\r\n estado,\r\n uploadId,\r\n imagenUrl\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_USER,\r\n });\r\n NotificationManager.success(\r\n \"Usuario guardado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_USER_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error, correo ya existe!\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -1) {\r\n dispatch({\r\n type: UPDATE_USER_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_USER_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n//fin usuarios\r\n\r\n//USUARIOS EMPRESA\r\nexport const deleteUsuarioEmpresaAct = (usuarioEmpresaId, empresaId) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: USUARIO_EMPRESA_INI,\r\n });\r\n return AdmService.deleteUsuarioEmpresaSer(usuarioEmpresaId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getUsuarioEmpresaAct(empresaId));\r\n\r\n dispatch({\r\n type: DELETE_USUARIO_EMPRESA,\r\n });\r\n NotificationManager.success(\r\n \"Usuario Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_USUARIO_EMPRESA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_USUARIO_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const selectUsuarioEmpresaAct = (empresaId, usuarioId) => (dispatch) => {\r\n dispatch({\r\n type: USUARIO_EMPRESA_INI,\r\n });\r\n return AdmService.selectUsuarioEmpresaSer(empresaId, usuarioId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getUsuarioEmpresaAct(empresaId));\r\n dispatch(getUsuarioEmpresaSinAsigAct(empresaId));\r\n dispatch({\r\n type: SELECT_USUARIO_EMPRESA,\r\n });\r\n NotificationManager.success(\r\n \"Usuario guardado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: SELECT_USUARIO_EMPRESA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: SELECT_USUARIO_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getUsuarioEmpresaSinAsigAct = (empresaId) => (dispatch) => {\r\n dispatch({\r\n type: USUARIO_EMPRESA_INI,\r\n });\r\n return AdmService.getUsuarioEmpresaSinAsigSer(empresaId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_USUARIO_EMPRESA_SIN_ASIG,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_USUARIO_EMPRESA_SIN_ASIG_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_USUARIO_EMPRESA_SIN_ASIG_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getUsuarioEmpresaAct = (empresaId) => (dispatch) => {\r\n dispatch({\r\n type: USUARIO_EMPRESA_INI,\r\n });\r\n return AdmService.getUsuarioEmpresaSer(empresaId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_USUARIO_EMPRESA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_USUARIO_EMPRESA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_USUARIO_EMPRESA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n//FIN USUARIOS EMPRESA\r\n\r\n//evento\r\nexport const deleteEventoAct = (\r\n eventoId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: EVENTO_INI,\r\n });\r\n return AdmService.deleteEventoSer(eventoId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getEventoAct(page, filterField, filer, typeOrd, sort));\r\n\r\n dispatch({\r\n type: DELETE_EVENTO,\r\n });\r\n NotificationManager.success(\r\n \"Evento Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_EVENTO_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_EVENTO_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateEventoAct = (\r\n eventoId,\r\n logoUrl,\r\n modalidadId,\r\n nombreEvento,\r\n logo,\r\n estado,\r\n usuarioRegistroId,\r\n fechaSubasta,\r\n inscripcion,\r\n subasta,\r\n colocacion,\r\n adjudicacion,\r\n nombreEmpresaCorto,\r\n nombreExponente,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: EVENTO_INI,\r\n });\r\n return AdmService.updateEventoSer(\r\n eventoId,\r\n logoUrl,\r\n modalidadId,\r\n nombreEvento,\r\n logo,\r\n estado,\r\n usuarioRegistroId,\r\n fechaSubasta,\r\n inscripcion,\r\n subasta,\r\n colocacion,\r\n adjudicacion,\r\n nombreEmpresaCorto,\r\n nombreExponente\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getEventoAct(page, filterField, filer, typeOrd, sort));\r\n\r\n dispatch({\r\n type: UPDATE_EVENTO,\r\n });\r\n NotificationManager.success(\r\n \"Evento guardado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: UPDATE_EVENTO_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_EVENTO_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getEventoAct = (page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: EVENTO_INI,\r\n });\r\n return AdmService.getEventoSer(page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EVENTO,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EVENTO_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EVENTO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n//fin evento\r\n\r\n// ordenes\r\nexport const getEventoSelectAct = () => (dispatch) => {\r\n return AdmService.getEventoSelectSer().then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: SELECT_EVENTO,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: SELECT_EVENTO_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: SELECT_EVENTO_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\nexport const getEmpresaSelectAct = (eventoId) => (dispatch) => {\r\n dispatch({\r\n type: SALA_INI,\r\n });\r\n return AdmService.getEmpresaSelectSer(eventoId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EMPRESA_SELECT,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EMPRESA_SELECT_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EMPRESA_SELECT_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getInversionistaSelectAct = (empresaId) => (dispatch) => {\r\n dispatch({\r\n type: INVERSIONISTA_SELECT_INI,\r\n });\r\n return AdmService.getInversionistaSelectSer(empresaId).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_INVERSIONISTA_SELECT,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_INVERSIONISTA_SELECT_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_INVERSIONISTA_SELECT_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const deleteOrdenAct = (\r\n ordenId,\r\n empresaId,\r\n eventoId,\r\n userId\r\n) => (dispatch) => {\r\n dispatch({\r\n type: ORDEN_INI,\r\n });\r\n return AdmService.deleteOrdenSer(ordenId).then(\r\n (response) => {\r\n if (response === 0) {\r\n\r\n dispatch(getOrdenPorUsuarioAct(empresaId, eventoId, userId, \"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch(getAdjudicacionAct(eventoId, empresaId, userId, \"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: DELETE_ORDEN,\r\n });\r\n NotificationManager.success(\r\n \"Orden Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_ORDEN_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_INVERSIONISTA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getOrdenAct = (page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: SALA_INI,\r\n });\r\n return AdmService.getOrdenSer(page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_ORDEN,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_ORDEN_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_ORDEN_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getOrdenPorUsuarioAct = (\r\n empresaId,\r\n eventoId,\r\n usuarioId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: ORDEN_USER_ID_INI,\r\n });\r\n return AdmService.getOrdenPorUsuarioSer(\r\n empresaId,\r\n eventoId,\r\n usuarioId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n ).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_ORDEN_USER_ID,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_ORDEN_USER_ID_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_ORDEN_USER_ID_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateOrdenAct = (\r\n ordenId, empresaId, inversionistaId, accionesComprar, precioPagar, estado, usuarioRegistroId, eventoId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: SALA_INI,\r\n });\r\n return AdmService.updateOrdenSer(\r\n ordenId,\r\n empresaId,\r\n inversionistaId,\r\n accionesComprar,\r\n precioPagar,\r\n estado,\r\n usuarioRegistroId,\r\n eventoId\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch({\r\n type: UPDATE_ORDEN,\r\n });\r\n dispatch(getOrdenPorUsuarioAct(empresaId, eventoId, usuarioRegistroId, page, filterField, filer, typeOrd, sort));\r\n NotificationManager.success(\r\n \"Orden guardada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -1) {\r\n dispatch({\r\n type: UPDATE_ORDEN_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n /* if(response ===-2){ \r\n dispatch({\r\n type: UPDATE_ORDEN_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error. Acciones sobrepasan las acciones de la empresa\",\r\n \"Sistema\",\r\n 4000,\r\n () => {},\r\n 4\r\n );\r\n }*/\r\n if (response === -3) {\r\n dispatch({\r\n type: UPDATE_ORDEN_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error. Precio debe ser mayor al precio de oferta\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_ORDEN_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error, precio debe ser menor que el techo máximo\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_ORDEN_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n// fin ordenes\r\n//obtener usuarios\r\nexport const getUsuariosAct = () => (dispatch) => {\r\n dispatch({\r\n type: INVERSIONISTA_INI,\r\n });\r\n return AdmService.getUsuariosSer().then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_USUARIOS_INV,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_USUARIOS_INV_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_USUARIOS_INV_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n// fin obt usuarios\r\n\r\n//obtener instituciones getInstitucionesSer\r\nexport const getInstitucionesEmpresaAct = () => (dispatch) => {\r\n dispatch({\r\n type: EMPRESA_INI,\r\n });\r\n return AdmService.getInstitucionesEmpresaSer().then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EMPRESA_INST,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EMPRESA_INST_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EMPRESA_INST_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n// fin obtener instituciones\r\n\r\n//inversionista\r\nexport const deleteInversionistaAct = (\r\n inversionistaId,\r\n usuarioId,\r\n empresaId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort,\r\n\r\n) => (dispatch) => {\r\n dispatch({\r\n type: INVERSIONISTA_INI,\r\n });\r\n return AdmService.deleteInversionistaSer(inversionistaId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getInversionistaAct(usuarioId, empresaId, page, filterField, filer, typeOrd, sort));\r\n\r\n dispatch({\r\n type: DELETE_INVERSIONISTA,\r\n });\r\n NotificationManager.success(\r\n \"Inversionista Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_INVERSIONISTA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_INVERSIONISTA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateInversionistaAct = (\r\n inversionistaId,\r\n nombre,\r\n apellido,\r\n cedula,\r\n telefono,\r\n direccion,\r\n estado,\r\n usuarioRegistroId,\r\n empresaId,\r\n email,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort,\r\n empresaUsuarioId\r\n) => (dispatch) => {\r\n dispatch({\r\n type: INVERSIONISTA_INI,\r\n });\r\n return AdmService.updateInversionistaSer(\r\n inversionistaId,\r\n nombre,\r\n apellido,\r\n cedula,\r\n telefono,\r\n direccion,\r\n estado,\r\n usuarioRegistroId,\r\n empresaId,\r\n email\r\n ).then(\r\n (response) => {\r\n // Aqui se cambio 0\r\n console.log(\"respuesta de servicio \", response);\r\n //const idEmpres = response;\r\n if (response !== \"\") {\r\n dispatch(getInversionistaAct(usuarioRegistroId, empresaUsuarioId, page, filterField, filer, typeOrd, sort));\r\n dispatch(getInversionistaSelectAct(empresaId,));\r\n\r\n\r\n dispatch({\r\n type: UPDATE_INVERSIONISTA,\r\n });\r\n NotificationManager.success(\" guardado\", \"Sistema\", 3000, () => { }, 4);\r\n } else {\r\n dispatch({\r\n type: UPDATE_INVERSIONISTA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_INVERSIONISTA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getInversionistaAct = (\r\n usuarioId,\r\n empresaId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: INVERSIONISTA_INI,\r\n });\r\n return AdmService.getInversionistaSer(\r\n usuarioId,\r\n empresaId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n ).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_INVERSIONISTA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_INVERSIONISTA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_INVERSIONISTA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n//fin inversionista\r\n\r\n// empresa\r\nexport const deleteEmpresaAct = (\r\n empresaId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: EMPRESA_INI,\r\n });\r\n return AdmService.deleteEmpresaSer(empresaId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getEmpresaAct(page, filterField, filer, typeOrd, sort));\r\n\r\n dispatch({\r\n type: DELETE_EMPRESA,\r\n });\r\n NotificationManager.success(\r\n \"Empresa Eliminada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_EMPRESA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateEmpresaAct = (\r\n empresaId,\r\n nombre,\r\n logo,\r\n direccion,\r\n estado,\r\n usuarioRegistroId,\r\n institucion,\r\n email,\r\n gerente,\r\n operador,\r\n receptor,\r\n numAccionesOferta,\r\n precioInicialPorAccion,\r\n valorUnitarioAccion,\r\n montoMinMejoraPrecio,\r\n comisionOperador,\r\n comisionBVQ,\r\n porcentajePrecioTechoMax,\r\n fechaConstitucion,\r\n fechaInscripcion,\r\n capitalPagado,\r\n divididoEn,\r\n valor,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: EMPRESA_INI,\r\n });\r\n return AdmService.updateEmpresaSer(\r\n empresaId,\r\n nombre,\r\n logo,\r\n direccion,\r\n estado,\r\n usuarioRegistroId,\r\n institucion,\r\n email,\r\n gerente,\r\n operador,\r\n receptor,\r\n numAccionesOferta,\r\n precioInicialPorAccion,\r\n valorUnitarioAccion,\r\n montoMinMejoraPrecio,\r\n comisionOperador,\r\n comisionBVQ,\r\n porcentajePrecioTechoMax,\r\n fechaConstitucion,\r\n fechaInscripcion,\r\n capitalPagado,\r\n divididoEn,\r\n valor,\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getEmpresaAct(page, filterField, filer, typeOrd, sort));\r\n dispatch(getEmpresaSelectAct());\r\n dispatch({\r\n type: UPDATE_EMPRESA,\r\n });\r\n NotificationManager.success(\r\n \"Empresa guardada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: UPDATE_EMPRESA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getEmpresaAct = (page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: EMPRESA_INI,\r\n });\r\n return AdmService.getEmpresaSer(page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_EMPRESA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EMPRESA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EMPRESA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n// fin empresa\r\n\r\n//item catalogo\r\n\r\nexport const deleteItemCatalogo = (\r\n itemId,\r\n catalogoId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: ITEMS_INI,\r\n });\r\n return AdmService.deleteItemCatalogo(itemId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(\r\n getItemCatalogos(catalogoId, page, filterField, filer, typeOrd, sort)\r\n );\r\n\r\n dispatch({\r\n type: DELETE_ITEM_CATALOGO,\r\n });\r\n NotificationManager.success(\r\n \"Item catálogo Eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_ITEM_CATALOGO_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_ITEM_CATALOGO_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateItemCatalogo = (\r\n itemId,\r\n codigo,\r\n nombre,\r\n activo,\r\n editar,\r\n itemPadreId,\r\n catalogoId,\r\n nombreCorto,\r\n estado,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: ITEMS_INI,\r\n });\r\n return AdmService.updateItemCatalogo(\r\n itemId,\r\n codigo,\r\n nombre,\r\n activo,\r\n editar,\r\n itemPadreId,\r\n catalogoId,\r\n nombreCorto,\r\n estado\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(\r\n getItemCatalogos(catalogoId, page, filterField, filer, typeOrd, sort)\r\n );\r\n dispatch({\r\n type: UPDATE_ITEM_CATALOGO,\r\n });\r\n NotificationManager.success(\r\n \"Item catálogo guardado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: UPDATE_ITEM_CATALOGO_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_ITEM_CATALOGO_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getItemCatalogos = (\r\n catalogoId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: ITEMS_INI,\r\n });\r\n return AdmService.getItemsCatalogosPag(\r\n catalogoId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n ).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_ITEM_CATALOGOS,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_ITEM_CATALOGOS_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_ITEM_CATALOGOS_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n// fin item catalogos\r\n//catalogos\r\n\r\nexport const getCatalogosPadre = () => (dispatch) => {\r\n return AdmService.getCatalogosPadre().then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_CATALOGOS_PADRE,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_CATALOGOS_PADRE_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_CATALOGOS_PADRE_FAIL,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const deleteCatalogo = (\r\n catalogoId,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: CATALOGOS_INI,\r\n });\r\n return AdmService.deleteGestionCatalogo(catalogoId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getCatalogos(page, filterField, filer, typeOrd, sort));\r\n\r\n dispatch({\r\n type: DELETE_GESTION_CATALOGOS,\r\n });\r\n NotificationManager.success(\r\n \"Catálogo eliminado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: DELETE_GESTION_CATALOGOS_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al eliminar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: DELETE_GESTION_CATALOGOS_FAIL,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateGestionCatalogo = (\r\n catalogoId,\r\n codigo,\r\n nombre,\r\n activo,\r\n editar,\r\n catalogoPadreId,\r\n estado,\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n) => (dispatch) => {\r\n dispatch({\r\n type: CATALOGOS_INI,\r\n });\r\n return AdmService.updateGestionCatalogo(\r\n catalogoId,\r\n codigo,\r\n nombre,\r\n activo,\r\n editar,\r\n catalogoPadreId,\r\n estado\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getCatalogos(page, filterField, filer, typeOrd, sort));\r\n dispatch(getCatalogosPadre());\r\n dispatch({\r\n type: UPDATE_GESTION_CATALOGOS,\r\n });\r\n NotificationManager.success(\r\n \"Catálogo guardado\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: UPDATE_GESTION_CATALOGOS_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_GESTION_CATALOGOS_FAIL,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const getCatalogos = (page, filterField, filer, typeOrd, sort) => (\r\n dispatch\r\n) => {\r\n dispatch({\r\n type: CATALOGOS_INI,\r\n });\r\n return AdmService.getGestionCatalogosPag(\r\n page,\r\n filterField,\r\n filer,\r\n typeOrd,\r\n sort\r\n ).then(\r\n (data) => {\r\n if (data != null) {\r\n dispatch({\r\n type: GET_GESTION_CATALOGOS,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_GESTION_CATALOGOS_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_GESTION_CATALOGOS_FAIL,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n// AGG JP\r\nexport const getEmpresaSelectInversionista = (usuarioId, empresaId) => (dispatch) => {\r\n return AdmService.getEmpresaSelectInversionista(\r\n usuarioId, empresaId\r\n ).then(\r\n (data) => {\r\n //console.log(\"action\");\r\n //console.log(data);\r\n if (data != null) {\r\n\r\n dispatch({\r\n type: GET_EMPRESA_SELECT_INVERSIONISTA,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_EMPRESA_SELECT_INVERSIONISTA_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EMPRESA_SELECT_INVERSIONISTA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\nexport const getDatosAdjudicaciones = (eventoId, usuarioId, empresaId, page, filterField, filer, typeOrd, sort) => (dispatch) => {\r\n\r\n return AdmService.getDatosAdjudicaciones(eventoId, usuarioId, empresaId, page, filterField, filer, typeOrd, sort).then(\r\n (data) => {\r\n //console.log(data);\r\n if (data != null) {\r\n dispatch({\r\n type: GET_DATOS_ADJUDICACIONES,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_DATOS_ADJUDICACIONES_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_DATOS_ADJUDICACIONES_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\n// Imprimir certificado de liquidaciones\r\nexport const updateImpresionLiquidaciones = (\r\n liquidacionId\r\n\r\n) => (dispatch) => {\r\n return AdmService.updateImpresionLiquidaciones(\r\n liquidacionId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== \"\") {\r\n dispatch({\r\n type: UPDATE_IMPRESION_LIQUIDACIONES\r\n });\r\n NotificationManager.success(\r\n \"Certificado Impreso\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_IMPRESION_LIQUIDACIONES_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al imprimir\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_IMPRESION_LIQUIDACIONES_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n\r\n\r\n\r\n};\r\n\r\n// Imprimir titulos de liquidaciones\r\nexport const updateImpresionTitulos = (\r\n liquidacionId\r\n\r\n) => (dispatch) => {\r\n return AdmService.updateImpresionTitulos(\r\n liquidacionId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== \"\") {\r\n //dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_IMPRESION_TITULOS\r\n });\r\n NotificationManager.success(\r\n \"Titulo Impreso\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_IMPRESION_TITULOS_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al imprimir\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_IMPRESION_TITULOS_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};\r\n\r\n// reporte user rueda\r\nexport const updateImpresionReportRueda = (\r\n adjudicacionId\r\n\r\n) => (dispatch) => {\r\n return AdmService.updateImpresionReportRueda(\r\n adjudicacionId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== \"\") {\r\n //dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_RUEDA\r\n });\r\n NotificationManager.success(\r\n \"Reporte Impreso\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_RUEDA_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al imprimir\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_RUEDA_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};\r\n\r\n// enviar email invitacion\r\nexport const sendEmailInvitacionUser = (\r\n eventoId, usuarioId, empresaId\r\n\r\n) => (dispatch) => {\r\n return AdmService.sendEmailInvitacionUser(\r\n eventoId, usuarioId, empresaId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch({\r\n type: UPDATE_INVITACION_EMAIL\r\n });\r\n NotificationManager.success(\r\n \"Invitación individual enviada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === 1) {\r\n dispatch({\r\n type: UPDATE_INVITACION_EMAIL\r\n });\r\n NotificationManager.success(\r\n \"Invitación grupal enviada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -1) {\r\n dispatch({\r\n type: UPDATE_INVITACION_EMAIL_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al enviar invitación\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_INVITACION_EMAIL_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};\r\n\r\n// enviar email liquidacion\r\nexport const sendLiquidacionUser = (\r\n eventoId, usuarioId\r\n\r\n) => (dispatch) => {\r\n return AdmService.sendLiquidacionUser(\r\n eventoId, usuarioId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== -1) {\r\n //dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_LIQUIDACION_EMAIL\r\n });\r\n NotificationManager.success(\r\n \"Email enviado correctamente\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_LIQUIDACION_EMAIL_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n NotificationManager.error(\r\n \"Error al enviar email\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};\r\n\r\n// liquidaciones crud\r\nexport const updateLiquidacion = (\r\n eventoId\r\n) => (dispatch) => {\r\n return AdmService.updateLiquidacion(\r\n eventoId\r\n ).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch({\r\n type: UPDATE_LIQUIDACION,\r\n });\r\n NotificationManager.success(\r\n \"Liquidación guardada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -1) {\r\n dispatch({\r\n type: UPDATE_LIQUIDACION_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al guardar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_LIQUIDACION_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n// control juego\r\nexport const sendValue = value => {\r\n return {\r\n type: 'SEND_VALUE',\r\n //payload: value\r\n };\r\n};\r\n\r\nexport const getCatalogosModalidad = () => (dispatch) => {\r\n return AdmService.getCatalogosModalidad().then(\r\n (data) => {\r\n console.log(\"modalidades\", data)\r\n if (data != null) {\r\n\r\n dispatch({\r\n type: GET_CATALOGOS_MODALIDAD,\r\n payload: { data: data },\r\n });\r\n return Promise.resolve();\r\n } else {\r\n dispatch({\r\n type: GET_CATALOGOS_MODALIDAD_FAIL,\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_CATALOGOS_MODALIDAD_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\n// enviar email liquidacion inversionista\r\nexport const sendLiquidacionInversionista = (\r\n eventoId, usuarioId\r\n\r\n) => (dispatch) => {\r\n return AdmService.sendLiquidacionInversionista(\r\n eventoId, usuarioId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== -1) {\r\n //dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL\r\n });\r\n NotificationManager.success(\r\n \"Email enviado correctamente\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n NotificationManager.error(\r\n \"Error al enviar email\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};\r\n\r\n\r\nexport const updateCobrarLiquidacion = (\r\n\r\n liquidacionId, eventoId, usuarioId, empresaId\r\n) => (dispatch) => {\r\n\r\n return AdmService.updateCobrarLiquidacion(liquidacionId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getDatosAdjudicaciones(eventoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n //dispatch(getOrdenPorUsuarioAct(empresaId,eventoId,userId,\"0\", \"\", \"\", \"ASC\",\"\"));\r\n //dispatch(getAdjudicacionAct(eventoId, empresaId, userId, \"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_COBRAR_LIQUIDACION,\r\n });\r\n NotificationManager.success(\r\n \"Liquidación cobrada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n } else {\r\n dispatch({\r\n type: UPDATE_COBRAR_LIQUIDACION_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al cobrar\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_COBRAR_LIQUIDACION_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateComentarioLiquidacion = (\r\n\r\n liquidacionId, comentario, eventoId, usuarioId, empresaId\r\n) => (dispatch) => {\r\n return AdmService.updateComentarioLiquidacion(liquidacionId, comentario, eventoId, usuarioId, empresaId).then(\r\n (response) => {\r\n if (response === 0) {\r\n\r\n\r\n dispatch(getDatosAdjudicaciones(eventoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n dispatch({\r\n type: UPDATE_COMENTARIO_LIQUIDACION,\r\n });\r\n // NotificationManager.success(\r\n // \"Comentario guardado\",\r\n //\"Sistema\",\r\n // 3000,\r\n // () => {},\r\n // 4\r\n // );\r\n } else {\r\n dispatch({\r\n type: UPDATE_COMENTARIO_LIQUIDACION_FAIL,\r\n });\r\n // NotificationManager.error(\r\n // \"Error al guardar\",\r\n // \"Sistema\",\r\n // 3000,\r\n // () => {},\r\n // 4\r\n // );\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_COMENTARIO_LIQUIDACION_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n// Estado iconos liquidacion\r\nexport const updateImprimirCertificado = (\r\n liquidacionId, eventoId, usuarioId, empresaId\r\n) => (dispatch) => {\r\n\r\n return AdmService.updateImprimirCertificado(liquidacionId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getDatosAdjudicaciones(eventoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n dispatch({\r\n type: UPDATE_ESTADO_IMPRIMIR_CERTIFICADO,\r\n });\r\n /*NotificationManager.success(\r\n \"Liquidación cobrada\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n } else {\r\n dispatch({\r\n type: UPDATE_ESTADO_IMPRIMIR_CERTIFICADO_FAIL,\r\n });\r\n /*NotificationManager.error(\r\n \"Error al cobrar\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_ESTADO_IMPRIMIR_CERTIFICADO_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\n\r\nexport const updateImprimirLiquidacion = (\r\n liquidacionId, eventoId, usuarioId, empresaId\r\n) => (dispatch) => {\r\n\r\n return AdmService.updateImprimirLiquidacion(liquidacionId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getDatosAdjudicaciones(eventoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n dispatch({\r\n type: UPDATE_ESTADO_IMPRIMIR_LIQUIDACION,\r\n });\r\n /*NotificationManager.success(\r\n \"Liquidación cobrada\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n } else {\r\n dispatch({\r\n type: UPDATE_ESTADO_IMPRIMIR_LIQUIDACION_FAIL,\r\n });\r\n /*NotificationManager.error(\r\n \"Error al cobrar\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_ESTADO_IMPRIMIR_LIQUIDACION_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\nexport const updateEstadoEmailEmpresa = (\r\n liquidacionId, eventoId, usuarioId, empresaId\r\n) => (dispatch) => {\r\n\r\n return AdmService.updateEstadoEmailEmpresa(liquidacionId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getDatosAdjudicaciones(eventoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n dispatch({\r\n type: UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA,\r\n });\r\n /*NotificationManager.success(\r\n \"Liquidación cobrada\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n } else {\r\n dispatch({\r\n type: UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA_FAIL,\r\n });\r\n /*NotificationManager.error(\r\n \"Error al cobrar\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_ESTADO_EMAIL_LIQUIDACION_EMPRESA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const updateEstadoEmailInversionista = (\r\n liquidacionId, eventoId, usuarioId, empresaId\r\n) => (dispatch) => {\r\n\r\n return AdmService.updateEstadoEmailInversionista(liquidacionId).then(\r\n (response) => {\r\n if (response === 0) {\r\n dispatch(getDatosAdjudicaciones(eventoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n dispatch({\r\n type: UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA,\r\n });\r\n /*NotificationManager.success(\r\n \"Liquidación cobrada\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n } else {\r\n dispatch({\r\n type: UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA_FAIL,\r\n });\r\n /*NotificationManager.error(\r\n \"Error al cobrar\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );*/\r\n }\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: UPDATE_ESTADO_EMAIL_LIQUIDACION_INVERSIONISTA_FAIL,\r\n });\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\n\r\n// reporte user rueda\r\nexport const updateImpresionReportLiquidacion = (\r\n eventoId\r\n\r\n) => (dispatch) => {\r\n return AdmService.updateImpresionReportLiquidacion(\r\n eventoId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== \"\") {\r\n //dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_LIQUIDACION\r\n });\r\n NotificationManager.success(\r\n \"Reporte Impreso\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_LIQUIDACION_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al imprimir\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_LIQUIDACION_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};\r\n\r\n\r\n// reporte user rueda\r\nexport const updateImpresionReportAdjudicacion = (\r\n eventoId\r\n\r\n) => (dispatch) => {\r\n return AdmService.updateImpresionReportAdjudicacion(\r\n eventoId\r\n\r\n ).then(\r\n (response) => {\r\n if (response !== \"\") {\r\n //dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"));\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_ADJUDICACION\r\n });\r\n NotificationManager.success(\r\n \"Reporte Impreso\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n if (response === -2) {\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_ADJUDICACION_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error al imprimir\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n }\r\n\r\n return Promise.resolve(response);\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: UPDATE_IMPRESION_REPORT_ADJUDICACION_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n\r\n )\r\n};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAiCAYAAADyK+EUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlFQzkzRDRDMDMxRjExRUJCNjJCQzQ5NEY0MkVCQUEwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlFQzkzRDREMDMxRjExRUJCNjJCQzQ5NEY0MkVCQUEwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUVDOTNENEEwMzFGMTFFQkI2MkJDNDk0RjQyRUJBQTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUVDOTNENEIwMzFGMTFFQkI2MkJDNDk0RjQyRUJBQTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7228DjAAAFH0lEQVR42tSZeWwVVRTG32tr674ghaJFcaEuIJpoSFxiTUWCiqLGRGKVxC0IVUCJyB/uRoMmLhhxFxQlitFiIi5IXNCItiFIBaOoRVtcgFRta1u32ud3mt+Yk8lbbig+2km+pPPmnrnnu/Od5d4mEvm99hIuEz4XfhJO7+sLU6nUf8jXlRSqhOXCn+YDeFnYYyCROUJYIPzmSEToEiYPBDIlwrXCxjQkPD4ShvR3MsXCizmIGHqEGweCzI4XmgIINQqjBkLM3MLq5yL0iFDY38jsJ1wqHM79MKE+gEybML6/kLH0e4awgiw13z27JJaSM+F1Yc+dTeYY4XHhF+fYFuFknlstWRaYDK7YWWTKhLnCdxmcW0JWS1Dt2wMIrRcOzDcZ03ddDsc6hPMZvwtfLxWA2/JNZnKgY6uEwU6O3wbY/EBazxuZ3YVnAwld5+zmBNos5mvmLWbGCt8HOPa1UIGNfaVPAlP1uf8nmUOFecIk7guEOwNX2prNIuzOEzoDbN4VBu1oMrYPuVxoYBIL/FKeHSR8GuCYpe1KlwyeD0zVM3cUmQKy1vI0E81x464S/glwrtbtX06kFuWysa57ZF/IGInRVPG2LHFwFOP3EVYGOPa7UI2NSe7+QIneS4exXWQq6WRzTfKgaw7PEVoDbNa4/Ytt3L4MsNlCstkuMhWsfK5JrKKf6eyeCFzpu53NNYE2r6KAjGSSWeLlYj5vEYGYzCDHlbT5nbQhS+mY20FhGtsWoYYCarH2sHAKf2e7jPgrcTIJp9tMVy0SKM4ySQGpcwHdrhXH1ZCxgrqQOeJkCukg7JDjIYhZ2v8rS0dejNwyXtnI/CGsDUjbRuYwnBnEqneyEOuy2E2hvTFJP8XRU5+uohj7EcL+1IQmuuK9hWYc9OOskv/IarazX+kWFgnfCB/G5rKgLyejNdKEJriPd+LlzNdIjSujX2t12fMQU0YymWyW1Fo8GdP6bGGCcABOrmbVSpGBVeODkdJ4bJopoEPc5uts4QK+7AZhN+FKYrCCjdv7wvA0hbkG25EcTa1i53q0cKvwHC3ODOEEiu86EXoaWfe+dAWORNL6OVaFjeRQ4QNXL9bGatA2UvoS7m8ipu5xZwAb0nTNNm5X4TH322fC5ti4qcKxzNPBPIvxwRQxLUEARpV2El/GqvM7Lv1WuW7XWpqJjKvk3CtFrFS69GyTn4RcbJFuYOGstjzqCM7gfT3IezoyG+0WJsW5wlz+rkclUdZ9j8zb60Q3+/R0HbHp9CI63S632YquKt7xK2SeZMJp1JMUmzJ/7es6htmczMTrT4K4aHBkqh25OuayM7dxtiUpIuC34ay/1hMTo9CznbJsTZOhGiA9Ik3aHsbfdbFnrdiNY18UdQT1sXEmyS+EMcTeIqR2IYsddQWWsucX4Iil1LNiLzKJHMkq2OSbyCqnxcadSlruif3eg02CU5sS96ycIpkg0JvcOL8hG+N2nCWQXoqE7eDjLuFj/Lo5wX47hUxm8YJq1zN1IKWpLtBnMm4KadjHTCQz0/5xxEEPhXUsDr/p5DKLBbHY+lt4AAITSO/RuKvpNLYi26j7nu6SV+9XeSZHXzSRjPNSljHdOPAC93cw2fVMlMluHrXrdshkGleDWqIMaov9mvvvwsJC0uwmSA3GqVZWpY3By/gCjcRYKRO3MK6DL1bLM5PdG3TIX9GKlLnOYg3vs9/fJl43EhdDGdfF75uJP9tTvUU9G46/pRCxd9z3rwADAEklRtOqMe50AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAiCAYAAADyK+EUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE1QzZFMDI5MDMxRjExRUI4OTdBREFGRjM3MEQyRDkwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1QzZFMDJBMDMxRjExRUI4OTdBREFGRjM3MEQyRDkwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTVDNkUwMjcwMzFGMTFFQjg5N0FEQUZGMzcwRDJEOTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTVDNkUwMjgwMzFGMTFFQjg5N0FEQUZGMzcwRDJEOTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4TDgfOAAAFG0lEQVR42uyYS0xbRxSGx2DAmKdxsXk1BpRgmQLhofBYQBcUiW0QCisWXVR0UVVql1U3laqu2GTDkoptEjWijZRENIkU1YoiVVWgIkCLEA/zDi9jjAHb9DtX2HJTTAiQEiGPNLrXc+ee+f9z/nNmrnX7+/vqorQ4dYFajEyMTIxMjMzFaPqenp5/Deh0Ou2yu7trnpyc1G1sbCzHxR3OOT4+XhkMBtXV1aVcLpdKT09XaWlp2vj8/LyS96xWq1pdXVU+n097npubq8bHx1VSUpLyer3a2N7enkpNTVWbm5sqGAxq72VkZKixsTGVmZmpsrKyNBuFhYXa3MTERAUuFQgE4vidsbKykru8vBzQyyLhMGEkOztbJiazWCXE/o62qWJIdXR0qOTkZHUeGy9rWnCabWdnxyYBoI/oI4HIPYOJELnB1Tw7O/tYPCjAI+fo9XptTLwqZN4h4LCfBRf9Er0SEo1Go9FMZEeJ2GNU9IJxrz7yZQkx4f2kvr7+q76+vs8TEhKCIpmQYelCorOzUxUUFKjt7W3td2jOWRGgx4ElifWN9Kv0ppKSkoaUlJSCtbW19YWFhfs4uZfpfzLXH86ZgxzRiODl0pqampvr6+su2D7DQHgBPKFdq6urVV5enjb/rMCLLboRmSfjmA/JiWtE/+PGxsYGrhYwBojAHyMjIz8gq/vk5eqhBQDWWtLD2MjL35OwlycmJm7ZbDYlz2Qht9utKioqVE5Ojtra2lJ+v1+T2kmb2CSiSVzTWSMfW2UUkmsWi6UC6dYQgTTW2CefJ0nuH5H7nZmZmafFxcUKJ0evZkJEKgSy+aK2tvY6C/iQ2iu73a5NkKoiFUuMCJGTJLuAFwdAwMS9lcr1EZGuxHYZ61YD/pI4ThrS3UBGTyhCD6huP0N0VArTcZynVTPK39X29vavhRgvxi8uLpq7u7u1fKirq1NtbW2h4nBsMgKe+QYcZUO+V5BGKaDLIVJTWlpaxL0hcj7gJQpOCNwD06/MfxVSzbH3GSSU2dTU9CUvWw/GEiDX4HA4jOSGNxTakOeOAk/XAT6fn1eQpIOIVgK+CuB25JP2+jvYDQB+cGlp6RFk7uG835gbfFsSYTJsRK1FRUWtkZsmEqtrbW39DAA3JU+mpqYOJSORg4AFCVxmf7LjhHK6lE47EsqLVuUgAPaN5xSaB0T6IfZfmkwmdVISYTJVVVXXAW2JHMQ7Kcjrm7m5uUwW7AfwON2D1/Vo/gPubYAoZmeuBEA5+i8hClaqUOpRZRoZTZMTT5DxL4B+DimXOEt29NOQCJMhAcsA8J/sEoJw+hYPdlBlZgC9SSQSeWQCeA65ZSYXTG9KTIkeZXWUpO6nYt4lAiMUErccU85yf9LIADonmlEhifcd3Dre1jDR80PCOTg4eBsCjzwezwSJvWs2m1W0s96pyeBxw1mEONTw+hp7Qj9HjTvs0r8TjWWKS1Ai+K5IhMlQUXwsajwNIdlHiMIYOXGbHPuJvPgLm1uSC0LiLJ11JBmScZwSXPum0nvIMWQfR3jx/Ivp6ek+ZPSQ4/0cRcIfOoH/798zTqezt7m5OZ9jTP4xz1G7nI9W5ETN9S4kBnjklugcHMXP7+NseHi4Fym4W1pavkPbhdwnvE4Ab/sA62GDlSP3ANcByvYz+Vh6r7406Xto/dbQ0JCHzfJTyrADiYh75dyiowJtktAvyQMnOfCUsQme751nBKI1Xezv2RiZGJkYmRiZ9639I8AAqhyuV4HdD98AAAAASUVORK5CYII=\"","export const ROL_ADMIN = 'A';\r\nexport const ROL_USUARIO = 'U';\r\nexport const ROL_DIRECTOR = 'R';\r\n\r\n\r\n\r\nexport function enableFuncionalityForRole(rol, fun) {\r\n const arrListAdminFun = [\"LIST_USR\", \"CONF_EVENTO\", \"UPORN\", \"ADM\", \"FUNC_ADM\"]\r\n const arrListRuedaFun = [\"LIST_USR\", \"CONF_EVENTO\", \"UPORN\", \"ADM\", \"FUNC_RUED\"]\r\n const arrListCajaFun = [\"LIST_USR\", \"CONF_EVENTO\", \"UPORN\", \"ADM\", \"FUNC_CAJA\"]\r\n const arrListLiquiFun = [\"LIST_USR\", \"CONF_EVENTO\", \"UPORN\", \"ADM\", \"FUNC_LIQUI\"]\r\n const arrListUsuarioFun = [\"USER_ORDEN\"]\r\n const arrListReceptorFun = [\"USER_ORDEN\", \"FUNC_RECEP\"]\r\n const arrListOperadorFun = [\"USER_ORDEN\", \"FUNC_OPER\"]\r\n const arrListRegistradorFun = [\"USER_ORDEN\", \"FUNC_REGIS\"]\r\n\r\n switch (rol) {\r\n case \"ROLE_ADMIN\":\r\n return arrListAdminFun.filter(value => (value === fun)).length > 0\r\n break\r\n case \"ROLE_RUEDA\":\r\n return arrListRuedaFun.filter(value => (value === fun)).length > 0\r\n break\r\n case \"ROLE_USER\":\r\n return arrListUsuarioFun.filter(value => (value === fun)).length > 0\r\n break\r\n\r\n //\r\n case \"ROLE_RECEPTOR\":\r\n return arrListReceptorFun.filter(value => (value === fun)).length > 0\r\n break\r\n case \"ROLE_OPERADOR\":\r\n return arrListOperadorFun.filter(value => (value === fun)).length > 0\r\n break\r\n case \"ROLE_CAJA\":\r\n return arrListCajaFun.filter(value => (value === fun)).length > 0\r\n break\r\n case \"ROLE_LIQUIDACION\":\r\n return arrListLiquiFun.filter(value => (value === fun)).length > 0\r\n break\r\n case \"ROLE_REGISTRADOR\":\r\n return arrListRegistradorFun.filter(value => (value === fun)).length > 0\r\n break\r\n }\r\n}\r\nexport function getRole(roles, type) {\r\n switch (type) {\r\n case \"A\":\r\n return roles.filter(value => (value[\"Codigo\"] === \"ADMIN\")).length > 0\r\n case \"U\":\r\n return roles.filter(value => value[\"Codigo\"] === \"USUARIO\").length > 0\r\n case \"R\":\r\n return roles.filter(value => (value[\"Codigo\"] === \"ADMIN\" || value[\"Codigo\"] === \"RUEDA\")).length > 0\r\n default:\r\n return false\r\n }\r\n}\r\nexport function formatDateTime(dateT) {\r\n\r\n if (dateT != null) {\r\n let date = new Date(dateT)\r\n\r\n let month = (date.getMonth() + 1).toString()\r\n if (month.length === 1)\r\n month = \"0\" + month\r\n\r\n let day = date.getDate().toString()\r\n if (day.length === 1)\r\n day = \"0\" + day\r\n\r\n let hours = date.getHours().toString()\r\n if (hours.length === 1)\r\n hours = \"0\" + hours\r\n\r\n let minutes = date.getMinutes().toString()\r\n if (minutes.length === 1)\r\n minutes = \"0\" + minutes\r\n\r\n let seconds = date.getSeconds().toString()\r\n if (seconds.length === 1)\r\n seconds = \"0\" + seconds\r\n\r\n return day + \"/\" + month + \"/\" + date.getFullYear()\r\n }\r\n else {\r\n return \"\"\r\n }\r\n}\r\n\r\n\r\nexport function formatTime(dateT) {\r\n let date = new Date(dateT);\r\n\r\n let hours = date.getHours();\r\n\r\n let minutes = date.getMinutes().toString().padStart(2, \"0\");\r\n\r\n //let amPm = hours < 12 ? \"AM\" : \"PM\";\r\n if (hours === 0) {\r\n hours = 12;\r\n }\r\n\r\n return hours.toString().padStart(2, \"0\") + \":\" + minutes;\r\n}\r\n\r\nexport function time(dateT) {\r\n let date = new Date(dateT)\r\n\r\n let month = (date.getMonth() + 1).toString()\r\n if (month.length == 1)\r\n month = \"0\" + month\r\n\r\n let day = date.getDate().toString()\r\n if (day.length == 1)\r\n day = \"0\" + day\r\n\r\n let hours = date.getHours().toString()\r\n if (hours.length == 1)\r\n hours = \"0\" + hours\r\n\r\n let minutes = date.getMinutes().toString()\r\n if (minutes.length == 1)\r\n minutes = \"0\" + minutes\r\n\r\n let seconds = date.getSeconds().toString()\r\n if (seconds.length == 1)\r\n seconds = \"0\" + seconds\r\n\r\n return day + \"/\" + month + \"/\" + date.getFullYear() + \" \" + hours + \":\" + minutes + \":\" + seconds\r\n}\r\n\r\nexport function generateMessageAdm(strType) {\r\n return JSON.stringify({ \"ADM\": strType })\r\n}\r\n\r\nexport function secondFormatHour(seconds) {\r\n if (seconds < 0)\r\n return \"00:00\"\r\n return new Date(seconds * 1000).toISOString().slice(14, 19);\r\n}\r\nexport function secondFormatComplete(seconds) {\r\n if (seconds < 0)\r\n return \"00:00:00\"\r\n return new Date(seconds * 1000).toISOString().slice(11, 19);\r\n}\r\n\r\nexport function formatNumber(value) {\r\n if (value != null) {\r\n return Number.parseFloat(value).toFixed(2)\r\n }\r\n else {\r\n return \"\"\r\n }\r\n\r\n}","import React, {useCallback} from 'react';\r\nimport {useDropzone} from 'react-dropzone';\r\nimport '../../config'\r\nimport axios from 'axios';\r\n\r\nlet reloadDocuments = null\r\n\r\nfunction UploadFile(props) {\r\n reloadDocuments = props.reloadDocuments\r\n\r\n console.log(reloadDocuments);\r\n\r\n const onDrop = useCallback((acceptedFiles) => {\r\n \r\n acceptedFiles.forEach((file) => {\r\n const reader = new FileReader()\r\n\r\n reader.onabort = () => console.log('file reading was aborted')\r\n reader.onerror = () => console.log('file reading has failed')\r\n reader.onload = () => {\r\n axios.post(global.config.URL_SERVICE + 'UploadFile?fileName=' + file.path,reader.result,\r\n {\r\n headers: {'Content-Type': 'multipart/form-data'},\r\n onUploadProgress: function(progressEvent) {\r\n var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total );\r\n console.log(percentCompleted)\r\n } \r\n }\r\n ).then(function(result){ \r\n reloadDocuments(result.data.replace(\"<string xmlns=\\\"http://schemas.microsoft.com/2003/10/Serialization/\\\">\",\"\").replace(\"</string>\",\"\"))\r\n })\r\n .catch(function(){\r\n console.log('FAILURE!!');\r\n });\r\n }\r\n reader.readAsArrayBuffer(file)\r\n })\r\n }, [])\r\n const {acceptedFiles, getRootProps, getInputProps} = useDropzone({onDrop})\r\n \r\n const files = acceptedFiles.map(file => (\r\n <div></div> \r\n )) \r\n\r\n\r\n const filesSave = props.uploadId!=undefined && props.uploadId!==null && props.uploadId.toString()!==\"-1\" && props.uploadId!==\"0\"? \r\n <li>\r\n <div className='containerDelete'><a href={global.config.URL_UPLOAD + props.fileNombreUrl} target='_blank'>{props.fileNombre}</a>\r\n <i className=\"far fa-times-circle cursor-pointer\" onClick={() => {\r\n props.reloadDocuments(\"{\\\"UploadId\\\":\\\"-1\\\",\\\"fileNombre\\\":\\\"\\\",\\\"fileNombreUrl\\\":\\\"\\\"}\") \r\n }}></i>\r\n </div>\r\n </li>\r\n :\"\"\r\n return (\r\n <section className=\"container-upload\">\r\n <div {...getRootProps({className: 'dropzone'})}> \r\n {props.disableUpload!==false?<input {...getInputProps()} className=\"selectFile\"/>:\"\"}\r\n <div>\r\n {/*<img src={img1} alt=\"Cédula\" title=\"texto\"/>*/}\r\n {props.disableUpload!==false?<div className=\"boxStyleSelect\"> <a href='/#' onClick={e=>e.preventDefault()}><b>Pulsa aquà para subir</b></a></div>:\"\"}\r\n </div> \r\n </div> \r\n <aside className='archivosctl'>\r\n <ul>{files}{filesSave}</ul> \r\n </aside>\r\n </section>\r\n );\r\n }\r\n \r\n export default UploadFile;","import axios from \"axios\";\r\nimport '../config'\r\n\r\nconst register = (username, email, password) => { \r\n return axios.post(global.config.URL_SERVICE + \"signup\", {\r\n username,\r\n email,\r\n password,\r\n },{headers: {'Content-Type': 'application/json; charset=utf-8',}});\r\n};\r\n\r\nconst login = (username, password) => {\r\n console.log(process.env)\r\n const params = {\"strJson\":'{\"Usuario\":\"' + username + '\",\"Clave\":\"' + password + '\"}'}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"ValidarUsuario\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n //itemR = itemR.substring(1,itemR.length-1)\r\n const result = JSON.parse(itemR);\r\n if(result.length>0){\r\n if (result[0].accessToken) {\r\n localStorage.setItem(\"user\", JSON.stringify(result[0]));\r\n console.log(result[0])\r\n }\r\n \r\n return result[0]; \r\n }else{\r\n return null\r\n }\r\n //return null;\r\n });\r\n};\r\n\r\nconst logout = () => {\r\n localStorage.removeItem(\"user\");\r\n};\r\n\r\nexport default {\r\n register,\r\n login,\r\n logout,\r\n};\r\n","export default function authHeader() {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\n if (user && user.accessToken) {\r\n // For Spring Boot back-end\r\n // return { Authorization: \"Bearer \" + user.accessToken };\r\n\r\n // for Node.js Express back-end\r\n return { \"x-access-token\": user.accessToken };\r\n } else {\r\n return {};\r\n }\r\n}\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport Websocket from 'react-websocket';\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport ImageVideoGallery from \"../components/general/ImageVideoGallery\";\r\nimport { NotificationContainer } from \"react-notifications\";\r\nimport { showBanner } from \"../actions/banner\";\r\nimport { getEventosPorUsuario, setEventoObject } from \"../actions/juego\";\r\nimport Catalogos from \"./general/Catalogos\";\r\nimport Empresa from \"./general/Empresa\";\r\nimport Inversionista from \"./general/Inversionista\";\r\nimport Usuario from \"./general/Usuario\";\r\nimport Evento from \"./general/Evento\";\r\nimport Parametro from \"./general/Parametro\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport DataGrid, { Column } from \"@inovua/reactdatagrid-community\";\r\nimport \"@inovua/reactdatagrid-community/base.css\";\r\nimport \"@inovua/reactdatagrid-community/theme/amber-dark.css\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { enableFuncionalityForRole } from \"./general/Util\";\r\nimport \"@szhsin/react-menu/dist/index.css\";\r\nimport { formatDateTime, formatNumber } from \"./general/Util\";\r\nimport Loading from \"./general/LoadingContainer\";\r\nimport GestionOrden from \"./general/GestionOrden\";\r\nimport EditarOrden from \"./general/EditarOrden\";\r\nimport VerEmpresas from \"./general/VerEmpresas\";\r\nimport Adjudicacion from \"./general/Adjudicacion\";\r\nimport { getAdjudicacionAct, getDatosAdjudicaciones, getEmpresaConEventoAct, getOrdenPorUsuarioAct, updateLiquidacion } from \"../actions/administracion\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from \"@szhsin/react-menu\";\r\nimport { UseLocalStorage } from \"./general/UseLocalStorage\";\r\nimport \"@szhsin/react-menu/dist/index.css\";\r\nimport Ticker, { FinancialTicker, NewsTicker } from \"nice-react-ticker\";\r\nimport Liquidaciones from \"./general/Liquidaciones\";\r\nimport ReporteUserRueda from \"./general/ReporteUserRueda\";\r\nimport ControlJuego from \"./general/ControlJuego\";\r\nimport UsuarioActivo from \"./general/UsuarioActivo\";\r\nimport xml2js from 'xml2js'\r\nimport { getTitulosEventoById, setStatusByKey, getNegociacionesPorUsuario, getVariacionPrecio } from \"../actions/juego\";\r\nimport { NotificationManager } from \"react-notifications\";\r\nimport { toggleBotonAdjudicacion, toggleBotonApertura, toggleBotonSubasta } from \"../actions/controlJuego\";\r\nimport '../config'\r\nlet refWebSocket = null\r\nlet refUsuario = null\r\nlet refControlJuego = null\r\n\r\nconst Sala = (props) => {\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const [gridStyle,setGridStyle] = useState({ minHeight: \"calc(100vh/2 - 140px)\", height: \"100%\" });\r\n const dispatch = useDispatch();\r\n let history = useHistory();\r\n const [loadEmpresaConEvento, setLoadEmpresaEvento] = useState(false);\r\n const { listEventos: currentEventos, eventoSeleccionado: eventoSeleccionado } = useSelector((state) => state.juego);\r\n const { listaEmpresaConEvento, loadingSala, loadingAdjudicacion, loadingOrdenUserId, loadingEmpresaConEvento, loadingInversionistaSelect } = useSelector((state) => state.administracion);\r\n\r\n\r\n const [openVentanaControl, setOpenVentanaControl] = useState(true);\r\n const [openVentanaUsuario, setOpenVentanaUsuario] = useState(true);\r\n\r\n let [openCatalogo, setOpenCatalogo] = useState(\"\");\r\n let [openEmpresa, setOpenEmpresa] = useState(\"\");\r\n let [openInversionista, setOpenInversionista] = useState(\"\");\r\n let [openUsuario, setOpenUsuario] = useState(\"\");\r\n let [openEvento, setOpenEvento] = useState(\"\");\r\n let [openParametro, setOpenParametro] = useState(\"\");\r\n let [openLiquidaciones, setOpenLiquidaciones] = useState(\"\");\r\n let [openReporte, setOpenReporte] = useState(\"\");\r\n let [openControlJuego, setOpenControlJuego] = useState(\"\");\r\n let [openUsuarioActivo, setOpenUsuarioActivo] = useState(\"\");\r\n\r\n let [openProfile, setOpenProfile] = useState(\"\");\r\n let [even, setEven] = UseLocalStorage('text', \"\")\r\n let [loadEvent, setLoadEvent] = useState(false)\r\n\r\n //funcionalidades\r\n let [showEmpresa] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"USR_DASH_EMP\") : false);\r\n const { datosjuego } = useSelector(state => state.controlJuego);\r\n //console.log(\"datosjuego\", datosjuego)\r\n const [isDisabled, setIsDisabled] = useState(true)\r\n //console.log(\"isDisabled\", isDisabled)\r\n const [isWindowOpen, setIsWindowOpen] = useState(false);\r\n const [showMenu, setShowMenu] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n setIsDisabled(datosjuego && datosjuego[\"EstadoEjecucion\"] !== \"S\")\r\n }, [datosjuego])\r\n // WS\r\n let [userList, setUserList] = useState([]);\r\n let [textoNotificacionEvento, setTextoNotificacionEvento] = useState(\"\");\r\n let [hideMessageEvent, setHideMessageEvent] = useState(true);\r\n let [timeOutOrn, setTimeOutOrn] = useState(0);\r\n let [listMessage, setListMessage] = useState([]);\r\n let [pasoJugada, setPasoJugada] = useState(\"\");\r\n let [jugada, setJugada] = useState(1);\r\n let [iniciaJuego, setIniciaJuego] = useState(true);\r\n let [startJuego, setStartJuego] = useState(false);\r\n const { valueVisibleSelectEditarOrden: estadoVisibleEditarOrden } = useSelector(state => state.controlJuego);\r\n const [number, setNumber] = useState(0);\r\n const [maximizeEmpresa, setMaximizeEmpresa] = useState(false);\r\n const [maximizeAdj, setMaximizeAdj] = useState(false);\r\n const [maximizeOrd, setMaximizeOrd] = useState(false);\r\n const [maximizeRegis, setMaximizeRegis] = useState(false);\r\n const [empresaFilterGen, setEmpresaFilterGen] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setDatosTicket(listaEmpresaConEvento !== null ? listaEmpresaConEvento['emp3']!==undefined ? listaEmpresaConEvento['emp3'] : listaEmpresaConEvento['emp1'] : [])\r\n }, [listaEmpresaConEvento])\r\n\r\n useEffect(() => {\r\n if(maximizeEmpresa)\r\n setGridStyle({ minHeight: \"100%\", height: \"calc(100vh - 220px)\" })\r\n else\r\n setGridStyle({ minHeight: \"calc(100vh/2 - 140px)\", height: \"100%\" })\r\n }, [maximizeEmpresa]) \r\n \r\n if (eventoSeleccionado !== null && loadEvent === false && currentUser !== null) {\r\n setLoadEvent(true)\r\n setEven(eventoSeleccionado);\r\n //console.log(even)\r\n }\r\n let [admFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_ADM\")\r\n : false\r\n );\r\n let [userFuntion] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"USER_ORDEN\")\r\n : false\r\n );\r\n\r\n // Nuevos usuarios\r\n let [userRuedaFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_RUED\")\r\n : false\r\n );\r\n\r\n let [userCajaFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_CAJA\")\r\n : false\r\n );\r\n\r\n let [userLiquidacionFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_LIQUI\")\r\n : false\r\n );\r\n\r\n let [userRegistradorFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_REGIS\")\r\n : false\r\n );\r\n\r\n\r\n const openCatalogosClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"OPEN\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeCatalogosClick = () => setOpenCatalogo(\"\");\r\n const openEmpresaClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"OPEN\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeEmpresaClick = () => setOpenEmpresa(\"\");\r\n const openInversionistaClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"OPEN\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeInversionistaClick = () => setOpenInversionista(\"\");\r\n const openUsuarioClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"OPEN\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeUsuarioClick = () => setOpenUsuario(\"\");\r\n const openEventoClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"OPEN\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeEventoClick = () => setOpenEvento(\"\");\r\n const openParametroClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"OPEN\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeParametroClick = () => setOpenParametro(\"\");\r\n\r\n //\r\n const openLiquidacionesClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"OPEN\");\r\n setOpenReporte(\"\");\r\n };\r\n const closeLiquidacionesClick = () => setOpenLiquidaciones(\"\");\r\n\r\n const openReporteClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"OPEN\");\r\n };\r\n const closeReporteClick = () => setOpenReporte(\"\");\r\n const openControlJuegoClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n setOpenControlJuego(\"OPEN\");\r\n setOpenUsuarioActivo(\"\");\r\n };\r\n const closeControlJuegoClick = () => setOpenControlJuego(\"\");\r\n\r\n const openUsuarioActivoClick = (e) => {\r\n e.preventDefault();\r\n setOpenCatalogo(\"\");\r\n setOpenEmpresa(\"\");\r\n setOpenEvento(\"\");\r\n setOpenInversionista(\"\");\r\n setOpenParametro(\"\");\r\n setOpenUsuario(\"\");\r\n setOpenLiquidaciones(\"\");\r\n setOpenReporte(\"\");\r\n setOpenUsuarioActivo(\"OPEN\");\r\n };\r\n const closeUsuarioActivoClick = () => setOpenUsuarioActivo(\"\");\r\n\r\n\r\n //\r\n const openSelectEventoClick = (e) => {\r\n e.preventDefault();\r\n history.push(\"/seleccionarEvento\");\r\n };\r\n\r\n\r\n\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaEmpresaConEvento !== null ? listaEmpresaConEvento : []]);\r\n\r\n let [datosTicket, setDatosTicket] = useState(listaEmpresaConEvento !== null ? listaEmpresaConEvento['emp3']!==undefined ? listaEmpresaConEvento['emp3'] : listaEmpresaConEvento['emp1'] : []);\r\n \r\n\r\n if (listaEmpresaConEvento !== null && listaEmpresaConEvento['emp1'] != gridInfor && empresaFilter === \"\") {\r\n setGridInfor(listaEmpresaConEvento['emp1']);\r\n\r\n }\r\n \r\n \r\n //console.log(\"even\",even)\r\n if (loadEmpresaConEvento === false && even !== null && currentUser !== null) {\r\n setLoadEmpresaEvento(true);\r\n dispatch(getEmpresaConEventoAct(even, currentUser[\"userId\"], currentUser[\"EmpresaId\"]))\r\n .then(() => { })\r\n .catch(() => { });\r\n }\r\n\r\n const [selected, setSelected] = useState(0);\r\n const onSelectionChange = (data) => {\r\n setSelected(data.selected)\r\n if (gridInfor != null) {\r\n let empFil = gridInfor.filter(x => x.EmpresaId == data.selected)\r\n\r\n if (empFil != null && empFil.length > 0)\r\n setEmpresaFilterGen(empFil[0].NombreEmpresa)\r\n }\r\n }\r\n\r\n\r\n if (selected > 0 && listaEmpresaConEvento) {\r\n // console.log(\"entro\")\r\n\r\n //let empresa = listaEmpresaConEvento.find(x => x.EmpresaId === selected[0])\r\n //console.log(empresa)\r\n\r\n }\r\n else {\r\n // console.log(\"no hay datos\")\r\n }\r\n\r\n let [boolListEmpresaEvento, setboolListEmpresaEvento] = useState(false)\r\n if (listaEmpresaConEvento !== null && boolListEmpresaEvento == false) {\r\n //listaEmpresaConEvento.forEach((empresa) => {\r\n //console.log(empresa)\r\n\r\n //})\r\n }\r\n\r\n //console.log(listaEmpresaConEvento)\r\n\r\n\r\n\r\n function filterCatalogo(nego, empresaFilter) {\r\n setGridInfor(nego['emp1'].filter(function (item) {\r\n if (item[\"NombreEmpresa\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n\r\n\r\n\r\n let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: \"NombreEmpresa\", header: \"EMPRESA\", defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\" },\r\n { name: \"NumAccionesOferta\", header: \"ACCIONES\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\" },\r\n { name: \"PrecioInicialPorAccion\", header: \"PRECIO\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\" },\r\n ];\r\n\r\n if (!currentUser) {\r\n return <Redirect to=\"/login\" />;\r\n }\r\n // agregados para timer global\r\n function showMessageEvent(str, time) {\r\n setTextoNotificacionEvento(str)\r\n setHideMessageEvent(false)\r\n setTimeout(() => {\r\n setHideMessageEvent(true)\r\n }, parseInt(time) * 1000);\r\n }\r\n\r\n function setCodigoModalidad(mod) {\r\n dispatch(setStatusByKey(\"modalidadCodigo\", mod))\r\n }\r\n\r\n function sendMessageLocal(msg) {\r\n refWebSocket.sendMessage(msg)\r\n }\r\n function sendMessageChat(msg, clientId) {\r\n addMessageHistory(msg, clientId, 'S')\r\n refWebSocket.sendMessage(msg)\r\n }\r\n\r\n function addMessageHistory(msg, clientId, type) {\r\n let lsTmp = listMessage[clientId]\r\n if (listMessage[clientId] === undefined || listMessage[clientId] === null)\r\n lsTmp = []\r\n\r\n let itemMsg = {};\r\n itemMsg[\"msg\"] = msg;\r\n itemMsg[\"tipo\"] = type;\r\n lsTmp.push(itemMsg)\r\n listMessage[clientId] = lsTmp\r\n setListMessage(listMessage)\r\n }\r\n\r\n // recuperamos de WS\r\n\r\n\r\n const handleData = (data) => {\r\n if (data === undefined || data.trim() === \"\") return;\r\n\r\n let result = JSON.parse(data);\r\n console.log(\"RESUL DE WS\", result)\r\n\r\n switch (result[\"TYPE\"]) {\r\n\r\n case \"MSG_ERR\":\r\n NotificationManager.error(\r\n \"No se puede iniciar aún el evento, está fuera de fecha de inicio\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n break\r\n case \"EVENT\":\r\n let initObject = JSON.parse(result[\"MSG\"]);\r\n console.log(\"initObject[event]\",initObject[\"event\"])\r\n\r\n dispatch(setEventoObject(initObject[\"event\"]))\r\n\r\n switch (initObject[\"EstadoEjecucion\"]) {\r\n case \"I\":\r\n\r\n break\r\n case \"S\":\r\n\r\n break\r\n case \"J\":\r\n\r\n break\r\n case \"F\":\r\n\r\n break\r\n default:\r\n dispatch(toggleBotonApertura())\r\n }\r\n break\r\n case \"JUGADA\":\r\n let objectJugada = JSON.parse(result[\"MSG\"]);\r\n console.log(objectJugada)\r\n dispatch(setEventoObject(objectJugada[\"event\"]))\r\n break\r\n case \"ACTUALIZAR\":\r\n window.location.reload(false);\r\n break\r\n case \"START\":\r\n dispatch(setEventoObject(datosjuego))\r\n\r\n break\r\n case \"ACTUALIZAR_ORDEN\":\r\n \r\n let usuarioObject = JSON.parse(result[\"MSG\"]);\r\n console.log(usuarioObject)\r\n\r\n \r\n dispatch(getOrdenPorUsuarioAct(currentUser[\"EmpresaId\"], eventoSeleccionado, currentUser[\"userId\"], \"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n dispatch(getAdjudicacionAct(eventoSeleccionado, currentUser[\"EmpresaId\"], currentUser[\"userId\"], \"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n // agg\r\n dispatch(getDatosAdjudicaciones(eventoSeleccionado, currentUser[\"userId\"], currentUser[\"EmpresaId\"], \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n // agg para editar datos empresa\r\n dispatch(getEmpresaConEventoAct(eventoSeleccionado, currentUser[\"userId\"], currentUser[\"EmpresaId\"]))\r\n break\r\n\r\n\r\n case \"LIST_USR\":\r\n //if(!enableUserList) return\r\n let parser = new xml2js.Parser();\r\n parser.parseString(result[\"MSG\"],\r\n function (err, result) {\r\n try {\r\n var usuarios = result[\"CustomType\"][\"userList\"][0][\"d2p1:KeyValueOfstringClienteListwMlRxXJ_S\"]\r\n usuarios.sort(function (a, b) {\r\n return a[\"d2p1:Value\"][0][\"strNick\"][0].localeCompare(b[\"d2p1:Value\"][0][\"strNick\"][0]);\r\n })\r\n console.log(\"Lista de usuarios\", usuarios)\r\n setUserList(usuarios)\r\n } catch (ex) {\r\n\r\n }\r\n }\r\n );\r\n break\r\n\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"container-fluid menuSidebar\">\r\n <Websocket\r\n ref={Websocket => { refWebSocket = Websocket; }}\r\n url={global.config.URL_WEB_SOCKET + eventoSeleccionado + \"?USR=\" + currentUser[\"userId\"] + \"&CS=1&ROL=\" + currentUser[\"role\"] + \"&UNAME=\" + encodeURIComponent(currentUser[\"displayName\"]) + \"&IMG=\"}\r\n onMessage={handleData} />\r\n\r\n {openEmpresa === \"OPEN\" ? (\r\n <Empresa closeEmpresaClick={closeEmpresaClick} eventoSeleccionado={eventoSeleccionado} sendMessage={sendMessageLocal} />\r\n ) : (\r\n \"\"\r\n )}\r\n {openCatalogo === \"OPEN\" ? (\r\n <Catalogos closeCatalogosClick={closeCatalogosClick} />\r\n ) : (\r\n \"\"\r\n )}\r\n {userRegistradorFuncionality === true || openInversionista === \"OPEN\" ? (\r\n <Inversionista closeInversionistaClick={closeInversionistaClick} eventoSeleccionado={eventoSeleccionado} usuarioId={currentUser[\"userId\"]} empresaId={currentUser[\"EmpresaId\"]} />\r\n ) : (\r\n \"\"\r\n )}\r\n {openUsuario === \"OPEN\" ? (\r\n <Usuario closeUsuarioClick={closeUsuarioClick} />\r\n ) : (\r\n \"\"\r\n )}\r\n {openEvento === \"OPEN\" ? (\r\n <Evento closeEventoClick={closeEventoClick} />\r\n ) : (\r\n \"\"\r\n )}\r\n {openParametro === \"OPEN\" ? (\r\n <Parametro closeParametroClick={closeParametroClick} />\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n\r\n {openReporte === \"OPEN\" && (userRuedaFuncionality === true || admFuncionality === true) ? (\r\n <ReporteUserRueda closeReporteClick={closeReporteClick} eventoSeleccionado={eventoSeleccionado} />\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n\r\n {/*{userCajaFuncionality === true || userLiquidacionFuncionality === true || openLiquidaciones === \"OPEN\" ? (*/ }\r\n {openLiquidaciones === \"OPEN\" ? (\r\n <Liquidaciones closeLiquidacionesClick={closeLiquidacionesClick} eventoSeleccionado={eventoSeleccionado} usuarioId={currentUser[\"userId\"]} empresaId={currentUser[\"EmpresaId\"]} sendMessage={sendMessageLocal}/>\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {(userRuedaFuncionality === true || admFuncionality === true) ? (\r\n <ControlJuego ref={ControlJuego => { refControlJuego = ControlJuego; }}\r\n closeControlJuegoClick={closeControlJuegoClick}\r\n sendMessage={sendMessageLocal}\r\n sendMessageChat={sendMessageChat}\r\n listMessage={listMessage}\r\n startJuego={startJuego} />\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n\r\n {(userRuedaFuncionality === true || admFuncionality === true) ? (\r\n <UsuarioActivo ref={UsuarioActivo => { refUsuario = UsuarioActivo; }}\r\n closeUsuarioActivoClick={closeUsuarioActivoClick} userList={userList} />\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n\r\n <div >\r\n\r\n <div className=\"btnMenu\" onClick={() => setShowMenu(!showMenu)}>\r\n <i className=\"fa fa-bars\"></i>\r\n </div>\r\n\r\n {showMenu == true ? (\r\n <div className=\"crypt-side-menu crypt-left-sided crypt-floatable-menu bg-white\">\r\n\r\n <ul>\r\n <li>\r\n <a href=\"\">\r\n <i className=\"pe-7s-graph1\"></i> INICIO\r\n </a>\r\n </li>\r\n </ul>\r\n <hr />\r\n {/*<p>Configuración</p>*/}\r\n <ul>\r\n\r\n\r\n <li>\r\n <a href=\"#\" onClick={openSelectEventoClick}>\r\n <i className=\"pe-7s-gym\"></i>Seleccionar Evento\r\n </a>\r\n </li>\r\n\r\n {admFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openCatalogosClick}>\r\n <i className=\"pe-7s-gym\"></i>Catálogo\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n {admFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openEmpresaClick}>\r\n <i className=\"pe-7s-gym\"></i>Empresa\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n {admFuncionality === true || userRuedaFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openEventoClick}>\r\n <i className=\"pe-7s-gym\"></i>Eventos\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n {admFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openInversionistaClick}>\r\n <i className=\"pe-7s-gym\"></i>Inversionista\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n {admFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openParametroClick}>\r\n <i className=\"pe-7s-gym\"></i>Parámetros\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n {admFuncionality === true || userRuedaFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openUsuarioClick}>\r\n <i className=\"pe-7s-gym\"></i>Usuarios\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n </ul>\r\n <hr />\r\n\r\n <ul>\r\n {admFuncionality === true || userRuedaFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openReporteClick}>\r\n <i className=\"pe-7s-gym\"></i>Reportes\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {admFuncionality === true || userRuedaFuncionality === true || userCajaFuncionality === true || userLiquidacionFuncionality === true ? (\r\n <li>\r\n <a href=\"#\" onClick={openLiquidacionesClick}>\r\n <i className=\"pe-7s-wallet\"></i>Liquidaciones\r\n </a>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n </ul>\r\n </div>\r\n ) : <div className=\"crypt-side-menu2 crypt-left-sided crypt-floatable-menu bg-white\">\r\n </div>}\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n {/*<button onClick={handleToggle} className=\"btn_finalizar\" >Finalizar juego</button>*/}\r\n <div className=\"tiker-acciones-cont\">\r\n <Ticker slideSpeed={datosTicket && datosTicket.length>5? datosTicket.length * 2 : 10} isNewsTicker={false} show={true} >\r\n {datosTicket != null ?\r\n datosTicket.map(element => {\r\n return <FinancialTicker\r\n id={element.EmpresaId}\r\n change={true}\r\n symbol={element.NombreEmpresa}\r\n lastPrice={formatNumber(element.PrecioInicialPorAccion)}\r\n percentage={formatNumber(element.PrecioInicialPorAccion)}\r\n currentPrice={element.NumAccionesOferta}\r\n className='ticker-text'\r\n />\r\n }) :\"\"\r\n }\r\n </Ticker>\r\n </div>\r\n {admFuncionality === true && eventoSeleccionado || userFuntion === true || userRuedaFuncionality === true || userLiquidacionFuncionality ===true || userCajaFuncionality ===true ? (\r\n\r\n <div className=\"\">\r\n\r\n <div className={['', loadingAdjudicacion !== true && loadingOrdenUserId !== true && loadingEmpresaConEvento !== true ? \"displaynone\" : \"\"].join(' ')}>\r\n <div className='single6'>\r\n </div>\r\n </div>\r\n <div className={['', loadingInversionistaSelect !== true ? \"displaynone\" : \"\"].join(' ')}>\r\n <div className='single6'>\r\n </div>\r\n </div>\r\n\r\n <div className={[\"row\", showMenu === true ? \"sm-gutters\" : \"sm-gutters2\"].join(' ')}>\r\n <div className={[\"col-xl-5\", maximizeEmpresa ? \"maxi-empresas\" : \"\", maximizeAdj || maximizeOrd || maximizeRegis ? \"displaynone\" : \"\"].join(' ')}>\r\n {/*<div className={[\"col-xl-\", showMenu===false?\"5\":\"8\"].join(' ')}>*/}\r\n\r\n <div>\r\n\r\n <div className=\"crypt-market-status\">\r\n\r\n <div>\r\n <h6 className=\"crypt-bg-head\">\r\n EMPRESAS\r\n <div className=\"floatright\">\r\n <div className=\"filterNeg\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filtrar\"\r\n value={empresaFilter}\r\n onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaEmpresaConEvento !== null ? listaEmpresaConEvento : [], e.target.value)\r\n\r\n }} />\r\n <i className=\"fas fa-search\"></i>\r\n <i className={[\"fas\", !maximizeEmpresa ? \"fa-window-maximize\" : \"fa-window-restore\"].join(' ')} onClick={() => setMaximizeEmpresa(!maximizeEmpresa)}></i>\r\n </div>\r\n </div>\r\n </h6>\r\n <div className=\"tab-content\">\r\n <DataGrid\r\n idProperty=\"EmpresaId\"\r\n style={gridStyle}\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n theme=\"amber-dark\"\r\n onSelectionChange={onSelectionChange}\r\n />\r\n <div className=\"no-orders text-center\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div className={[\"col-xl-7\", maximizeAdj ? \"maxi-empresas\" : \"\", maximizeEmpresa || maximizeOrd || maximizeRegis ? \"displaynone\" : \"\"].join(' ')}>\r\n <div>\r\n <div className=\"crypt-market-status\">\r\n <div>\r\n <Adjudicacion usuarioId={currentUser[\"userId\"]} eventoId={eventoSeleccionado} empresaId={currentUser[\"EmpresaId\"]} selected={selected} maximizeAdj={maximizeAdj} setMaximizeAdj={setMaximizeAdj} empresaFilterGen={empresaFilterGen} setEmpresaFilterGen={setEmpresaFilterGen} />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div className={[\"row\", showMenu === true ? \"sm-gutters\" : \"sm-gutters2\"].join(' ')}>\r\n <div className={[\"col-xl-5\", maximizeOrd ? \"maxi-empresas\" : \"\", maximizeAdj || maximizeEmpresa || maximizeRegis ? \"displaynone\" : \"\"].join(' ')}>\r\n <div>\r\n <div className=\"crypt-market-status\">\r\n <div>\r\n <EditarOrden sendMessage={sendMessageLocal}\r\n sendMessageChat={sendMessageChat}\r\n eventoSeleccionado={eventoSeleccionado}\r\n showEmpresa={showEmpresa} isDisabled={isDisabled} maximizeOrd={maximizeOrd} setMaximizeOrd={setMaximizeOrd} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={[\"col-xl-7\", maximizeRegis ? \"maxi-empresas\" : \"\", maximizeAdj || maximizeOrd || maximizeEmpresa ? \"displaynone\" : \"\"].join(' ')}>\r\n <div>\r\n <div className=\"crypt-market-status\">\r\n <GestionOrden usuarioId={currentUser[\"userId\"]} isDisabled={isDisabled} sendMessage={sendMessageLocal} maximizeRegis={maximizeRegis} setMaximizeRegis={setMaximizeRegis} empresaFilterGen={empresaFilterGen} setEmpresaFilterGen={setEmpresaFilterGen} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n <NotificationContainer />\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Sala);\r\n","import axios from \"axios\";\r\nimport '../config'\r\n \r\n//obtener dato empresa\r\nconst getDataEmpresaSer = ( empresaId)=>{\r\n const params = { \"strEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerDatoEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n//obtener Abjudicaciones ObtenerAdjudicacionPag\r\nconst getAdjudicacionSer = (eventoId, empresaId, usuarioId,page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strEventoId\":eventoId, \"strEmpresaId\":empresaId,\"strUsuarioId\":usuarioId,\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerAdjudicacionEventoEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n\r\n//obtener datos evento ObtenerDatosEvento\r\nconst getDataEventSer = (eventoId)=>{\r\n const params = {\"strEventoId\":eventoId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerDatosEvento\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n//fin obtener datos del evento\r\n\r\n//perfil usuario \r\nconst updatePerfilUsuario = (usuarioId,nombre,nick,email,clave,image,uploadId) => {\r\n const params = {\"strUsuarioId\":usuarioId,\"strNombre\":nombre,\"strNick\":nick,\"strEmail\":email,\"strClave\":clave,\"strImage\":image,\"strRol\":\"\",\"strUploadId\":uploadId}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"ActualizarUsuario\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result.length>0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n//fin perfil usuario \r\n\r\n//inicia evento empresa\r\nconst getEventoEmpresaSer = (eventoId)=>{\r\n const params = {\"strEventoId\":eventoId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEventoEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst getEventoEmpresaSinAsigSer = (eventoId)=>{\r\n const params = {\"strEventoId\":eventoId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEventoEmpresaSinAsig\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst selectEventoEmpresaSer = (eventoId,empresaId,usuarioIdRegistro) => {\r\n const params = {\"strEventoId\":eventoId,\"strEmpresaId\":empresaId,\"strUsuarioIdRegistro\":usuarioIdRegistro}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"SeleccionarEventoEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\n\r\nconst deleteEventoEmpresaSer=(eventoEmpresaId)=>{\r\n const params = {\"strEventoEmpresaId\":eventoEmpresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarEventoEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n//fin evento empresa\r\n\r\n\r\n// obtener evnto y seleccionar evento para obtener empresa\r\nconst getEmpresaConEventoSer = (eventoId,usuarioId,empresaId)=>{\r\n const params = {\"strEventoId\":eventoId,\"strUsuarioId\":usuarioId,\"strEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEmpresasConEvento\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst getTodoEventoSer = (usuarioId)=>{\r\n const params = {\"strUsuarioId\":usuarioId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerTodosLosEventos\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n// fin obtener evnto y seleccionar evento para obtener empresa\r\n\r\n//parametros \r\nconst deleteParametroSer=(parametroId)=>{\r\n const params = {\"strParametroId\":parametroId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarParametros\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst updateParametroSer =(parametroId,codigo,nombre,descripcion,valor,usuarioIdRegistro,estado) =>{\r\n const params = {\"strParametroId\":parametroId,\"strCodigo\":codigo,\"strNombre\":nombre,\"strDescripcion\":descripcion,\"strValor\":valor,\"strUsuarioIdRegistro\":usuarioIdRegistro,\"strEstado\":estado}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"GestionParametros\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst getParametroSer = (page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerParametrosPag\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n//fin de parametros \r\n\r\n// inicia servicios para usuario\r\nconst deleteUsuario=(usuarioId)=>{\r\n const params = {\"strUsuarioId\":usuarioId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarUsuario\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst updateUsuario =(usuarioId,nombre,nick,email,rol,clave,estado,uploadId,imagenUrl) =>{\r\n const params = {\"strUsuarioId\":usuarioId,\"strNombre\":nombre,\"strNick\":nick,\"strEmail\":email,\"strRol\":rol,\"strClave\":clave,\"strEstado\":estado,\"strUploadId\":uploadId, \"strImagenUrl\": imagenUrl}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"GestionUsuario\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst getUsuarios = (page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerUsuariosPaginacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n//terminan los servicos par usuario\t\t\r\n\r\n//usuarioEmpresa\r\nconst getUsuarioEmpresaSer = (empresaId)=>{\r\n const params = {\"strEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerUsuarioEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst getUsuarioEmpresaSinAsigSer = (empresaId)=>{\r\n const params = {\"strEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerUsuarioEmpresaSinAsig\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst selectUsuarioEmpresaSer = (empresaId,usuarioId) => {\r\n const params = {\"strEmpresaId\":empresaId,\"strUsuarioId\":usuarioId}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"SeleccionarUsuarioEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\n\r\nconst deleteUsuarioEmpresaSer=(usuarioEmpresaId)=>{\r\n const params = {\"strUsuarioEmpresaId\":usuarioEmpresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarUsuarioEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n//fin usuario empresa\r\n\r\n//\r\n//evento\r\n\r\n\r\nconst getEventoSer = (page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEventoPag\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst updateEventoSer = (eventoId,logoUrl,modalidadId,nombreEvento,logo,estado,usuarioRegistroId,fechaSubasta,inscripcion,subasta,colocacion,adjudicacion,nombreEmpresaCorto,nombreExponente) => {\r\n const params = {\"strEventoId\":eventoId, \"strlLogoUrl\": logoUrl, \"strModalidadId\":modalidadId,\"strNombreEvento\":nombreEvento,\"strLogo\":logo,\"strEstado\":estado,\r\n \"strUsuarioRegistroId\":usuarioRegistroId,\"strFechaSubasta\":fechaSubasta,\r\n \"strPeriodoInscripcion\":inscripcion,\"strPeriodoSubasta\":subasta,\r\n \"strPeriodoAdjudicacion\":adjudicacion,\"strPeriodoColocacion\":colocacion, \r\n \"strNombreEmpresaCorto\": nombreEmpresaCorto, \"strNombreExponente\": nombreExponente}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"GestionEvento\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\nconst deleteEventoSer=(eventoId)=>{\r\n const params = {\"strEventoId\":eventoId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarEvento\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n//fin evento \r\n\r\n//obtener orden \r\nconst getEventoSelectSer = ()=>{\r\n const params = {}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEventoSelect\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst getEmpresaSelectSer = (eventoId)=>{\r\n const params = {\"strEventoId\":eventoId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEmpresaSelect\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n console.log(response[\"data\"])\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst getInversionistaSelectSer = (empresaId)=>{\r\n const params = {\"strEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerInversionistaSelect\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst getOrdenSer = (page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerOrdenPag\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst getOrdenPorUsuarioSer = (empresaId,eventoId,usuarioId,page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strEmpresaId\":empresaId,\"strEventoId\":eventoId,\"strUsuarioId\":usuarioId,\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerOrdenPorUsuarioPag\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\nconst updateOrdenSer = (ordenId,empresaId,inversionistaId,accionesComprar,precioPagar,estado,usuarioRegistroId,eventoId) => {\r\n const params = {\"strOrdenId\":ordenId,\"strEmpresaId\":empresaId,\"strInversionistaId\":inversionistaId,\"strAccionesComprar\":accionesComprar,\"strPrecioPagar\":precioPagar,\"strEstado\":estado,\"strUsuarioRegistroId\":usuarioRegistroId,\"strEventoId\":eventoId}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"GestionOrden\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return result;\r\n }\r\n });\r\n}\r\n\r\nconst deleteOrdenSer=(ordenId)=>{\r\n const params = {\"strOrdenId\":ordenId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarOrden\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n/// fin orden\r\n\r\n\r\n//obtener usuarios\r\nconst getUsuariosSer = ()=>{\r\n const params = {}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerUsuarios\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n//fin obtener usuarios\r\n\r\n// inicio obtener institucines\r\nconst getInstitucionesEmpresaSer = ()=>{\r\n const params = {}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerInstituciones\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n//fin obt instituciones\r\n\r\n\r\n//inicio inversionista\r\nconst getInversionistaSer = (usuarioId, empresaId, page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"intUsuarioId\":usuarioId,\"intEmpresaId\":empresaId,\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerInversionistaPag\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst updateInversionistaSer = (inversionistaId,nombre,apellido,cedula,telefono,direccion,estado,usuarioRegistroId,empresaId, email) => {\r\n const params = {\"strInversionistaId\":inversionistaId,\"strNombre\":nombre,\"strApellido\":apellido,\"strCedula\":cedula,\"strTelefono\":telefono,\"strDireccion\":direccion,\"strEstado\":estado,\"strUsuarioRegistroId\":usuarioRegistroId,\"strEmpresaId\":empresaId, \"strEmail\":email}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"GestionInversionista\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n\r\n // aqui se cambio\r\n if(result!==\"\"){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\nconst deleteInversionistaSer=(inversionistaId)=>{\r\n const params = {\"strInversionistaId\":inversionistaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarInversionista\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n//fin inversionista\r\n//inicio empresa \r\nconst getEmpresaSer = (page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEmpresaPag\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst updateEmpresaSer = (empresaId,nombre,logo,direccion,estado,usuarioRegistroId,institucion,email,gerente,operador,receptor,numAccionesOferta,precioInicialPorAccion,valorUnitarioAccion,montoMinMejoraPrecio,comisionOperador,comisionBVQ,PorcentajePrecioTechoMax,fechaConstitucion,fechaInscripcion,capitalPagado,divididoEn,valor) => {\r\n const params = {\"strEmpresaId\":empresaId,\"strNombre\":nombre,\"strLogo\":logo,\"strDireccion\":direccion,\r\n \"strEstado\":estado,\"strUsuarioRegistroId\":usuarioRegistroId,\"strInstitucion\":institucion,\"strEmail\":email,\r\n \"strGerente\":gerente,\"strOperador\":operador,\"strReceptor\":receptor,\"strNumAccionesOferta\":numAccionesOferta,\r\n \"strPrecioInicialPorAccion\":precioInicialPorAccion,\"strValorUnitarioAccion\":valorUnitarioAccion,\r\n \"strMontoMinMejoraPrecio\":montoMinMejoraPrecio,\"strComisionOperador\":comisionOperador,\r\n \"strComisionBVQ\":comisionBVQ,\"strPorcentajePrecioTechoMax\":PorcentajePrecioTechoMax,\"strFechaConstitucion\":fechaConstitucion,\"strFechaInscripcion\":fechaInscripcion,\r\n \"strCapitalPagado\":capitalPagado,\"strDivididoEn\":divididoEn,\"strValor\":valor}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"GestionEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\nconst deleteEmpresaSer=(empresaId)=>{\r\n const params = {\"strEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n//fin empresa\r\n\r\n//inicio item catalogos\r\n// item catalogo\r\n\r\nconst getItemsCatalogosPag = (catalogoId,page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strCatalogoId\":catalogoId,\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerItemCatalogosPaginacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst updateItemCatalogo = (itemId,codigo,nombre,activo,editar,itemPadreId,catalogoId,nombreCorto,estado) => {\r\n const params = {\"strItemId\":itemId,\"strCodigo\":codigo,\"strNombre\":nombre,\"strActivo\":activo,\"strEditar\":editar,\"strItemPadreId\":itemPadreId,\"strCatalogoId\":catalogoId,\"strNombreCorto\":nombreCorto,\"strEstado\":estado}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"GestionItemsCatalogo\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\nconst deleteItemCatalogo=(itemId)=>{\r\n const params = {\"strItemId\":itemId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarItemCatalogo\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\n\r\n\r\n//fin item catalogos\r\n//catalogos \r\n\r\nconst getCatalogosPadre = ()=>{\r\n const params = {}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerCatalogosPadre\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n \r\n const getGestionCatalogosPag = (page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerCatalogosPaginacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n \r\n const updateGestionCatalogo = (catalogoId,codigo,nombre,activo,editar, catalogoPadreId,estado) => {\r\n const params = {\"strCatalogoId\":catalogoId,\"strCodigo\":codigo,\"strNombre\":nombre,\"strActivo\":activo,\"strEditar\":editar,\"strCatalogoPadreId\":catalogoPadreId,\"strEstado\":estado}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"GestionCatalogos\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result===0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n }\r\n \r\n const deleteGestionCatalogo=(catalogoId)=>{\r\n const params = {\"strCatalogoId\":catalogoId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EliminarCatalogo\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n //fin de catalogos ObtenerCatalogosPadre\r\n\r\n\r\n // agg JP\r\n const getEmpresaSelectInversionista = (usuarioId,empresaId)=>{\r\n const params = {\"intUsuarioId\":usuarioId, \"intEmpresaId\":empresaId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerEmpresaSelectInversionista\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n console.log(result);\r\n return result; \r\n });\r\n }\r\n\r\n const getDatosAdjudicaciones = (eventoId, usuarioId, empresaId, page,filterField,filer,typeOrd,sort)=>{\r\n const params = {\"intEventoId\":eventoId, \"intUsuarioId\": usuarioId, \"intEmpresaId\":empresaId ,\"strPage\":page,\"strFilterField\":filterField,\"strFiler\":filer,\"strTypeOrd\":typeOrd,\"strSort\":sort}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerLiquidacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n const updateImpresionLiquidaciones =(liquidacionId)=>{ //ruta,accionesLetras,capitalPagado,capitalPagado1,divididoAcciones,inversionistaNombre,lugarFecha,lugarFecha1, lugarFecha2, nombreEmpresa, nombreEmpresa1, nombreEmpresa2, numeroAcciones, numeroDesde, numeroHasta, numeroTitulo, precioAcciones, precioLetras) =>{\r\n const params = { \"intLiquidacionId\": liquidacionId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ImprimirCertificado\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n //console.log(\"result:\", result); \r\n return result; \r\n });\r\n }\r\n\r\n const updateImpresionTitulos =(liquidacionId)=>{ //ruta,accionesLetras,capitalPagado,capitalPagado1,divididoAcciones,inversionistaNombre,lugarFecha,lugarFecha1, lugarFecha2, nombreEmpresa, nombreEmpresa1, nombreEmpresa2, numeroAcciones, numeroDesde, numeroHasta, numeroTitulo, precioAcciones, precioLetras) =>{\r\n const params = { \"intLiquidacionId\": liquidacionId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ImprimirTitulo\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n\r\n const updateImpresionReportRueda =(eventoId)=>{ //ruta,accionesLetras,capitalPagado,capitalPagado1,divididoAcciones,inversionistaNombre,lugarFecha,lugarFecha1, lugarFecha2, nombreEmpresa, nombreEmpresa1, nombreEmpresa2, numeroAcciones, numeroDesde, numeroHasta, numeroTitulo, precioAcciones, precioLetras) =>{\r\n const params = { \"intEventoId\": eventoId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ImprimirReportUserRueda\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n\r\n const sendEmailInvitacionUser =(eventoId, usuarioId, empresaId)=>{ //ruta,accionesLetras,capitalPagado,capitalPagado1,divididoAcciones,inversionistaNombre,lugarFecha,lugarFecha1, lugarFecha2, nombreEmpresa, nombreEmpresa1, nombreEmpresa2, numeroAcciones, numeroDesde, numeroHasta, numeroTitulo, precioAcciones, precioLetras) =>{\r\n const params = { \"intEventoId\": eventoId, \"intUsuarioId\": usuarioId, \"intEmpresaId\":empresaId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"SendInvitacionEmail\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n// Enviar liquidacion usuario\r\n const sendLiquidacionUser =(eventoId, liquidacionId)=>{ \r\n const params = { \"intEventoId\": eventoId, \"intLiquidacionId\": liquidacionId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"SendLiquidacionEmail\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n\r\n const updateLiquidacion =(eventoId) =>{\r\n const params = { \"intEventoId\":eventoId\r\n\r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"GestionLiquidacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n // catalogos modalidad\r\n const getCatalogosModalidad = ()=>{\r\n const params = {}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ObtenerCatalogoModadlidad\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n console.log(response);\r\n return result; \r\n });\r\n }\r\n\r\n\r\n // Enviar liquidacion usuario\r\n const sendLiquidacionInversionista =(eventoId, liquidacionId)=>{ \r\n const params = { \"intEventoId\": eventoId, \"intLiquidacionId\": liquidacionId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"SendLiquidacionEmailInversionista\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n\r\n // Cobrar liquidacion\r\n const updateCobrarLiquidacion=(liquidacionId)=>{\r\n const params = {\"strLiquidacionId\":liquidacionId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EstadoCobrarLiquidacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n // Comentario liquidación\r\n const updateComentarioLiquidacion =(liquidacionId,comentario) =>{\r\n const params = {\"strLiquidacionId\":liquidacionId,\"strComentario\":comentario}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"GestionLiquidacionComentario\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n // Estado iconosos a cobrar liquidacion\r\n const updateImprimirCertificado =(liquidacionId)=>{\r\n const params = {\"strLiquidacionId\":liquidacionId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EstadoCertiImpreso\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n const updateImprimirLiquidacion =(liquidacionId)=>{\r\n const params = {\"strLiquidacionId\":liquidacionId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EstadoLiquiImpreso\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n const updateEstadoEmailEmpresa =(liquidacionId)=>{\r\n const params = {\"strLiquidacionId\":liquidacionId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EstadoEmailLiquiEmpresa\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n const updateEstadoEmailInversionista =(liquidacionId)=>{\r\n const params = {\"strLiquidacionId\":liquidacionId}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"EstadoEmailLiquiInver\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n }\r\n\r\n const updateImpresionReportLiquidacion =(eventoId)=>{ //ruta,accionesLetras,capitalPagado,capitalPagado1,divididoAcciones,inversionistaNombre,lugarFecha,lugarFecha1, lugarFecha2, nombreEmpresa, nombreEmpresa1, nombreEmpresa2, numeroAcciones, numeroDesde, numeroHasta, numeroTitulo, precioAcciones, precioLetras) =>{\r\n const params = { \"intEventoId\": eventoId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ImprimirReportLiquidacion\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n\r\n const updateImpresionReportAdjudicacion =(eventoId)=>{ //ruta,accionesLetras,capitalPagado,capitalPagado1,divididoAcciones,inversionistaNombre,lugarFecha,lugarFecha1, lugarFecha2, nombreEmpresa, nombreEmpresa1, nombreEmpresa2, numeroAcciones, numeroDesde, numeroHasta, numeroTitulo, precioAcciones, precioLetras) =>{\r\n const params = { \"intEventoId\": eventoId\r\n \r\n }\r\n return axios \r\n .post(global.config.URL_SERVICE + \"ImprimirReportAdjudicacionT\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let result = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n return result; \r\n });\r\n }\r\n \r\n\r\n\r\nexport default {\r\n getCatalogosPadre,\r\n getGestionCatalogosPag,\r\n updateGestionCatalogo,\r\n deleteGestionCatalogo,\r\n getItemsCatalogosPag,\r\n updateItemCatalogo,\r\n deleteItemCatalogo,\r\n getEmpresaSer,\r\n updateEmpresaSer,\r\n deleteEmpresaSer,\r\n getInversionistaSer,\r\n updateInversionistaSer,\r\n deleteInversionistaSer,\r\n getInstitucionesEmpresaSer,\r\n getUsuariosSer,\r\n getOrdenSer,\r\n getOrdenPorUsuarioSer,\r\n updateOrdenSer,\r\n deleteOrdenSer,\r\n getInversionistaSelectSer,\r\n getEmpresaSelectSer,\r\n getEventoSer,\r\n updateEventoSer,\r\n deleteEventoSer,\r\n getUsuarioEmpresaSer,\r\n getUsuarioEmpresaSinAsigSer,\r\n selectUsuarioEmpresaSer,\r\n deleteUsuarioEmpresaSer,\r\n getUsuarios,\r\n updateUsuario,\r\n deleteUsuario,\r\n getEventoSelectSer,\r\n deleteParametroSer,\r\n deleteParametroSer,\r\n\t\tupdateParametroSer,\r\n\t\tgetParametroSer,\r\n getTodoEventoSer,\r\n getEmpresaConEventoSer,\r\n deleteEventoEmpresaSer,\r\n selectEventoEmpresaSer,\r\n getEventoEmpresaSinAsigSer,\r\n getEventoEmpresaSer,\r\n updatePerfilUsuario,\r\n getDataEventSer,\r\n getAdjudicacionSer,\r\n getDataEmpresaSer,\r\n\r\n // agg\r\n getEmpresaSelectInversionista,\r\n getDatosAdjudicaciones,\r\n updateImpresionLiquidaciones,\r\n updateImpresionTitulos,\r\n updateImpresionReportRueda,\r\n sendEmailInvitacionUser,\r\n sendLiquidacionUser,\r\n updateLiquidacion,\r\n getCatalogosModalidad,\r\n sendLiquidacionInversionista,\r\n updateCobrarLiquidacion,\r\n updateComentarioLiquidacion,\r\n updateImprimirCertificado,\r\n updateImprimirLiquidacion,\r\n updateEstadoEmailEmpresa,\r\n updateEstadoEmailInversionista,\r\n updateImpresionReportLiquidacion,\r\n updateImpresionReportAdjudicacion\r\n};","import React, { useEffect, useState } from 'react'\r\nimport { Provider, connect, useSelector, useDispatch } from 'react-redux'\r\nimport { sendValue, updateLiquidacion } from '../../actions/administracion';\r\nimport { generateMessageAdm } from \"../../components/general/Util\"\r\nimport { toggleBotonVisibleEditarOrden, toggleBotonApertura, toggleBotonSubasta, toggleBotonAdjudicacion, toggleValueAdjudicacion, toggleValueApertura, toggleValueSubasta } from '../../actions/controlJuego';\r\nimport { setStatusByKey } from \"../../actions/juego\"\r\nimport store from '../../store';\r\nconst MyContext = React.createContext();\r\n\r\nconst ControlJuego = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const { listEventos: currentEventos, eventoSeleccionado: eventoSeleccionado } = useSelector((state) => state.juego);\r\n const [showButtonSubasta, setShowButtonSubasta] = useState(false);\r\n const [showButtonAdjudicacion, setshowButtonAdjudicacion] = useState(false);\r\n const [showButtonFinalizar, setshowButtonFinalizar] = useState(false);\r\n const [globalValue, setGlobalValue] = React.useState(\"Some initial value\");\r\n\r\n const { valueApertura: estadoObtenidoApertura } = useSelector(state => state.controlJuego);\r\n const { valueSubasta: estadoObtenidoSubasta } = useSelector(state => state.controlJuego);\r\n const { valueAdjudicacion: estadoObtenidoAdjudicacion } = useSelector(state => state.controlJuego);\r\n\r\n const { valueBotonApertura: estadoObtenidoBotonApertura } = useSelector(state => state.controlJuego);\r\n const { valueBotonSubasta: estadoObtenidoBotonSubasta } = useSelector(state => state.controlJuego);\r\n const { valueBotonAdjudicacion: estadoObtenidoBotonAdjudicacion } = useSelector(state => state.controlJuego);\r\n\r\n\r\n const { datosjuego } = useSelector(state => state.controlJuego);\r\n let [mostratBotonesRigth, setMostratBotonesRigth] = useState(false);\r\n\r\n\r\n\r\n function closeControlJuego() {\r\n props.closeControlJuegoClick()\r\n }\r\n const handleToggle = () => {\r\n //props.sendMessage(generateMessageAdm(\"FEV\"))\r\n dispatch(toggleBotonVisibleEditarOrden())\r\n dispatch(updateLiquidacion(eventoSeleccionado))\r\n // .then(() => {\r\n //})\r\n //.catch(() => { });\r\n props.sendMessage(generateMessageAdm(\"FIN\"))\r\n\r\n };\r\n\r\n // Iniciar juego Apertura\r\n function btnInicarJuegoApertura() {\r\n //dispatch(setStatusByKey(\"loadingAccionEvt\", true))\r\n props.sendMessage(generateMessageAdm(\"START\"))\r\n // dispatch(toggleValueApertura())\r\n }\r\n // Iniciar juego subasta\r\n function btnInicarJuegoSubasta() {\r\n //dispatch(setStatusByKey(\"loadingAccionEvt\", true))\r\n props.sendMessage(generateMessageAdm(\"SUBASTA\"))\r\n dispatch(toggleValueSubasta())\r\n }\r\n // Iniciar juego adjudicacion\r\n function btnInicarJuegoAdjudicacion() {\r\n //dispatch(setStatusByKey(\"loadingAccionEvt\", true))\r\n props.sendMessage(generateMessageAdm(\"ADJUDICACION\"))\r\n dispatch(toggleValueAdjudicacion())\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (estadoObtenidoBotonApertura === false) {\r\n setShowButtonSubasta(true);\r\n }\r\n }, [estadoObtenidoBotonApertura]);\r\n\r\n useEffect(() => {\r\n if (estadoObtenidoBotonSubasta === false) {\r\n setshowButtonAdjudicacion(true);\r\n }\r\n }, [estadoObtenidoBotonSubasta]);\r\n\r\n /*useEffect(() => {\r\n if (estadoObtenidoBotonAdjudicacion === false) {\r\n setshowButtonFinalizar(true);\r\n }\r\n }, [estadoObtenidoBotonAdjudicacion]);*/\r\n\r\n function mostrarOcultarBotones() {\r\n setMostratBotonesRigth(!mostratBotonesRigth)\r\n }\r\n //console.log(datosjuego)\r\n return (\r\n <div className={\"\"}>\r\n\r\n <div className=\" ventanaPortafolio2\">\r\n <div className={[\"userBtn\",\"displaynone\", mostratBotonesRigth === true ? \"\" : \"minimizeUserList\"].join(' ')}>\r\n <div className=\"moreRowBtn\" onClick={mostrarOcultarBotones}><i className={[\"fa\", mostratBotonesRigth === true ? \"fa-minus\" : \"fa-plus\"].join(' ')}></i></div>\r\n <div className=\"innerShadow3\">\r\n <ul>\r\n\r\n <li className=\"btnNuevaJugada\">\r\n <div className=\"textCenter\">\r\n\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"\" && (\r\n <button\r\n className='btnJuego'\r\n onClick={btnInicarJuegoApertura}>Apertura\r\n </button>)}\r\n\r\n\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"I\" ? (\r\n <button\r\n className='btnJuego'\r\n onClick={btnInicarJuegoSubasta}>Subasta\r\n </button>) : \"\"}\r\n\r\n\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"S\" ? (\r\n <button\r\n className='btnJuego'\r\n onClick={btnInicarJuegoAdjudicacion}>Adjudicación\r\n </button>) : \"\"}\r\n\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"J\" ? (\r\n <button\r\n className='btnJuego'\r\n onClick={handleToggle}\r\n >Finalizar evento\r\n </button>) : \"\"}\r\n\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"F\" ? (\r\n <span\r\n >Evento Finalizado\r\n </span>) : \"\"}\r\n\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport function estadoBoton() { };\r\n\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(ControlJuego,);\r\n","import {\r\n REGISTER_SUCCESS,\r\n REGISTER_FAIL,\r\n LOGIN_SUCCESS,\r\n LOGIN_FAIL,\r\n LOGOUT,\r\n} from \"../actions/types\";\r\n\r\nconst user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\nconst initialState = user\r\n ? { isLoggedIn: true, user }\r\n : { isLoggedIn: false, user: null };\r\n\r\nexport default function (state = initialState, action) {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case REGISTER_SUCCESS:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n };\r\n case REGISTER_FAIL:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n };\r\n case LOGIN_SUCCESS:\r\n return {\r\n ...state,\r\n isLoggedIn: true,\r\n user: payload.user,\r\n };\r\n case LOGIN_FAIL:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n user: null,\r\n };\r\n case LOGOUT:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n user: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { SET_MESSAGE, CLEAR_MESSAGE } from \"../actions/types\";\r\n\r\nconst initialState = {};\r\n\r\nexport default function (state = initialState, action) {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case SET_MESSAGE:\r\n return { message: payload };\r\n\r\n case CLEAR_MESSAGE:\r\n return { message: \"\" };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n SHOW_BANNER,\r\n SHOW_BANNER_INIT,\r\n SHOW_BANNER_FAIL\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n listBanner : [],\r\n loadingBanner : false\r\n}\r\n\r\nexport default function(state = initialState, action) {\r\n const { type, payload } = action;\r\n switch (type) {\r\n case SHOW_BANNER:\r\n return {\r\n ...state,\r\n loadingBanner: false,\r\n listBanner: payload.data,\r\n };\r\n case SHOW_BANNER_INIT:\r\n return {\r\n ...state,\r\n loadingBanner: true\r\n };\r\n case SHOW_BANNER_FAIL:\r\n return {\r\n ...state,\r\n loadingBanner: false,\r\n listBanner: [],\r\n };\r\n default:\r\n return state;\r\n }\r\n }\r\n","import {\r\n GET_EVENT_BY_USER,\r\n GET_EVENT_TITLE_BY_USER,\r\n GET_EVENT_BY_USER_FAIL,\r\n GET_EVENT_BY_USER_INIT,\r\n UPDATE_STATUS_BY_KEY,\r\n EVENT_SELECT,\r\n EMPRESA_SELECT,\r\n INSCRIPCION,\r\n COLOCACION,\r\n SUBASTA,\r\n ADJUDICACION,\r\n\r\n} from \"../actions/types\";\r\n\r\nconst eventos = JSON.parse(localStorage.getItem(\"eventos\"));\r\nconst titulosRVCount = localStorage.getItem(\"titulosRVCount\");\r\nconst eventoSeleccionado = localStorage.getItem(\"eventoSeleccionado\");\r\nconst empresaSeleccionada = localStorage.getItem(\"empresaSeleccionada\")\r\nconst pInscripcion = localStorage.getItem(\"pInscripcion\")\r\nconst pColocacion = localStorage.getItem(\"pColocacion\")\r\nconst pSubasta = localStorage.getItem(\"pSubasta\")\r\nconst pAdjudicaion = localStorage.getItem(\"pAdjudicaion\")\r\nconst initialState = {\r\n listEventos: eventos !== null ? eventos : null,\r\n listTitleEvent: null,\r\n eventoSeleccionado: eventoSeleccionado,\r\n empresaSeleccionada: null,\r\n pInscripcion: null,\r\n pColocacion: null,\r\n pSubasta: null,\r\n pAdjudicaion: null,\r\n loadingEventosPorUsr: true,\r\n titulosRVCount: titulosRVCount !== null ? parseInt(titulosRVCount) : 0,\r\n\r\n //WS\r\n showLablesTime: false,\r\n allTime: -1,\r\n timeLastPlay: -1,\r\n loadingAccionEvt: false,\r\n modalidadCodigo: \"\",\r\n loadingAccionEvt: false,\r\n segundosApertura: -1,\r\n segundosSubasta: -1,\r\n segundosAdjudicacion: -1,\r\n \r\n}\r\n\r\nexport default function (state = initialState, action) {\r\n const { type, payload } = action;\r\n switch (type) {\r\n case UPDATE_STATUS_BY_KEY:\r\n switch (payload.key) {\r\n\r\n case 'eventoSeleccionado':\r\n localStorage.setItem(\"eventoSeleccionado\", payload.value);\r\n return {\r\n ...state,\r\n eventoSeleccionado: payload.value\r\n };\r\n case 'empresaSeleccionada':\r\n localStorage.setItem(\"empresaSeleccionada\", payload.value);\r\n return {\r\n ...state,\r\n empresaSeleccionada: payload.value\r\n };\r\n case 'pInscripcion':\r\n localStorage.setItem(\"pInscripcion\", payload.value);\r\n return {\r\n ...state,\r\n pInscripcion: payload.value\r\n };\r\n case 'pColocacion':\r\n localStorage.setItem(\"pColocacion\", payload.value);\r\n return {\r\n ...state,\r\n pColocacion: payload.value\r\n };\r\n case 'pSubasta':\r\n localStorage.setItem(\"pSubasta\", payload.value);\r\n return {\r\n ...state,\r\n pSubasta: payload.value\r\n };\r\n case 'pAdjudicaion':\r\n localStorage.setItem(\"pAdjudicaion\", payload.value);\r\n return {\r\n ...state,\r\n pAdjudicaion: payload.value\r\n };\r\n\r\n // WS\r\n case 'showLablesTime':\r\n return {\r\n ...state,\r\n showLablesTime: payload.value,\r\n };\r\n case 'allTime':\r\n return {\r\n ...state,\r\n allTime: payload.value\r\n };\r\n case 'timeLastPlay':\r\n return {\r\n ...state,\r\n timeLastPlay: payload.value\r\n };\r\n case 'modalidadCodigo':\r\n return {\r\n ...state,\r\n modalidadCodigo: payload.value\r\n };\r\n case 'loadingAccionEvt':\r\n return {\r\n ...state,\r\n loadingAccionEvt: payload.value\r\n };\r\n case 'segundosApertura':\r\n return {\r\n ...state,\r\n segundosApertura: payload.value\r\n };\r\n case 'segundosSubasta':\r\n return {\r\n ...state,\r\n segundosSubasta: payload.value\r\n };\r\n case 'segundosAdjudicacion':\r\n return {\r\n ...state,\r\n segundosAdjudicacion: payload.value\r\n };\r\n }\r\n break\r\n case GET_EVENT_BY_USER:\r\n return {\r\n ...state,\r\n loadingEventosPorUsr: false,\r\n listEventos: payload.data\r\n };\r\n case GET_EVENT_TITLE_BY_USER:\r\n return {\r\n ...state,\r\n loadingEventosPorUsr: false,\r\n listTitleEvent: payload.data,\r\n titulosRVCount: payload.data.filter(value => value[\"TipoRentaCod\"] === 'RV').length,\r\n };\r\n case GET_EVENT_BY_USER_INIT:\r\n return {\r\n ...state,\r\n loadingEventosPorUsr: true\r\n };\r\n case GET_EVENT_BY_USER_FAIL:\r\n return {\r\n ...state,\r\n loadingEventosPorUsr: false,\r\n listEventos: [],\r\n };\r\n case EVENT_SELECT:\r\n return {\r\n ...state,\r\n loadingEventosPorUsr: false,\r\n eventoSeleccionado: payload.data,\r\n };\r\n case EMPRESA_SELECT:\r\n return {\r\n ...state,\r\n empresaSeleccionada: payload.data,\r\n }\r\n case INSCRIPCION:\r\n return {\r\n ...state,\r\n pInscripcion: payload.data,\r\n }\r\n case COLOCACION:\r\n return {\r\n ...state,\r\n pColocacion: payload.data,\r\n }\r\n case SUBASTA:\r\n return {\r\n ...state,\r\n pSubasta: payload.data,\r\n }\r\n case ADJUDICACION:\r\n return {\r\n ...state,\r\n pAdjudicaion: payload.data,\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n SHOW_BANNER,\r\n SHOW_BANNER_INIT,\r\n SHOW_BANNER_FAIL,\r\n SEND_EMAIL_PASSWORD,\r\n SEND_EMAIL_PASSWORD_FAIL,\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n listBanner : [],\r\n loadingBanner : false\r\n}\r\n\r\n\r\n\r\nexport default function(state = initialState, action) {\r\n const { type, payload } = action;\r\n switch (type) {\r\n case SHOW_BANNER:\r\n return {\r\n ...state,\r\n loadingBanner: false,\r\n listBanner: payload.data,\r\n };\r\n case SHOW_BANNER_INIT:\r\n return {\r\n ...state,\r\n loadingBanner: true\r\n };\r\n case SHOW_BANNER_FAIL:\r\n return {\r\n ...state,\r\n loadingBanner: false,\r\n listBanner: [],\r\n };\r\n case SEND_EMAIL_PASSWORD:\r\n return {\r\n ...state, \r\n recuperarLoading:false,\r\n };\r\n case SEND_EMAIL_PASSWORD_FAIL: \r\n return {\r\n ...state,\r\n recuperarLoading: false,\r\n }; \r\n default:\r\n return state;\r\n }\r\n }\r\n","const initialState = {\r\n valueApertura: false,\r\n valueSubasta: false,\r\n valueAdjudicacion: false,\r\n\r\n valueBotonApertura: true,\r\n valueBotonSubasta: true,\r\n valueBotonAdjudicacion: true,\r\n\r\n valueVisibleSelectEditarOrden: false,\r\n datosjuego:{}\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'SEND_VALUE_APERTURA':\r\n return {\r\n ...state,\r\n valueApertura: !state.value\r\n };\r\n case 'SEND_VALUE_SUBASTA':\r\n return {\r\n ...state,\r\n valueSubasta: !state.valueSubasta\r\n };\r\n case 'SEND_VALUE_ADJUDICACION':\r\n return {\r\n ...state,\r\n valueAdjudicacion: !state.valueAdjudicacion\r\n };\r\n\r\n // botones\r\n case 'SEND_VALUE_BOTON_APERTURA':\r\n return {\r\n ...state,\r\n valueBotonApertura: false\r\n };\r\n case 'SEND_VALUE_BOTON_SUBASTA':\r\n return {\r\n ...state,\r\n valueBotonSubasta: false\r\n };\r\n case 'SEND_VALUE_BOTON_ADJUDICACION':\r\n return {\r\n ...state,\r\n valueBotonAdjudicacion: false\r\n };\r\n case 'SEND_VALUE_BOTON_EDITAR_ORDEN':\r\n return {\r\n ...state,\r\n valueVisibleSelectEditarOrden: true\r\n };\r\n \r\n case 'UPDATE_EVENTO_OBJECT': \r\n return {\r\n ...state,\r\n datosjuego: action.payload.value\r\n };\r\n\r\n\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import {\r\n GET_GESTION_CATALOGOS,\r\n GET_GESTION_CATALOGOS_FAIL,\r\n UPDATE_GESTION_CATALOGOS,\r\n UPDATE_GESTION_CATALOGOS_FAIL,\r\n DELETE_GESTION_CATALOGOS,\r\n DELETE_GESTION_CATALOGOS_FAIL,\r\n GET_CATALOGOS_PADRE,\r\n GET_CATALOGOS_PADRE_FAIL,\r\n DELETE_ITEM_CATALOGO,\r\n DELETE_ITEM_CATALOGO_FAIL,\r\n UPDATE_ITEM_CATALOGO,\r\n UPDATE_ITEM_CATALOGO_FAIL,\r\n GET_ITEM_CATALOGOS,\r\n GET_ITEM_CATALOGOS_FAIL,\r\n UPDATE_STATUS_BY_KEY_ADM,\r\n CATALOGOS_INI,\r\n ITEMS_INI,\r\n GET_EMPRESA,\r\n GET_EMPRESA_FAIL,\r\n EMPRESA_INI,\r\n DELETE_EMPRESA,\r\n DELETE_EMPRESA_FAIL,\r\n UPDATE_EMPRESA,\r\n UPDATE_EMPRESA_FAIL,\r\n GET_INVERSIONISTA,\r\n GET_INVERSIONISTA_FAIL,\r\n INVERSIONISTA_INI,\r\n DELETE_INVERSIONISTA,\r\n DELETE_INVERSIONISTA_FAIL,\r\n UPDATE_INVERSIONISTA,\r\n UPDATE_INVERSIONISTA_FAIL,\r\n GET_EMPRESA_INST,\r\n GET_EMPRESA_INST_FAIL,\r\n GET_USUARIOS_INV,\r\n GET_USUARIOS_INV_FAIL,\r\n GET_ORDEN,\r\n GET_ORDEN_FAIL,\r\n GET_ORDEN_USER_ID,\r\n GET_ORDEN_USER_ID_FAIL,\r\n UPDATE_ORDEN,\r\n UPDATE_ORDEN_FAIL,\r\n DELETE_ORDEN,\r\n DELETE_ORDEN_FAIL,\r\n ORDEN_INI,\r\n GET_EMPRESA_SELECT,\r\n GET_EMPRESA_SELECT_FAIL,\r\n GET_INVERSIONISTA_SELECT,\r\n GET_INVERSIONISTA_SELECT_FAIL,\r\n INVERSIONISTA_SELECT_INI,\r\n GET_EVENTO,\r\n GET_EVENTO_FAIL,\r\n UPDATE_EVENTO,\r\n UPDATE_EVENTO_FAIL,\r\n DELETE_EVENTO,\r\n DELETE_EVENTO_FAIL,\r\n EVENTO_INI,\r\n GET_USUARIO_EMPRESA,\r\n GET_USUARIO_EMPRESA_FAIL,\r\n GET_USUARIO_EMPRESA_SIN_ASIG,\r\n GET_USUARIO_EMPRESA_SIN_ASIG_FAIL,\r\n SELECT_USUARIO_EMPRESA,\r\n SELECT_USUARIO_EMPRESA_FAIL,\r\n DELETE_USUARIO_EMPRESA,\r\n DELETE_USUARIO_EMPRESA_FAIL,\r\n USUARIO_EMPRESA_INI,\r\n UPDATE_USER,\r\n UPDATE_USER_FAIL,\r\n GET_USERS,\r\n GET_USERS_FAIL,\r\n DELETE_USER,\r\n DELETE_USER_FAIL,\r\n USER_INI,\r\n SELECT_EVENTO,\r\n SELECT_EVENTO_FAIL,\r\n GET_PARAMETRO,\r\n GET_PARAMETRO_FAIL,\r\n DELETE_PARAMETRO,\r\n DELETE_PARAMETRO_FAIL,\r\n UPDATE_PARAMETRO,\r\n UPDATE_PARAMETRO_FAIL,\r\n PARAMETRO_INI,\r\n GET_EMPRESA_CON_EVENTO,\r\n GET_EMPRESA_CON_EVENTO_FAIL,\r\n GET_TODO_EVENTO,\r\n GET_TODO_EVENTO_FAIL,\r\n EMPRESA_CON_EVENTO_INI,\r\n EVENTO_EMPRESA_INI,\r\n GET_EVENTO_EMPRESA,\r\n GET_EVENTO_EMPRESA_FAIL,\r\n GET_EVENTO_EMPRESA_SIN_ASIG,\r\n GET_EVENTO_EMPRESA_SIN_ASIG_FAIL,\r\n SELECT_EVENTO_EMPRESA,\r\n SELECT_EVENTO_EMPRESA_FAIL,\r\n DELETE_EVENTO_EMPRESA,\r\n DELETE_EVENTO_EMPRESA_FAIL,\r\n UPDATE_USER_PROFILE,\r\n UPDATE_USER_PROFILE_FAIL,\r\n ONLY_EVENT_DATA,\r\n ONLY_EVENT_DATA_FAIL,\r\n ONLY_EVENT_DATA_INI,\r\n DATA_EVENT_ID,\r\n GET_ADJUDICACION,\r\n GET_ADJUDICACION_FAIL,\r\n ADJUDICACION_INI,\r\n SALA_INI,\r\n ORDEN_USER_ID_INI,\r\n GET_DATA_EMPRESA,\r\n GET_DATA_EMPRESA_FAIL,\r\n DATA_EPMRESA_SINI,\r\n\r\n // AGG JP\r\n GET_EMPRESA_SELECT_INVERSIONISTA,\r\n GET_EMPRESA_SELECT_INVERSIONISTA_FAIL,\r\n GET_DATOS_ADJUDICACIONES,\r\n GET_DATOS_ADJUDICACIONES_FAIL,\r\n UPDATE_IMPRESION_LIQUIDACIONES,\r\n UPDATE_IMPRESION_LIQUIDACIONES_FAIL,\r\n UPDATE_IMPRESION_TITULOS,\r\n UPDATE_IMPRESION_TITULOS_FAIL,\r\n UPDATE_IMPRESION_REPORT_RUEDA,\r\n UPDATE_IMPRESION_REPORT_RUEDA_FAIL,\r\n UPDATE_INVITACION_EMAIL,\r\n UPDATE_INVITACION_EMAIL_FAIL,\r\n UPDATE_LIQUIDACION_EMAIL,\r\n UPDATE_LIQUIDACION_EMAIL_FAIL,\r\n UPDATE_LIQUIDACION,\r\n UPDATE_LIQUIDACION_FAIL,\r\n GET_CATALOGOS_MODALIDAD,\r\n GET_CATALOGOS_MODALIDAD_FAIL,\r\n UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL,\r\n UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL,\r\n //control\r\n SEND_VALUE\r\n\r\n\r\n\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n listBanner: [],\r\n loadingBanner: false,\r\n listaCatalogosPag: null,\r\n listaCatalogosCount: 0,\r\n listaCatalogosPadre: null,\r\n listaItemsPag: null,\r\n listaItemsCount: 0,\r\n loadingCatalogos: false,\r\n loadingItems: false,\r\n listaEmpresa: null,\r\n listaEmpresaCount: 0,\r\n loadingEmpresa: false,\r\n listaInversionista: null,\r\n listaInversionistaCount: 0,\r\n loadingInversionista: false,\r\n listaInstitucionEmpresa: null,\r\n listaUsuarios: null,\r\n listaOrdenes: null,\r\n listaOrdenesCount: 0,\r\n listaOrdenesPorUsuario: null,\r\n listaOrdenesPorUsuarioCount: 0,\r\n loadingOrden: false,\r\n listaEmpresaSelect: null,\r\n listaInversionistaSelect: null,\r\n listaEventos: null,\r\n listaEventosCount: 0,\r\n loadingEventos: false,\r\n listaUsuarioEmpresa: null,\r\n listaUsuarioEmpresaSinAsig: null,\r\n loadingUsuarioEmpresa: false,\r\n listaUser: null,\r\n listaUserCount: 0,\r\n loadingUser: false,\r\n listaEventoSelect: null,\r\n listaParametro: null,\r\n listaParametroCount: 0,\r\n loadingParametro: false,\r\n listaEmpresaConEvento: null,\r\n listaTodosLosEventos: null,\r\n loadingEmpresaConEvento: false,\r\n listaEventoEmpresa: null,\r\n listaEventoEmpresaSinAsig: null,\r\n loadingEventoEmpresa: false,\r\n listaDatosEvento: null,\r\n loadingDatosEvento: false,\r\n datoEventoId: null,\r\n listaAdjudicacion: null,\r\n listaAdjudicacionCount: 0,\r\n loadingAdjudicacion: false,\r\n loadingSala: false,\r\n loadingOrdenUserId: false,\r\n loadingEmpresaConEvento: false,\r\n loadingInversionistaSelect: false,\r\n datosEmpresa: null,\r\n laodingDatosEmpresa: false,\r\n\r\n // AGG JP\r\n listaEmpresasSelecInversionista: null,\r\n listaDatosAdjudicaciones: null,\r\n listaAdjudicacionesCount: 0,\r\n loadingAdjudicacionesD: false,\r\n\r\n listaCatalogosModalidad: null,\r\n //\r\n loadingControl: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n const { type, payload } = action;\r\n switch (type) {\r\n case UPDATE_STATUS_BY_KEY_ADM:\r\n switch (payload.key) {\r\n case \"listaItemsPag\":\r\n return {\r\n ...state,\r\n listaItemsPag: payload.value,\r\n };\r\n case \"listaEmpresa\":\r\n return {\r\n ...state,\r\n listaEmpresa: payload.value,\r\n };\r\n case \"listaInversionista\":\r\n return {\r\n ...state,\r\n listaInversionista: payload.value,\r\n };\r\n case \"listaInstitucionEmpresa\":\r\n return {\r\n ...state,\r\n listaInstitucionEmpresa: payload.value,\r\n };\r\n case \"listaUsuarios\":\r\n return {\r\n ...state,\r\n listaUsuarios: payload.value,\r\n };\r\n case \"listaOrdenesPorUsuario\":\r\n return {\r\n ...state,\r\n listaOrdenesPorUsuario: payload.value,\r\n };\r\n case \"listaOrdenes\":\r\n return {\r\n ...state,\r\n listaOrdenes: payload.value,\r\n };\r\n case \"listaEmpresaSelect\":\r\n return {\r\n ...state,\r\n listaEmpresaSelect: payload.value,\r\n };\r\n case \"listaInversionistaSelect\":\r\n return {\r\n ...state,\r\n listaInversionistaSelect: payload.value,\r\n };\r\n case \"listaEventos\":\r\n return {\r\n ...state,\r\n listaEventos: payload.value,\r\n };\r\n case \"listaUsuarioEmpresa\":\r\n return {\r\n ...state,\r\n listaUsuarioEmpresa: payload.value,\r\n };\r\n case \"listaUsuarioEmpresaSinAsig\":\r\n return {\r\n ...state,\r\n listaUsuarioEmpresaSinAsig: payload.value,\r\n };\r\n case \"listaUser\":\r\n return {\r\n ...state,\r\n listaUser: payload.value,\r\n };\r\n case \"listaEventoSelect\":\r\n return {\r\n ...state,\r\n listaEventoSelect: payload.value,\r\n };\r\n case \"listaParametro\":\r\n return {\r\n ...state,\r\n listaParametro: payload.value,\r\n };\r\n case \"listaEventoEmpresa\":\r\n return {\r\n ...state,\r\n listaEventoEmpresa: payload.value,\r\n };\r\n case \"listaEventoEmpresaSinAsig\":\r\n return {\r\n ...state,\r\n listaEventoEmpresaSinAsig: payload.value,\r\n };\r\n case \"listaDatosEvento\":\r\n return {\r\n ...state,\r\n listaDatosEvento: payload.data,\r\n };\r\n case \"datoEventoId\":\r\n return {\r\n ...state,\r\n datoEventoId: payload.data,\r\n };\r\n case \"listaAdjudicacion\":\r\n return {\r\n ...state,\r\n listaAdjudicacion: payload.data,\r\n };\r\n case \"datosEmpresa\":\r\n return {\r\n ...state,\r\n datosEmpresa: payload.data,\r\n };\r\n\r\n // agg JP\r\n case \"listaEmpresaSelectInvesionista\":\r\n return {\r\n ...state,\r\n listaEmpresasSelecInversionista: payload.value,\r\n };\r\n case \"listaDatosAdjudicaciones\":\r\n return {\r\n ...state,\r\n listaDatosAdjudicaciones: payload.value,\r\n };\r\n\r\n //control\r\n case \"loadingControl\":\r\n return {\r\n ...state,\r\n loadingControl: payload.value,\r\n };\r\n\r\n case \"listaCatalogosModalidad\":\r\n return {\r\n ...state,\r\n listaCatalogosModalidad: payload.value,\r\n };\r\n\r\n }\r\n break;\r\n case GET_GESTION_CATALOGOS:\r\n return {\r\n ...state,\r\n listaCatalogosPag: payload.data[0],\r\n listaCatalogosCount: payload.data[1],\r\n loadingCatalogos: false,\r\n };\r\n case GET_GESTION_CATALOGOS_FAIL:\r\n return {\r\n ...state,\r\n loadingCatalogos: false,\r\n };\r\n case UPDATE_GESTION_CATALOGOS:\r\n return {\r\n ...state,\r\n loadingCatalogos: false,\r\n };\r\n case UPDATE_GESTION_CATALOGOS_FAIL:\r\n return {\r\n ...state,\r\n loadingCatalogos: false,\r\n };\r\n case DELETE_GESTION_CATALOGOS:\r\n return {\r\n ...state,\r\n loadingCatalogos: false,\r\n };\r\n case DELETE_GESTION_CATALOGOS_FAIL:\r\n return {\r\n ...state,\r\n loadingCatalogos: false,\r\n };\r\n case GET_CATALOGOS_PADRE:\r\n return {\r\n ...state,\r\n listaCatalogosPadre: payload.data,\r\n };\r\n case GET_CATALOGOS_PADRE_FAIL:\r\n return {\r\n ...state,\r\n };\r\n case GET_ITEM_CATALOGOS:\r\n return {\r\n ...state,\r\n listaItemsPag: payload.data[0],\r\n listaItemsCount: payload.data[1],\r\n loadingItems: false,\r\n };\r\n case GET_ITEM_CATALOGOS_FAIL:\r\n return {\r\n ...state,\r\n loadingItems: false,\r\n };\r\n case UPDATE_ITEM_CATALOGO:\r\n return {\r\n ...state,\r\n loadingItems: false,\r\n };\r\n case UPDATE_ITEM_CATALOGO_FAIL:\r\n return {\r\n ...state,\r\n loadingItems: false,\r\n };\r\n case DELETE_ITEM_CATALOGO:\r\n return {\r\n ...state,\r\n loadingItems: false,\r\n };\r\n case DELETE_ITEM_CATALOGO_FAIL:\r\n return {\r\n ...state,\r\n loadingItems: false,\r\n };\r\n case CATALOGOS_INI:\r\n return {\r\n ...state,\r\n loadingCatalogos: true,\r\n };\r\n case ITEMS_INI:\r\n return {\r\n ...state,\r\n loadingItems: true,\r\n };\r\n case EMPRESA_INI:\r\n return {\r\n ...state,\r\n loadingEmpresa: true,\r\n };\r\n case GET_EMPRESA:\r\n return {\r\n ...state,\r\n listaEmpresa: payload.data[0],\r\n listaEmpresaCount: payload.data[1],\r\n loadingEmpresa: false,\r\n };\r\n case GET_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresa: false,\r\n };\r\n case DELETE_EMPRESA:\r\n return {\r\n ...state,\r\n loadingEmpresa: false,\r\n };\r\n case DELETE_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresa: false,\r\n };\r\n case UPDATE_EMPRESA:\r\n return {\r\n ...state,\r\n loadingEmpresa: false,\r\n };\r\n case UPDATE_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresa: false,\r\n };\r\n case INVERSIONISTA_INI:\r\n return {\r\n ...state,\r\n loadingInversionista: true,\r\n };\r\n case GET_INVERSIONISTA:\r\n return {\r\n ...state,\r\n listaInversionista: payload.data[0],\r\n listaInversionistaCount: payload.data[1],\r\n loadingInversionista: false,\r\n };\r\n case GET_INVERSIONISTA_FAIL:\r\n return {\r\n ...state,\r\n loadingInversionista: false,\r\n };\r\n case DELETE_INVERSIONISTA:\r\n return {\r\n ...state,\r\n loadingInversionista: false,\r\n };\r\n case DELETE_INVERSIONISTA_FAIL:\r\n return {\r\n ...state,\r\n loadingInversionista: false,\r\n };\r\n case UPDATE_INVERSIONISTA:\r\n return {\r\n ...state,\r\n loadingInversionista: false,\r\n };\r\n case UPDATE_INVERSIONISTA_FAIL:\r\n return {\r\n ...state,\r\n loadingInversionista: false,\r\n };\r\n case GET_EMPRESA_INST:\r\n return {\r\n ...state,\r\n listaInstitucionEmpresa: payload.data,\r\n loadingEmpresa: false,\r\n };\r\n case GET_EMPRESA_INST_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresa: false,\r\n };\r\n case GET_USUARIOS_INV:\r\n return {\r\n ...state,\r\n listaUsuarios: payload.data,\r\n loadingInversionista: false,\r\n };\r\n case GET_USUARIOS_INV_FAIL:\r\n return {\r\n ...state,\r\n\r\n loadingInversionista: false,\r\n };\r\n case GET_ORDEN:\r\n return {\r\n ...state,\r\n listaOrdenes: payload.data[0],\r\n listaOrdenesCount: payload.data[1],\r\n loadingOrden: false,\r\n };\r\n case GET_ORDEN_FAIL:\r\n return {\r\n ...state,\r\n loadingOrden: false,\r\n };\r\n case GET_ORDEN_USER_ID:\r\n return {\r\n ...state,\r\n listaOrdenesPorUsuario: payload.data[0],\r\n listaOrdenesPorUsuarioCount: payload.data[1],\r\n loadingOrdenUserId: false,\r\n };\r\n case GET_ORDEN_USER_ID_FAIL:\r\n return {\r\n ...state,\r\n loadingOrdenUserId: false,\r\n };\r\n case ORDEN_USER_ID_INI:\r\n return {\r\n ...state,\r\n loadingOrdenUserId: true,\r\n };\r\n case UPDATE_ORDEN:\r\n return {\r\n ...state,\r\n loadingSala: false,\r\n };\r\n case UPDATE_ORDEN_FAIL:\r\n return {\r\n ...state,\r\n loadingSala: false,\r\n };\r\n case DELETE_ORDEN:\r\n return {\r\n ...state,\r\n loadingOrden: false,\r\n };\r\n case DELETE_ORDEN_FAIL:\r\n return {\r\n ...state,\r\n loadingOrden: false,\r\n };\r\n case ORDEN_INI:\r\n return {\r\n ...state,\r\n loadingOrden: true,\r\n };\r\n case GET_EMPRESA_SELECT:\r\n return {\r\n ...state,\r\n listaEmpresaSelect: payload.data,\r\n loadingSala: false,\r\n };\r\n case GET_EMPRESA_SELECT_FAIL:\r\n return {\r\n ...state,\r\n };\r\n case GET_INVERSIONISTA_SELECT:\r\n return {\r\n ...state,\r\n listaInversionistaSelect: payload.data,\r\n loadingInversionistaSelect: false,\r\n };\r\n case GET_INVERSIONISTA_SELECT_FAIL:\r\n return {\r\n ...state,\r\n loadingInversionista: false,\r\n };\r\n case INVERSIONISTA_SELECT_INI:\r\n return {\r\n ...state,\r\n loadingInversionistaSelect: true,\r\n };\r\n case GET_EVENTO:\r\n return {\r\n ...state,\r\n listaEventos: payload.data[0],\r\n listaEventosCount: payload.data[1],\r\n loadingEventos: false,\r\n };\r\n case GET_EVENTO_FAIL:\r\n return {\r\n ...state,\r\n loadingEventos: false,\r\n };\r\n case UPDATE_EVENTO:\r\n return {\r\n ...state,\r\n loadingEventos: false,\r\n };\r\n case UPDATE_EVENTO_FAIL:\r\n return {\r\n ...state,\r\n loadingEventos: false,\r\n };\r\n case DELETE_EVENTO:\r\n return {\r\n ...state,\r\n loadingEventos: false,\r\n };\r\n case DELETE_EVENTO_FAIL:\r\n return {\r\n ...state,\r\n loadingEventos: false,\r\n };\r\n case EVENTO_INI:\r\n return {\r\n ...state,\r\n loadingEventos: true,\r\n };\r\n case GET_USUARIO_EMPRESA:\r\n return {\r\n ...state,\r\n listaUsuarioEmpresa: payload.data,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case GET_USUARIO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case GET_USUARIO_EMPRESA_SIN_ASIG:\r\n return {\r\n ...state,\r\n listaUsuarioEmpresaSinAsig: payload.data,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case GET_USUARIO_EMPRESA_SIN_ASIG_FAIL:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case SELECT_USUARIO_EMPRESA:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case SELECT_USUARIO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n\r\n case DELETE_USUARIO_EMPRESA:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case DELETE_USUARIO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: false,\r\n };\r\n case USUARIO_EMPRESA_INI:\r\n return {\r\n ...state,\r\n loadingUsuarioEmpresa: true,\r\n };\r\n case GET_USERS:\r\n return {\r\n ...state,\r\n listaUser: payload.data[0],\r\n listaUserCount: payload.data[1],\r\n loadingUser: false,\r\n };\r\n case GET_USERS_FAIL:\r\n return {\r\n ...state,\r\n usuariosLoading: false,\r\n };\r\n case DELETE_USER:\r\n return {\r\n ...state,\r\n usuariosLoading: false,\r\n };\r\n case DELETE_USER_FAIL:\r\n return {\r\n ...state,\r\n\r\n usuariosLoading: false,\r\n };\r\n case UPDATE_USER:\r\n return {\r\n ...state,\r\n usuariosLoading: false,\r\n };\r\n case UPDATE_USER_FAIL:\r\n return {\r\n ...state,\r\n usuariosLoading: false,\r\n };\r\n case USER_INI:\r\n return {\r\n ...state,\r\n usuariosLoading: true,\r\n };\r\n case SELECT_EVENTO:\r\n return {\r\n ...state,\r\n listaEventoSelect: payload.data,\r\n };\r\n case SELECT_EVENTO_FAIL:\r\n return {\r\n ...state,\r\n };\r\n case DELETE_PARAMETRO:\r\n return {\r\n ...state,\r\n loadingParametro: false,\r\n };\r\n case DELETE_PARAMETRO_FAIL:\r\n return {\r\n ...state,\r\n loadingParametro: false,\r\n };\r\n case GET_PARAMETRO:\r\n return {\r\n ...state,\r\n listaParametro: payload.data[0],\r\n listaParametroCount: payload.data[1],\r\n loadingParametro: false,\r\n };\r\n case GET_PARAMETRO_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresaConEvento: false,\r\n };\r\n case UPDATE_PARAMETRO:\r\n return {\r\n ...state,\r\n loadingParametro: false,\r\n };\r\n case UPDATE_PARAMETRO_FAIL:\r\n return {\r\n ...state,\r\n loadingParametro: false,\r\n };\r\n case PARAMETRO_INI:\r\n return {\r\n ...state,\r\n loadingParametro: true,\r\n };\r\n case GET_EMPRESA_CON_EVENTO:\r\n return {\r\n ...state,\r\n listaEmpresaConEvento: payload.data,\r\n loadingEmpresaConEvento: false,\r\n };\r\n\r\n case GET_EMPRESA_CON_EVENTO_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresaConEvento: false,\r\n };\r\n case GET_TODO_EVENTO:\r\n return {\r\n ...state,\r\n listaTodosLosEventos: payload.data,\r\n loadingEmpresaConEvento: false,\r\n };\r\n\r\n case GET_TODO_EVENTO_FAIL:\r\n return {\r\n ...state,\r\n loadingEmpresaConEvento: false,\r\n };\r\n\r\n case EMPRESA_CON_EVENTO_INI:\r\n return {\r\n ...state,\r\n loadingEmpresaConEvento: true,\r\n };\r\n case GET_EVENTO_EMPRESA:\r\n return {\r\n ...state,\r\n listaEventoEmpresa: payload.data,\r\n loadingEventoEmpresa: false,\r\n };\r\n case GET_EVENTO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n\r\n case GET_EVENTO_EMPRESA_SIN_ASIG:\r\n return {\r\n ...state,\r\n listaEventoEmpresaSinAsig: payload.data,\r\n loadingEventoEmpresa: false,\r\n };\r\n case GET_EVENTO_EMPRESA_SIN_ASIG_FAIL:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n case SELECT_EVENTO_EMPRESA:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n case SELECT_EVENTO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n\r\n case DELETE_EVENTO_EMPRESA:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n case DELETE_EVENTO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n\r\n case EVENTO_EMPRESA_INI:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: true,\r\n };\r\n case UPDATE_USER_PROFILE:\r\n return {\r\n ...state,\r\n };\r\n case UPDATE_USER_PROFILE_FAIL:\r\n return {\r\n ...state,\r\n };\r\n case ONLY_EVENT_DATA:\r\n return {\r\n ...state,\r\n listaDatosEvento: payload.data[0],\r\n loadingDatosEvento: false,\r\n };\r\n case ONLY_EVENT_DATA_FAIL:\r\n return {\r\n ...state,\r\n loadingDatosEvento: false,\r\n };\r\n case ONLY_EVENT_DATA_INI:\r\n return {\r\n ...state,\r\n loadingDatosEvento: true,\r\n };\r\n case DATA_EVENT_ID:\r\n return {\r\n ...state,\r\n datoEventoId: payload.data,\r\n };\r\n case GET_ADJUDICACION:\r\n return {\r\n ...state,\r\n listaAdjudicacion: payload.data[0],\r\n listaAdjudicacionCount: payload.data[1],\r\n loadingAdjudicacion: false,\r\n };\r\n case GET_ADJUDICACION_FAIL:\r\n return {\r\n ...state,\r\n loadingAdjudicacion: false,\r\n };\r\n case ADJUDICACION_INI:\r\n return {\r\n ...state,\r\n loadingAdjudicacion: true,\r\n };\r\n case GET_EVENTO_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n };\r\n case SALA_INI:\r\n return {\r\n ...state,\r\n loadingSala: true,\r\n };\r\n case GET_DATA_EMPRESA:\r\n return {\r\n ...state,\r\n datosEmpresa: payload.data,\r\n laodingDatosEmpresa: false\r\n\r\n\r\n };\r\n case GET_DATA_EMPRESA_FAIL:\r\n return {\r\n ...state,\r\n laodingDatosEmpresa: false\r\n\r\n };\r\n\r\n\r\n\r\n\r\n // AGG JP\r\n case GET_EMPRESA_SELECT_INVERSIONISTA:\r\n return {\r\n ...state,\r\n listaEmpresasSelecInversionista: payload.data,\r\n\r\n };\r\n case GET_EMPRESA_SELECT_INVERSIONISTA_FAIL:\r\n return {\r\n ...state\r\n\r\n };\r\n\r\n // obtener adjudicaciones para menu liquidaciones\r\n case GET_DATOS_ADJUDICACIONES:\r\n return {\r\n ...state,\r\n listaDatosAdjudicaciones: payload.data[0],\r\n listaAdjudicacionesCount: payload.data[1],\r\n loadingAdjudicacionesD: false,\r\n };\r\n case GET_DATOS_ADJUDICACIONES_FAIL:\r\n return {\r\n ...state,\r\n loadingAdjudicacionesD: false,\r\n };\r\n\r\n // impresion certificados\r\n case UPDATE_IMPRESION_LIQUIDACIONES:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_IMPRESION_LIQUIDACIONES_FAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n\r\n // impresion titulos\r\n case UPDATE_IMPRESION_TITULOS:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_IMPRESION_TITULOS_FAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n\r\n // impresion reporte user rueda\r\n case UPDATE_IMPRESION_REPORT_RUEDA:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n case UPDATE_IMPRESION_REPORT_RUEDA_FAIL:\r\n return {\r\n ...state,\r\n loadingEventoEmpresa: false,\r\n };\r\n\r\n case UPDATE_INVITACION_EMAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_INVITACION_EMAIL_FAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n\r\n case UPDATE_LIQUIDACION_EMAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_LIQUIDACION_EMAIL_FAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_LIQUIDACION_INVERSIONISTA_EMAIL_FAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n\r\n // guardar liquidaciones\r\n case UPDATE_LIQUIDACION:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n case UPDATE_LIQUIDACION_FAIL:\r\n return {\r\n ...state,\r\n liquidacionesLoading: false,\r\n };\r\n // control juego\r\n case SEND_VALUE:\r\n return {\r\n ...state,\r\n loadingControl: false,\r\n };\r\n default:\r\n return state;\r\n\r\n // Catalogos modalidad\r\n case GET_CATALOGOS_MODALIDAD:\r\n return {\r\n ...state,\r\n listaCatalogosModalidad: payload.data,\r\n\r\n };\r\n case GET_CATALOGOS_MODALIDAD_FAIL:\r\n return {\r\n ...state\r\n\r\n };\r\n\r\n\r\n }\r\n}\r\n","import { combineReducers } from \"redux\";\r\nimport auth from \"./auth\";\r\nimport message from \"./message\";\r\nimport banner from \"./banner\";\r\nimport juego from \"./juego\";\r\nimport user from \"./user\";\r\nimport controlJuego from \"./controlJuego\"; // agregado\r\nimport administracion from \"./administracion\"\r\nexport default combineReducers({\r\n auth,\r\n message,\r\n banner,\r\n juego,\r\n user,\r\n administracion,\r\n controlJuego\r\n});\r\n","import { createStore, applyMiddleware } from \"redux\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\nimport thunk from \"redux-thunk\";\r\nimport rootReducer from \"./reducers\";\r\n\r\nconst middleware = [thunk];\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n composeWithDevTools(applyMiddleware(...middleware))\r\n);\r\n\r\nexport default store;\r\n","import axios from \"axios\";\r\nimport '../config'\r\n\r\nconst getEventosPorUsuario = (userId) => {\r\n const params = {\"strUserId\":userId}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"ObtenerEventosPorUsuario\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result.length>0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n };\r\n\r\nconst getTitulosEventoById = (eventId) => {\r\n const params = {\"strEventId\":eventId}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"ObtenerTitulosPorEvento\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result.length>0){\r\n localStorage.setItem(\"eventos\", JSON.stringify(result));\r\n localStorage.setItem(\"titulosRVCount\", result.filter(value => value[\"TipoRentaCod\"] === 'RV').length);\r\n \r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n}\r\n\r\nexport default {\r\n getEventosPorUsuario,\r\n getTitulosEventoById\r\n};\r\n ","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAbCAYAAAAgVez8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNERDc2QzY3MDFEMzExRUJBODQyQTM4M0U5OTAyNDAzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNERDc2QzY4MDFEMzExRUJBODQyQTM4M0U5OTAyNDAzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0RENzZDNjUwMUQzMTFFQkE4NDJBMzgzRTk5MDI0MDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0RENzZDNjYwMUQzMTFFQkE4NDJBMzgzRTk5MDI0MDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz56R8RBAAAKz0lEQVR42tSZe4xc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\"","/*module.exports = global.config = {\r\n URL_SERVICE:'http://localhost:60790/WsService.svc/',//'http://localhost:60790/WsService.svc/',\r\n URL_WEB_SOCKET:'ws://localhost:1114/server.ashx/'//'ws://localhost/WebSocketServer/server.ashx/' \r\n}\r\n*/\r\n\r\nmodule.exports = global.config = {\r\n URL_SERVICE:'http://51.222.131.18/WsJuniorBvq/WsService.svc/',//'http://localhost:60790/WsService.svc/',\r\n URL_WEB_SOCKET:'ws://51.222.131.18/WsSocketServerJunior/server.ashx/'//'ws://localhost/WebSocketServer/server.ashx/' \r\n}","import axios from \"axios\";\r\nimport '../config'\r\n\r\nconst getBannerByGame = () => {\r\n const params = {}\r\n return axios\r\n .post(global.config.URL_SERVICE + \"ObtenerBannerSalaEspera\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n if(result.length>0){\r\n return result; \r\n }else{\r\n return null\r\n }\r\n });\r\n };\r\n\r\nexport default {\r\n getBannerByGame\r\n};\r\n ","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport DataGrid, { Column } from \"@inovua/reactdatagrid-community\";\r\nimport \"@inovua/reactdatagrid-community/base.css\";\r\nimport \"@inovua/reactdatagrid-community/theme/amber-dark.css\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from \"@szhsin/react-menu\";\r\nimport \"@szhsin/react-menu/dist/index.css\";\r\nimport { formatDateTime, formatNumber, generateMessageAdm } from \"./Util\";\r\nimport {getOrdenAct,getOrdenPorUsuarioAct,deleteOrdenAct} from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport { NotificationContainer } from \"react-notifications\";\r\n\r\nconst GestionOrden = (props) => {\r\n \r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const dispatch = useDispatch();\r\n const {listaOrdenes,listaOrdenesPorUsuario,loadingOrden} = useSelector((state) => state.administracion); \r\n const {eventoSeleccionado: eventoSeleccionado} = useSelector((state) => state.juego); \r\n const usuario = useState(props.usuarioId)\r\n let [loadOrden, setLoadOrden] = useState(false) \r\n if(loadOrden===false && listaOrdenesPorUsuario===null && eventoSeleccionado!==null){\r\n setLoadOrden(true)\r\n dispatch(getOrdenPorUsuarioAct(currentUser[\"EmpresaId\"],eventoSeleccionado,currentUser[\"userId\"],\"0\",\"\",\"\",\"ASC\",\"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n \r\n }\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\"); \r\n let [gridInfor, setGridInfor] = useState([listaOrdenesPorUsuario!==null?listaOrdenesPorUsuario:[]]); \r\n\r\n if(listaOrdenesPorUsuario!==null && listaOrdenesPorUsuario!=gridInfor && empresaFilter===\"\")\r\n setGridInfor(listaOrdenesPorUsuario)\r\n \r\n function filterCatalogo(nego,empresaFilter){\r\n //value => \r\n setGridInfor(nego.filter(function(item) {\r\n if (item[\"Empresa\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) || \r\n item[\"Inversionista\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n\r\n const renderButtonObservaciones= (value) => {\r\n //console.log(value.data[\"Estado\"])\r\n return (\r\n <>\r\n {value.data[\"Estado\"]===\"A\"?\r\n <button \r\n className=\"fas fa-check\"//fas fa-clock\r\n onClick={\r\n (e) => {\r\n // handleClickCertificado(e)\r\n //setIsLoading(true)\r\n }\r\n \r\n }></button>\r\n :\r\n <button \r\n className=\"fas fa-times\"//fas fa-clock\r\n onClick={\r\n (e) => {\r\n // handleClickCertificado(e)\r\n //setIsLoading(true)\r\n }\r\n \r\n }></button>}\r\n </>\r\n )\r\n }\r\n \r\n let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: \"Index\", header: \"ORDEN\", defaultFlex: 1, xdefaultLocked: \"end\",className:\"col\", className:\"numDataGrid\", headerAlign: \"center\" },\r\n { name: \"Empresa\", header: \"EMPRESA\",defaultFlex: 1, xdefaultLocked: \"end\",className:\"col\", headerAlign: \"center\" }, \r\n { name: \"AccionesComprar\", header: \"#ACC\", defaultFlex: 1, xdefaultLocked: \"start\",className:\"col\", className:\"numDataGrid\" , headerAlign: \"center\"},\r\n { name: \"PrecioPagar\", header: \"PRECIO\", defaultFlex: 1, xdefaultLocked: \"end\",className:\"col\", className:\"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\" },\r\n /*{ name: \"Inversionista\", header: \"INVERSIONISTA\",defaultFlex: 1, xdefaultLocked: \"end\",className:\"col\", defaultWidth: 100, headerAlign: \"center\" }, */ \r\n { name: \"Estado\", header: \"ESTADO\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonObservaciones(rowData) , headerAlign: \"center\"},\r\n ];\r\n\r\n\r\n const [gridStyle,setGridStyle] = useState({ minHeight: \"calc(100vh/2 - 140px)\", height: \"100%\" });\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps } ) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n \r\n ]\r\n }, []) \r\n\r\n const updateFiltro = (text) =>{\r\n setEmpresaFilter(text);\r\n filterCatalogo(listaOrdenesPorUsuario!==null?listaOrdenesPorUsuario:[],text)\r\n }\r\n\r\n useEffect(() => {\r\n if(props.empresaFilterGen!=\"\"){\r\n setEmpresaFilter(props.empresaFilterGen)\r\n updateFiltro(props.empresaFilterGen)\r\n }\r\n \r\n },[props.empresaFilterGen]);\r\n\r\n useEffect(() => {\r\n if(props.maximizeRegis)\r\n setGridStyle({ minHeight: \"100%\", height: \"calc(100vh - 225px)\" })\r\n else\r\n setGridStyle({ minHeight: \"calc(100vh/2 - 140px)\", height: \"100%\" })\r\n }, [props.maximizeRegis]) \r\n\r\n useEffect(() => {\r\n if (listaOrdenesPorUsuario !== null){\r\n if(empresaFilter!=\"\"){\r\n updateFiltro(props.empresaFilterGen)\r\n }\r\n \r\n }\r\n }, [listaOrdenesPorUsuario]) \r\n\r\n\r\n\r\n\r\n return (\r\n <div>\r\n <h6 className=\"crypt-bg-head\">ÓRDENES REGISTRADAS<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n updateFiltro(e.target.value) \r\n }}/> <i className=\"fas fa-search\"></i><i className={[\"fas\",!props.maximizeOrn?\"fa-window-maximize\":\"fa-window-restore\"].join(' ')} onClick={()=> props.setMaximizeRegis(!props.maximizeRegis)}></i></div></div></h6>\r\n <div className=\"tab-content\">\r\n <DataGrid\r\n idProperty=\"OrdenId\"\r\n style={gridStyle}\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n // renderRowContextMenu={props.isDisabled==false? renderRowContextMenu:\"\"}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"no-orders text-center\"></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(GestionOrden);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport DataGrid, { Column } from \"@inovua/reactdatagrid-community\";\r\nimport \"@inovua/reactdatagrid-community/base.css\";\r\nimport \"@inovua/reactdatagrid-community/theme/amber-dark.css\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from \"@szhsin/react-menu\";\r\nimport \"@szhsin/react-menu/dist/index.css\";\r\nimport { enableFuncionalityForRole, formatDateTime, formatNumber } from \"./Util\";\r\nimport { getAdjudicacionAct } from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport { NotificationContainer } from \"react-notifications\";\r\n\r\nconst Adjudicacion = (props) => {\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const dispatch = useDispatch();\r\n const { listaAdjudicacion } = useSelector((state) => state.administracion);\r\n let [empresaSeleccionada, setEmpresaSeleccionada] = useState(props.selected)\r\n let [loadAdjudicacion, setLoadAdjudicacion] = useState(false)\r\n let [listaAdjudicacionEmpresa,setlistaAdjudicacionEmpresa] = useState(null)\r\n //console.log(props.selected)\r\n \r\n\r\n if (loadAdjudicacion === false && props.eventoId !== null) {\r\n\r\n setLoadAdjudicacion(true)\r\n if(props.selected>0){\r\n \r\n dispatch(getAdjudicacionAct(props.eventoId, props.selected, props.usuarioId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n }else{\r\n //console.log(\"e\")\r\n dispatch(getAdjudicacionAct(props.eventoId, props.empresaId, props.usuarioId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n\r\n }\r\n\r\n \r\n \r\n \r\n }\r\n if(listaAdjudicacionEmpresa== null){\r\n setlistaAdjudicacionEmpresa(listaAdjudicacion!=null?listaAdjudicacion.filter(x=> x.EmpresaId===empresaSeleccionada[0]):[[],{\"Count\": 0}])\r\n }\r\n //console.log(listaAdjudicacion)\r\n\r\n let [userFuntion] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"USER_ORDEN\")\r\n : false\r\n );\r\n\r\n const filtro = listaAdjudicacion!==undefined && listaAdjudicacion !== null ? listaAdjudicacion.filter(empresa => empresa.EmpresaId == empresaSeleccionada):[[],{\"Count\": 0}]\r\n //console.log(filtro)\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(props.empresaFilterGen);\r\n //console.log(\"listaAdjudicacion\",listaAdjudicacion)\r\n let [gridInfor, setGridInfor] = useState([listaAdjudicacion!==undefined && listaAdjudicacion !== null ? listaAdjudicacion : [[],{\"Count\": 0}]]);\r\n\r\n if (listaAdjudicacion !== null && listaAdjudicacion != gridInfor && empresaFilter === \"\") {\r\n setGridInfor(listaAdjudicacion)\r\n\r\n }\r\n\r\n\r\n function filterCatalogo(nego, empresaFilter) {\r\n\r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"NombreInversionista\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) || item[\"NombreEmpresa\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n\r\n\r\n /* let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },\r\n { name: \"NombreEmpresa\", header: \"EMPRESA\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\"},\r\n { name: \"NumAcciones\", header: \"# ACC\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", className:\"numDataGrid\", headerAlign: \"center\" },\r\n { name: \"Precio\", header: \"PRECIO\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", className:\"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\"},\r\n { name: \"Colegio\", header: \"INSTITUCIÓN\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\" },\r\n //{ name: \"NombreInversionista\", header: \"INVERSIONISTA\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\" },\r\n\r\n ];*/\r\n \r\n let columns = userFuntion === true ? [\r\n\r\n { name: \"NombreEmpresa\", header: \"EMPRESA\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\"},\r\n { name: \"NumAcciones\", header: \"# ACC\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", className:\"numDataGrid\", headerAlign: \"center\" },\r\n { name: \"Precio\", header: \"PRECIO\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", className:\"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\"},\r\n { name: \"NombreInversionista\", header: \"INVERSIONISTA\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\" },\r\n\r\n ] : \r\n [\r\n { name: \"NombreEmpresa\", header: \"EMPRESA\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\"},\r\n { name: \"NumAcciones\", header: \"# ACC\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", className:\"numDataGrid\", headerAlign: \"center\" },\r\n { name: \"Precio\", header: \"PRECIO\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", className:\"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\"},\r\n { name: \"Colegio\", header: \"INSTITUCIÓN\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"col\", headerAlign: \"center\" },\r\n ]\r\n\r\n const [gridStyle,setGridStyle] = useState({ minHeight: \"calc(100vh/2 - 100px)\", height: \"100%\" });\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true;\r\n }, []);\r\n\r\n const filterEmpresa = (text) =>{\r\n setEmpresaFilter(text);\r\n filterCatalogo(listaAdjudicacion !== null ? listaAdjudicacion : [], text)\r\n }\r\n\r\n useEffect(() => {\r\n if(props.empresaFilterGen!=\"\"){\r\n setEmpresaFilter(props.empresaFilterGen)\r\n filterEmpresa(props.empresaFilterGen)\r\n }\r\n \r\n },[props.empresaFilterGen]);\r\n\r\n useEffect(() => {\r\n if(props.maximizeAdj)\r\n setGridStyle({ minHeight: \"100%\", height: \"calc(100vh - 215px)\" })\r\n else\r\n setGridStyle({ minHeight: \"calc(100vh/2 - 140px)\", height: \"100%\" })\r\n }, [props.maximizeAdj]) \r\n\r\n useEffect(() => {\r\n if (listaAdjudicacion !== null){\r\n if(empresaFilter!=\"\"){\r\n filterEmpresa(props.empresaFilterGen)\r\n }\r\n \r\n }\r\n }, [listaAdjudicacion]) \r\n\r\n\r\n\r\n\r\n return (\r\n <div>\r\n <h6 className=\"crypt-bg-head\">ADJUDICACIÓN\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n <input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n filterEmpresa(e.target.value) \r\n }} /> <i className=\"fas fa-search\"></i><i className={[\"fas\",!props.maximizeAdj?\"fa-window-maximize\":\"fa-window-restore\"].join(' ')} onClick={()=> props.setMaximizeAdj(!props.maximizeAdj)}></i>\r\n </div>\r\n </div>\r\n </h6>\r\n <div className=\"tab-content\">\r\n <DataGrid\r\n idProperty=\"AdjudicacionId\"\r\n style={gridStyle}\r\n\r\n columns={columns}\r\n \r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"no-orders text-center\"></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Adjudicacion);\r\n","import {useState} from 'react'\r\nexport function UseLocalStorage (key,initialValue){\r\n const[storedValue,setStoreValue] = useState( () =>{\r\n try{\r\n const item = window.localStorage.getItem(key)\r\n return item?JSON.parse(item):initialValue\r\n }catch(error){\r\n return initialValue\r\n }\r\n })\r\n const setValue = value =>{\r\n try{\r\n setStoreValue(value)\r\n window.localStorage.setItem(key,JSON.stringify(value))\r\n }catch(error){\r\n console.error(error)\r\n }\r\n }\r\n return [storedValue,setValue]\r\n}","import { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport React, { useCallback, useState } from 'react'\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport { getEventoEmpresaAct, updateImpresionReportAdjudicacion, updateImpresionReportLiquidacion, updateImpresionReportRueda } from \"../../actions/administracion\";\r\nimport fileDownload from 'js-file-download'\r\nimport axios from \"axios\";\r\nimport { formatNumber } from \"./Util\";\r\nimport { Menu, MenuButton, MenuItem } from \"@szhsin/react-menu\";\r\n\r\n\r\nconst ReporteUserRueda = (props) => {\r\n const dispatch = useDispatch();\r\n const { listaEventoEmpresa, loadingEventoEmpresa } = useSelector((state) => state.administracion);\r\n const gridStyle = { minHeight: '300px', height: '100%' }\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionado);\r\n //console.log(eventoSeleccionadoId);\r\n let [plantillaFilter, setPlantillaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaEventoEmpresa !== null ? listaEventoEmpresa : []]);\r\n let [loadEventoEmpresa, setloadEventoEmpresa] = useState(false)\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n if (loadEventoEmpresa === false) {\r\n setloadEventoEmpresa(true)\r\n dispatch(getEventoEmpresaAct(eventoSeleccionadoId))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n\r\n if (listaEventoEmpresa !== null && listaEventoEmpresa != gridInfor && plantillaFilter === \"\")\r\n setGridInfor(listaEventoEmpresa)\r\n\r\n function closeReporte() {\r\n props.closeReporteClick()\r\n }\r\n\r\n const renderButtonI = (value, rowData) => {\r\n return (\r\n <>\r\n <button id={value.data !== null ?\r\n value.data[\"EventoId\"] : \"0\"}\r\n className=\"fas fa-print\"\r\n onClick={(e) => {\r\n handleClickReporEvento(e)\r\n //setIsLoading(true) \r\n }\r\n }></button>\r\n </>\r\n )\r\n }\r\n\r\n\r\n function downloadExcel(file) {\r\n window.open(file);\r\n }\r\n const handleClickReporEvento = (rowData) => {\r\n let eventoId = parseInt(rowData.target.id)\r\n let data = listaEventoEmpresa.filter(x => x.EventoId === eventoId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n dispatch(updateImpresionReportRueda(eventoSeleccionadoId))\r\n .then((url) => {\r\n downloadExcel(url)\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n const handleClickReporLiquidacion = (rowData) => {\r\n let eventoId = parseInt(rowData.target.id)\r\n let data = listaEventoEmpresa.filter(x => x.EventoId === eventoId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n dispatch(updateImpresionReportLiquidacion(eventoSeleccionadoId))\r\n .then((url) => {\r\n downloadExcel(url)\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n\r\n }\r\n const handleClickReporAdjudicacion = (rowData) => {\r\n let eventoId = parseInt(rowData.target.id)\r\n let data = listaEventoEmpresa.filter(x => x.EventoId === eventoId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n dispatch(updateImpresionReportAdjudicacion(eventoSeleccionadoId))\r\n .then((url) => {\r\n downloadExcel(url)\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function ReporEventos(eventoIds) {\r\n let eventoId = parseInt(eventoIds)\r\n let data = listaEventoEmpresa.filter(x => x.EventoId === eventoId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n dispatch(updateImpresionReportRueda(eventoSeleccionadoId))\r\n .then((url) => {\r\n downloadExcel(url)\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n }\r\n function ReporLiquidacion(eventoIds) {\r\n let eventoId = parseInt(eventoIds)\r\n let data = listaEventoEmpresa.filter(x => x.EventoId === eventoId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n dispatch(updateImpresionReportLiquidacion(eventoSeleccionadoId))\r\n .then((url) => {\r\n downloadExcel(url)\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n }\r\n function ReporAdjudicacion(eventoIds) {\r\n let eventoId = parseInt(eventoIds)\r\n let data = listaEventoEmpresa.filter(x => x.EventoId === eventoId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n dispatch(updateImpresionReportAdjudicacion(eventoSeleccionadoId))\r\n .then((url) => {\r\n downloadExcel(url)\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n }\r\n\r\n\r\n let columns = [\r\n\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Institucion', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>COLEGIO</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\", minWidth: 150 },\r\n { name: 'Nombre', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE COMPAÑÃA</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\", minWidth: 200 },\r\n { name: 'ValorUnitarioAccion', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>VALOR ACCIÓN</div>), defaultFlex: 1, xdefaultLocked: 'end', className: \"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\", minWidth: 145 },\r\n { name: 'NumAccionesOferta', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}># ACCIONES</div>), defaultFlex: 1, xdefaultLocked: 'end', className: \"numDataGrid\", headerAlign: \"center\", minWidth: 130 },\r\n { name: 'Receptor', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>RECEPTOR</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Gerente', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>GERENTE</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'NombreExponente', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>EXPONENTE</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\", minWidth: 130 },\r\n /*{ name: \"ImprimirReporte\", header: \"Exportar Reporte\", defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonI(rowData)}*/]\r\n\r\n return (\r\n <div className={[\"overlay3\", \"fade-in\"].join(\" \")}>\r\n\r\n <div className={['loading_cont', (isLoading\r\n !== true) ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Reportes\r\n <div className=\"subItemCatalogo\">\r\n {/*<Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={(e) => {\r\n ReporEventos(eventoSeleccionadoId)\r\n setIsLoading(true)\r\n }}>Evento</MenuItem>\r\n <MenuItem onClick={(e) => {\r\n ReporLiquidacion(eventoSeleccionadoId)\r\n setIsLoading(true)\r\n }}>Liquidación</MenuItem>\r\n <MenuItem onClick={(e) => {\r\n ReporAdjudicacion(eventoSeleccionadoId)\r\n setIsLoading(true)\r\n }}>Adjudicación</MenuItem>\r\n </Menu>*/}\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">REPORTE DEL EVENTO\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n\r\n </div>\r\n \r\n <div className=\"fas fa-file-excel btnReportes\" onClick={(e) => {\r\n handleClickReporEvento(e)\r\n setIsLoading(true)\r\n }}> Evento\r\n </div>\r\n <div className=\"fas fa-file-excel btnReportes\" onClick={(e) => {\r\n handleClickReporLiquidacion(e)\r\n setIsLoading(true)\r\n }}> Liquidación\r\n </div>\r\n <div className=\"fas fa-file-excel btnReportes\" onClick={(e) => {\r\n handleClickReporAdjudicacion(e)\r\n setIsLoading(true)\r\n }}> Adjudicación\r\n </div>\r\n </div>\r\n </div>\r\n <DataGrid\r\n idProperty=\"AdjudicacionId\"\r\n style={gridStyle}\r\n //theme=\"default-light\"\r\n columns={columns}\r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n theme=\"amber-dark\"\r\n />\r\n\r\n <div className=\"dividerLine\">\r\n\r\n </div>\r\n\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeReporte}>\r\n SALIR\r\n </div>\r\n </div>\r\n <div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(ReporteUserRueda);\r\n","import React, { useState } from 'react';\r\nimport {\r\n Menu,\r\n MenuItem,\r\n MenuButton,\r\n SubMenu\r\n} from '@szhsin/react-menu';\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height\r\n };\r\n}\r\n\r\n\r\nconst UsuarioActivo = (props) => {\r\n\r\n //console.log(\"usuario recibidos\", props.userList)\r\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\r\n function closeBuscarUsuario() {\r\n props.closeUsuarioActivoClick()\r\n }\r\n\r\n\r\n const [showButton, setShowButton] = useState(false);\r\n let [userFilter, setUserFilter] = useState(\"\");\r\n //let [showUserList, setShowUserList] = useState(windowDimensions.width > 650 ? true : false);\r\n let [showUserList, setShowUserList] = useState(false);\r\n const [globalValue, setGlobalValue] = React.useState(\"Some initial value\");\r\n\r\n function hideShowUsers() {\r\n setShowUserList(!showUserList)\r\n }\r\n // setShowButton(true)\r\n return (\r\n <div className={\"\"}>\r\n\r\n \r\n\r\n <div className=\"panel\">\r\n \r\n\r\n <div className={[\"pasoUserRow\", \"userRow\", props.enableUserList === false ? \"displaynone\" : showUserList === false ? \"minimizeUserList\" : \"\"].join(' ')}>\r\n <div className=\"userRowBtn\" onClick={hideShowUsers}><i className=\"far fa-user\"></i></div>\r\n <div className=\"innerShadow3\">\r\n <h3>USUARIOS CONECTADOS</h3>\r\n <div className=\"userConectedTitle\">Usuarios conectados: {props.userList !== null && props.userList !== undefined ? props.userList.length : \"0\"}</div>\r\n <div className=\"searchUser\"><input type=\"text\" placeholder=\"Buscar\" value={userFilter} onChange={(e) => {\r\n setUserFilter(e.target.value);\r\n }} />\r\n <div className={[\"userListSidebar\", showUserList === false ? \"overflow-hidden\" : \"\"].join(' ')}>\r\n <ul>\r\n {\r\n props.userList != null ? props.userList.filter(\r\n value => value[\"d2p1:Value\"][0][\"strNick\"][0].toLowerCase().includes(\r\n userFilter.toLocaleLowerCase())).map((item, i) => {\r\n return <li key={item[\"d2p1:Key\"][0]}>\r\n <div className=\"userContTxt\">\r\n <div className=\"userNameList\" title={item[\"d2p1:Value\"][0][\"strPrefix\"][0] + \" - \" + item[\"d2p1:Value\"][0][\"strNick\"][0]}>\r\n <span>{item[\"d2p1:Value\"][0][\"strPrefix\"][0]}-</span>{item[\"d2p1:Value\"][0][\"strNick\"][0]}</div>\r\n <div className=\"userLastPlay\">Ingreso</div>\r\n </div>\r\n <div className=\"pasoOpcionesUsr userArrowRight\"></div>\r\n </li>\r\n }) : \"\"\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n {/*<div className=\"innerShadow-height-100\">\r\n <div className=\"textCenter\">\r\n <h2>\r\n Usuarios conectados\r\n <div className=\"subItemCatalogo\"></div>\r\n </h2>\r\n <div className=\"userConectedTitle\">Usuarios conectados: {props.userList !== null && props.userList !== undefined ? props.userList.length : \"0\"}</div>\r\n <div className=\"searchUser\"><input type=\"text\" placeholder=\"Buscar\" value={userFilter} onChange={(e) => {\r\n setUserFilter(e.target.value);\r\n }} />\r\n <i className=\"fas fa-search\"></i>\r\n </div>\r\n <div className={\"userListSidebar\"}>\r\n <ul>\r\n {\r\n props.userList != null ? props.userList.filter(\r\n value => value[\"d2p1:Value\"][0][\"strNick\"][0].toLowerCase().includes(\r\n userFilter.toLocaleLowerCase())).map((item, i) => {\r\n return <li key={item[\"d2p1:Key\"][0]}>\r\n <div className=\"userContTxt\">\r\n <div className=\"userNameList\" title={item[\"d2p1:Value\"][0][\"strPrefix\"][0] + \" - \" + item[\"d2p1:Value\"][0][\"strNick\"][0]}>\r\n <span>{item[\"d2p1:Value\"][0][\"strPrefix\"][0]}-</span>{item[\"d2p1:Value\"][0][\"strNick\"][0]}</div>\r\n <div className=\"userLastPlay\">Ingreso</div>\r\n </div>\r\n <div className=\"pasoOpcionesUsr userArrowRight\"></div>\r\n </li>\r\n }) : \"\"\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n\r\n </div>\r\n </div>*/}\r\n </div>\r\n\r\n \r\n\r\n\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default UsuarioActivo","import React, { Component } from \"react\";\r\nimport NumberFormat from 'react-number-format'\r\nimport '../../config'\r\n\r\nclass ItemRentaFija extends Component { \r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n <div className=\"valorRentaFija\"> \r\n <div className=\"imgLogo gris\"><img src={global.config.URL_IMAGE_EMISOR + this.props.item[\"EmisorCodigo\"] + \".png\"} alt=\"Logo Renta Fija 1\" /></div>\r\n <div className=\"bold\">{this.props.item[\"Emisor\"]}</div>\r\n <div className=\"bold\">{this.props.item[\"TipoValorNombre\"]}</div>\r\n <div className=\"blueStyle\">\r\n <NumberFormat value={this.props.item[\"ValorNominal\"]} displayType={'text'} thousandSeparator={true} decimalScale={2} fixedDecimalScale={true} thousandSeparator={','} decimalSeparator={'.'} prefix={\"$ \"}/>\r\n </div>\r\n <div className=\"blueStyle\">\r\n <NumberFormat value={this.props.item[\"Rendimiento\"]} displayType={'text'} thousandSeparator={true} decimalScale={2} fixedDecimalScale={true} thousandSeparator={','} decimalSeparator={'.'} suffix={\" %\"}/>\r\n </div>\r\n <div className=\"blueStyle\">\r\n <NumberFormat value={this.props.item[\"PlazoDias\"]} displayType={'text'} thousandSeparator={true} decimalScale={0} fixedDecimalScale={false} thousandSeparator={','} decimalSeparator={'.'} suffix={\" dÃas\"}/>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\nexport default ItemRentaFija;","import React, { Component } from \"react\";\r\nimport NumberFormat from 'react-number-format'\r\nimport '../../config'\r\n\r\nclass ItemRentaVariable extends Component { \r\n constructor(props) {\r\n super(props);\r\n }\r\n getStyleByIndex(index){\r\n console.log(\"------------\" - index)\r\n switch(index){\r\n case 0:\r\n return \"one\"\r\n case 1:\r\n return \"two\"\r\n case 2:\r\n return \"three\"\r\n case 3:\r\n return \"four\"\r\n case 4:\r\n return \"five\"\r\n case 5:\r\n return \"six\"\r\n case 6:\r\n return \"seven\"\r\n case 7:\r\n return \"eight\"\r\n }\r\n }\r\n render() {\r\n return (\r\n <div title={this.props.item[\"Emisor\"] + \" - $ \" + this.props.item[\"Precio\"]}> \r\n <div className={[\"bar\",this.getStyleByIndex(this.props.index)].join(' ')}><div className=\"percent\">{this.props.item[\"Precio\"]}</div><div className={\"logo\" + (this.props.index + 1)}><img src={global.config.URL_IMAGE_EMISOR + this.props.item[\"EmisorCodigo\"] + \".png\"} alt=\"Logo Marca 1\" /></div><div className={\"bottomPercent\" + (this.props.index + 1)}>{this.props.item[\"ValorNominal\"]}</div></div>\r\n </div>\r\n )\r\n }\r\n}\r\nexport default ItemRentaVariable;","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMsaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwMiA3OS4xNjQ0NjAsIDIwMjAvMDUvMTItMTY6MDQ6MTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTA2QTFDMjAxQTQxMUVCOUE5NENGNjQxNzMxMERENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTA2QTFDMzAxQTQxMUVCOUE5NENGNjQxNzMxMERENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBMDZBMUMwMDFBNDExRUI5QTk0Q0Y2NDE3MzEwREQ0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBMDZBMUMxMDFBNDExRUI5QTk0Q0Y2NDE3MzEwREQ0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgG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\"","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMsaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwMiA3OS4xNjQ0NjAsIDIwMjAvMDUvMTItMTY6MDQ6MTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRDQ0NkRBMTAxQTQxMUVCOEMzRUIyNUNDNTUzODE0NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRDQ0NkRBMjAxQTQxMUVCOEMzRUIyNUNDNTUzODE0NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNENDQ2RDlGMDFBNDExRUI4QzNFQjI1Q0M1NTM4MTQ3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNENDQ2REEwMDFBNDExRUI4QzNFQjI1Q0M1NTM4MTQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgG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\"","module.exports = __webpack_public_path__ + \"static/media/imgNoticiaBig.b02eba67.jpg\";","module.exports = __webpack_public_path__ + \"static/media/imgNoticiaBig2.d4b45325.jpg\";","module.exports = __webpack_public_path__ + \"static/media/arrowRight.845b6bfd.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowLeft.40ee1e1c.svg\";","module.exports = __webpack_public_path__ + \"static/media/campana.6cff959f.mp3\";","import React, {useState} from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport Checkbox from 'rc-checkbox';\r\nimport {updateGestionCatalogo,getCatalogosPadre} from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nconst EditarCatalogo = (props) => {\r\n const dispatch = useDispatch();\r\n //let [errors,] = useState({\"usuarioIdErr\":\"\"},{\"nombreErr\":\"\"},{\"apellidoErr\":\"\"},{\"cedulaErr\":\"\"},{\"telefonoErr\":\"\"});\r\n let [errors,setErrors] = useState({\"codigoErr\":\"\"},{\"nombreErr\":\"\"},{\"estadoErr\":\"\"});\r\n let [codigo,setCodigo] = useState(props.catalogoSeleccionado!==null?props.catalogoSeleccionado[\"Codigo\"]:\"\")\r\n let [nombre,setNombre] = useState(props.catalogoSeleccionado!==null?props.catalogoSeleccionado[\"Nombre\"]:\"\")\r\n //checkbox activo\r\n let [isError,setIsError] = useState(false)\r\n let [activo, setActivo] = useState(null)\r\n let [editar, setEditar] = useState(null)\r\n if(props.catalogoSeleccionado!==null && activo==null){\r\n if(props.catalogoSeleccionado[\"Activo\"]===true){\r\n setActivo(1)\r\n }else{\r\n setActivo(0)\r\n }\r\n }\r\n if(props.catalogoSeleccionado!==null && editar==null){\r\n if(props.catalogoSeleccionado[\"Editar\"]===true){\r\n setEditar(1)\r\n }else{\r\n setEditar(0)\r\n }\r\n }\r\n //checkbox \r\n const handleCheckedActivo = ({ target }) => {\r\n target.checked===true?setActivo(1):setActivo(0)\r\n }\r\n const handleCheckedEditar = ({ target }) => {\r\n target.checked===true?setEditar(1):setEditar(0)\r\n }\r\n function closeEditCat (){\r\n props.closeCatalogo();\r\n }\r\n let cambioEstado=useState(null)\r\n if(props.catalogoSeleccionado!==null && props.catalogoSeleccionado[\"Estado\"] == \"I\"){\r\n cambioEstado ={value:'I', label:\"Inactivo\"}\r\n }\r\n if(props.catalogoSeleccionado!==null && props.catalogoSeleccionado[\"Estado\"] == \"A\"){\r\n cambioEstado ={value:'A', label:\"Activo\"}\r\n }\r\n if(props.catalogoSeleccionado===null){\r\n cambioEstado ={value:'A', label:\"Activo\"}\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: 'I', label: 'Inactivo' },\r\n { value: 'A', label: 'Activo' },\r\n ] \r\n\r\n //\r\n const [isValid, setIsValid] = useState(true);\r\n const textoRegex = /^[a-zA-Z0-9À-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n // function validateNombre(texto) {\r\n // setIsValid(textoRegex.test(texto));\r\n //}\r\n //function validateCodigo(texto) {\r\n // setIsValid(textoRegex.test(texto));\r\n //}\r\n \r\n\r\n function actualizar(){\r\n\r\n let valid=true\r\n \r\n if(codigo == \"\"){\r\n errors[\"codigoErr\"] = \"Ingrese código\"\r\n valid = false\r\n }\r\n if(nombre == \"\"){\r\n errors[\"nombreErr\"] = \"Ingrese nombre\"\r\n valid = false\r\n }\r\n if(!textoRegex.test(nombre)){\r\n errors[\"nombreErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n if(!textoRegex.test(codigo)){\r\n errors[\"codigoErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if(!valid){\r\n return\r\n }\r\n \r\n dispatch(updateGestionCatalogo(\r\n props.catalogoSeleccionado!==null?props.catalogoSeleccionado[\"CatalogoId\"]:\"-1\",\r\n codigo,\r\n nombre,\r\n activo,\r\n editar,\r\n 0,\r\n estadoSelect[\"value\"],\r\n \"0\",\"\",\"\",\"ASC\",\"\" \r\n )).then(() => { \r\n \r\n }).catch(() => {}\r\n );\r\n \r\n closeEditCat()\r\n }\r\n\r\n \r\n\r\n return (\r\n<div className='overlay3 fade-in'>\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Catálogos \r\n </h2> \r\n <div className='vertical-scroll customScroll'> \r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\"> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Código:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n type=\"text\"\r\n value={codigo}\r\n autocomplete=\"off\"\r\n maxLength={1000}\r\n placeholder=\"Ingresar código\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setCodigo(e.target.value.toUpperCase());\r\n errors[\"codigoErr\"] = \"\";\r\n }}\r\n ></input>\r\n {errors[\"codigoErr\"]!==\"\"?<div className='camporequerido'>{errors[\"codigoErr\"]}</div>:\"\"}\r\n {/*{!isValid && <div className='camporequerido'>Ingrese solo texto</div>}*/}\r\n </div> \r\n </div> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={1000}\r\n placeholder=\"Ingresar nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombre(e.target.value);\r\n errors[\"nombreErr\"] = \"\";\r\n \r\n }}\r\n onBlur = {(e) => {\r\n \r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"]!==\"\"?<div className='camporequerido'>{errors[\"nombreErr\"]}</div>:\"\"}\r\n \r\n\r\n </div> \r\n </div> \r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span> \r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select \r\n autocomplete=\"off\"\r\n className=\"input-form\" \r\n id=\"estadoSelectCombo\" \r\n value={estadoSelect} \r\n onChange={(e) => {\r\n setEstadoSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsEstado}/>\r\n </div>\r\n </div> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-check-square\"></i> <span>Activo:</span>\r\n </label> \r\n </div> \r\n <div className=\"col-70\">\r\n <Checkbox \r\n right=\"true\" \r\n defaultChecked={activo} \r\n text=\"Juega renta fija\"\r\n onChange={handleCheckedActivo}\r\n /> \r\n </div> \r\n </div>\r\n <div className=\"row-form\"> \r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-check-square\"></i> <span>Editable:</span>\r\n </label> \r\n </div> \r\n <div className=\"col-70\">\r\n <Checkbox \r\n right=\"true\" \r\n defaultChecked={editar} \r\n text=\"editar\"\r\n onChange={handleCheckedEditar}\r\n /> \r\n </div> \r\n </div> \r\n </div> \r\n \r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditCat}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n </div>\r\n</div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarCatalogo);\r\n","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport Checkbox from 'rc-checkbox';\r\nimport {updateItemCatalogo} from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nconst EditarGestionItems = (props) => {\r\n const dispatch = useDispatch();\r\n let [errors] = useState({\"codigoErr\":\"\"},{\"nombreErr\":\"\"},{\"estadoErr\":\"\"},{\"nombreCortoErr\":\"\"})\r\n\r\n let [codigo,setCodigo] = useState(props.itemSeleccionado!==null?props.itemSeleccionado[\"Codigo\"]:\"\")\r\n let [nombre, setNombre] = useState(props.itemSeleccionado!==null?props.itemSeleccionado[\"Nombre\"]:\"\")\r\n let [nombreCorto, setNombreCorto] = useState(props.itemSeleccionado!==null?props.itemSeleccionado[\"NombreCorto\"]:\"\")\r\n\r\n //checkbox activo\r\n let [activo, setActivo] = useState(null)\r\n let [editar, setEditar] = useState(null)\r\n if(props.itemSeleccionado!==null && activo==null){\r\n if(props.itemSeleccionado[\"Activo\"]===true){\r\n setActivo(1)\r\n }else{\r\n setActivo(0)\r\n }\r\n }\r\n if(props.itemSeleccionado!==null && editar==null){\r\n if(props.itemSeleccionado[\"Editar\"]===true){\r\n setEditar(1)\r\n }else{\r\n setEditar(0)\r\n }\r\n }\r\n //checkbox \r\n const handleCheckedActivo = ({ target }) => {\r\n target.checked===true?setActivo(1):setActivo(0)\r\n }\r\n\r\n const handleCheckedEditar = ({ target }) => {\r\n target.checked===true?setEditar(1):setEditar(0)\r\n }\r\n function closeEditCat (){\r\n props.closeEditItem();\r\n }\r\n\r\n let cambioEstado=useState(null)\r\n \r\n if(props.itemSeleccionado!==null && props.itemSeleccionado[\"Estado\"] == \"I\"){\r\n cambioEstado ={value:'I', label:\"Inactivo\"}\r\n }\r\n if(props.itemSeleccionado!==null && props.itemSeleccionado[\"Estado\"] == \"A\"){\r\n cambioEstado ={value:'A', label:\"Activo\"}\r\n }\r\n if(props.itemSeleccionado===null){\r\n cambioEstado ={value:'A', label:\"Activo\"}\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: 'A', label: 'Activo' },\r\n { value: 'I', label: 'Inactivo' },\r\n \r\n ] \r\n\r\n const textoRegex = /^[a-zA-Z0-9À-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizar(){\r\n \r\n let valid=true\r\n \r\n if(codigo == \"\"){\r\n errors[\"codigoErr\"] = \"Ingrese código\"\r\n valid = false\r\n }\r\n if(nombre == \"\"){\r\n errors[\"nombreErr\"] = \"Ingrese nombre\"\r\n valid = false\r\n }\r\n if(nombreCorto == \"\"){\r\n errors[\"nombreCortoErr\"] = \"Ingrese nombre corto\"\r\n valid = false\r\n }\r\n if(estadoSelect == null){\r\n errors[\"estadoErr\"] = \"Ingrese estado\"\r\n valid = false\r\n }\r\n if(!textoRegex.test(nombre)){\r\n errors[\"nombreErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n if(!textoRegex.test(nombreCorto)){\r\n errors[\"nombreCortoErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n /* if(!textoRegex.test(codigo)){\r\n errors[\"codigoErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }*/\r\n if(!valid){\r\n return\r\n }\r\n dispatch(updateItemCatalogo(\r\n props.itemSeleccionado!==null?props.itemSeleccionado[\"ItemId\"]:-1,\r\n codigo,\r\n nombre,\r\n activo,\r\n editar,\r\n 0,\r\n props.catalogoId,\r\n nombreCorto,\r\n estadoSelect[\"value\"],\r\n \"0\",\"\",\"\",\"ASC\",\"\" \r\n )).then(() => { \r\n //window.location.reload();\r\n }).catch(() => {}\r\n ); \r\n closeEditCat()\r\n }\r\n\r\n //\r\n\r\n return (\r\n<div className= \"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow-height-100\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Items \r\n </h2> \r\n <div className='vertical-scroll customScroll'> \r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\"> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Código:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={codigo}\r\n maxLength={20}\r\n placeholder=\"Ingresar código\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setCodigo(e.target.value.toUpperCase());\r\n errors[\"codigoErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"codigoErr\"]!==\"\"?<div className='camporequerido'>{errors[\"codigoErr\"]}</div>:\"\"}\r\n \r\n </div> \r\n </div> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={50}\r\n placeholder=\"Ingresar nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombre(e.target.value);\r\n errors[\"nombreErr\"] = \"\"\r\n }}\r\n \r\n ></input>\r\n {errors[\"nombreErr\"]!==\"\"?<div className='camporequerido'>{errors[\"nombreErr\"]}</div>:\"\"}\r\n \r\n \r\n </div> \r\n </div> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre corto:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombreCorto}\r\n maxLength={200}\r\n placeholder=\"Ingresar nombre corto\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombreCorto(e.target.value);\r\n errors[\"nombreCortoErr\"] = \"\"\r\n }}\r\n \r\n ></input>\r\n {errors[\"nombreCortoErr\"]!==\"\"?<div className='camporequerido'>{errors[\"nombreCortoErr\"]}</div>:\"\"}\r\n \r\n </div> \r\n </div> \r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span> \r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select \r\n autocomplete=\"off\"\r\n className=\"input-form\" id=\"estadoSelectCombo\" value={estadoSelect} onChange={(e) => {\r\n setEstadoSelect(e)\r\n errors[\"estadoErr\"] = \"\"\r\n }} placeholder=\"Seleccione\" options={optionsEstado}/>\r\n {errors[\"estadoErr\"]!==\"\"?<div className='camporequerido'>{errors[\"estadoErr\"]}</div>:\"\"}\r\n </div>\r\n </div> \r\n\r\n <div className=\"row-form\"> \r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-check-square\"></i> <span>Activo:</span>\r\n </label> \r\n </div> \r\n <div className=\"col-70\">\r\n <Checkbox \r\n right=\"true\" \r\n defaultChecked={activo} \r\n text=\"Juega renta fija\"\r\n onChange={handleCheckedActivo}\r\n /> \r\n </div> \r\n </div>\r\n <div className=\"row-form\"> \r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-check-square\"></i> <span>Editable:</span>\r\n </label> \r\n </div> \r\n <div className=\"col-70\">\r\n <Checkbox \r\n right=\"true\" \r\n defaultChecked={editar} \r\n text=\"Juega renta fija\"\r\n onChange={handleCheckedEditar}\r\n /> \r\n </div> \r\n </div> \r\n </div> \r\n \r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditCat}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n </div>\r\n</div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarGestionItems);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport { getItemCatalogos, deleteItemCatalogo, setStatusByKey } from \"../../actions/administracion\";\r\nimport EditarItemCatalogo from \"./EditarItemCatalogo\";\r\nimport '@szhsin/react-menu/dist/index.css';\r\nconst GestionItems = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px', height: '100%'}\r\n const { listaItemsPag, loadingItems } = useSelector((state) => state.administracion)\r\n const [editarItemOpen, setEditarItemOpen] = useState(\"\")\r\n const [itemSeleccionado, setItemSeleccionado] = useState(null)\r\n const [catalogoId, setCatalogoId] = useState(null)\r\n let [loadItems, setLoadItems] = useState(false)\r\n let itemId = useState(null);\r\n if (listaItemsPag === null && loadItems === false) {\r\n setLoadItems(true)\r\n dispatch(getItemCatalogos(props.catalogoSeleccionado[\"CatalogoId\"], \"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n if (catalogoId === null) {\r\n setCatalogoId(props.catalogoSeleccionado[\"CatalogoId\"])\r\n console.log(\"catalogo id=\" + props.catalogoSeleccionado[\"CatalogoId\"])\r\n }\r\n let [itemFilter, setItemFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaItemsPag !== null ? listaItemsPag : []]);\r\n\r\n if (listaItemsPag !== null && listaItemsPag != gridInfor && itemFilter === \"\")\r\n setGridInfor(listaItemsPag)\r\n\r\n function filterItem(nego, itemFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"Codigo\"].toLowerCase().includes(itemFilter.toLocaleLowerCase()) ||\r\n item[\"Nombre\"].toLowerCase().includes(itemFilter.toLocaleLowerCase()) ||\r\n item[\"NombreCorto\"].toLowerCase().includes(itemFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeWindowItem() {\r\n dispatch(setStatusByKey(\"listaItemsPag\", null))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n props.closeItemCatalogo()\r\n }\r\n function closeEditItem() {\r\n setEditarItemOpen(\"\")\r\n }\r\n function newEditItem() {\r\n setItemSeleccionado(null)\r\n setEditarItemOpen(\"EDIT_ITEM\")\r\n }\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Editar',\r\n onClick: () => {\r\n setItemSeleccionado(rowProps.data)\r\n itemId = rowProps.data[\"ItemId\"]\r\n console.log(rowProps.data)\r\n setEditarItemOpen(\"EDIT_ITEM\")\r\n\r\n\r\n }\r\n },\r\n {\r\n label: 'Eliminar',\r\n onClick: () => {\r\n confirmAlert({\r\n title: 'Eliminar catálogo',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () => {\r\n dispatch(deleteItemCatalogo(rowProps.data[\"ItemId\"], rowProps.data[\"CatalogoId\"], \"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => { });\r\n\r\n }\r\n\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n ]\r\n }, [])\r\n let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Codigo',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>CÓDIGO</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Nombre', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'start', defaultWidth: 400,headerAlign: \"center\" },\r\n { name: 'NombreCorto', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE CORTO</div>), defaultFlex: 1, xdefaultLocked: 'start', defaultWidth: 400,headerAlign: \"center\" },\r\n\r\n ]\r\n\r\n \r\n return (\r\n <div className={[\r\n \"overlay\",\r\n \"fade-in\"\r\n ].join(\" \")}>\r\n <div className={['loading_cont', loadingItems !== true ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n {editarItemOpen == \"EDIT_ITEM\" ? <EditarItemCatalogo closeEditItem={closeEditItem} itemSeleccionado={itemSeleccionado} catalogoId={catalogoId} /> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Item catálogo\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton>\r\n <i className=\"fas fa-cog fa-1x\"></i></MenuButton>}>\r\n <MenuItem onClick={newEditItem}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem>\r\n </Menu>\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">ITEM CATALOGOS\r\n <div className='floatright'><div className=\"filterNeg\">\r\n <input type=\"text\" placeholder=\"Filtrar\" value={itemFilter} onChange={(e) => {\r\n setItemFilter(e.target.value);\r\n filterItem(listaItemsPag !== null ? listaItemsPag : [], e.target.value)\r\n }} />\r\n <i className=\"fas fa-search\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <DataGrid\r\n idProperty=\"ItemId\"\r\n style={gridStyle}\r\n \r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeWindowItem}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(GestionItems);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { getCatalogos, deleteCatalogo } from \"../../actions/administracion\";\r\nimport EditarCatalogo from \"./EditarCatalogo\";\r\nimport ItemCatalogo from \"./ItemCatalogo\";\r\nimport \"../../config\";\r\n\r\n\r\nconst GestionCatalogo = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px', height: '100%' }\r\n const { listaCatalogosPag, loadingCatalogos } = useSelector((state) => state.administracion);\r\n let [editCatalogoOpen, setEditCatalogoOpen] = useState(\"\")\r\n let [itemCatalogoOpen, setItemCatalogoOpen] = useState(\"\")\r\n let [catalogoSeleccionado, setCatalogoSeleccionado] = useState(\"null\")\r\n let [loadCatalogs, setLoadCatalogs] = useState(false)\r\n if (loadCatalogs === false) {\r\n setLoadCatalogs(true)\r\n dispatch(getCatalogos(\"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n let [catalogoFilter, setCatalogoFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaCatalogosPag !== null ? listaCatalogosPag : []]);\r\n\r\n if (listaCatalogosPag !== null && listaCatalogosPag != gridInfor && catalogoFilter === \"\")\r\n setGridInfor(listaCatalogosPag)\r\n\r\n function filterCatalogo(nego, catalogoFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"Codigo\"].toLowerCase().includes(catalogoFilter.toLocaleLowerCase()) ||\r\n item[\"Nombre\"].toLowerCase().includes(catalogoFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function openNewCatalogo() {\r\n setCatalogoSeleccionado(null)\r\n setEditCatalogoOpen(\"EDIT\")\r\n }\r\n function closeCatalogo() {\r\n setEditCatalogoOpen(\"\")\r\n }\r\n function closeWindowCatalogo() {\r\n setLoadCatalogs(false)\r\n props.closeGestionCatalogoClick()\r\n }\r\n function closeItemCatalogo() {\r\n setItemCatalogoOpen(\"\")\r\n }\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Items',\r\n onClick: () => {\r\n setCatalogoSeleccionado(rowProps.data)\r\n setItemCatalogoOpen(\"ITEM\")\r\n console.log(rowProps.data)\r\n }\r\n },\r\n {\r\n label: 'Editar',\r\n onClick: () => {\r\n setCatalogoSeleccionado(rowProps.data)\r\n setEditCatalogoOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n },\r\n {\r\n label: 'Eliminar',\r\n onClick: () => {\r\n confirmAlert({\r\n title: 'Eliminar catálogo',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () => {\r\n dispatch(deleteCatalogo(rowProps.data[\"CatalogoId\"]))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => { });\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n ]\r\n }, [])\r\n function formatEstado(estado) {\r\n switch (estado) {\r\n case \"A\":\r\n return \"ACTIVO\"\r\n }\r\n return \"INACTIVO\"\r\n }\r\n //console.log(listaCatalogosPag)\r\n let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Codigo', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>CÓDIGO</div>), defaultFlex: 1, xdefaultLocked: 'end' , headerAlign: \"center\"},\r\n { name: 'Nombre', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'start', defaultWidth: 400,headerAlign: \"center\" },\r\n { name: 'Estado', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => formatEstado(data[\"Estado\"]), headerAlign: \"center\" },\r\n ]\r\n return (\r\n <div\r\n className={[\r\n \"overlay3\",\r\n \"fade-in\"\r\n ].join(\" \")}\r\n >\r\n\r\n <div className={['loading_cont', loadingCatalogos !== true ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n {editCatalogoOpen === \"EDIT\" ? <EditarCatalogo closeCatalogo={closeCatalogo} catalogoSeleccionado={catalogoSeleccionado} /> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Catálogos\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton=\r\n {<MenuButton><i className=\"fas fa-cog fa-1x\"></i></MenuButton>}>\r\n <MenuItem onClick={openNewCatalogo}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem>\r\n </Menu>\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">CATÃLOGOS\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n <input \r\n autocomplete=\"off\"\r\n type=\"text\" \r\n placeholder=\"Filtrar\"\r\n value={catalogoFilter} \r\n onChange={(e) => {\r\n setCatalogoFilter(e.target.value);\r\n filterCatalogo(listaCatalogosPag !== null ? listaCatalogosPag : [], e.target.value)\r\n }} />\r\n <i className=\"fas fa-search\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <DataGrid\r\n idProperty=\"CatalogoId\"\r\n style={gridStyle}\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={props.closeCatalogosClick}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n {itemCatalogoOpen === \"ITEM\" ? <ItemCatalogo closeItemCatalogo={closeItemCatalogo} catalogoSeleccionado={catalogoSeleccionado} /> : \"\"}\r\n\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(GestionCatalogo);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from \"react-select\";\r\nimport NumberFormat from 'react-number-format';\r\nimport DatePicker from \"react-datepicker\";\r\nimport {\r\n updateEmpresaAct,\r\n getInstitucionesEmpresaAct,\r\n getUsuariosAct,\r\n} from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport UploadFile from \"./UploadFile\";\r\nimport UploadFileNew from \"./UploadFileNew\";\r\nimport { NotificationContainer, NotificationManager } from \"react-notifications\";\r\nimport { generateMessageAdm } from \"./Util\";\r\nconst EditarEmpresa = (props) => {\r\n console.log(props.empresaSeleccionada)\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const [image, setImage] = useState(\"\");\r\n let [errors, setErrors] = useState(\r\n { \"nombreErr\": \"\" },\r\n { \"institucionErr\": \"\" },\r\n { usuarioErr: \"\" },\r\n { emailErr: \"\" },\r\n { gerenteErr: \"\" },\r\n { logoErr: \"\" },\r\n { operadorErr: \"\" },\r\n { direccionErr: \"\" },\r\n { receptorErr: \"\" },\r\n { numAccionesOferta: \"\" },\r\n { comisionOperadorErr: \"\" },\r\n { comisionBvqErr: \"\" },\r\n { porcentajeTechoErr: \"\" },\r\n { precioInicialPorAccionErr: \"\" },\r\n { valorUnitarioAccionErr: \"\" },\r\n { valorUnitarioAccionErr: \"\" },\r\n { montoMinMejoraPrecioErr: \"\" },\r\n { capitalPagadoErr: \"\" },\r\n { valorErr: \"\" },\r\n { divididoErr: \"\" }\r\n );\r\n\r\n let [empresaId, setEmpresaId] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"EmpresaId\"] : \"-1\");\r\n let [nombre, setNombre] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Nombre\"] : \"\");\r\n let [logo, setLogo] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Logo\"] : \"\");\r\n\r\n // console.log(\"logo traido y nuevo\", logo)\r\n let [direccion, setDireccion] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Direccion\"] : \"\");\r\n let [institucion, setInstitucion] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Institucion\"] : \"\");\r\n let [email, setEmail] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Email\"] : \"\");\r\n let [gerente, setGerente] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Gerente\"] : \"\");\r\n let [operador, setOperador] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Operador\"] : \"\");\r\n let [receptor, setReceptor] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Receptor\"] : \"\");\r\n let [numAccionesOferta, setNumAccionesOferta] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"NumAccionesOferta\"] : \"\");\r\n let [precioInicialPorAccion, setPrecioInicialPorAccion] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"PrecioInicialPorAccion\"] : \"\");\r\n let [valorUnitarioAccion, setValorUnitarioAccion] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"ValorUnitarioAccion\"] : \"\");\r\n let [montoMinMejoraPrecio, setMontoMinMejoraPrecio] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"MontoMinMejoraPrecio\"] : \"\");\r\n let [comisionOperador, setComisionOperador] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"ComisionOperador\"] : \"\");\r\n let [comisionBVQ, setComisionBVQ] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"ComisionBVQ\"] : \"\");\r\n let [porcentajePrecioTechoMax, setPorcentajePrecioTechoMax] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"PorcentajePrecioTechoMax\"] : \"\");\r\n let [fechaConstitucion, setFechaConstitucion] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"FechaConstitucion\"] : new Date());\r\n let [fechaInscripcion, setFechaInscripcion] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"FechaInscripcion\"] : new Date());\r\n let [isError, setIsError] = useState(false)\r\n\r\n let [capitalPagado, setCapitalPagado] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"CapitalPagado\"] : \"\");\r\n let [divididoEn, setDivididoEn] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"DivididoEn\"] : \"\");\r\n let [valor, setValor] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Valor\"] : \"\");\r\n\r\n const { listaInstitucionEmpresa } = useSelector(\r\n (state) => state.administracion\r\n );\r\n let [loadInstitucion, setLoadInstitucion] = useState(false);\r\n let [loadUsuarios, setLoadUsuarios] = useState(false);\r\n if (listaInstitucionEmpresa === null && loadInstitucion === false) {\r\n setLoadInstitucion(true);\r\n dispatch(getInstitucionesEmpresaAct())\r\n .then(() => { })\r\n .catch(() => { });\r\n }\r\n\r\n let cambioEstado = useState(null);\r\n if (\r\n props.empresaSeleccionada !== null &&\r\n props.empresaSeleccionada[\"Estado\"] == \"I\"\r\n ) {\r\n cambioEstado = { value: \"I\", label: \"Inactivo\" };\r\n }\r\n if (\r\n props.empresaSeleccionada !== null &&\r\n props.empresaSeleccionada[\"Estado\"] == \"A\"\r\n ) {\r\n cambioEstado = { value: \"A\", label: \"Activo\" };\r\n }\r\n if (props.empresaSeleccionada === null) {\r\n cambioEstado = { value: \"A\", label: \"Activo\" };\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: \"I\", label: \"Inactivo\" },\r\n { value: \"A\", label: \"Activo\" },\r\n ];\r\n function closeEditEmpresa() {\r\n props.closeEditEmpresa();\r\n }\r\n\r\n // Agg\r\n const textoRegex = /^[a-zA-Z0-9À-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizar() {\r\n let valid = true;\r\n\r\n //let err = errors;\r\n if (nombre == \"\") {\r\n errors[\"nombreErr\"] = \"Ingrese nombre\";\r\n valid = false;\r\n }\r\n if (!textoRegex.test(nombre)) {\r\n errors[\"nombreErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n\r\n if (institucion == \"\") {\r\n errors[\"institucionErr\"] = \"Ingrese institución\";\r\n valid = false;\r\n }\r\n if (!nombreRegex.test(institucion)) {\r\n errors[\"institucionErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n //if (logo == \"\") {\r\n // errors[\"logoErr\"] = \"Ingrese logo\";\r\n //valid = false;\r\n //}\r\n //if (direccion == \"\") {\r\n // errors[\"direccionErr\"] = \"Ingrese dirección\";\r\n //valid = false;\r\n // }\r\n\r\n if (email == \"\" || !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email)) {\r\n errors[\"emailErr\"] = \"Ingrese mail (example@example.com)\";\r\n valid = false;\r\n }\r\n if (gerente == \"\") {\r\n errors[\"gerenteErr\"] = \"Ingrese gerente\";\r\n valid = false;\r\n }\r\n if (!nombreRegex.test(gerente)) {\r\n errors[\"gerenteErr\"] = \"Ingrese solo letras\";\r\n valid = false;\r\n }\r\n if (operador == \"\") {\r\n errors[\"operadorErr\"] = \"Ingrese operador\";\r\n valid = false;\r\n }\r\n\r\n if (!nombreRegex.test(operador)) {\r\n errors[\"operadorErr\"] = \"Ingrese solo letras\";\r\n valid = false;\r\n }\r\n if (receptor == \"\") {\r\n errors[\"receptorErr\"] = \"Ingrese receptor\";\r\n valid = false;\r\n }\r\n if (!nombreRegex.test(receptor)) {\r\n errors[\"receptorErr\"] = \"Ingrese solo letras\";\r\n valid = false;\r\n }\r\n if (numAccionesOferta == \"\") {\r\n errors[\"numAccionesOfertaErr\"] = \"Ingrese número de acciones\";\r\n valid = false;\r\n }\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return;\r\n }\r\n if (fechaConstitucion == null) {\r\n NotificationManager.error(\r\n \"Ingrese fecha de constitución\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n if (fechaInscripcion == null) {\r\n NotificationManager.error(\r\n \"Ingrese fecha de inscripción\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n if (precioInicialPorAccion <= 0) {\r\n NotificationManager.error(\r\n \"Ingrese precio inicial por acción válido\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n if (precioInicialPorAccion==\"\") {\r\n NotificationManager.error(\r\n \"Ingrese precio inicial por acción\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n \r\n if (valorUnitarioAccion == \"\" || valorUnitarioAccion == 0.00) {\r\n NotificationManager.error(\r\n \"Ingrese valor de cada acción\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n \r\n if (montoMinMejoraPrecio == \"\" || montoMinMejoraPrecio == 0.00) {\r\n NotificationManager.error(\r\n \"Ingrese monto min. para mejorar precio\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n \r\n /*if ( comisionOperador ==\"\" ) {\r\n errors[\"comisionOperadorErr\"] = \"Ingrese comisión operador\";\r\n valid = false;\r\n }*/\r\n /* if (comisionOperador == \"\") {\r\n NotificationManager.error(\r\n \"Ingrese comisión operador\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n\r\n }*/\r\n /*if (comisionOperador < 0) {\r\n NotificationManager.error(\r\n \"Ingrese comisión operador\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n\r\n }*/\r\n /*if (comisionBVQ ==\"\" ) {\r\n errors[\"comisionBvqErr\"] = \"Ingrese comisión BVQ\";\r\n valid = false;\r\n }*/\r\n /*if (comisionBVQ == \"\") {\r\n NotificationManager.error(\r\n \"Ingrese comisión BVQ\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n\r\n }*/\r\n if (porcentajePrecioTechoMax ==\"\" || porcentajePrecioTechoMax == 0) {\r\n NotificationManager.error(\r\n \"Ingrese porcentaje techo\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n \r\n\r\n if (capitalPagado == \"\") {\r\n NotificationManager.error(\r\n \"Ingrese capital pagado\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n if (divididoEn == \"\") {\r\n NotificationManager.error(\r\n \"Ingrese la cantidad dividida de las acciones\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n if (valor == \"\") {\r\n NotificationManager.error(\r\n \"Ingrese el valor del capital\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n \r\n\r\n dispatch(\r\n updateEmpresaAct(\r\n empresaId,\r\n nombre,\r\n logo,\r\n direccion,\r\n estadoSelect[\"value\"],\r\n currentUser[\"userId\"],\r\n institucion,\r\n email,\r\n gerente,\r\n operador,\r\n receptor,\r\n numAccionesOferta,\r\n precioInicialPorAccion,\r\n valorUnitarioAccion,\r\n montoMinMejoraPrecio,\r\n comisionOperador,\r\n comisionBVQ,\r\n porcentajePrecioTechoMax,\r\n fechaConstitucion,\r\n fechaInscripcion,\r\n capitalPagado,\r\n divididoEn,\r\n valor,\r\n \"0\",\r\n \"\",\r\n \"\",\r\n \"ASC\",\r\n \"\"\r\n )\r\n )\r\n .then(() => {\r\n //window.location.reload();\r\n //agg\r\n\r\n })\r\n .catch(() => {\r\n\r\n });\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n\r\n closeEditEmpresa();\r\n console.log(\"empresaId:\" + empresaId)\r\n console.log(\"nombre:\" + nombre)\r\n console.log(\"logo:\" + logo)\r\n console.log(\"direccion:\" + direccion)\r\n console.log(\"estado:\" + estadoSelect[\"value\"])\r\n console.log(\"usuario:\" + currentUser[\"userId\"])\r\n console.log(\"institucion:\" + institucion)\r\n console.log(\"emai\" + email)\r\n console.log(\"gerente \" + gerente)\r\n console.log(\"operador \" + operador)\r\n console.log(\"receptor \" + receptor)\r\n console.log(\"num acc oferta \" + numAccionesOferta)\r\n console.log(\"precio inicial accion\" + precioInicialPorAccion)\r\n console.log(\"valor unt accion\" + valorUnitarioAccion)\r\n console.log(\"monto min mejora precio \" + montoMinMejoraPrecio)\r\n console.log(\"comision op \" + comisionOperador)\r\n console.log(\"comision BVQ \" + comisionBVQ)\r\n console.log(\"pocentaje techo precio mx \" + porcentajePrecioTechoMax)\r\n\r\n }\r\n\r\n {/*Para agregar logo*/ }\r\n let [uploadId, setUploadId] = useState(\r\n currentUser !== null ? currentUser[\"UploadId\"] : \"-1\"\r\n );\r\n\r\n let [fileNombre, setFileNombre] = useState(\r\n currentUser !== null ? currentUser[\"fileNombre\"] : \"\"\r\n );\r\n\r\n let [fileNombreUrl, setFileNombreUrl] = useState(\r\n currentUser !== null ? currentUser[\"fileNombreUrl\"] : \"\"\r\n );\r\n\r\n function reloadDocuments(file) {\r\n const result = JSON.parse(file);\r\n setUploadId(result[\"UploadId\"]);\r\n setFileNombre(result[\"fileNombre\"]);\r\n setFileNombreUrl(result[\"fileNombreUrl\"]);\r\n }\r\n\r\n const convertirBase64 = (files) => {\r\n\r\n // agg\r\n // const imageFile = files[0];\r\n // const imageFileSize = imageFile.size;\r\n // const imageFileType = imageFile.type;\r\n // if (imageFileSize > 5000) {\r\n\r\n // NotificationManager.error(\r\n // \"Error. El archivo es demasiado grande. Selecciona una imagen PNG menor a 5KB.\",\r\n // \"Sistema\",\r\n // 5000,\r\n // () => { },\r\n // 4\r\n //);\r\n // return\r\n //}\r\n //\r\n\r\n Array.from(files).forEach(file => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let arrayImage = []\r\n let base = reader.result;\r\n arrayImage = base.split(',');\r\n setLogo(arrayImage[1])\r\n //setImage(arrayAux[1]);\r\n\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <div className=\"editEmpresa\">\r\n <h2>Empresa</h2>\r\n <div className=\"vertical-scroll customScroll\">\r\n <div id=\"columna-1-formulario\">\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i><span> Nombre:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombre(e.target.value);\r\n errors[\"nombreErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"nombreErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Institución:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={institucion}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Institución\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setInstitucion(e.target.value);\r\n errors[\"institucionErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"institucionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"institucionErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Logo:</span>\r\n </label>\r\n </div>\r\n\r\n <div className=\"col-70\">\r\n\r\n <input\r\n type=\"file\"\r\n className=\"boxStyleSelect\"\r\n accept=\".png\"\r\n onChange={(e) => convertirBase64(e.target.files)}></input>\r\n <div className=\"boxStyleSelect\">Selecciona el archivo para subirlo</div>\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n id=\"estadoSelectCombo\"\r\n value={estadoSelect}\r\n onChange={(e) => {\r\n setEstadoSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsEstado} />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Dirección:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <textarea\r\n autocomplete=\"off\"\r\n className=\"direccionEmpresa\"\r\n type=\"text\"\r\n value={direccion}\r\n maxLength={5000}\r\n style={{ height: '30px' }}\r\n placeholder=\"Dirección\"\r\n\r\n onChange={(e) => {\r\n setDireccion(e.target.value);\r\n errors[\"direccionErr\"] = \"\"\r\n }}\r\n\r\n ></textarea>\r\n {errors[\"direccionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"direccionErr\"]}</div> : \"\"}\r\n\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Email:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"email\"\r\n value={email}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Email\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setEmail(e.target.value);\r\n errors[\"emailErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"emailErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"emailErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Gerente:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={gerente}\r\n maxLength={1000}\r\n placeholder=\"Ingresar gerente\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setGerente(e.target.value);\r\n errors[\"gerenteErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"gerenteErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"gerenteErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Operador:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={operador}\r\n maxLength={1000}\r\n placeholder=\"Ingresar operador\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setOperador(e.target.value);\r\n errors[\"operadorErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"operadorErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"operadorErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Receptor:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={receptor}\r\n maxLength={1000}\r\n placeholder=\"Ingresar receptor\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setReceptor(e.target.value);\r\n errors[\"receptorErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"receptorErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"receptorErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"columna-2-formulario\">\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Fecha Constitución:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(fechaConstitucion)}\r\n onChange={date => setFechaConstitucion(date)}\r\n showMonthDropdown\r\n showYearDropdown\r\n dateFormat=\"dd/MM/yyyy\"\r\n className=\"input-form\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Fecha Inscripción:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(fechaInscripcion)}\r\n onChange={date => setFechaInscripcion(date)}\r\n showMonthDropdown\r\n showYearDropdown\r\n dateFormat=\"dd/MM/yyyy\"\r\n className=\"input-form\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Num. acciones oferta:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"new-password\"\r\n className=\"input-form\"\r\n value={numAccionesOferta}\r\n maxLength={5}\r\n placeholder=\"Ingresar número de acciones\"\r\n allowNegative={false}\r\n thousandSeparator={false}\r\n decimalScale={0}\r\n fixedDecimalScale={false}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n\r\n const { formattedValue, value } = values;\r\n setNumAccionesOferta(value);\r\n errors[\"numAccionesOfertaErr\"] = \"\"\r\n }} />\r\n {errors[\"numAccionesOfertaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"numAccionesOfertaErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Precio inicial por acción:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={precioInicialPorAccion}\r\n maxLength={5}\r\n allowNegative={false}\r\n placeholder=\"Ingresar precio inicial por acción\"\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setPrecioInicialPorAccion(value);\r\n errors[\"precioInicialPorAccionErr\"] = \"\"\r\n }} />\r\n {errors[\"precioInicialPorAccionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"precioInicialPorAccionErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Valor unitario por acción:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={valorUnitarioAccion}\r\n maxLength={5}\r\n allowNegative={false}\r\n placeholder=\"Ingresar valor unitario por acción\"\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setValorUnitarioAccion(value);\r\n errors[\"valorUnitarioAccionErr\"] = \"\"\r\n }} />\r\n {errors[\"valorUnitarioAccionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"valorUnitarioAccionErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Monto min. para mejorar precio:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={montoMinMejoraPrecio}\r\n maxLength={5}\r\n placeholder=\"Ingresar monto mÃnimo\"\r\n allowNegative={false}\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setMontoMinMejoraPrecio(value);\r\n errors[\"montoMinMejoraPrecioErr\"] = \"\"\r\n }} />\r\n {errors[\"montoMinMejoraPrecioErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"montoMinMejoraPrecioErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Comisión operador:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={comisionOperador}\r\n maxLength={5}\r\n allowNegative={false}\r\n placeholder=\"Ingresar comisión operador\"\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setComisionOperador(value);\r\n errors[\"comisionOperadorErr\"] = \"\"\r\n }} />\r\n {errors[\"comisionOperadorErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"comisionOperadorErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Comisión BVQ:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={comisionBVQ}\r\n maxLength={5}\r\n allowNegative={false}\r\n placeholder=\"Ingresar comisión BVQ\"\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setComisionBVQ(value);\r\n errors[\"comisionBvqErr\"] = \"\"\r\n }} />\r\n {errors[\"comisionBvqErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"comisionBvqErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Porcentaje de techo:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={porcentajePrecioTechoMax}\r\n maxLength={5}\r\n allowNegative={false}\r\n placeholder=\"Ingresar porcentaje de techo\"\r\n thousandSeparator={false}\r\n\r\n\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setPorcentajePrecioTechoMax(value);\r\n errors[\"porcentajePrecioTechoMaxErr\"] = \"\"\r\n }} />\r\n {errors[\"porcentajePrecioTechoMaxErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"porcentajePrecioTechoMaxErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Capital pagado:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={capitalPagado}\r\n maxLength={10}\r\n allowNegative={false}\r\n placeholder=\"Ingresar capital pagado\"\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setCapitalPagado(value);\r\n errors[\"capitalPagadoErr\"] = \"\"\r\n }} />\r\n {errors[\"capitalPagadoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"capitalPagadoErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Divido en:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={divididoEn}\r\n maxLength={10}\r\n allowNegative={false}\r\n placeholder=\"Ingresar cantidad dividida\"\r\n thousandSeparator={false}\r\n\r\n\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setDivididoEn(value);\r\n errors[\"divididoErr\"] = \"\"\r\n }} />\r\n {errors[\"divididoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"divididoErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Valor:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n value={valor}\r\n maxLength={10}\r\n allowNegative={false}\r\n placeholder=\"Ingresar valor\"\r\n thousandSeparator={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setValor(value);\r\n errors[\"valorErr\"] = \"\"\r\n }} />\r\n {errors[\"valorErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"valorErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditEmpresa}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarEmpresa);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport NumberFormat from 'react-number-format';\r\nimport { Link } from \"react-router-dom\";\r\nimport Select from 'react-select';\r\nimport { getUsuarioEmpresaSinAsigAct, selectUsuarioEmpresaAct } from \"../../actions/administracion\";\r\nimport DataGrid, { Column, Selection } from '@inovua/reactdatagrid-community';\r\n\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport \"../../config\";\r\n//updateGestionEventoUsuario = (eventoUsuarioId,usuarioId,eventoId,usuarioIdRegistro,estado,monto,saldo)\r\nconst SeleccionarUsuarioEmpresa = (props) => {\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const { listaUsuarioEmpresaSinAsig } = useSelector((state) => state.administracion);\r\n let [loadListaUsuariosEmpresaSinAsig, setLoadListaUsuariosEmpresaSinAsig] = useState(true);\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaUsuarioEmpresaSinAsig !== null ? listaUsuarioEmpresaSinAsig : []]);\r\n\r\n if (listaUsuarioEmpresaSinAsig !== null && listaUsuarioEmpresaSinAsig != gridInfor && empresaFilter === \"\")\r\n setGridInfor(listaUsuarioEmpresaSinAsig)\r\n\r\n\r\n const closeSeleccionarUsuarioEmpresa = () => {\r\n props.closeSelectUsuarioEmpresa()\r\n }\r\n const checkBoxesMode = useState(\"onClick\");\r\n const allMode = useState(\"allPages\");\r\n const dispatch = useDispatch();\r\n if (loadListaUsuariosEmpresaSinAsig === true) {\r\n setLoadListaUsuariosEmpresaSinAsig(false)\r\n dispatch(getUsuarioEmpresaSinAsigAct(props.empresaSeleccionadaId))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n console.log(\"empresaId =\" + props.empresaSeleccionadaId)\r\n console.log(\"usuarios sin asignar =\")\r\n console.log(listaUsuarioEmpresaSinAsig)\r\n\r\n const gridStyle = { minHeight: '300px', height: '100%', margin: 20 }\r\n const toArray = selected => Object.keys(selected).map(id => id * 1);\r\n let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'value', header: 'Id', defaultVisible: false, defaultWidth: 60, type: 'number' },\r\n { name: 'label', header: 'Usuarios', defaultFlex: 1, xdefaultLocked: 'start', defaultWidth: 400, },\r\n\r\n\r\n\r\n ]\r\n function filterCatalogo(nego, empresaFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (\r\n item[\"label\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n\r\n\r\n\r\n const [selected, setSelected] = useState({ 0: true });\r\n\r\n const onSelectionChange = useCallback(({ selected }) => {\r\n setSelected(selected)\r\n }, [])\r\n\r\n function actualizar() {\r\n\r\n dispatch(selectUsuarioEmpresaAct(\r\n props.empresaSeleccionadaId,\r\n toArray(selected).toString(),\r\n )).then(() => {\r\n\r\n }).catch(() => { }\r\n )\r\n console.log(\"datos insertados:\")\r\n console.log(props.eventoSeleccionadoId)\r\n console.log(toArray(selected).toString())\r\n\r\n closeSeleccionarUsuarioEmpresa()\r\n }\r\n function onCheckBoxesModeChanged({ value }) {\r\n this.setState({ checkBoxesMode: value });\r\n }\r\n\r\n function onAllModeChanged({ value }) {\r\n this.setState({ allMode: value });\r\n }\r\n\r\n\r\n\r\n return (\r\n <div className=\"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow-height-100\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Seleccionar usuarios\r\n </h2>\r\n <div className='vertical-noscroll customScroll'>\r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\">\r\n <div className=\"titleTable-search-user\">\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n <input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaUsuarioEmpresaSinAsig !== null ? listaUsuarioEmpresaSinAsig : [], e.target.value)\r\n }} />\r\n <i className=\"fas fa-search\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <DataGrid\r\n idProperty=\"value\"\r\n selected={selected}\r\n checkboxColumn\r\n onSelectionChange={onSelectionChange}\r\n style={gridStyle}\r\n columns={columns}\r\n dataSource={gridInfor}//dataSource={listaUsuarioEmpresaSinAsig !== null ? listaUsuarioEmpresaSinAsig : []}\r\n theme=\"amber-dark\"\r\n />\r\n\r\n </div>\r\n <div className=\"textCenter clear-both\">\r\n\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeSeleccionarUsuarioEmpresa}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(SeleccionarUsuarioEmpresa);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { NotificationManager, NotificationContainer } from \"react-notifications\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { formatDateTime } from \"./Util\";\r\nimport { deleteUsuarioEmpresaAct, getUsuarioEmpresaAct, sendEmailInvitacionUser } from \"../../actions/administracion\";\r\nimport SeleccionarUsuarioEmpresa from \"./SeleccionarUsuarioEmpresa\";\r\n//import ItemEmpresa from \"./ItemEmpresa\";\r\nimport \"../../config\";\r\n\r\n\r\n\r\nconst UsuarioEmpresa = (props) => {\r\n const dispatch = useDispatch();\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionado);\r\n\r\n //console.log(\"empres\", props.empresaSeleccionada)\r\n const gridStyle = { minHeight: '300px', height: '100%' }\r\n const { listaUsuarioEmpresa, loadingUsuarioEmpresa } = useSelector((state) => state.administracion);\r\n let [empresaSeleccionadaId] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"EmpresaId\"] : \"-1\");\r\n let [nombreEmpresa] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"Nombre\"] : \"\");\r\n // console.log(nombreEmpresa)\r\n let [selectUsuarioEmpresaOpen, setSelectUsuarioEmpresaOpen] = useState(\"\")\r\n let [loadUsuarioEmpresa, setloadUsuarioEmpresa] = useState(false)\r\n\r\n if (loadUsuarioEmpresa === false) {\r\n setloadUsuarioEmpresa(true)\r\n dispatch(getUsuarioEmpresaAct(empresaSeleccionadaId))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n // console.log(\"empresaid =\" + empresaSeleccionadaId)\r\n //console.log(listaUsuarioEmpresa)\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaUsuarioEmpresa !== null ? listaUsuarioEmpresa : []]);\r\n\r\n if (listaUsuarioEmpresa !== null && listaUsuarioEmpresa != gridInfor && empresaFilter === \"\")\r\n setGridInfor(listaUsuarioEmpresa)\r\n\r\n function filterCatalogo(nego, empresaFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeUsuarioEmpresa() {\r\n props.closeUsuarioEmpresaClick()\r\n }\r\n function openSelectUsuarioEmpresa() {\r\n setSelectUsuarioEmpresaOpen(\"OPEN\")\r\n }\r\n function closeSelectUsuarioEmpresa() {\r\n setSelectUsuarioEmpresaOpen(\"\")\r\n }\r\n function formatEstado(estado) {\r\n switch (estado) {\r\n case \"A\":\r\n return \"ACTIVO\"\r\n }\r\n return \"INACTIVO\"\r\n }\r\n\r\n\r\n const renderButtonInvitacion = (value, rowData) => {\r\n return (\r\n <>\r\n <button id={value.data !== null ?\r\n value.data[\"UsuarioId\"] : \"0\"}\r\n className=\"fas fa-print\"\r\n onClick={(e) => {\r\n handleClickInvitacionIndividual(e)\r\n //setIsLoading(true)\r\n }}></button>\r\n </>\r\n )\r\n }\r\n\r\n\r\n const handleClickInvitacionIndividual = (rowData) => {\r\n let usuarioId = parseInt(rowData.target.id)\r\n let data = listaUsuarioEmpresa.filter(x => x.UsuarioId === usuarioId)[0]//rowData.cellProps[\"data\"]\r\n if (data !== null) {\r\n console.log(usuarioId)\r\n dispatch(sendEmailInvitacionUser(eventoSeleccionadoId, usuarioId))\r\n .then(() => {\r\n NotificationManager.success(\r\n \"Invitación individual enviada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n\r\n }\r\n )\r\n .catch(() => {\r\n NotificationManager.error(\r\n \"Error al enviar invitación\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n });\r\n }\r\n\r\n }\r\n const handleClickInvitacionGrupal = (rowData) => {\r\n\r\n dispatch(sendEmailInvitacionUser(eventoSeleccionadoId, -1, empresaSeleccionadaId))\r\n .then(() => {\r\n NotificationManager.success(\r\n \"Invitación grupal enviada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n })\r\n .catch(() => {\r\n NotificationManager.error(\r\n \"Error al enviar invitación\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n });\r\n }\r\n\r\n function getRol(str) {\r\n switch (str) {\r\n case \"ROLE_ADMIN\":\r\n return \"ADMINISTRADOR\"\r\n case \"ROLE_RUEDA\":\r\n return \"DIRECTOR DE RUEDA\"\r\n case \"ROLE_CAJA\":\r\n return \"USUARIO CAJA\"\r\n case \"ROLE_VISITANTE\":\r\n return \"VISITANTE\"\r\n case \"ROLE_OPERADOR\":\r\n return \"USUARIO OPERADOR\"\r\n case \"ROLE_LIQUIDACION\":\r\n return \"USUARIO LIQUIDACIÓN\"\r\n case \"ROLE_REGISTRADOR\":\r\n return \"USUARIO REGISTRADOR\"\r\n\r\n }\r\n\r\n return \"\"\r\n }\r\n\r\n let columns = [\r\n\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Nombre', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Rol', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ROL</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => getRol(data[\"Rol\"]), headerAlign: \"center\" },\r\n { name: 'Estado', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => formatEstado(data[\"Estado\"]), headerAlign: \"center\" },\r\n { name: 'FechaRegistro', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>FECHA REGISTRO</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => formatDateTime(data[\"FechaRegistro\"]), headerAlign: \"center\" },\r\n /*{ name: \"EnviarInvitación\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ENVIAR INVITACIÓN</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonInvitacion(rowData), headerAlign: \"center\" },*/\r\n\r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n\r\n {\r\n label: 'Eliminar',\r\n onClick: () => {\r\n confirmAlert({\r\n title: 'Eliminar usuario',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () => {\r\n dispatch(deleteUsuarioEmpresaAct(rowProps.data[\"UsuarioEmpresaId\"], empresaSeleccionadaId))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => { });\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n ]\r\n }, [])\r\n return (\r\n <div className={[\"overlay3\", \"fade-in\"].join(\" \")}>\r\n <div className={['loading_cont', loadingUsuarioEmpresa !== true ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n {selectUsuarioEmpresaOpen === \"OPEN\" ? <SeleccionarUsuarioEmpresa closeSelectUsuarioEmpresa={closeSelectUsuarioEmpresa} empresaSeleccionadaId={empresaSeleccionadaId} /> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Usuario\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openSelectUsuarioEmpresa}><i className=\"fas fa-sign-out-alt\"></i>Seleccionar</MenuItem>\r\n {/*<MenuItem onClick={handleClickInvitacionGrupal}><i className=\"fas fa-sign-out-alt\"></i>Invitar</MenuItem>*/}\r\n </Menu>\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">EMPRESA {nombreEmpresa.toUpperCase()}\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n\r\n <input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaUsuarioEmpresa !== null ? listaUsuarioEmpresa : [], e.target.value)\r\n }} /><i className=\"fas fa-search\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <DataGrid\r\n idProperty=\"EmpresaId\"\r\n style={gridStyle}\r\n\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={props.closeUsuarioEmpresa}>\r\n SALIR\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(UsuarioEmpresa);\r\n","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid,{ Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Menu,MenuItem,MenuButton,SubMenu} from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport {formatDateTime} from \"./Util\";\r\nimport {getEmpresaAct,deleteEmpresaAct} from \"../../actions/administracion\";\r\nimport EditarEmpresa from \"./EditarEmpresa\";\r\nimport UsuarioEmpresa from \"./UsuarioEmpresa\";\r\nimport \"../../config\";\r\nimport {NotificationContainer} from \"react-notifications\";\r\n\r\nconst Empresa = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px',height:'100%' }\r\n const {listaEmpresa,loadingEmpresa} = useSelector((state) => state.administracion);\r\n console.log(\"loadingEmpresa\", loadingEmpresa)\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionado);\r\n let [empresaSeleccionada,setEmpresaSeleccionada] = useState(null);\r\n let [usuarioEmpresaOpen,setUsuarioEmpresaOpen] = useState(\"\");\r\n let [editEmpresaOpen, setEditEmpresaOpen] = useState(\"\")\r\n let [loadEmpresa, setLoadEmpresa] = useState(false) \r\n\r\n if(loadEmpresa===false){\r\n setLoadEmpresa(true)\r\n dispatch(getEmpresaAct(\"0\",\"\",\"\",\"ASC\",\"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n \r\n }\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\"); \r\n let [gridInfor, setGridInfor] = useState([listaEmpresa!==null?listaEmpresa:[]]); \r\n\r\n if(listaEmpresa!==null && listaEmpresa!=gridInfor && empresaFilter===\"\")\r\n setGridInfor(listaEmpresa)\r\n\r\n function filterCatalogo(nego,empresaFilter){\r\n //value => \r\n setGridInfor(nego.filter(function(item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) || \r\n item[\"Institucion\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())||\r\n item[\"Email\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())||\r\n item[\"Estado\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeEmpresa(){\r\n props.closeEmpresaClick()\r\n }\r\n function openNewEmpresa(){\r\n setEmpresaSeleccionada(null)\r\n setEditEmpresaOpen(\"EDIT\")\r\n }\r\n\r\n function closeEditEmpresa(){\r\n setEditEmpresaOpen(\"\")\r\n }\r\n function closeUsuarioEmpresa(){\r\n setUsuarioEmpresaOpen(\"\")\r\n }\r\n function formatEstado(estado){\r\n\t\tswitch(estado){\r\n\t\t\tcase \"A\":\r\n\t\t\t\treturn \"ACTIVO\"\r\n\t\t}\r\n\t\treturn \"INACTIVO\"\r\n\t}\r\n let columns= [\r\n \r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Nombre',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\"},\r\n { name: 'Institucion',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>INSTITUCIÓN</div>), defaultFlex: 1, xdefaultLocked: 'start',defaultWidth: 400, headerAlign: \"center\" }, \r\n { name: 'Estado',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => formatEstado(data[\"Estado\"]), headerAlign: \"center\" }, \r\n { name: 'Email',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>EMAIL</div>), defaultFlex: 1, xdefaultLocked: 'start',defaultWidth: 400, headerAlign: \"center\"}, \r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps } ) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Usuarios',\r\n onClick:()=>{ \r\n setEmpresaSeleccionada(rowProps.data)\r\n setUsuarioEmpresaOpen(\"OPEN\")\r\n console.log(rowProps.data)\r\n }\r\n }, \r\n {\r\n label: 'Editar',\r\n onClick:()=>{ \r\n setEmpresaSeleccionada(rowProps.data)\r\n setEditEmpresaOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n }, \r\n {\r\n label: 'Eliminar',\r\n onClick:()=>{\r\n confirmAlert({\r\n title: 'Eliminar empresa',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () =>{ \r\n dispatch(deleteEmpresaAct(rowProps.data[\"EmpresaId\"]))\r\n .then(() => { \r\n \r\n })\r\n .catch(() => {});\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n \r\n }\r\n }\r\n ]\r\n }); \r\n }\r\n }\r\n ]\r\n }, []) \r\n return (\r\n <div\r\n className={[\r\n \"overlay3\",\r\n \"fade-in\"\r\n ].join(\" \")}\r\n > \r\n <div className={['loading_cont',loadingEmpresa\r\n !==true?\"displaynone\":\"\"].join(' ')}><div className='single6'></div></div>\r\n {editEmpresaOpen===\"EDIT\" ? <EditarEmpresa \r\n sendMessage={props.sendMessage}\r\n closeEditEmpresa={closeEditEmpresa} \r\n empresaSeleccionada={empresaSeleccionada}/> : \"\"}\r\n {usuarioEmpresaOpen===\"OPEN\" ? <UsuarioEmpresa closeUsuarioEmpresa={closeUsuarioEmpresa} eventoSeleccionado={eventoSeleccionadoId} empresaSeleccionada={empresaSeleccionada}/> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Empresa\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openNewEmpresa}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem> \r\n </Menu>\r\n </div>\r\n </h2> \r\n <div className=\"titleTable-search\">EMPRESA<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaEmpresa!==null?listaEmpresa:[],e.target.value)\r\n }}/><i className=\"fas fa-search\"></i></div></div></div> \r\n <DataGrid\r\n idProperty=\"EmpresaId\"\r\n style={gridStyle} \r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }} \r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeEmpresa}>\r\n SALIR\r\n </div>\r\n </div> \r\n </div>\r\n </div> \r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Empresa);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from \"react-select\";\r\nimport NumberFormat from 'react-number-format';\r\nimport DatePicker from \"react-datepicker\";\r\nimport {\r\n updateEventoAct,\r\n getEmpresaSelectAct,\r\n getCatalogosModalidad\r\n} from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport UploadFile from \"./UploadFile\";\r\nimport { NotificationContainer, NotificationManager } from \"react-notifications\";\r\nconst EditarEvento = (props) => {\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n let [errors, setErrors] = useState({ \"modalidadIdErr\": \"\" }, { \"empresaIdErr\": \"\" }, { \"nombreEventoErr\": \"\" }, { \"nombreEmpresaCortoErr\": \"\" }, { \"nombreExponenteErr\": \"\" }, { \"fechaInscripcionErr\": \"\" }, { \"fechaSubastaErr\": \"\" }, { \"fechaAdjudicacionErr\": \"\" }, { \"fechaFinalizacionErr\": \"\" });\r\n let [eventoId, setEventoId] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"EventoId\"] : \"-1\");\r\n let [nombreEvento, setNombreEvento] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"NombreEvento\"] : \"\");\r\n let [logo, setLogo] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"Logo\"] : \"\");\r\n let [logoUrl, setLogoUrl] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"LogoUrl\"] : \"\");\r\n\r\n let [inscripcion, setInscripcion] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"PeriodoInscripcion\"] : new Date());\r\n let [colocacion, setColocacion] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"PeriodoColocacion\"] : new Date());\r\n let [subasta, setSubasta] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"PeriodoSubasta\"] : new Date());\r\n let [adjudicacion, setAdjudicacion] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"PeriodoAdjudicacion\"] : new Date());\r\n let [fechaApertura, setFechaApertura] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"FechaApertura\"] : new Date());\r\n let [fechaSubasta, setFechaSubasta] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"FechaSubasta\"] : new Date());\r\n let [fechaAdjudicacion, setFechaAdjudicacion] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"FechaAdjudicacion\"] : new Date());\r\n let [fechaFinalizacion, setFechaFinalizacion] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"FechaFinalizacion\"] : new Date());\r\n let [nombreEmpresaCorto, setNombreEmpresaCorto] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"NombreEmpresaCorto\"] : \"\");\r\n let [nombreExponente, setNombreExponente] = useState(props.eventoSeleccionado !== null ? props.eventoSeleccionado[\"NombreExponente\"] : \"\");\r\n let [isError, setIsError] = useState(false)\r\n let cambioModalidad = useState(null);\r\n const { listaCatalogosModalidad } = useSelector((state) => state.administracion);\r\n let [loadModalidades, setLoadModalidades] = useState(false)\r\n //console.log(\"listaCatalogosModalidad\", listaCatalogosModalidad)\r\n if (loadModalidades === false && listaCatalogosModalidad === null) {\r\n setLoadModalidades(true)\r\n dispatch(getCatalogosModalidad())\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n\r\n\r\n if (props.eventoSeleccionado !== null && props.eventoSeleccionado[\"ModalidadId\"] == \"1\") {\r\n cambioModalidad = { value: \"1\", label: \"Virtual\" };\r\n }\r\n if (props.eventoSeleccionado !== null && props.eventoSeleccionado[\"ModalidadId\"] == \"2\") {\r\n cambioModalidad = { value: \"2\", label: \"Semipresencial\" };\r\n }\r\n if (props.eventoSeleccionado !== null && props.eventoSeleccionado[\"ModalidadId\"] == \"3\") {\r\n cambioModalidad = { value: \"3\", label: \"Manual\" };\r\n }\r\n if (props.eventoSeleccionado === null) {\r\n cambioModalidad = { value: \"1\", label: \"Virtual\" };\r\n }\r\n let [modalidad, setModalidad] = useState(cambioModalidad);\r\n\r\n let cambioEstado = useState(null);\r\n if (props.eventoSeleccionado !== null && props.eventoSeleccionado[\"Estado\"] == \"I\") {\r\n cambioEstado = { value: \"I\", label: \"Inactivo\" };\r\n }\r\n if (props.eventoSeleccionado !== null && props.eventoSeleccionado[\"Estado\"] == \"A\") {\r\n cambioEstado = { value: \"A\", label: \"Activo\" };\r\n }\r\n if (props.eventoSeleccionado === null) {\r\n cambioEstado = { value: \"A\", label: \"Activo\" };\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: \"I\", label: \"Inactivo\" },\r\n { value: \"A\", label: \"Activo\" },\r\n ];\r\n function closeEditEvento() {\r\n props.closeEditEvento();\r\n }\r\n\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizar() {\r\n let valid = true;\r\n\r\n //let err = errors;\r\n if (nombreEvento == \"\") {\r\n errors[\"nombreEventoErr\"] = \"Ingrese nombre\";\r\n valid = false;\r\n }\r\n //if (!textoRegex.test(nombreEvento)) {\r\n // errors[\"nombreEventoErr\"] = \"Ingrese solo letras y números\"\r\n // valid = false\r\n //}\r\n\r\n if (nombreEmpresaCorto == \"\") {\r\n errors[\"nombreEmpresaCortoErr\"] = \"Ingrese nombre corto\";\r\n valid = false;\r\n }\r\n if (nombreExponente == \"\") {\r\n errors[\"nombreExponenteErr\"] = \"Ingrese nombre\";\r\n valid = false;\r\n }\r\n\r\n if (!nombreRegex.test(nombreExponente)) {\r\n errors[\"nombreExponenteErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n\r\n if (Date.parse(subasta) <= Date.parse(inscripcion)) {\r\n // errors[\"fechaSubastaErr\"] = \"Fecha inválida\"\r\n valid = false\r\n NotificationManager.error(\r\n \"Error. Fecha subasta inválida\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n \r\n }\r\n\r\n if (Date.parse(adjudicacion) <= Date.parse(subasta)) {\r\n //errors[\"fechaAdjudicacionErr\"] = \"Fecha inválida\"\r\n valid = false\r\n NotificationManager.error(\r\n \"Error. Fecha adjudicación inválida\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n \r\n }\r\n // console.log(\"-----------------------\")\r\n // console.log(colocacion,adjudicacion)\r\n if (Date.parse(colocacion) < Date.parse(adjudicacion)) {\r\n //errors[\"fechaFinalizacionErr\"] = \"Fecha inválida\"\r\n valid = false\r\n NotificationManager.error(\r\n \"Error. Fecha finalización inválida\",\r\n \"Sistema\",\r\n 5000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n \r\n }\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return;\r\n }\r\n dispatch(\r\n updateEventoAct(\r\n eventoId,\r\n logoUrl,\r\n modalidad[\"value\"],\r\n nombreEvento,\r\n logo,\r\n estadoSelect[\"value\"],\r\n currentUser[\"userId\"],\r\n fechaSubasta,\r\n inscripcion,\r\n subasta,\r\n colocacion,\r\n adjudicacion,\r\n nombreEmpresaCorto,\r\n nombreExponente,\r\n \"0\",\r\n \"\",\r\n \"\",\r\n \"ASC\",\r\n \"\"\r\n )\r\n )\r\n .then(() => {\r\n //window.location.reload();\r\n })\r\n .catch(() => { });\r\n\r\n closeEditEvento();\r\n console.log(eventoId)\r\n console.log(modalidad[\"value\"])\r\n console.log(nombreEvento)\r\n console.log(logo)\r\n console.log(estadoSelect[\"value\"])\r\n console.log(currentUser[\"userId\"])\r\n console.log(fechaSubasta)\r\n console.log(inscripcion)\r\n console.log(colocacion)\r\n console.log(subasta)\r\n console.log(adjudicacion)\r\n console.log(nombreEmpresaCorto)\r\n console.log(nombreExponente)\r\n\r\n }\r\n {/*Para agregar logo*/ }\r\n let [uploadId, setUploadId] = useState(\r\n currentUser !== null ? currentUser[\"UploadId\"] : \"-1\"\r\n );\r\n\r\n let [fileNombre, setFileNombre] = useState(\r\n currentUser !== null ? currentUser[\"fileNombre\"] : \"\"\r\n );\r\n\r\n let [fileNombreUrl, setFileNombreUrl] = useState(\r\n currentUser !== null ? currentUser[\"fileNombreUrl\"] : \"\"\r\n );\r\n\r\n function reloadDocuments(file) {\r\n const result = JSON.parse(file);\r\n setUploadId(result[\"UploadId\"]);\r\n setFileNombre(result[\"fileNombre\"]);\r\n setFileNombreUrl(result[\"fileNombreUrl\"]);\r\n }\r\n\r\n const convertirBase64 = (files) => {\r\n Array.from(files).forEach(file => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let arrayImage = []\r\n let base = reader.result;\r\n arrayImage = base.split(',');\r\n setLogoUrl(arrayImage[1])\r\n\r\n\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPortafolioEvento\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <div className=\"editEmpresa\">\r\n <h2>\r\n Evento\r\n </h2>\r\n <div className='vertical-scroll customScroll'>\r\n <div id=\"columna-1-formulario\">\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Fecha Subasta:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(fechaSubasta)}\r\n onChange={date => setFechaSubasta(date)}\r\n showMonthDropdown\r\n showYearDropdown\r\n dateFormat=\"dd/MM/yyyy\"\r\n className=\"input-form\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre evento:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombreEvento}\r\n maxLength={1000}\r\n placeholder=\"Ingresar nombre evento\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombreEvento(e.target.value);\r\n errors[\"nombreEventoErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreEventoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"nombreEventoErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre empresa corto:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombreEmpresaCorto}\r\n maxLength={1000}\r\n placeholder=\"Ingresar empresa corto\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombreEmpresaCorto(e.target.value);\r\n errors[\"nombreEmpresaCortoErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreEmpresaCortoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"nombreEmpresaCortoErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre exponente:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombreExponente}\r\n maxLength={1000}\r\n placeholder=\"Ingresar nombre exponente\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombreExponente(e.target.value);\r\n errors[\"nombreExponenteErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreExponenteErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"nombreExponenteErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Modalidad:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n className=\"input-form\" id=\"estadoSelectCombo\"\r\n value={modalidad}\r\n onChange={(e) => {\r\n setModalidad(e)\r\n }} placeholder=\"Seleccione\"\r\n options={listaCatalogosModalidad} />\r\n </div>\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Logo:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n\r\n <input type=\"file\" className=\"boxStyleSelect\" multiple onChange={(e) => convertirBase64(e.target.files)}></input>\r\n <div className=\"boxStyleSelect\">Selecciona el archivo para subirlo</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"columna-2-formulario\">\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select \r\n autocomplete=\"off\"\r\n className=\"input-form\" \r\n id=\"estadoSelectCombo\" \r\n value={estadoSelect} \r\n onChange={(e) => {\r\n setEstadoSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsEstado} />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Periodo Apertura:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(inscripcion)}\r\n onChange={(date) => {\r\n setInscripcion(date)\r\n\r\n }}\r\n showMonthDropdown\r\n showYearDropdown\r\n showTimeSelect\r\n //showTimeSelectOnly\r\n\r\n timeIntervals={5}\r\n timeCaption=\"Time\"\r\n dateFormat=\"HH:mm\"\r\n className=\"input-form\"\r\n timeFormat=\"HH:mm\"\r\n />\r\n </div>\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Periodo Subasta:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(subasta)}\r\n\r\n onChange={(date) => {\r\n setSubasta(date)\r\n errors[\"fechaSubastaErr\"] = \"\"\r\n }}\r\n showMonthDropdown\r\n showYearDropdown\r\n showTimeSelect\r\n //showTimeSelectOnly\r\n\r\n timeIntervals={5}\r\n timeCaption=\"Time\"\r\n dateFormat=\"HH:mm\"\r\n className=\"input-form\"\r\n timeFormat=\"HH:mm\"\r\n />\r\n {errors[\"fechaSubastaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"fechaSubastaErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Periodo Adjudicación:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(adjudicacion)}\r\n onChange={(date) => {\r\n setAdjudicacion(date)\r\n errors[\"fechaAdjudicacionErr\"] = \"\"\r\n }}\r\n showMonthDropdown\r\n showYearDropdown\r\n showTimeSelect\r\n //showTimeSelectOnly\r\n\r\n\r\n timeIntervals={5}\r\n timeCaption=\"Time\"\r\n dateFormat=\"HH:mm\"\r\n className=\"input-form\"\r\n timeFormat=\"HH:mm\"\r\n />\r\n {errors[\"fechaAdjudicacionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"fechaAdjudicacionErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Periodo Finalización:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <DatePicker\r\n selected={Date.parse(colocacion)}\r\n onChange={(date) => {\r\n setColocacion(date)\r\n errors[\"fechaFinalizacionErr\"] = \"\"\r\n }}\r\n showMonthDropdown\r\n showYearDropdown\r\n showTimeSelect\r\n //showTimeSelectOnly\r\n\r\n timeIntervals={5}\r\n timeCaption=\"Time\"\r\n dateFormat=\"HH:mm\"\r\n className=\"input-form\"\r\n timeFormat=\"HH:mm\"\r\n />\r\n {errors[\"fechaFinalizacionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"fechaFinalizacionErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditEvento}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarEvento);\r\n","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport NumberFormat from 'react-number-format';\r\nimport { Link } from \"react-router-dom\";\r\nimport Select from 'react-select';\r\nimport {getEventoEmpresaSinAsigAct, selectEventoEmpresaAct} from \"../../actions/administracion\";\r\nimport DataGrid,{ Column,Selection } from '@inovua/reactdatagrid-community';\r\n\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport \"../../config\";\r\n//updateGestionEventoUsuario = (eventoUsuarioId,usuarioId,eventoId,usuarioIdRegistro,estado,monto,saldo)\r\nconst SeleccionarUsuarioEmpresa = (props) => { \r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const {listaEventoEmpresaSinAsig} = useSelector((state) => state.administracion);\r\n\tlet [loadListaEventoEmpresaSinAsig,setloadListaEventoEmpresaSinAsig] = useState(true);\r\n \r\n const closeSeleccionarEventoEmpresa = ()=>{\r\n props.closeSelectEventoEmpresa()\r\n }\r\n const checkBoxesMode = useState(\"onClick\");\r\n const allMode = useState(\"allPages\");\r\n const dispatch = useDispatch();\r\n if(loadListaEventoEmpresaSinAsig===true){\r\n\t\tsetloadListaEventoEmpresaSinAsig(false)\r\n dispatch(getEventoEmpresaSinAsigAct(props.eventoSeleccionadoId))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n } \r\n\r\n\r\n const gridStyle = { minHeight: '300px', height:'100%', margin: 20 }\r\n const toArray = selected => Object.keys(selected).map(id => id * 1);\r\n let columns= [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'value', header: 'Id', defaultVisible: false, defaultWidth: 60, type: 'number' },\r\n { name: 'label',header: 'Usuarios', defaultFlex: 1, xdefaultLocked: 'start',defaultWidth: 400, },\r\n \r\n \r\n \r\n ]\r\n \r\n\r\n const [selected, setSelected] = useState({ 0:true }); \r\n \r\n const onSelectionChange = useCallback(({ selected }) => {\r\n setSelected(selected)\r\n }, [])\r\n\r\n function actualizar(){\r\n \r\n dispatch(selectEventoEmpresaAct(\r\n props.eventoSeleccionadoId,\r\n toArray(selected).toString(),\r\n currentUser[\"userId\"],\r\n )).then(() => { \r\n \r\n }).catch(() => {}\r\n )\r\n \r\n \r\n closeSeleccionarEventoEmpresa()\r\n }\r\n function onCheckBoxesModeChanged({ value }) {\r\n this.setState({ checkBoxesMode: value });\r\n }\r\n \r\n function onAllModeChanged({ value }) {\r\n this.setState({ allMode: value });\r\n }\r\n \r\n\r\n\r\n return (\r\n<div className=\"overlay3 fade-in\"> \r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow-height-100\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Seleccionar empresas \r\n </h2> \r\n <div className='vertical-noscroll customScroll'> \r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\"> \r\n <DataGrid \r\n idProperty=\"value\"\r\n selected={selected} \r\n checkboxColumn \r\n onSelectionChange={onSelectionChange} \r\n style={gridStyle} \r\n columns={columns} \r\n dataSource={listaEventoEmpresaSinAsig!==null?listaEventoEmpresaSinAsig:[]} \r\n theme=\"amber-dark\"\r\n /> \r\n \r\n </div> \r\n <div className=\"textCenter clear-both\">\r\n \r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeSeleccionarEventoEmpresa}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n </div>\r\n</div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(SeleccionarUsuarioEmpresa);\r\n","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid,{ Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Menu,MenuItem,MenuButton,SubMenu} from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport {formatDateTime} from \"./Util\";\r\nimport {deleteEventoAct, deleteEventoEmpresaAct, getEventoEmpresaAct} from \"../../actions/administracion\";\r\nimport SeleccionarEventoEmpresa from \"./SeleccionarEventoEmpresa\";\r\n//import ItemEmpresa from \"./ItemEmpresa\";\r\nimport \"../../config\";\r\nimport {NotificationContainer} from \"react-notifications\";\r\n\r\nconst EventoEmpresa = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px',height:'100%' }\r\n const {listaEventoEmpresa,loadingEventoEmpresa} = useSelector((state) => state.administracion);\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionado !== null? props.eventoSeleccionado[\"EventoId\"]: \"-1\");\r\n let [selectEventoEmpresaOpen, setSelectEventoEmpresaOpen] = useState(\"\")\r\n let [loadEventoEmpresa, setloadEventoEmpresa] = useState(false) \r\n \r\n if(loadEventoEmpresa===false){\r\n setloadEventoEmpresa(true)\r\n dispatch(getEventoEmpresaAct(eventoSeleccionadoId))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n \r\n }\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\"); \r\n let [gridInfor, setGridInfor] = useState([listaEventoEmpresa!==null?listaEventoEmpresa:[]]); \r\n\r\n if(listaEventoEmpresa!==null && listaEventoEmpresa!=gridInfor && empresaFilter===\"\")\r\n setGridInfor(listaEventoEmpresa)\r\n\r\n function filterCatalogo(nego,empresaFilter){\r\n //value => \r\n setGridInfor(nego.filter(function(item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeEventoEmpresa(){\r\n props.closeEventoEmpresaClick()\r\n }\r\n function openSelectEventoEmpresa(){\r\n setSelectEventoEmpresaOpen(\"OPEN\")\r\n }\r\n function closeSelectEventoEmpresa(){\r\n setSelectEventoEmpresaOpen(\"\")\r\n }\r\n function formatEstado(estado){\r\n\t\tswitch(estado){\r\n\t\t\tcase \"A\":\r\n\t\t\t\treturn \"ACTIVO\"\r\n\t\t}\r\n\t\treturn \"INACTIVO\"\r\n\t}\r\n let columns= [\r\n \r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Nombre',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'end' , headerAlign: \"center\"},\r\n { name: 'Estado',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => formatEstado(data[\"Estado\"]), headerAlign: \"center\" }, \r\n { name: 'FechaRegistro',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>FECHA REGISTRO</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => formatDateTime(data[\"FechaRegistro\"]), headerAlign: \"center\" }, \r\n \r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps } ) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n \r\n {\r\n label: 'Eliminar',\r\n onClick:()=>{\r\n confirmAlert({\r\n title: 'Eliminar empresa',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () =>{ \r\n dispatch(deleteEventoEmpresaAct(rowProps.data[\"EventoEmpresaId\"],eventoSeleccionadoId))\r\n .then(() => { \r\n \r\n })\r\n .catch(() => {});\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n \r\n }\r\n }\r\n ]\r\n }); \r\n }\r\n }\r\n ]\r\n }, []) \r\n return (\r\n <div\r\n className={[\r\n \"overlay3\",\r\n \"fade-in\"\r\n ].join(\" \")}\r\n > \r\n <div className={['loading_cont',loadingEventoEmpresa!==true?\"displaynone\":\"\"].join(' ')}><div className='single6'></div></div>\r\n {selectEventoEmpresaOpen===\"OPEN\" ? <SeleccionarEventoEmpresa closeSelectEventoEmpresa={closeSelectEventoEmpresa} eventoSeleccionadoId={eventoSeleccionadoId}/> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Empresa\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openSelectEventoEmpresa}><i className=\"fas fa-sign-out-alt\"></i>Seleccionar</MenuItem> \r\n </Menu>\r\n </div>\r\n </h2> \r\n <div className=\"titleTable-search\">EMPRESA<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaEventoEmpresa!==null?listaEventoEmpresa:[],e.target.value)\r\n }}/><i className=\"fas fa-search\"></i></div></div></div> \r\n <DataGrid\r\n idProperty=\"EventoEmpresaId\"\r\n style={gridStyle} \r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }} \r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={props.closeEventoEmpresaClick}>\r\n SALIR\r\n </div>\r\n </div> \r\n </div>\r\n </div> \r\n </div>\r\n );\r\n };\r\n const mapStateToProps = (state) => ({});\r\n export default connect(mapStateToProps, {})(EventoEmpresa);\r\n ","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid,{ Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Menu,MenuItem,MenuButton,SubMenu} from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport {formatDateTime} from \"./Util\";\r\nimport {getEventoAct,deleteEventoAct} from \"../../actions/administracion\";\r\nimport EditarEvento from \"./EditarEvento\";\r\nimport EventoEmpresa from \"./EventoEmpresa\";\r\nimport \"../../config\";\r\nimport {NotificationContainer} from \"react-notifications\";\r\n\r\nconst Evento = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px',height:'100%'}\r\n const {listaEventos,loadingEventos} = useSelector((state) => state.administracion);\r\n let [eventoSeleccionado,setEventoSeleccionado] = useState(null);\r\n let [eventoEmpresaOpen,setEventoEmpresaOpen] = useState(\"\");\r\n let [editEventoOpen, setEditEventoOpen] = useState(\"\")\r\n let [loadEvento, setLoadEvento] = useState(false) \r\n\r\n if(loadEvento===false){\r\n setLoadEvento(true)\r\n dispatch(getEventoAct(\"0\",\"\",\"\",\"ASC\",\"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n \r\n }\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\"); \r\n let [gridInfor, setGridInfor] = useState([listaEventos!==null?listaEventos:[]]); \r\n\r\n if(listaEventos!==null && listaEventos!=gridInfor && empresaFilter===\"\")\r\n setGridInfor(listaEventos)\r\n\r\n function filterCatalogo(nego,empresaFilter){\r\n //value => \r\n setGridInfor(nego.filter(function(item) {\r\n if (item[\"NombreEvento\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) || \r\n item[\"Estado\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n \r\n function closeEvento(){\r\n props.closeEventoClick()\r\n }\r\n function openNewEvento(){\r\n setEventoSeleccionado(null)\r\n setEditEventoOpen(\"EDIT\")\r\n }\r\n\r\n function closeEditEvento(){\r\n setEditEventoOpen(\"\")\r\n }\r\n function closeEventoEmpresaClick(){\r\n setEventoEmpresaOpen(\"\")\r\n }\r\n function formatEstado(estado){\r\n\t\tswitch(estado){\r\n\t\t\tcase \"A\":\r\n\t\t\t\treturn \"ACTIVO\"\r\n\t\t}\r\n\t\treturn \"INACTIVO\"\r\n\t}\r\n let columns= [\r\n \r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'NombreEvento',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'end', minWidth: 500, headerAlign: \"center\" },\r\n { name: 'Estado',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => formatEstado(data[\"Estado\"]), headerAlign: \"center\" }, \r\n { name: 'FechaSubasta',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>FECHA SUBASTA</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => new Date(data[\"FechaSubasta\"]).toLocaleString().replace(',', '') , headerAlign: \"center\"}, \r\n \r\n \r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps } ) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Empresa',\r\n onClick:()=>{ \r\n setEventoSeleccionado(rowProps.data)\r\n setEventoEmpresaOpen(\"OPEN\")\r\n console.log(rowProps.data)\r\n }\r\n }, \r\n {\r\n label: 'Editar',\r\n onClick:()=>{ \r\n setEventoSeleccionado(rowProps.data)\r\n setEditEventoOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n }, \r\n {\r\n label: 'Eliminar',\r\n onClick:()=>{\r\n confirmAlert({\r\n title: 'Eliminar evento',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () =>{ \r\n dispatch(deleteEventoAct(rowProps.data[\"EventoId\"]))\r\n .then(() => { \r\n props.history.push(\"/seleccionarEvento\");\r\n window.location.reload();\r\n })\r\n .catch(() => {});\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n \r\n }\r\n }\r\n ]\r\n }); \r\n }\r\n }\r\n ]\r\n }, []) \r\n console.log(\"lista de eventos\")\r\n console.log(listaEventos)\r\n return (\r\n <div\r\n className={[\r\n \"overlay3\",\r\n \"fade-in\"\r\n ].join(\" \")}\r\n > \r\n <div className={['loading_cont',loadingEventos\r\n !==true?\"displaynone\":\"\"].join(' ')}><div className='single6'></div></div>\r\n {editEventoOpen===\"EDIT\" ? <EditarEvento closeEditEvento={closeEditEvento} eventoSeleccionado={eventoSeleccionado}/> : \"\"}\r\n {eventoEmpresaOpen===\"OPEN\" ? <EventoEmpresa closeEventoEmpresaClick={closeEventoEmpresaClick} eventoSeleccionado={eventoSeleccionado}/> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Eventos\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openNewEvento}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem> \r\n </Menu>\r\n </div>\r\n </h2> \r\n <div className=\"titleTable-search\">BUSCAR<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaEventos!==null?listaEventos:[],e.target.value)\r\n }}/><i className=\"fas fa-search\"></i></div></div></div> \r\n <DataGrid\r\n idProperty=\"EventoId\"\r\n style={gridStyle} \r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }} \r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeEvento}>\r\n SALIR\r\n </div>\r\n </div> \r\n </div>\r\n </div> \r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Evento);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport Checkbox from 'rc-checkbox';\r\n\r\nimport { getEmpresaSelectAct, getUsuariosAct, getDataEmpresaAct, updateInversionistaAct, getEmpresaAct, getEmpresaSelectInversionista } from \"../../actions/administracion\";\r\n\r\nimport NumberFormat from 'react-number-format';\r\nimport \"../../config\";\r\nimport { enableFuncionalityForRole } from \"./Util\";\r\nconst EditarInversionista = (props) => {\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const { listaEmpresasSelecInversionista, loadingEmpresa } = useSelector((state) => state.administracion);\r\n // console.log(currentUser)\r\n let [userRegistradorFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_REGIS\")\r\n : false\r\n );\r\n\r\n let [loadEmpresa, setLoadEmpresa] = useState(false)\r\n if (loadEmpresa === false && listaEmpresasSelecInversionista === null) {\r\n console.log(\"entre\")\r\n setLoadEmpresa(true)\r\n dispatch(getEmpresaSelectInversionista())\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n // console.log(listaEmpresasSelecInversionista)\r\n\r\n let [errors, setErrors] = useState({ \"empresaErr\": \"\" }, { \"usuarioIdErr\": \"\" }, { \"nombreErr\": \"\" }, { \"apellidoErr\": \"\" }, { \"cedulaErr\": \"\" }, { \"telefonoErr\": \"\" }, { \"direccionErr\": \"\" }, { \"emailErr\": \"\" });\r\n let [nombre, setNombre] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Nombre\"] : \"\")\r\n //console.log(\"estoy aqui en nombre\", nombre)\r\n let [apellido, setApellido] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Apellido\"] : \"\")\r\n let [cedula, setCedula] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Cedula\"] : \"\")\r\n let [telefono, setTelefono] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Telefono\"] : \"\")\r\n let [direccion, setDireccion] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Direccion\"] : \"\")\r\n let [usuarioRegistroId, setUsuarioRegistroId] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"UsuarioRegistroId\"] : \"\")\r\n\r\n // La empresa si carga\r\n let [empresa, setEmpresa] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"EmpresaId\"] : \"\")\r\n //console.log(empresa)\r\n\r\n let [email, setEmail] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Email\"] : \"\");\r\n\r\n\r\n // Aqui llega primero null\r\n let [empresaSeleccionada, setEmpresaSeleccionada] = useState(listaEmpresasSelecInversionista != null ? listaEmpresasSelecInversionista.filter(x => x.value === empresa)[0] : {})\r\n //console.log(empresaSeleccionada)\r\n //console.log(listaEmpresasSelecInversionista)\r\n let [boolListEmpresaEvento, setboolListEmpresaEvento] = useState(false)\r\n\r\n if (empresaSeleccionada == undefined && listaEmpresasSelecInversionista != null && boolListEmpresaEvento == false && userRegistradorFuncionality == true) {\r\n //console.log(\"hola\")\r\n setboolListEmpresaEvento(true)\r\n listaEmpresasSelecInversionista.forEach((empresa) => {\r\n setEmpresaSeleccionada({ value: empresa.value, label: empresa.label })\r\n setEmpresa({ value: empresa.value, label: empresa.label })\r\n })\r\n }\r\n\r\n\r\n let [isError, setIsError] = useState(false)\r\n\r\n let cambioEstado = useState(null)\r\n let cambioEmpresa = useState(null)\r\n if (props.inversionistaSeleccionado !== null && props.inversionistaSeleccionado[\"Estado\"] == \"I\") {\r\n cambioEstado = { value: 'I', label: \"Inactivo\" }\r\n }\r\n if (props.inversionistaSeleccionado !== null && props.inversionistaSeleccionado[\"Estado\"] == \"A\") {\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n }\r\n if (props.inversionistaSeleccionado === null) {\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n let [estadoSelectEmpresa, setEstadoSelectEmpresa] = useState(cambioEmpresa);\r\n const optionsEstado = [\r\n { value: 'I', label: 'Inactivo' },\r\n { value: 'A', label: 'Activo' },\r\n ]\r\n function closeEditInversionista() {\r\n props.closeEditInversionista()\r\n }\r\n\r\n\r\n if (empresa === null) {\r\n setEmpresa({ value: '0', label: \"Ninguno\" })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // Validacion campos\r\n\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n //const cedulaRegex = /^[0-9]+$/;\r\n function actualizar() {\r\n\r\n let valid = true\r\n\r\n if (nombre == \"\") {\r\n errors[\"nombreErr\"] = \"Ingrese nombre\"\r\n valid = false\r\n }\r\n if (!nombreRegex.test(nombre)) {\r\n errors[\"nombreErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n if (apellido == \"\") {\r\n errors[\"apellidoErr\"] = \"Ingrese apellido\"\r\n valid = false\r\n }\r\n if (!nombreRegex.test(apellido)) {\r\n errors[\"apellidoErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n if (cedula == \"\") {\r\n errors[\"cedulaErr\"] = \"Ingrese cédula\"\r\n valid = false\r\n }\r\n // if (telefono == \"\") {\r\n // errors[\"telefonoErr\"] = \"Ingrese teléfono\"\r\n // valid = false\r\n //}\r\n /*if (direccion == \"\") {\r\n errors[\"direccionErr\"] = \"Ingrese dirección\"\r\n valid = false\r\n }*/\r\n if (email == \"\" || !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email)) {\r\n errors[\"emailErr\"] = \"Ingrese mail (example@example.com)\";\r\n valid = false;\r\n }\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return\r\n }\r\n\r\n\r\n\r\n dispatch(updateInversionistaAct(\r\n props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"InversionistaId\"] : \"-1\",\r\n nombre,\r\n apellido,\r\n cedula,\r\n telefono,\r\n direccion,\r\n estadoSelect[\"value\"],\r\n currentUser[\"userId\"],\r\n props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"EmpresaId\"] : empresa.value,\r\n email,\r\n \"0\",\r\n \"\",\r\n \"\",\r\n \"ASC\",\r\n \"\",\r\n currentUser[\"EmpresaId\"]\r\n )).then(() => {\r\n }).catch(() => {\r\n }\r\n );\r\n\r\n closeEditInversionista()\r\n console.log(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"InversionistaId\"] : \"-1\")\r\n console.log(\"nombre:\" + nombre)\r\n console.log(\"apellido:\" + apellido)\r\n console.log(\"cedula:\" + cedula)\r\n console.log(\"telefono:\" + telefono)\r\n console.log(\"direccion:\" + direccion)\r\n console.log(\"estado:\" + estadoSelect[\"value\"])\r\n console.log(\"usuarioRegistroId:\" + estadoSelect[\"value\"])\r\n console.log(\"empresaSeleccionada:\" + empresa.value)\r\n }\r\n return (\r\n <div className='overlay3 fade-in'>\r\n\r\n <div className=\"borderContent ventanaPortafolioEditarInversionista\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Inversionista\r\n </h2>\r\n\r\n <div className='vertical-scrollI customScroll'>\r\n <div className=\"columna-1-inversionista\">\r\n\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Empresa:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n id=\"estadoSelectCombo\"\r\n\r\n //value={props.inversionistaSeleccionado !== null?props.inversionistaSeleccionado[\"EmpresaId\"]:empresa}\r\n value={empresaSeleccionada}\r\n onChange={(e) => {\r\n setEmpresa(e)\r\n setEmpresaSeleccionada(e)\r\n console.log(e)\r\n errors[\"empresaErr\"] = \"\"\r\n }}\r\n placeholder=\"Ninguno\"\r\n options={listaEmpresasSelecInversionista !== null ? listaEmpresasSelecInversionista : []} />\r\n\r\n {errors[\"empresaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"empresaErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n const inputText = e.target.value;\r\n const capitalizedText = inputText.toUpperCase();\r\n setNombre(capitalizedText);\r\n errors[\"NombreErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"nombreErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Apellido:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={apellido}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Apellido\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n const inputText = e.target.value;\r\n const capitalizedText = inputText.toUpperCase();\r\n setApellido(capitalizedText);\r\n //setApellido(e.target.value);\r\n errors[\"apellidoErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"apellidoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"apellidoErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Email:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"email\"\r\n value={email}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Email\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setEmail(e.target.value);\r\n errors[\"emailErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"emailErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"emailErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Cédula:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n value={cedula}\r\n maxLength={10}\r\n decimalScale={0}\r\n placeholder=\"Ingresar Cédula\"\r\n allowLeadingZeros={true}\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setCedula(e.target.value);\r\n errors[\"cedulaErr\"] = \"\"\r\n }}\r\n ></NumberFormat>\r\n {errors[\"cedulaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"cedulaErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Teléfono:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n value={telefono}\r\n maxLength={10}\r\n decimalScale={0}\r\n allowLeadingZeros={true}\r\n placeholder=\"Ingresar Teléfono\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setTelefono(e.target.value);\r\n errors[\"telefonoErr\"] = \"\"\r\n }}\r\n ></NumberFormat>\r\n {errors[\"telefonoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"telefonoErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n id=\"estadoSelectCombo\"\r\n value={estadoSelect}\r\n onChange={(e) => {\r\n setEstadoSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsEstado} />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Dirección:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <textarea\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={direccion}\r\n maxLength={5000}\r\n placeholder=\"Dirección\"\r\n className=\"text-area-form\"\r\n onChange={(e) => {\r\n setDireccion(e.target.value);\r\n errors[\"direccionErr\"] = \"\"\r\n }}\r\n ></textarea>\r\n {errors[\"direccionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"direccionErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditInversionista}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarInversionista);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { enableFuncionalityForRole, formatNumber, generateMessageAdm } from \"../../components/general/Util\";\r\nimport { formatDateTime } from \"./Util\";\r\nimport { getInversionistaAct, deleteInversionistaAct, getEmpresaSelectInversionista } from \"../../actions/administracion\";\r\nimport EditarInversionista from \"./EditarInversionista\";\r\nimport \"../../config\";\r\nimport { NotificationContainer } from \"react-notifications\";\r\n\r\nconst Inversionista = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px', height: '100%' }\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionado);\r\n let [empresaId] = useState(props.empresaId);\r\n let [usuarioId] = useState(props.usuarioId);\r\n\r\n const { listaInversionista, loadingInversionista } = useSelector((state) => state.administracion);\r\n const { listaEmpresasSelecInversionista, loadingEmpresa } = useSelector((state) => state.administracion);\r\n\r\n let [inversionistaSeleccionado, setInversionistaSeleccionado] = useState(null);\r\n let [editInversionistaOpen, setEditInversionistaOpen] = useState(\"\")\r\n let [loadInverisonista, setLoadInversionista] = useState(false)\r\n\r\n\r\n console.log(listaInversionista)\r\n\r\n //\r\n\r\n if (loadInverisonista === false && listaEmpresasSelecInversionista === null) {\r\n setLoadInversionista(true)\r\n dispatch(getInversionistaAct(usuarioId,empresaId,\"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n // agg\r\n dispatch(getEmpresaSelectInversionista(usuarioId, empresaId))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaInversionista !== null ? listaInversionista : []]);\r\n\r\n if (listaInversionista !== null && listaInversionista != gridInfor && empresaFilter === \"\")\r\n setGridInfor(listaInversionista)\r\n\r\n function filterCatalogo(nego, empresaFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) ||\r\n item[\"Direccion\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) ||\r\n item[\"Estado\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeInversionista() {\r\n props.closeInversionistaClick()\r\n }\r\n function openNewInversionista() {\r\n setInversionistaSeleccionado(null)\r\n setEditInversionistaOpen(\"EDIT\")\r\n }\r\n function openNewInversionistaSE() {\r\n setInversionistaSeleccionado(null)\r\n setEditInversionistaOpen(\"EDIT\")\r\n\r\n }\r\n\r\n function closeEditInversionista() {\r\n setEditInversionistaOpen(\"\")\r\n }\r\n function formatEstado(estado) {\r\n switch (estado) {\r\n case \"A\":\r\n return \"ACTIVO\"\r\n }\r\n return \"INACTIVO\"\r\n }\r\n function formatEstado(estado) {\r\n switch (estado) {\r\n case \"A\":\r\n return \"ACTIVO\"\r\n }\r\n return \"INACTIVO\"\r\n }\r\n\r\n let [userRegistradorFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_REGIS\")\r\n : false\r\n );\r\n let columns = [\r\n\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Nombre', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\",formatter: (cell) => {\r\n return cell.toLowerCase().replace(/\\b\\w/g, c => c.toUpperCase());\r\n } },\r\n { name: 'Apellido', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>APELLIDO</div>), defaultFlex: 1, xdefaultLocked: 'start', defaultWidth: 400, headerAlign: \"center\" },\r\n { name: 'Cedula', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>CÉDULA</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Estado', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => formatEstado(data[\"Estado\"]), headerAlign: \"center\" },\r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n\r\n {\r\n label: 'Editar',\r\n onClick: () => {\r\n setInversionistaSeleccionado(rowProps.data)\r\n setEditInversionistaOpen(\"EDIT\")\r\n console.log(\"seleccion inver\", rowProps.data)\r\n }\r\n },\r\n {\r\n label: 'Eliminar',\r\n onClick: () => {\r\n confirmAlert({\r\n title: 'Eliminar inversionista',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () => {\r\n dispatch(deleteInversionistaAct(rowProps.data[\"InversionistaId\"],usuarioId,empresaId,))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => { });\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n ]\r\n }, [])\r\n return (\r\n <div\r\n className={[\r\n \"overlay3\",\r\n \"fade-in\"\r\n ].join(\" \")}\r\n >\r\n <div className={['loading_cont', loadingInversionista !== true ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n {editInversionistaOpen === \"EDIT\" ?\r\n <EditarInversionista\r\n closeEditInversionista={closeEditInversionista}\r\n inversionistaSeleccionado={inversionistaSeleccionado}\r\n \r\n //listaEmpresasSelecInversionista = {listaEmpresasSelecInversionista}\r\n />\r\n : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Inversionista\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openNewInversionistaSE}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem>\r\n </Menu>\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">INVERSIONISTA<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaInversionista !== null ? listaInversionista : [], e.target.value)\r\n }} /><i className=\"fas fa-search\"></i></div></div></div>\r\n\r\n\r\n <DataGrid\r\n idProperty=\"InversionistaId\"\r\n style={gridStyle}\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n\r\n {userRegistradorFuncionality == false ?\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeInversionista}>\r\n SALIR\r\n </div>\r\n </div>\r\n : <div className=\"textCenter\">\r\n\r\n </div>}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Inversionista);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport { updateUsuario } from \"../../actions/administracion\";\r\nimport UploadFile from \"./UploadFile\";\r\nimport UploadFileNew from \"./UploadFileNew\";\r\nimport \"../../config\";\r\nimport { enableFuncionalityForRole } from \"./Util\";\r\nconst EditarGestionUsuario = (props) => {\r\n const dispatch = useDispatch();\r\n let [userId, setUserId] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"UsuarioId\"] : \"-1\")\r\n let [errors, setErrors] = useState({ \"nombreErr\": \"\" }, { \"nickErr\": \"\" }, { \"emailErr\": \"\" }, { \"rolErr\": \"\" });\r\n let [nombre, setNombre] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"Nombre\"].toString() : \"\")\r\n let [nick, setNick] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"Nick\"].toString() : \"\")\r\n let [email, setEmail] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"Email\"].toString() : \"\")\r\n let [rol, setRol] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"Rol\"] : \"\")\r\n let [uploadId, setUploadId] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"UploadId\"] : \"-1\")\r\n let [fileNombre, setFileNombre] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"fileNombre\"] : \"\")\r\n let [fileNombreUrl, setFileNombreUrl] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"fileNombreUrl\"] : \"\")\r\n\r\n\r\n let [imagenUrl, setImagenUrl] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"ImagenUrl\"] : \"\")\r\n //console.log(\"imagen\", imagenUrl)\r\n //let [logo, setLogo] = useState(props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"ImagenUrl\"] : \"\");\r\n //console.log(\"logo\", logo)\r\n\r\n let [clave, setClave] = useState(null)\r\n let cambioEstado = useState(null)\r\n let [isError, setIsError] = useState(false)\r\n\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n\r\n let [admFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_ADM\")\r\n : false\r\n );\r\n let [userRuedaFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_RUED\")\r\n : false\r\n );\r\n\r\n\r\n\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Estado\"] == \"I\") {\r\n cambioEstado = { value: 'I', label: \"Inactivo\" }\r\n }\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Estado\"] == \"A\") {\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n }\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Estado\"] == \"D\") {\r\n cambioEstado = { value: 'D', label: \"Desactivado\" }\r\n }\r\n if (props.usuarioSeleccionado === null) {\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: 'I', label: 'Inactivo' },\r\n { value: 'A', label: 'Activo' },\r\n ]\r\n let cambioRol = useState(null)\r\n\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_ADMIN\") {\r\n cambioRol = { value: 'ROLE_ADMIN', label: \"Admin\" }\r\n }\r\n // if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_USER\") {\r\n // cambioRol = { value: 'ROLE_USER', label: \"Jugador\" }\r\n //}\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_RUEDA\") {\r\n cambioRol = { value: 'ROLE_RUEDA', label: \"Director de rueda\" }\r\n }\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_CAJA\") {\r\n cambioRol = { value: 'ROLE_CAJA', label: \"Usuario Caja\" }\r\n }\r\n\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_LIQUIDACION\") {\r\n cambioRol = { value: 'ROLE_LIQUIDACION', label: \"Usuario Liquidacion\" }\r\n }\r\n /*if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_CAJA\") {\r\n cambioRol = { value: 'ROLE_VISITANTE', label: \"Visitante\" }\r\n }*/\r\n\r\n\r\n if (props.usuarioSeleccionado === null) {\r\n cambioRol = admFuncionality === true ? { value: 'ROLE_OPERADOR', label: \"Usuario Operador\" } : { value: 'ROLE_OPERADOR', label: \"Usuario Operador\" };\r\n }\r\n\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_OPERADOR\") {\r\n cambioRol = { value: 'ROLE_OPERADOR', label: \"Usuario Operador\" }\r\n }\r\n\r\n if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_REGISTRADOR\") {\r\n cambioRol = { value: 'ROLE_REGISTRADOR', label: \"Usuario Registrador\" }\r\n }\r\n // if (props.usuarioSeleccionado !== null && props.usuarioSeleccionado[\"Rol\"] == \"ROLE_RECEPTOR\") {\r\n // cambioRol = { value: 'ROLE_RECEPTOR', label: \"Usuario Receptor\" }\r\n //}\r\n\r\n\r\n let [rolSelect, setRolSelect] = useState(cambioRol);\r\n\r\n\r\n\r\n const optionsRol = admFuncionality === true ? [\r\n { value: 'ROLE_ADMIN', label: 'Administrador' },\r\n // { value: 'ROLE_USER', label: 'Jugador' },\r\n { value: 'ROLE_RUEDA', label: 'Director de rueda' },\r\n { value: 'ROLE_CAJA', label: 'Usuario Caja' },\r\n { value: 'ROLE_LIQUIDACION', label: 'Usuario Liquidacion' },\r\n { value: 'ROLE_OPERADOR', label: 'Usuario Operador' },\r\n { value: 'ROLE_REGISTRADOR', label: 'Usuario Registrador' }\r\n //{ value: 'ROLE_RECEPTOR', label: 'Usuario Receptor' }\r\n ] : [\r\n { value: 'ROLE_OPERADOR', label: 'Usuario Operador' },\r\n //{ value: 'ROLE_RECEPTOR', label: 'Usuario Receptor' }\r\n ]\r\n\r\n function crearClave() {\r\n let valid = true\r\n if (email == \"\") {\r\n errors[\"emailErr\"] = \"Ingrese email\"\r\n valid = false\r\n } else {\r\n var valor = email\r\n var division = valor.split(\"@\", 1)\r\n var result = division.toString().replace(/[^a-zA-Z ]/g, \"\");\r\n var numeros = aleatorio(1000, 9999)\r\n result = result + numeros\r\n setClave(result)\r\n errors[\"claveErr\"] = \"\"\r\n }\r\n return valid\r\n }\r\n function aleatorio(inferior, superior) {\r\n var numPosibilidades = superior - inferior;\r\n var aleatorio = Math.random() * (numPosibilidades + 1);\r\n aleatorio = Math.floor(aleatorio);\r\n return inferior + aleatorio;\r\n }\r\n function closeEditU() {\r\n props.closeUser()\r\n }\r\n\r\n const textoRegex = /^[a-zA-Z0-9Ññ_\\s-]*$/;\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizarU() {\r\n\r\n let valid = true\r\n\r\n if (userId <= 0 && clave === null) {\r\n errors[\"claveErr\"] = \"Ingrese una contraseña\"\r\n valid = false\r\n }\r\n if (nombre == \"\") {\r\n errors[\"nombreErr\"] = \"Ingrese nombre\"\r\n valid = false\r\n }\r\n if (!nombreRegex.test(nombre)) {\r\n errors[\"nombreErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n\r\n if (nick == \"\") {\r\n errors[\"nickErr\"] = \"Ingrese nick\"\r\n valid = false\r\n }\r\n if (!textoRegex.test(nick)) {\r\n errors[\"nickErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n if (email == \"\" || !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email)) {\r\n errors[\"emailErr\"] = \"Ingrese email (example@example.com)\"\r\n valid = false\r\n }\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return\r\n }\r\n\r\n dispatch(updateUsuario(\r\n props.usuarioSeleccionado !== null ? props.usuarioSeleccionado[\"UsuarioId\"] : \"-1\",\r\n nombre,\r\n nick,\r\n email,\r\n rolSelect[\"value\"],\r\n clave !== null ? clave : \"\",\r\n estadoSelect[\"value\"],\r\n uploadId,\r\n imagenUrl\r\n )).then(() => {\r\n\r\n }).catch(() => { }\r\n );\r\n closeEditU()\r\n }\r\n function reloadDocuments(file) {\r\n const result = JSON.parse(file);\r\n setUploadId(result[\"UploadId\"])\r\n setFileNombre(result[\"fileNombre\"])\r\n setFileNombreUrl(result[\"fileNombreUrl\"])\r\n }\r\n\r\n const convertirBase64 = (files) => {\r\n Array.from(files).forEach(file => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let arrayImage = []\r\n let base = reader.result;\r\n arrayImage = base.split(',');\r\n setImagenUrl(arrayImage[1])\r\n\r\n\r\n }\r\n })\r\n }\r\n\r\n const [passwordVisible, setPasswordVisible] = useState(false);\r\n return (\r\n <div className='overlay3 fade-in'>\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Usuarios\r\n </h2>\r\n <div className='vertical-scroll customScroll'>\r\n <div className=\"columna-1-formulario-ventana-perfil\">\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={100}\r\n placeholder=\"Ingresar nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombre(e.target.value);\r\n errors[\"nombreErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"] !== \"\" ? <div className='camporequerido'> {errors[\"nombreErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nick:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nick}\r\n maxLength={50}\r\n placeholder=\"Ingresar nick\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNick(e.target.value);\r\n errors[\"nickErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nickErr\"] !== \"\" ? <div className='camporequerido'> {errors[\"nickErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-at\"></i> <span>Email:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"email\"\r\n value={email}\r\n maxLength={50}\r\n placeholder=\"Ingresar email\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setEmail(e.target.value);\r\n errors[\"emailErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"emailErr\"] !== \"\" ? <div className='camporequerido'> {errors[\"emailErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Rol:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n \r\n className=\"input-form\"\r\n id=\"InstitucionCombo\"\r\n value={rolSelect}\r\n onChange={(e) => {\r\n setRolSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsRol !== null ? optionsRol : []}\r\n />\r\n </div>\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <a className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Contraseña:</span>\r\n </label>\r\n </a>\r\n <div className=\"col-70\">\r\n <div className=\"cursor-pointer\" onClick={crearClave}>\r\n <i className=\"fas fa-key\"></i> Generar\r\n </div>\r\n <input\r\n autocomplete=\"new-password\"\r\n type={passwordVisible ? \"text\" : \"password\"}\r\n value={clave}\r\n maxLength={50}\r\n placeholder=\"Ingresar contraseña\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setClave(e.target.value);\r\n errors[\"claveErr\"] = \"\"\r\n }}\r\n \r\n ></input>\r\n <button className={passwordVisible ? \"fas fa-eye fa-1x\" : \"fas fa-eye-slash fa-1x\"} onClick={() => setPasswordVisible(!passwordVisible)}></button>\r\n {errors[\"claveErr\"] !== \"\" ? <div className='camporequerido'> {errors[\"claveErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-file-image\"></i> <span>Imagen:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input type=\"file\" className=\"boxStyleSelect\" multiple onChange={(e) => convertirBase64(e.target.files)}></input>\r\n <div className=\"boxStyleSelect\">Selecciona el archivo para subirlo</div>\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n id=\"InstitucionCombo\"\r\n value={estadoSelect}\r\n onChange={(e) => {\r\n setEstadoSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsEstado !== null ? optionsEstado : []}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizarU} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditU}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarGestionUsuario);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { getUsuarios, deleteUsuario } from \"../../actions/administracion\";\r\nimport EditarUsuario from \"./EditarUsuario\";\r\nimport \"../../config\";\r\n\r\n//\"0\",\"\",\"\",\"ASC\",\"\"\r\nconst GestionUsuario = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px', height: '100%' }\r\n const { listaUser, loadingUser } = useSelector((state) => state.administracion);\r\n let [editUsuarioOpen, setEditUsuarioOpen] = useState(\"\")\r\n let [usuarioSeleccionado, setUsuarioSeleccionado] = useState(\"null\")\r\n let [mostrarUsuarios, setMostrarUsuarios] = useState(false)\r\n\r\n //console.log(\"aqui\", listaUser, \"fin\")\r\n if (listaUser === null && mostrarUsuarios === false) {\r\n setMostrarUsuarios(true)\r\n dispatch(getUsuarios(\"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n\r\n let [plantillaFilter, setPlantillaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaUser !== null ? listaUser : []]);\r\n\r\n if (listaUser !== null && listaUser != gridInfor && plantillaFilter === \"\")\r\n setGridInfor(listaUser)\r\n\r\n function filterPlantilla(nego, plantillaFilter) {\r\n //value => getRol(data[\"Rol\"])\r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(plantillaFilter.toLocaleLowerCase()) ||\r\n item[\"Nick\"].toLowerCase().includes(plantillaFilter.toLocaleLowerCase()) ||\r\n item[\"Email\"].toLowerCase().includes(plantillaFilter.toLocaleLowerCase()) ||\r\n getRol(item[\"Rol\"]).toLowerCase().includes(plantillaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function openEditUser() {\r\n setEditUsuarioOpen(\"EDIT\")\r\n }\r\n function openNewUser() {\r\n setUsuarioSeleccionado(null)\r\n setEditUsuarioOpen(\"EDIT\")\r\n }\r\n function closeUser() {\r\n setEditUsuarioOpen(\"\")\r\n }\r\n function closeWindowUsuario() {\r\n props.closeUsuarioClick()\r\n }\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Editar',\r\n onClick: () => {\r\n setUsuarioSeleccionado(rowProps.data)\r\n setEditUsuarioOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n },\r\n {\r\n label: 'Eliminar',\r\n onClick: () => {\r\n confirmAlert({\r\n title: 'Eliminar usuario ' + rowProps.data[\"Nombre\"],\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () => {\r\n console.log(\"si eliminar\")\r\n dispatch(deleteUsuario(rowProps.data[\"UsuarioId\"]))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => { });\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n ]\r\n }, [])\r\n function getRol(str) {\r\n switch (str) {\r\n case \"ROLE_ADMIN\":\r\n return \"ADMINISTRADOR\"\r\n case \"ROLE_RUEDA\":\r\n return \"DIRECTOR DE RUEDA\"\r\n case \"ROLE_CAJA\":\r\n return \"USUARIO CAJA\"\r\n case \"ROLE_VISITANTE\":\r\n return \"VISITANTE\"\r\n case \"ROLE_OPERADOR\":\r\n return \"USUARIO OPERADOR\"\r\n case \"ROLE_LIQUIDACION\":\r\n return \"USUARIO LIQUIDACIÓN\"\r\n case \"ROLE_REGISTRADOR\":\r\n return \"USUARIO REGISTRADOR\"\r\n\r\n }\r\n\r\n return \"\"\r\n }\r\n let columns = [\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Nombre', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'start', defaultWidth: 400, headerAlign: \"center\" },\r\n { name: 'Nick', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>APODO</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Email', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>EMAIL</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Rol', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ROL</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => getRol(data[\"Rol\"]), headerAlign: \"center\" },\r\n ]\r\n return (\r\n <div className={[\"overlay3\", \"fade-in\"].join(\" \")}>\r\n <div className={['loading_cont', loadingUser\r\n !== true ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n\r\n {editUsuarioOpen === \"EDIT\" ? <EditarUsuario closeUser={closeUser} usuarioSeleccionado={usuarioSeleccionado} /> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Usuarios\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openNewUser}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem>\r\n </Menu>\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">BUSCAR<div className='floatright'>\r\n <div className=\"filterNeg\">\r\n <input type=\"text\" placeholder=\"Filtrar\" value={plantillaFilter} onChange={(e) => {\r\n setPlantillaFilter(e.target.value);\r\n filterPlantilla(listaUser !== null ? listaUser : [], e.target.value)\r\n }} /><i className=\"fas fa-search\"></i></div></div></div>\r\n <DataGrid\r\n idProperty=\"UsuarioId\"\r\n style={gridStyle}\r\n //theme=\"default-light\" \r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeWindowUsuario}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(GestionUsuario);\r\n","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport Checkbox from 'rc-checkbox';\r\nimport {updateParametroAct} from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport NumberFormat from \"react-number-format\";\r\nconst EditarGestionItems = (props) => {\r\n const dispatch = useDispatch();\r\n let [errors,setErrors] = useState({\"codigoErr\":\"\"},{\"nombreErr\":\"\"},{\"estadoErr\":\"\"},{\"valorErr\":\"\"},{\"descripcionErr\":\"\"})\r\n let [codigo,setCodigo] = useState(props.parametroSeleccionado!==null?props.parametroSeleccionado[\"Codigo\"]:\"\")\r\n let [nombre, setNombre] = useState(props.parametroSeleccionado!==null?props.parametroSeleccionado[\"Nombre\"]:\"\")\r\n let [descripcion,setDescripcion] = useState(props.parametroSeleccionado!==null?props.parametroSeleccionado[\"Descripcion\"]:\"\")\r\n let [valor,setValor] = useState(props.parametroSeleccionado!==null?props.parametroSeleccionado['Valor']:\"\")\r\n let [isError,setIsError] = useState(false)\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const closeEditParametro = () => props.closeEditParametro();\r\n let cambioEstado=useState(null)\r\n \r\n if(props.parametroSeleccionado!==null && props.parametroSeleccionado[\"Estado\"] == \"I\"){\r\n cambioEstado ={value:'I', label:\"Inactivo\"}\r\n }\r\n if(props.parametroSeleccionado!==null && props.parametroSeleccionado[\"Estado\"] == \"A\"){\r\n cambioEstado ={value:'A', label:\"Activo\"}\r\n }\r\n if(props.parametroSeleccionado===null){\r\n cambioEstado ={value:'A', label:\"Activo\"}\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: 'A', label: 'Activo' },\r\n { value: 'I', label: 'Inactivo' },\r\n \r\n ] \r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n const textoRegex = /^[a-zA-Z0-9À-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizar(){\r\n \r\n let valid=true\r\n \r\n if(codigo == \"\"){\r\n errors[\"codigoErr\"] = \"Ingrese código\"\r\n valid = false\r\n }\r\n if(nombre == \"\"){\r\n errors[\"nombreErr\"] = \"Ingrese nombre\"\r\n valid = false\r\n }\r\n \r\n if(estadoSelect == null){\r\n errors[\"estadoErr\"] = \"Ingrese estado\"\r\n valid = false\r\n }\r\n\r\n if(valor == \"\"){\r\n errors[\"valorErr\"] = \"Ingrese valor\"\r\n valid = false\r\n }\r\n if(descripcion == \"\"){\r\n errors[\"descripcionErr\"] = \"Ingrese descripción\"\r\n valid = false\r\n }\r\n if(!textoRegex.test(nombre)){\r\n errors[\"nombreErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n if(!textoRegex.test(codigo)){\r\n errors[\"codigoErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n /*if(!textoRegex.test(descripcion)){\r\n errors[\"descripcionErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }*/\r\n\r\n \r\n setErrors(errors)\r\n setIsError(true)\r\n if(!valid){\r\n return\r\n }\r\n dispatch(updateParametroAct(\r\n props.parametroSeleccionado!==null?props.parametroSeleccionado[\"ParametroId\"]:-1,\r\n codigo,\r\n nombre,\r\n descripcion,\r\n valor,\r\n currentUser[\"userId\"],\r\n estadoSelect[\"value\"] \r\n )).then(() => { \r\n \r\n }).catch(() => {}\r\n ); \r\n closeEditParametro()\r\n }\r\n\r\n return (\r\n<div className= \"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow-height-100\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Parámetro \r\n </h2> \r\n <div className='vertical-scroll customScroll'> \r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\"> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Código:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={codigo}\r\n maxLength={50}\r\n placeholder=\"Ingresar código\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setCodigo(e.target.value.toUpperCase());\r\n errors[\"codigoErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"codigoErr\"]!==\"\"?<div className='camporequerido'>{errors[\"codigoErr\"]}</div>:\"\"}\r\n </div> \r\n </div> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={200}\r\n placeholder=\"Ingresar nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombre(e.target.value);\r\n errors[\"nombreErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"]!==\"\"?<div className='camporequerido'>{errors[\"nombreErr\"]}</div>:\"\"}\r\n </div> \r\n </div> \r\n \r\n \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Valor:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n value={valor}\r\n maxLength={50}\r\n decimalScale={2}\r\n fixedDecimalScale={true} \r\n decimalSeparator={'.'} \r\n placeholder=\"Ingresar valor\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setValor(e.target.value);\r\n errors[\"valorErr\"] = \"\"\r\n }}\r\n ></NumberFormat>\r\n {errors[\"valorErr\"]!==\"\"?<div className='camporequerido'>{errors[\"valorErr\"]}</div>:\"\"}\r\n </div> \r\n </div> \r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span> \r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select \r\n autocomplete=\"off\"\r\n className=\"input-form\" id=\"estadoSelectCombo\" value={estadoSelect} onChange={(e) => {\r\n setEstadoSelect(e)\r\n errors[\"estadoErr\"] = \"\"\r\n }} placeholder=\"Seleccione\" options={optionsEstado}/>\r\n {errors[\"estadoErr\"]!==\"\"?<div className='camporequerido'>{errors[\"estadoErr\"]}</div>:\"\"}\r\n </div>\r\n </div> \r\n <div className=\"row-form\"> \r\n <div className=\"col-30\"> \r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Descripción:</span>\r\n </label>\r\n </div> \r\n <div className=\"col-70\">\r\n <textarea\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={descripcion}\r\n maxLength={1000}\r\n \r\n placeholder=\"Descripción\"\r\n className=\"text-area-form\"\r\n onChange={(e) => {\r\n setDescripcion(e.target.value); \r\n errors[\"descripcionErr\"] = \"\" \r\n }}\r\n ></textarea> \r\n {errors[\"descripcionErr\"]!==\"\"?<div className='camporequerido'>{errors[\"descripcionErr\"]}</div>:\"\"} \r\n </div> \r\n </div> \r\n </div> \r\n \r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditParametro}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n </div>\r\n</div>\r\n);\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarGestionItems);\r\n","import React, { useState,useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid,{ Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Menu,MenuItem,MenuButton,SubMenu} from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport {getParametroAct,deleteParametroAct} from \"../../actions/administracion\";\r\nimport EditarParametro from \"./EditarParametro\";\r\nimport \"../../config\";\r\n\r\nconst Parametro = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px',height:'100%'}\r\n let [parametroSeleccionado,setParametroSeleccionado] = useState(null);\r\n let [editParametroOpen, setEditParametroOpen] = useState(\"\")\r\n let [loadParametro, setLoadParametro] = useState(false) \r\n const {listaParametro,loadingParametro} = useSelector((state) => state.administracion);\r\n if(loadParametro===false){\r\n setLoadParametro(true)\r\n dispatch(getParametroAct(\"0\",\"\",\"\",\"ASC\",\"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n let [parametroFilter, setparametroFilter] = useState(\"\"); \r\n let [gridInfor, setGridInfor] = useState([listaParametro!==null?listaParametro:[]]); \r\n if(listaParametro!==null && listaParametro!=gridInfor && parametroFilter===\"\")\r\n setGridInfor(listaParametro)\r\n\r\n function filterParametro(nego,parametroFilter){\r\n setGridInfor(nego.filter(function(item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(parametroFilter.toLocaleLowerCase()) || \r\n item[\"Codigo\"].toLowerCase().includes(parametroFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n const formatEstado = estado =>{\r\n\t\tswitch(estado){\r\n\t\t\tcase \"A\":\r\n\t\t\t\treturn \"ACTIVO\"\r\n\t\t}\r\n\t\treturn \"INACTIVO\"\r\n\t}\r\n let columns= [\r\n { name: 'Nombre',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>NOMBRE</div>), defaultFlex: 1, xdefaultLocked: 'end' , headerAlign: \"center\"},\r\n { name: 'Codigo',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>CÓDIGO</div>), defaultFlex: 1, xdefaultLocked: 'end' , headerAlign: \"center\"},\r\n { name: 'Valor',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>VALOR</div>), defaultFlex: 1, xdefaultLocked: 'end', headerAlign: \"center\" },\r\n { name: 'Estado',header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end',render: ({ data }) => formatEstado(data[\"Estado\"]) , headerAlign: \"center\"}, \r\n ]\r\n const closeParametro =()=> props.closeParametroClick()\r\n const openNewParametro = () => {setParametroSeleccionado(null); setEditParametroOpen(\"EDIT\");}\r\n const closeEditParametro =()=> setEditParametroOpen(\"\")\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps } ) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Editar',\r\n onClick:()=>{ \r\n setParametroSeleccionado(rowProps.data)\r\n setEditParametroOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n }, \r\n {\r\n label: 'Eliminar',\r\n onClick:()=>{\r\n confirmAlert({\r\n title: 'Eliminar parámetro',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () =>{ \r\n dispatch(deleteParametroAct(rowProps.data[\"ParametroId\"]))\r\n .then(() => { \r\n \r\n })\r\n .catch(() => {});\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n \r\n }\r\n }\r\n ]\r\n }); \r\n }\r\n }\r\n ]\r\n }, []) \r\n return (\r\n <div className={[\"overlay3\",\"fade-in\"].join(\" \")}> \r\n <div className={['loading_cont',loadingParametro\r\n !==true?\"displaynone\":\"\"].join(' ')}><div className='single6'></div></div>\r\n {editParametroOpen===\"EDIT\" ? <EditarParametro closeEditParametro={closeEditParametro} parametroSeleccionado={parametroSeleccionado}/> : \"\"}\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Parámetros\r\n <div className=\"subItemCatalogo\">\r\n <Menu menuButton={<MenuButton><i className=\"fas fa-cog\"></i></MenuButton>}>\r\n <MenuItem onClick={openNewParametro}><i className=\"fas fa-sign-out-alt\"></i>Nuevo</MenuItem> \r\n </Menu>\r\n </div>\r\n </h2> \r\n <div className=\"titleTable-search\">BUSCAR<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={parametroFilter} onChange={(e) => {\r\n setparametroFilter(e.target.value);\r\n filterParametro(listaParametro!==null?listaParametro:[],e.target.value)\r\n }}/><i className=\"fas fa-search\"></i></div></div></div> \r\n <DataGrid\r\n idProperty=\"ParametroId\"\r\n style={gridStyle} \r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: 'single' }} \r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeParametro}>\r\n SALIR\r\n </div>\r\n </div> \r\n </div>\r\n </div> \r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Parametro);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport Checkbox from 'rc-checkbox';\r\n\r\nimport { getEmpresaSelectAct, getUsuariosAct, getDataEmpresaAct, updateInversionistaAct, getEmpresaAct, getEmpresaSelectInversionista } from \"../../actions/administracion\";\r\n\r\nimport NumberFormat from 'react-number-format';\r\nimport \"../../config\";\r\nconst EditarInversionista = (props) => {\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const { listaEmpresasSelecInversionista, loadingEmpresa } = useSelector((state) => state.administracion);\r\n let [loadEmpresa, setLoadEmpresa] = useState(false)\r\n\r\n\r\n let [errors, setErrors] = useState({ \"empresaErr\": \"\" }, { \"usuarioIdErr\": \"\" }, { \"nombreErr\": \"\" }, { \"apellidoErr\": \"\" }, { \"cedulaErr\": \"\" }, { \"telefonoErr\": \"\" }, { \"direccionErr\": \"\" }, { \"emailErr\": \"\" });\r\n let [nombre, setNombre] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Nombre\"] : \"\")\r\n //console.log(\"estoy aqui en nombre\", nombre)\r\n let [apellido, setApellido] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Apellido\"] : \"\")\r\n let [cedula, setCedula] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Cedula\"] : \"\")\r\n let [telefono, setTelefono] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Telefono\"] : \"\")\r\n let [direccion, setDireccion] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Direccion\"] : \"\")\r\n let [usuarioRegistroId, setUsuarioRegistroId] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"UsuarioRegistroId\"] : \"\")\r\n console.log(props.empresaSeleccionada)\r\n let [empresa, setEmpresa] = useState(props.empresaSeleccionada !== null ? props.empresaSeleccionada[\"EmpresaId\"] : \"\")\r\n let [email, setEmail] = useState(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"Email\"] : \"\");\r\n let [empresaSeleccionada, setEmpresaSeleccionada] = useState(listaEmpresasSelecInversionista != null ? listaEmpresasSelecInversionista.filter(x => x.value === empresa)[0] : {})\r\n\r\n console.log(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"EmpresaId\"] : \"\")\r\n\r\n\r\n\r\n\r\n let [isError, setIsError] = useState(false)\r\n\r\n let cambioEstado = useState(null)\r\n let cambioEmpresa = useState(null)\r\n if (props.inversionistaSeleccionado !== null && props.inversionistaSeleccionado[\"Estado\"] == \"I\") {\r\n cambioEstado = { value: 'I', label: \"Inactivo\" }\r\n }\r\n if (props.inversionistaSeleccionado !== null && props.inversionistaSeleccionado[\"Estado\"] == \"A\") {\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n }\r\n if (props.inversionistaSeleccionado === null) {\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n cambioEmpresa = { value: '0', label: \"Ninguno\" }\r\n }\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n let [estadoSelectEmpresa, setEstadoSelectEmpresa] = useState(cambioEmpresa);\r\n const optionsEstado = [\r\n { value: 'I', label: 'Inactivo' },\r\n { value: 'A', label: 'Activo' },\r\n ]\r\n function closeEditInversionista() {\r\n props.closeEditInversionista()\r\n }\r\n\r\n\r\n\r\n //let [empresa, setEmpresa] = useState(null)\r\n\r\n if (empresa === null) {\r\n //console.log(\"lista de empres\",loadingEmpresa)\r\n setEmpresa({ value: '0', label: \"Ninguno\" })\r\n } else {\r\n //console.log(\"empresa: \", empresa,\"fin\")\r\n }\r\n\r\n\r\n\r\n\r\n if (loadEmpresa === false && listaEmpresasSelecInversionista === null) {\r\n setLoadEmpresa(true)\r\n dispatch(getEmpresaSelectInversionista())\r\n .then(() => {\r\n console.log(\"listas\", listaEmpresasSelecInversionista)\r\n })\r\n .catch(() => {\r\n console.log(\"error\")\r\n });\r\n\r\n }\r\n\r\n\r\n // Validacion campos\r\n\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n //const cedulaRegex = /^[0-9]+$/;\r\n function actualizar() {\r\n\r\n let valid = true\r\n\r\n if (nombre == \"\") {\r\n errors[\"nombreErr\"] = \"Ingrese nombre\"\r\n valid = false\r\n }\r\n if (!nombreRegex.test(nombre)) {\r\n errors[\"nombreErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n if (apellido == \"\") {\r\n errors[\"apellidoErr\"] = \"Ingrese apellido\"\r\n valid = false\r\n }\r\n if (!nombreRegex.test(apellido)) {\r\n errors[\"apellidoErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n if (cedula == \"\") {\r\n errors[\"cedulaErr\"] = \"Ingrese cédula\"\r\n valid = false\r\n }\r\n //if (telefono == \"\") {\r\n // errors[\"telefonoErr\"] = \"Ingrese teléfono\"\r\n //valid = false\r\n //}\r\n // if (direccion == \"\") {\r\n // errors[\"direccionErr\"] = \"Ingrese dirección\"\r\n // valid = false\r\n //}\r\n if (email == \"\" || !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email)) {\r\n errors[\"emailErr\"] = \"Ingrese mail (example@example.com)\";\r\n valid = false;\r\n }\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return\r\n }\r\n\r\n\r\n\r\n dispatch(updateInversionistaAct(\r\n props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"InversionistaId\"] : \"-1\",\r\n nombre,\r\n apellido,\r\n cedula,\r\n telefono,\r\n direccion,\r\n estadoSelect[\"value\"],\r\n currentUser[\"userId\"],\r\n props.empresaSeleccionada,\r\n email,\r\n \"0\",\r\n \"\",\r\n \"\",\r\n \"ASC\",\r\n \"\"\r\n )).then(() => {\r\n }).catch(() => {\r\n //console.log(props.empresaSeleccionada);\r\n }\r\n );\r\n\r\n closeEditInversionista()\r\n console.log(props.inversionistaSeleccionado !== null ? props.inversionistaSeleccionado[\"InversionistaId\"] : \"-1\")\r\n console.log(\"nombre:\" + nombre)\r\n console.log(\"apellido:\" + apellido)\r\n console.log(\"cedula:\" + cedula)\r\n console.log(\"telefono:\" + telefono)\r\n console.log(\"direccion:\" + direccion)\r\n console.log(\"estado:\" + estadoSelect[\"value\"])\r\n console.log(\"usuarioRegistroId:\" + estadoSelect[\"value\"])\r\n console.log(\"empresaSeleccionada:\" + props.empresaSeleccionada)\r\n }\r\n return (\r\n <div className='overlay3 fade-in inversionista'>\r\n\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Inversionista\r\n </h2>\r\n\r\n <div className='vertical-scroll customScroll'>\r\n <div className=\"columna-1-formulario-inversionista\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n const inputText = e.target.value;\r\n const capitalizedText = inputText.toUpperCase();\r\n setNombre(capitalizedText);\r\n errors[\"NombreErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"nombreErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Apellido:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={apellido}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Apellido\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n const inputText = e.target.value;\r\n const capitalizedText = inputText.toUpperCase();\r\n setApellido(capitalizedText);\r\n //setApellido(e.target.value);\r\n errors[\"apellidoErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"apellidoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"apellidoErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Email:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"email\"\r\n value={email}\r\n maxLength={1000}\r\n placeholder=\"Ingresar Email\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setEmail(e.target.value);\r\n errors[\"emailErr\"] = \"\"\r\n }}\r\n ></input>\r\n {errors[\"emailErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"emailErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Cédula:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n value={cedula}\r\n maxLength={10}\r\n decimalScale={0}\r\n placeholder=\"Ingresar Cédula\"\r\n className=\"input-form\"\r\n allowLeadingZeros={true}\r\n onChange={(e) => {\r\n setCedula(e.target.value);\r\n errors[\"cedulaErr\"] = \"\"\r\n }}\r\n ></NumberFormat>\r\n {errors[\"cedulaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"cedulaErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Teléfono:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <NumberFormat\r\n autocomplete=\"off\"\r\n value={telefono}\r\n maxLength={10}\r\n decimalScale={0}\r\n placeholder=\"Ingresar Teléfono\"\r\n allowLeadingZeros={true}\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setTelefono(e.target.value);\r\n errors[\"telefonoErr\"] = \"\"\r\n }}\r\n ></NumberFormat>\r\n {errors[\"telefonoErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"telefonoErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-wrench\"></i> <span>Estado:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <Select\r\n autocomplete=\"off\"\r\n className=\"input-form\"\r\n id=\"estadoSelectCombo\"\r\n value={estadoSelect}\r\n onChange={(e) => {\r\n setEstadoSelect(e)\r\n }} placeholder=\"Seleccione\" options={optionsEstado} />\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Dirección:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <textarea\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={direccion}\r\n maxLength={5000}\r\n placeholder=\"Dirección\"\r\n className=\"text-area-form\"\r\n onChange={(e) => {\r\n setDireccion(e.target.value);\r\n errors[\"direccionErr\"] = \"\"\r\n }}\r\n ></textarea>\r\n {errors[\"direccionErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"direccionErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditInversionista}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarInversionista);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport \"@inovua/reactdatagrid-community/base.css\";\r\nimport \"@inovua/reactdatagrid-community/theme/amber-dark.css\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Select from 'react-select';\r\nimport \"@szhsin/react-menu/dist/index.css\";\r\nimport { enableFuncionalityForRole, formatNumber } from \"./Util\";\r\nimport NumberFormat from 'react-number-format';\r\nimport { updateOrdenAct, getEmpresaSelectAct, getInversionistaSelectAct, getEventoSelectAct, getDataEmpresaAct, getEmpresaConEventoAct } from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport { NotificationContainer, NotificationManager } from \"react-notifications\";\r\nimport { generateMessageAdm } from \"../../components/general/Util\"\r\nimport AgregarInversionista from \"./AgregarInversionista\";\r\n\r\nconst EditarOrden = (props) => {\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const { eventoSeleccionado: eventoSeleccionado } = useSelector((state) => state.juego);\r\n //console.log(eventoSeleccionado)\r\n\r\n const { datosEmpresa, listaAdjudicacion } = useSelector((state) => state.administracion);\r\n const dispatch = useDispatch();\r\n let [errors, setErrors] = useState({ \"empresaErr\": \"\" }, { \"numAccionesErr\": \"\" }, { \"inversionistaErr\": \"\" }, { \"precioErr\": \"\" });\r\n let [accionesComprar, setAccionesComprar] = useState(null);\r\n let [loadDatosEmpresa, setLoadDatosEmpresa] = useState(false);\r\n let [precio, setPrecio] = useState(null);\r\n let [isError, setIsError] = useState(false);\r\n let [openEditInversionista, setOpenEditInversionista] = useState(\"\");\r\n let [fechaInscripcion, setFechaInscripcion] = useState(null);\r\n let [nuevoInversionistaOpen, setNuevoInversionistaOpen] = useState(\"\")\r\n let [loadEmpresa, setLoadEmpresa] = useState(false)\r\n let [loadInversionista, setLoadInversionista] = useState(false)\r\n const { listaEmpresaConEvento, listaEmpresaSelect, listaInversionistaSelect } = useSelector((state) => state.administracion);\r\n const [isActiveButton, setIsActiveButton] = useState(false)\r\n const [clicked, setClicked] = useState(false);\r\n\r\n //const [sumaAcciones, setSumaAcciones] = useState(0);\r\n\r\n if (listaEmpresaConEvento === null && loadEmpresa === false && eventoSeleccionado !== null) {\r\n setLoadEmpresa(true)\r\n dispatch(getEmpresaSelectAct(eventoSeleccionado))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n //agg\r\n //dispatch(getEmpresaConEventoAct(eventoSeleccionado, currentUser[\"userId\"], currentUser[\"EmpresaId\"]))\r\n //.then(() => { })\r\n //.catch(() => { });\r\n //hasta aqui\r\n\r\n }\r\n\r\n //console.log(listaEmpresaConEvento)\r\n\r\n\r\n let [precioUltimo, setPrecioUltimo] = useState(null);\r\n let [list, setList] = useState([]);\r\n\r\n let [inversionista, setInversionista] = useState(null)\r\n let [inversionistaSeleccionado, setInversionistaSeleccionado] = useState(listaInversionistaSelect !== null ? listaInversionistaSelect.filter(x => x.value === inversionista)[0] : {})\r\n\r\n //let [isDisabled] = useState(props.isDisabled);\r\n //console.log(\"RECIBIENDO\", props.isDisabled)\r\n let [admFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_ADM\")\r\n : false\r\n );\r\n let [userFuntion] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"USER_ORDEN\")\r\n : false\r\n );\r\n\r\n let [userCajaFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_CAJA\")\r\n : false\r\n );\r\n\r\n let [userLiquidacionFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_LIQUI\")\r\n : false\r\n );\r\n if (fechaInscripcion === null) {\r\n setFechaInscripcion(new Date())\r\n }\r\n let cambioEstado = useState(null)\r\n cambioEstado = { value: 'A', label: \"Activo\" }\r\n\r\n let [estadoSelect, setEstadoSelect] = useState(cambioEstado);\r\n const optionsEstado = [\r\n { value: 'I', label: 'Inactivo' },\r\n { value: 'A', label: 'Activo' },\r\n ]\r\n\r\n\r\n\r\n\r\n\r\n let [empresa, setEmpresa] = useState(null)\r\n let [boolListEmpresaEvento, setboolListEmpresaEvento] = useState(false)\r\n\r\n\r\n if (listaEmpresaConEvento !== null && listaEmpresaConEvento !== undefined && boolListEmpresaEvento == false && userFuntion == true) {\r\n setboolListEmpresaEvento(true)\r\n listaEmpresaConEvento['emp2'].forEach((empresa) => {\r\n setEmpresa({ value: empresa.value, label: empresa.label })\r\n dispatch(getInversionistaSelectAct(empresa.value))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n })\r\n }\r\n if (empresa === null) {\r\n setEmpresa({ value: '0', label: \"Ninguno\" })\r\n }\r\n\r\n if (inversionista === null) {\r\n setInversionista({ value: '0', label: \"Ninguno\" })\r\n }\r\n\r\n const openNewInversionista = () => { setInversionistaSeleccionado(null); setNuevoInversionistaOpen(\"OPEN\") };\r\n const closeEditInversionista = () => { setNuevoInversionistaOpen(\"\") };\r\n\r\n\r\n\r\n function actualizar() {\r\n if (!clicked) {\r\n setClicked(true);\r\n setTimeout(() => {\r\n setClicked(false);\r\n }, 2000);\r\n let valid = true\r\n\r\n if (empresa[\"value\"] === '0') {\r\n //errors[\"empresaErr\"] = \"Ingrese empresa\"\r\n NotificationManager.warning(\r\n \"Ingrese empresa \",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n if (inversionista[\"value\"] === '0') {\r\n //errors[\"inversionistaErr\"] = \"Ingrese inversionista\"\r\n NotificationManager.warning(\r\n \"Ingrese inversionista \",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n if (accionesComprar === null) {\r\n //errors[\"numAccionesErr\"] = \"Ingrese acciones\"\r\n NotificationManager.warning(\r\n \"Ingrese acciones \",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n if (precio === null) {\r\n //errors[\"precioErr\"] = \"Ingrese precio\"\r\n NotificationManager.warning(\r\n \"Ingrese precio \",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n // validacion acciones \r\n if (datosEmpresa !== null && parseFloat(accionesComprar) > parseFloat(datosEmpresa[0][\"NumAccionesOferta\"])) {\r\n NotificationManager.warning(\r\n \"No puede exceder el número de acciones ofertadas\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n if (parseFloat(accionesComprar) == \"\") {\r\n NotificationManager.warning(\r\n \"Ingrese número de acciones\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n if (parseFloat(accionesComprar) == 0) {\r\n NotificationManager.warning(\r\n \"El número de acciones no puede ser 0\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n if (datosEmpresa != null && (parseFloat(precioUltimo) === parseFloat(datosEmpresa[0][\"PrecioInicialPorAccion\"]))) {\r\n\r\n if (parseFloat(precio) !== parseFloat(datosEmpresa[0][\"PrecioInicialPorAccion\"]) && parseFloat(precio) < (parseFloat(precioUltimo) + parseFloat(datosEmpresa[0][\"MontoMinMejoraPrecio\"]))) {\r\n // + datosEmpresa[0][\"MontoMinMejoraPrecio\"]\r\n\r\n console.log(parseFloat(precio))\r\n console.log(parseFloat(precioUltimo))\r\n console.log(parseFloat(datosEmpresa[0][\"MontoMinMejoraPrecio\"]))\r\n console.log(parseFloat(precioUltimo) + parseFloat(datosEmpresa[0][\"MontoMinMejoraPrecio\"]))\r\n NotificationManager.warning(\r\n //\"Precio debe ser igual al precio inicial o mayor e igual que \" + formatNumber(precioUltimo) + \" dólares\",\r\n \"Precio debe ser igual al precio inicial \" + formatNumber(precioUltimo) + \" dólares\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n\r\n } else {\r\n\r\n\r\n }\r\n\r\n // Validacion monto minimo a mejorar\r\n if (datosEmpresa != null && (parseFloat(precio) < ((parseFloat(precioUltimo).toFixed(2)) + parseFloat(datosEmpresa[0][\"MontoMinMejoraPrecio\"].toFixed(2)))) && parseFloat(precio) !== parseFloat(precioUltimo)) {\r\n // + datosEmpresa[0][\"MontoMinMejoraPrecio\"]\r\n console.log(precio)\r\n console.log(precioUltimo)\r\n console.log(\"montomin\", datosEmpresa[0][\"MontoMinMejoraPrecio\"])\r\n console.log((parseFloat(precioUltimo) + parseFloat(datosEmpresa[0][\"MontoMinMejoraPrecio\"])))\r\n NotificationManager.warning(\r\n // \"Advertencia. Precio debe ser igual al precio ultimo ofertado o menor que \" + formatNumber(precioUltimo) + \" dólares\",\r\n \"Precio debe ser igual al precio ultimo ofertado o menor que \" + formatNumber(precioUltimo),\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n // Incrementos \r\n if ((parseFloat(precio) * 100).toFixed(2) % parseFloat((datosEmpresa[0][\"MontoMinMejoraPrecio\"] * 100)) != 0) {\r\n console.log(parseFloat(precio))\r\n console.log((parseFloat(precio) * 100))\r\n console.log(parseFloat((datosEmpresa[0][\"MontoMinMejoraPrecio\"] * 100)))\r\n NotificationManager.warning(\r\n \"El precio debe tener incrementos de \" + datosEmpresa[0][\"MontoMinMejoraPrecio\"],\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Validacion techo maximo\r\n if (datosEmpresa != null && parseFloat(precio) > parseFloat(datosEmpresa[0][\"TechoPrecioMax\"])) {\r\n NotificationManager.warning(\r\n \"Precio debe ser menor que el techo máximo\" + \" USD \" + formatNumber(datosEmpresa[0][\"TechoPrecioMax\"]) + \"\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n // Validacion ultimo precio\r\n\r\n if (datosEmpresa != null && (parseFloat(precio) < parseFloat(precioUltimo))) {\r\n NotificationManager.warning(\r\n \"Precio debe ser mayor o igual a \" + formatNumber(precioUltimo) + \" dólares\",\r\n \"Sistema\",\r\n 4000,\r\n () => { },\r\n 4\r\n );\r\n return\r\n }\r\n\r\n\r\n\r\n\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return\r\n }\r\n\r\n setIsActiveButton(true)\r\n dispatch(updateOrdenAct(\r\n \"-1\",\r\n empresa[\"value\"],\r\n inversionista[\"value\"],\r\n accionesComprar,\r\n precio,\r\n \"A\",\r\n currentUser[\"userId\"],\r\n eventoSeleccionado,\r\n \"0\", \"\", \"\", \"ASC\", \"\"\r\n )).then(() => {\r\n //setEmpresa({ value: '0', label: \"Ninguno\" })\r\n setInversionista({ value: '0', label: \"Ninguno\" })\r\n setInversionistaSeleccionado(null)\r\n setAccionesComprar(\"\")\r\n //setPrecio(\"\")\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n setIsActiveButton(false)\r\n })\r\n .catch(() => {\r\n setIsActiveButton(false)\r\n });\r\n\r\n\r\n }\r\n }\r\n console.log(isActiveButton);\r\n\r\n useEffect(() => {\r\n inversionistaSeleccionado = listaInversionistaSelect !== null ? listaInversionistaSelect.filter(x => x.value === inversionista)[0] : {}\r\n setInversionistaSeleccionado(inversionistaSeleccionado)\r\n }, [listaInversionistaSelect])\r\n\r\n\r\n useEffect(() => {\r\n\r\n //setPrecioUltimo(0)\r\n //console.log(precio)\r\n console.log(\"empresa\", empresa, empresa[\"value\"])\r\n if (datosEmpresa === null && empresa[\"value\"] !== \"0\") {\r\n //setPrecio(0)\r\n //setPrecioUltimo(0)\r\n dispatch(getDataEmpresaAct(empresa[\"value\"]))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n }, [empresa])\r\n\r\n useEffect(() => {\r\n\r\n console.log(\"listaAdjudicacion\", listaAdjudicacion, \"empresa\", empresa, \"listaEmpresaConEvento\", listaEmpresaConEvento, \"datosEmpresa\", datosEmpresa)\r\n if (datosEmpresa !== null) {\r\n //setPrecio(0)\r\n //console.log((datosEmpresa[0][\"MontoMinMejoraPrecio\"] * 100))\r\n }\r\n\r\n if (listaEmpresaConEvento !== null) {\r\n\r\n setList(listaEmpresaConEvento['emp1']);\r\n\r\n let arrPrice = listaAdjudicacion !== null ? listaAdjudicacion.filter(x => x.EmpresaId == empresa[\"value\"]) : []\r\n let arrPrice2 = list.filter(x => x.EmpresaId == empresa[\"value\"])\r\n\r\n\r\n\r\n if (arrPrice2.length > 0) {\r\n //console.log(\"preci inicial\")\r\n //console.log(arrPrice2[0][\"PrecioInicialPorAccion\"])\r\n\r\n if (precio == 0 || precio < parseFloat(arrPrice2[0][\"PrecioInicialPorAccion\"].toFixed(2))) {\r\n setPrecio(parseFloat(arrPrice2[0][\"PrecioInicialPorAccion\"].toFixed(2)))\r\n setPrecioUltimo(parseFloat(arrPrice2[0][\"PrecioInicialPorAccion\"].toFixed(2)))\r\n }\r\n //console.log(precio)\r\n //console.log(precioUltimo)\r\n }\r\n\r\n // si adjudicaciones tiene valores\r\n if (arrPrice.length > 0 && arrPrice2.length > 0 && arrPrice2 !== undefined && arrPrice2 !== null) {\r\n\r\n console.log(\"ajudicacionse\")\r\n let sumaAcciones = sumColumn(arrPrice.filter(x => x.Precio == arrPrice[0][\"Precio\"]), [\"NumAcciones\"])\r\n\r\n if (arrPrice2 !== undefined && ((parseFloat(sumaAcciones)) >= parseFloat(arrPrice2[0][\"NumAccionesOferta\"]))) {\r\n console.log(arrPrice)\r\n let precioMejo = parseFloat(arrPrice[0][\"Precio\"].toFixed(2)) + parseFloat(arrPrice2[0][\"MontoMinMejoraPrecio\"].toFixed(2))\r\n if (precio == 0 || precio < precioMejo) {\r\n setPrecio(precioMejo)\r\n setPrecioUltimo(precioMejo)\r\n }\r\n //console.log(precio)\r\n } else {\r\n let precioMejo = parseFloat(arrPrice[0][\"Precio\"].toFixed(2))\r\n if (precio == 0 || precio < precioMejo) {\r\n setPrecio(parseFloat(arrPrice[0][\"Precio\"].toFixed(2)))\r\n setPrecioUltimo(parseFloat(arrPrice[0][\"Precio\"].toFixed(2)))\r\n }\r\n //console.log(precio)\r\n //console.log(\"-------\")\r\n //console.log(precio)\r\n //console.log(precioUltimo)\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n }, [empresa, listaEmpresaConEvento, listaAdjudicacion]) //empresa, listaEmpresaConEvento, listaAdjudicacion\r\n\r\n\r\n //console.log(\"---------------------------\")\r\n //console.log(\"precio\", precio)\r\n //console.log(\"precio ultimo\", precioUltimo)\r\n\r\n\r\n\r\n function sumColumn(arr, column) {\r\n let sum = 0;\r\n arr.forEach(item => {\r\n sum += item[column];\r\n });\r\n return sum;\r\n }\r\n\r\n return (\r\n <div>\r\n {nuevoInversionistaOpen === \"OPEN\" ?\r\n <AgregarInversionista\r\n closeEditInversionista={closeEditInversionista}\r\n inversionistaSeleccionado={inversionistaSeleccionado}\r\n empresaSeleccionada={empresa[\"value\"]} /> : \"\"}\r\n\r\n <div className=\"crypt-boxed-area\">\r\n\r\n <h6 className=\"crypt-bg-head\">REGISTRO DE ORDEN\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n <i className={[\"fas\", !props.maximizeOrn ? \"fa-window-maximize\" : \"fa-window-restore\"].join(' ')} onClick={() => props.setMaximizeOrd(!props.maximizeOrd)}></i>\r\n </div>\r\n </div>\r\n </h6>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-md-6 customScroll\">\r\n <div className=\"crypt-buy-sell-form\">\r\n <div className=\"crypt-buy\">\r\n <div className=\"input-group mb-3\">\r\n <div className=\"input-group-prepend\">\r\n {\" \"}\r\n <span className=\"input-group-text\">Empresa</span>{\" \"}\r\n </div>\r\n\r\n <div className=\"col-70-orden\">\r\n <Select\r\n isDisabled={userCajaFuncionality == true || userLiquidacionFuncionality == true || userFuntion == true ? true : props.isDisabled}\r\n className=\"input-form1\"\r\n id=\"estadoSelectCombo\"\r\n value={empresa}\r\n onChange={(e) => {\r\n\r\n setEmpresa(e)\r\n\r\n setLoadInversionista(true)\r\n\r\n //agg\r\n setPrecio(0)\r\n\r\n dispatch(getInversionistaSelectAct(e.value))\r\n .then(() => {\r\n setInversionista({ value: '0', label: \"Ninguno\" })\r\n setInversionistaSeleccionado(null)\r\n\r\n })\r\n .catch(() => {\r\n });\r\n dispatch(getDataEmpresaAct(e.value))\r\n .then(() => {\r\n setInversionista({ value: '0', label: \"Ninguno\" })\r\n setInversionistaSeleccionado(null)\r\n\r\n })\r\n .catch(() => {\r\n });\r\n\r\n\r\n\r\n errors[\"empresaErr\"] = \"\"\r\n }} placeholder=\"Ninguno\"\r\n options={listaEmpresaConEvento !== null ? listaEmpresaConEvento['emp2'] : []}\r\n tabIndex=\"1\" />\r\n {errors[\"empresaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"empresaErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n <div className=\"input-group mb-3\">\r\n <div className=\"input-group-prepend\">\r\n {\" \"}\r\n <span className=\"input-group-text\">Número de acciones</span>\r\n </div>\r\n <NumberFormat\r\n disabled={userCajaFuncionality == true || userLiquidacionFuncionality == true ? true : props.isDisabled}\r\n className=\"input-form2\"\r\n value={accionesComprar}\r\n maxLength={5}\r\n allowNegative={false}\r\n thousandSeparator={false}\r\n decimalScale={0}\r\n fixedDecimalScale={false}\r\n decimalSeparator={'.'}\r\n prefix={\"\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n\r\n\r\n setAccionesComprar(value);\r\n //precioPorAcciones(value)\r\n\r\n errors[\"numAccionesErr\"] = \"\"\r\n\r\n }}\r\n tabIndex=\"3\"\r\n />\r\n {errors[\"numAccionesErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"numAccionesErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6 rightCol customScroll\">\r\n <div className=\"crypt-buy-sell-form\">\r\n <div className=\"crypt-buy\">\r\n <div className=\"input-group mb-3\">\r\n <div className=\"input-group-prepend\">\r\n {\" \"}\r\n <span className=\"input-group-text\">Inversionista</span>{\" \"}\r\n {empresa !== null && empresa[\"value\"] !== '0'?\r\n <div className=\"input-group-text\" title=\"Agregar\" onClick={openNewInversionista}>\r\n <i class=\"fas fa-user-plus\"></i>\r\n </div>\r\n : \"\"}\r\n </div>\r\n <div className=\"col-70-orden\">\r\n <Select\r\n\r\n isDisabled={userCajaFuncionality == true || userLiquidacionFuncionality == true ? true : props.isDisabled}\r\n className=\"input-form1\"\r\n id=\"estadoSelectCombo\"\r\n value={inversionistaSeleccionado}\r\n onChange={(e) => {\r\n setInversionista(e)\r\n setInversionistaSeleccionado(e)\r\n\r\n errors[\"inversionistaErr\"] = \"\"\r\n }} placeholder=\"Ninguno\"\r\n options={listaInversionistaSelect !== null ? listaInversionistaSelect : []}\r\n tabIndex=\"2\" />\r\n {errors[\"inversionistaErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"inversionistaErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div className=\"input-group mb-3\">\r\n <div className=\"input-group-prepend\">\r\n {\" \"}\r\n <span className=\"input-group-text\">Precio</span>\r\n </div>\r\n <NumberFormat\r\n disabled={userCajaFuncionality == true || userLiquidacionFuncionality == true ? true : props.isDisabled}\r\n className=\"input-form2\"\r\n value={precio}\r\n thousandSeparator={false}\r\n allowNegative={false}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n decimalSeparator={'.'}\r\n prefix={\"$\"}\r\n onValueChange={(values) => {\r\n const { formattedValue, value } = values;\r\n setPrecio(parseFloat(value).toFixed(2));\r\n //console.log(precio)\r\n\r\n\r\n errors[\"precioErr\"] = \"\"\r\n }}\r\n isAllowed={(values) => {\r\n const { floatValue } = values;\r\n return floatValue >= 0 && floatValue <= 99999.99;\r\n }}\r\n tabIndex=\"4\"\r\n />\r\n {errors[\"precioErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"precioErr\"]}</div> : \"\"}\r\n </div>\r\n\r\n <div>\r\n <button\r\n disabled={\r\n userCajaFuncionality == true || userLiquidacionFuncionality == true || isActiveButton == true || clicked == true ? true : props.isDisabled\r\n }\r\n className={props.isDisabled == false && userCajaFuncionality == false && userLiquidacionFuncionality == false ? 'btnGuardar1' : 'btnGuardar1_False'}\r\n\r\n onClick={(e) => {\r\n actualizar()\r\n\r\n }}\r\n //onClick={actualizar}+\r\n //onDoubleClick={() => console.log(\"on double click\")}\r\n >REGISTRAR\r\n\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <NotificationContainer />\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarOrden);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport Select from 'react-select';\r\nimport Checkbox from 'rc-checkbox';\r\nimport { updateCobrarLiquidacion, updateComentarioLiquidacion, updateParametroAct } from \"../../actions/administracion\";\r\nimport \"../../config\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport { generateMessageAdm } from \"./Util\";\r\nconst EditarComentarioLiqui = (props) => {\r\n //console.log(props.liquidacionSeleccionada)\r\n //console.log(props.sendMessage)\r\n const dispatch = useDispatch();\r\n let [errors, setErrors] = useState({ \"comentarioErr\": \"\" }, { \"descripcionErr\": \"\" })\r\n\r\n let [liquidacionId, setLiquidacionId] = useState(props.liquidacionSeleccionada !== null ? props.liquidacionSeleccionada[\"Liquidacion\"] : \"\")\r\n let [comentario, setComentario] = useState(props.liquidacionSeleccionada !== null ? props.liquidacionSeleccionada[\"Comentario\"] : \"\")\r\n\r\n\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionadoId);\r\n let [empresaId] = useState(props.empresaId);\r\n let [usuarioId] = useState(props.usuarioId);\r\n\r\n\r\n\r\n //let [descripcion,setDescripcion] = useState(props.parametroSeleccionado!==null?props.parametroSeleccionado[\"Descripcion\"]:\"\")\r\n\r\n\r\n let [isError, setIsError] = useState(false)\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const closeEditComentario = () => props.closeEditComentarioLiqui();\r\n\r\n\r\n\r\n\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n const textoRegex = /^[a-zA-Z0-9À-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizar() {\r\n\r\n let valid = true\r\n //if(comentario == \"\"){\r\n // errors[\"descripcionErr\"] = \"Ingrese descripción\"\r\n //valid = false\r\n //}\r\n\r\n setErrors(errors)\r\n setIsError(true)\r\n if (!valid) {\r\n return\r\n }\r\n dispatch(updateComentarioLiquidacion(\r\n liquidacionId,\r\n comentario,\r\n eventoSeleccionadoId,\r\n usuarioId,\r\n empresaId\r\n\r\n )).then(() => {\r\n dispatch(updateCobrarLiquidacion(liquidacionId, eventoSeleccionadoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n }).catch(() => { }\r\n );\r\n\r\n \r\n closeEditComentario()\r\n }\r\n\r\n return (\r\n <div className=\"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow-height-100\">\r\n <div id=\"formulario-estilo\">\r\n <h2>\r\n Liquidación\r\n </h2>\r\n <div className='vertical-scroll customScroll'>\r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\">\r\n\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Comentario:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <textarea\r\n type=\"text\"\r\n value={comentario}\r\n style={{ height: '100px' }}\r\n maxLength={1500}\r\n\r\n placeholder=\"Comentario\"\r\n className=\"text-area-form\"\r\n onChange={(e) => {\r\n setComentario(e.target.value);\r\n errors[\"comentarioErr\"] = \"\"\r\n }}\r\n ></textarea>\r\n {errors[\"comentarioErr\"] !== \"\" ? <div className='camporequerido'>{errors[\"comentarioErr\"]}</div> : \"\"}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"textCenter clear-both\">\r\n <div className=\"btnGuardar\" onClick={actualizar} >\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeEditComentario}>\r\n SALIR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(EditarComentarioLiqui);\r\n","import { Menu, MenuButton, MenuItem } from '@szhsin/react-menu';\r\nimport React, { useCallback, useState } from 'react'\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport { getAdjudicacionAct, getDatosAdjudicaciones, sendLiquidacionInversionista, sendLiquidacionUser, updateCobrarLiquidacion, updateEstadoEmailEmpresa, updateEstadoEmailInversionista, updateImpresionLiquidaciones, updateImpresionTitulos, updateImprimirCertificado, updateImprimirLiquidacion } from '../../actions/administracion';\r\nimport { enableFuncionalityForRole, formatNumber, generateMessageAdm } from \"../../components/general/Util\";\r\nimport EditarComentarioLiqui from './EditarComentarioLiqui';\r\nimport \"@inovua/reactdatagrid-community/base.css\";\r\nimport \"@inovua/reactdatagrid-community/theme/amber-dark.css\";\r\n\r\nconst Liquidaciones = (props) => {\r\n\r\n //probar \r\n //console.log(props.sendMessage)\r\n\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px', height: '100%' }\r\n\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n let [eventoSeleccionadoId] = useState(props.eventoSeleccionado);\r\n let [empresaId] = useState(props.empresaId);\r\n let [usuarioId] = useState(props.usuarioId);\r\n console.log(\"ey\", eventoSeleccionadoId)\r\n const { listaAdjudicacion } = useSelector((state) => state.administracion);\r\n\r\n // agg\r\n const { listaDatosAdjudicaciones, liquidacionesLoading, loadingAdjudicacionesD } = useSelector((state) => state.administracion);\r\n console.log(\"liquidacionesLoading\", liquidacionesLoading)\r\n let [mostrarDatosAdjudicaciones, setMostrarDatosAdjudicaciones] = useState(false)\r\n\r\n let [loadAdjudicacion, setLoadAdjudicacion] = useState(false)\r\n const [isLoading, setIsLoading] = useState(false);\r\n // Comentario\r\n let [liquidacionSeleccionada, setLiquidacionSeleccionada] = useState(null);\r\n let [editComentarioLiquiOpen, setEditComentarioLiquiOpen] = useState(\"\")\r\n\r\n let [admFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_ADM\")\r\n : false\r\n );\r\n\r\n let [userCajaFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_CAJA\")\r\n : false\r\n );\r\n\r\n let [userLiquidacionFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_LIQUI\")\r\n : false\r\n );\r\n let [userRuedaFuncionality] = useState(\r\n currentUser !== null\r\n ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_RUED\")\r\n : false\r\n );\r\n\r\n if (listaDatosAdjudicaciones === null && mostrarDatosAdjudicaciones === false) {\r\n setMostrarDatosAdjudicaciones(true)\r\n dispatch(getDatosAdjudicaciones(eventoSeleccionadoId, usuarioId, empresaId, \"0\", \"\", \"\", \"ASC\", \"\"))\r\n .then(() => {\r\n //console.log(\"exito\");\r\n console.log(listaDatosAdjudicaciones);\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n //\r\n\r\n let [plantillaFilter, setPlantillaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaDatosAdjudicaciones !== null ? listaDatosAdjudicaciones : []]);\r\n\r\n if (listaDatosAdjudicaciones !== null && listaDatosAdjudicaciones != gridInfor && plantillaFilter === \"\")\r\n setGridInfor(listaDatosAdjudicaciones)\r\n\r\n\r\n function closeLiquidacion() {\r\n props.closeLiquidacionesClick()\r\n }\r\n\r\n\r\n\r\n const renderButtonELiquidacion = (value, rowData) => {\r\n return (\r\n <>\r\n <button style={{ border: 'none', outline: 'none' }}\r\n id={value.data !== null ?\r\n value.data[\"Liquidacion\"] : \"0\"}\r\n className={value.data[\"EstadoEmailLiquiEmpresaEnviado\"] === \"E\" ? \"fas fa-envelope color\" : \"fas fa-envelope\"}\r\n onClick={(e) => {\r\n handleClickLiquidacionIndividual(e)\r\n //setIsLoading(true)\r\n }}></button>\r\n </>\r\n )\r\n }\r\n\r\n const renderButtonEmailLiquidacionInversionista = (value, rowData) => {\r\n return (\r\n <>\r\n <button style={{ border: 'none', outline: 'none' }}\r\n id={value.data !== null ?\r\n value.data[\"Liquidacion\"] : \"0\"}\r\n className={value.data[\"EstadoEmailLiquiInverEnviado\"] === \"E\" ? \"fas fa-envelope color\" : \"fas fa-envelope\"}\r\n onClick={(e) => {\r\n handleClickLiquidacionIndividualInversionista(e)\r\n //setIsLoading(true)\r\n }}></button>\r\n </>\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n // Imprimir button\r\n const renderButtonICertificado = (value) => {\r\n return (\r\n <>\r\n <button style={{ border: 'none', outline: 'none' }}\r\n id={value.data !== null ?\r\n value.data[\"Liquidacion\"] : \"0\"}\r\n className={value.data[\"EstadoCertiImpreso\"] === \"I\" ? \"fas fa-print color\" : \"fas fa-print\"}\r\n onClick={\r\n (e) => {\r\n handleClickCertificado(e)\r\n setIsLoading(true)\r\n }\r\n\r\n }></button>\r\n </>\r\n )\r\n }\r\n\r\n\r\n\r\n // Imprimir button\r\n const renderButtonITitulo = (value) => {\r\n return (\r\n <>\r\n <button style={{ border: 'none', outline: 'none' }}\r\n id={value.data !== null ?\r\n value.data[\"Liquidacion\"] : \"0\"}\r\n className={value.data[\"EstadoLiquiImpreso\"] === \"I\" ? \"fas fa-print color\" : \"fas fa-print\"}\r\n onClick={(e) => {\r\n handleClickTitulo(e)\r\n setIsLoading(true)\r\n }}></button>\r\n </>\r\n )\r\n }\r\n\r\n\r\n\r\n const handleClickCertificado = (rowData) => {\r\n let liquidacionId = parseInt(rowData.target.id)\r\n let data = listaDatosAdjudicaciones.filter(x => x.Liquidacion === liquidacionId)[0]//rowData.cellProps[\"data\"]\r\n\r\n if (data !== null) {\r\n dispatch(updateImpresionLiquidaciones(liquidacionId))\r\n .then((url) => {\r\n\r\n if (url !== \"-2\") {\r\n dispatch(updateImprimirCertificado(liquidacionId, eventoSeleccionadoId, usuarioId, empresaId))\r\n openPDF(url);\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n }\r\n setIsLoading(false);\r\n\r\n })\r\n .catch(() => {\r\n setIsLoading(false);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n const handleClickTitulo = (rowData) => {\r\n let adjudicacionId = parseInt(rowData.target.id)\r\n let data = listaDatosAdjudicaciones.filter(x => x.AdjudicacionId === adjudicacionId)[0]\r\n if (data !== null) {\r\n dispatch(updateImpresionTitulos(adjudicacionId))\r\n .then((url) => {\r\n if (url !== \"-2\") {\r\n dispatch(updateImprimirLiquidacion(adjudicacionId, eventoSeleccionadoId, usuarioId, empresaId))\r\n openPDF(url);\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n }\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n }\r\n\r\n function openPDF(pdf) {\r\n window.open(pdf);\r\n return false;\r\n }\r\n\r\n const handleClickLiquidacionIndividual = (rowData) => {\r\n let liquidacionId = parseInt(rowData.target.id)\r\n console.log(\"lista\", listaDatosAdjudicaciones)\r\n console.log(\"id\", liquidacionId)\r\n let data = listaDatosAdjudicaciones.filter(x => x.AdjudicacionId === liquidacionId)[0]\r\n if (data !== null) {\r\n dispatch(sendLiquidacionUser(eventoSeleccionadoId, liquidacionId))\r\n .then((url) => {\r\n dispatch(updateEstadoEmailEmpresa(liquidacionId, eventoSeleccionadoId, usuarioId, empresaId))\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n const handleClickLiquidacionIndividualInversionista = (rowData) => {\r\n let liquidacionId = parseInt(rowData.target.id)\r\n console.log(\"lista\", listaDatosAdjudicaciones)\r\n console.log(\"id\", liquidacionId)\r\n let data = listaDatosAdjudicaciones.filter(x => x.AdjudicacionId === liquidacionId)[0]\r\n if (data !== null) {\r\n dispatch(sendLiquidacionInversionista(eventoSeleccionadoId, liquidacionId))\r\n .then((url) => {\r\n dispatch(updateEstadoEmailInversionista(liquidacionId, eventoSeleccionadoId, usuarioId, empresaId))\r\n props.sendMessage(generateMessageAdm(\"ACTUALIZAR_ORDEN\"))\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n function filterCatalogo(nego, empresaFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"NombreEmpresa\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) ||\r\n item[\"NombreInversionista\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase())\r\n )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n //console.log(menuProps)\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Cobrar',\r\n onClick: () => {\r\n setLiquidacionSeleccionada(rowProps.data)\r\n setEditComentarioLiquiOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n },\r\n {\r\n label: 'Ver comentario',\r\n onClick: () => {\r\n setLiquidacionSeleccionada(rowProps.data)\r\n setEditComentarioLiquiOpen(\"EDIT\")\r\n console.log(rowProps.data)\r\n }\r\n }\r\n\r\n ]\r\n }, [])\r\n\r\n function closeEditComentarioLiqui() {\r\n setEditComentarioLiquiOpen(\"\")\r\n }\r\n const renderButtonObservaciones = (value) => {\r\n //console.log(value.data[\"Estado\"])\r\n return (\r\n <>\r\n {value.data[\"EstadoCobrar\"] === \"C\" ?\r\n <button\r\n className=\"fas fa-check\"//fas fa-clock\r\n onClick={\r\n (e) => {\r\n }\r\n\r\n }></button>\r\n :\r\n <button\r\n className=\"fas fa-times\"//fas fa-clock\r\n onClick={\r\n (e) => {\r\n }\r\n\r\n }></button>}\r\n </>\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n let columns = admFuncionality === true ? [\r\n\r\n { name: \"NombreEmpresa\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n { name: \"Orden\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 130 },\r\n { name: \"NombreInversionista\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n { name: \"NumAcciones\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}># ACCIONES</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 115 },\r\n { name: \"Precio\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>PRECIO</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\", minWidth: 85 },\r\n { name: \"ImprimirCertificado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CERTIFICADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonICertificado(rowData), headerAlign: \"center\", minWidth: 120 },\r\n { name: \"ImprimirTitulo\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonITitulo(rowData), headerAlign: \"center\", minWidth: 125 },\r\n { name: \"EnviarCorreo\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CORREO<br />EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonELiquidacion(rowData), headerAlign: \"center\", minWidth: 100 },\r\n { name: \"EnviarCorreoInver\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CORREO<br />INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonEmailLiquidacionInversionista(rowData), headerAlign: \"center\", minWidth: 135 },\r\n { name: \"Cobrado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>COBRADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonObservaciones(rowData), headerAlign: \"center\", minWidth: 105 },\r\n\r\n\r\n ] : \"\" ||\r\n userRuedaFuncionality === true ?\r\n [\r\n { name: \"NombreEmpresa\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n //{ name: \"OrdenId\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>ORDEN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 90 },\r\n { name: \"Orden\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 130 },\r\n { name: \"NombreInversionista\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n { name: \"NumAcciones\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}># ACCIONES</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 115 },\r\n { name: \"Precio\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>PRECIO</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\", minWidth: 85 },\r\n //{ name: \"ImprimirCertificado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CERTIFICADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonICertificado(rowData), headerAlign: \"center\", minWidth: 120 },\r\n { name: \"ImprimirTitulo\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonITitulo(rowData), headerAlign: \"center\", minWidth: 125 },\r\n { name: \"EnviarCorreo\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CORREO<br />EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonELiquidacion(rowData), headerAlign: \"center\", minWidth: 100 },\r\n { name: \"EnviarCorreoInver\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CORREO<br />INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonEmailLiquidacionInversionista(rowData), headerAlign: \"center\", minWidth: 135 },\r\n //{ name: \"Cobrado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>COBRADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonObservaciones(rowData), headerAlign: \"center\", minWidth: 105 },\r\n\r\n ] : \"\" ||\r\n userCajaFuncionality === true ?\r\n [\r\n { name: \"NombreEmpresa\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n // { name: \"OrdenId\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>ORDEN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 90 },\r\n { name: \"Orden\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 130 }, \r\n { name: \"NombreInversionista\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n { name: \"NumAcciones\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}># ACCIONES</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 115 },\r\n { name: \"Precio\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>PRECIO</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\", minWidth: 85 },\r\n { name: \"ImprimirCertificado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CERTIFICADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonICertificado(rowData), headerAlign: \"center\", minWidth: 120 },\r\n { name: \"Cobrado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>COBRADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonObservaciones(rowData), headerAlign: \"center\", minWidth: 105 },\r\n\r\n ] : \"\" ||\r\n userLiquidacionFuncionality === true ?\r\n [\r\n { name: \"NombreEmpresa\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n // { name: \"OrdenId\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>ORDEN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 90 },\r\n \r\n { name: \"Orden\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 130 },\r\n { name: \"NombreInversionista\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", headerAlign: \"center\", minWidth: 140 },\r\n { name: \"NumAcciones\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}># ACCIONES</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"numDataGrid\", headerAlign: \"center\", minWidth: 115 },\r\n { name: \"Precio\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>PRECIO</div>), defaultFlex: 0.5, xdefaultLocked: \"end\", className: \"numDataGrid\", render: ({ value }) => formatNumber(value), headerAlign: \"center\", minWidth: 85 },\r\n { name: \"ImprimirTitulo\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>LIQUIDACIÓN</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonITitulo(rowData), headerAlign: \"center\", minWidth: 125 },\r\n { name: \"EnviarCorreo\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CORREO<br />EMPRESA</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonELiquidacion(rowData), headerAlign: \"center\", minWidth: 100 },\r\n { name: \"EnviarCorreoInver\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>CORREO<br />INVERSIONISTA</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonEmailLiquidacionInversionista(rowData), headerAlign: \"center\", minWidth: 135 },\r\n { name: \"Cobrado\", header: () => (<div style={{ textAlign: \"center\", fontSize: \"12px\" }}>COBRADO</div>), defaultFlex: 1, xdefaultLocked: \"end\", className: \"colButton\", render: (rowData) => renderButtonObservaciones(rowData), headerAlign: \"center\", minWidth: 105 },\r\n ] : \"\" ||\r\n [];\r\n\r\n\r\n\r\n return (\r\n <div className={[\"overlay3\", \"fade-in\"].join(\" \")}>\r\n\r\n <div className={['loading_cont', isLoading\r\n !== true ? \"displaynone\" : \"\"].join(' ')}><div className='single6'></div></div>\r\n {editComentarioLiquiOpen === \"EDIT\" ?\r\n <EditarComentarioLiqui\r\n sendMessage={props.sendMessage}\r\n closeEditComentarioLiqui={closeEditComentarioLiqui}\r\n liquidacionSeleccionada={liquidacionSeleccionada}\r\n eventoSeleccionadoId={eventoSeleccionadoId}\r\n usuarioId={usuarioId}\r\n empresaId={empresaId}\r\n /> : \"\"}\r\n\r\n\r\n <div className=\"borderContent ventanaPortafolio\">\r\n <div className=\"innerShadow-height-100\">\r\n <h2>\r\n Liquidaciones\r\n <div className=\"subItemCatalogo\">\r\n </div>\r\n </h2>\r\n <div className=\"titleTable-search\">LIQUIDACIONES\r\n <div className='floatright'>\r\n <div className=\"filterNeg\">\r\n <input type=\"text\" placeholder=\"Filtrar\" value={plantillaFilter} onChange={(e) => {\r\n setPlantillaFilter(e.target.value);\r\n filterCatalogo(listaDatosAdjudicaciones !== null ? listaDatosAdjudicaciones : [], e.target.value)\r\n }} /><i className=\"fas fa-search\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <DataGrid\r\n idProperty=\"AdjudicacionId\"\r\n style={gridStyle}\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={userLiquidacionFuncionality == false && userRuedaFuncionality == false ? renderRowContextMenu : \"\"}\r\n theme=\"amber-dark\"\r\n\r\n />\r\n\r\n\r\n <div className=\"dividerLine\">\r\n\r\n </div>\r\n {userLiquidacionFuncionality == false && userCajaFuncionality == false || 1 == 1 ?\r\n <div className=\"textCenter\">\r\n <div className=\"btnCancelar\" onClick={closeLiquidacion}>\r\n SALIR\r\n </div>\r\n </div>\r\n : <div className=\"textCenter\">\r\n\r\n </div>}\r\n <div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Liquidaciones);\r\n\r\n","import React from 'react';\r\n\r\nimport ImageGallery from 'react-image-gallery';\r\n\r\nconst PREFIX_URL = '';\r\n\r\nclass ImageVideoGallery extends React.Component {\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n showIndex: false,\r\n showBullets: true,\r\n infinite: true,\r\n showThumbnails: true,\r\n showFullscreenButton: true,\r\n showGalleryFullscreenButton: true,\r\n showPlayButton: true,\r\n showGalleryPlayButton: true,\r\n showNav: true,\r\n isRTL: false,\r\n slideDuration: 450,\r\n slideInterval: 2000,\r\n slideOnThumbnailOver: false,\r\n thumbnailPosition: 'bottom',\r\n showVideo: {},\r\n listvideos: []\r\n };\r\n\r\n this.images = [\r\n {\r\n thumbnail: `${PREFIX_URL}4v.jpg`,\r\n original: `${PREFIX_URL}4v.jpg`,\r\n embedUrl: 'https://www.youtube.com/watch?v=eIhrQEzZPGE&ab_channel=BolsadeValoresdeQuito',\r\n description: 'Render custom slides within the gallery',\r\n renderItem: this._renderVideo.bind(this)\r\n },\r\n {\r\n original: `${PREFIX_URL}image_set_default.jpg`,\r\n thumbnail: `${PREFIX_URL}image_set_thumb.jpg`,\r\n imageSet: [\r\n {\r\n srcSet: `${PREFIX_URL}image_set_cropped.jpg`,\r\n media : '(max-width: 1280px)',\r\n },\r\n {\r\n srcSet: `${PREFIX_URL}image_set_default.jpg`,\r\n media : '(min-width: 1280px)',\r\n }\r\n ]\r\n },\r\n {\r\n original: `${PREFIX_URL}1.jpg`,\r\n thumbnail: `${PREFIX_URL}1t.jpg`,\r\n originalClass: 'featured-slide',\r\n thumbnailClass: 'featured-thumb',\r\n description: 'Custom class for slides & thumbnails'\r\n },\r\n ].concat(this._getStaticImages());\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.state.slideInterval !== prevState.slideInterval ||\r\n this.state.slideDuration !== prevState.slideDuration) {\r\n // refresh setInterval\r\n this._imageGallery.pause();\r\n this._imageGallery.play();\r\n }\r\n if(this.state.listvideos.length===0){\r\n if(prevProps.items!=null){ \r\n prevProps.items.forEach(element => {\r\n let item = {}\r\n switch(element['Tipo']){\r\n case \"V\":\r\n item = {\r\n thumbnail: element[\"UrlThumbnail\"],\r\n original: element[\"UrlPreview\"],\r\n embedUrl: element[\"Url\"],\r\n description: '',\r\n renderItem: this._renderVideo.bind(this)\r\n }\r\n break;\r\n case \"I\":\r\n item = {\r\n thumbnail: element[\"UrlThumbnail\"],\r\n original: element[\"Url\"],\r\n originalClass: 'featured-slide',\r\n thumbnailClass: 'featured-thumb',\r\n description: ''\r\n }\r\n break; \r\n }\r\n let itemsG = this.state.listvideos\r\n itemsG.push(item)\r\n this.setState(itemsG)\r\n\r\n });\r\n } \r\n }\r\n }\r\n\r\n _onImageClick(event) {\r\n console.debug('clicked on image', event.target, 'at index', this._imageGallery.getCurrentIndex());\r\n }\r\n\r\n _onImageLoad(event) {\r\n console.debug('loaded image', event.target.src);\r\n }\r\n\r\n _onSlide(index) {\r\n this._resetVideo();\r\n console.debug('slid to index', index);\r\n }\r\n\r\n _onPause(index) {\r\n console.debug('paused on index', index);\r\n }\r\n\r\n _onScreenChange(fullScreenElement) {\r\n console.debug('isFullScreen?', !!fullScreenElement);\r\n }\r\n\r\n _onPlay(index) {\r\n console.debug('playing from index', index);\r\n }\r\n\r\n _handleInputChange(state, event) {\r\n this.setState({[state]: event.target.value});\r\n }\r\n\r\n _handleCheckboxChange(state, event) {\r\n this.setState({[state]: event.target.checked});\r\n }\r\n\r\n _handleThumbnailPositionChange(event) {\r\n this.setState({thumbnailPosition: event.target.value});\r\n }\r\n\r\n _getStaticImages() {\r\n let images = [];\r\n for (let i = 2; i < 12; i++) {\r\n images.push({\r\n original: `${PREFIX_URL}${i}.jpg`,\r\n thumbnail:`${PREFIX_URL}${i}t.jpg`\r\n });\r\n }\r\n\r\n return images;\r\n }\r\n\r\n _resetVideo() {\r\n this.setState({showVideo: {}});\r\n\r\n if (this.state.showPlayButton) {\r\n this.setState({showGalleryPlayButton: true});\r\n }\r\n\r\n if (this.state.showFullscreenButton) {\r\n this.setState({showGalleryFullscreenButton: true});\r\n }\r\n }\r\n\r\n _toggleShowVideo(url) {\r\n this.state.showVideo[url] = !Boolean(this.state.showVideo[url]);\r\n this.setState({\r\n showVideo: this.state.showVideo\r\n });\r\n\r\n if (this.state.showVideo[url]) {\r\n if (this.state.showPlayButton) {\r\n this.setState({showGalleryPlayButton: false});\r\n }\r\n\r\n if (this.state.showFullscreenButton) {\r\n this.setState({showGalleryFullscreenButton: false});\r\n }\r\n }\r\n }\r\n\r\n _renderVideo(item) {\r\n return (\r\n <div>\r\n {\r\n this.state.showVideo[item.embedUrl] ?\r\n <div className='video-wrapper'>\r\n <a\r\n className='close-video'\r\n onClick={this._toggleShowVideo.bind(this, item.embedUrl)}\r\n >\r\n </a>\r\n <iframe\r\n width='560'\r\n height='315'\r\n src={item.embedUrl}\r\n frameBorder='0'\r\n allowFullScreen\r\n >\r\n </iframe>\r\n </div>\r\n :\r\n <a onClick={this._toggleShowVideo.bind(this, item.embedUrl)}>\r\n <div className='play-button'></div>\r\n <img className='image-gallery-image' src={item.original} />\r\n {\r\n item.description &&\r\n <span\r\n className='image-gallery-description'\r\n style={{right: '0', left: 'initial'}}\r\n >\r\n {item.description}\r\n </span>\r\n }\r\n </a>\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n <section className='app'>\r\n <ImageGallery\r\n ref={i => this._imageGallery = i}\r\n items={this.state.listvideos}\r\n lazyLoad={false}\r\n onClick={this._onImageClick.bind(this)}\r\n onImageLoad={this._onImageLoad}\r\n onSlide={this._onSlide.bind(this)}\r\n onPause={this._onPause.bind(this)}\r\n onScreenChange={this._onScreenChange.bind(this)}\r\n onPlay={this._onPlay.bind(this)}\r\n infinite={this.state.infinite}\r\n showBullets={this.state.showBullets}\r\n showFullscreenButton={this.state.showFullscreenButton && this.state.showGalleryFullscreenButton}\r\n showPlayButton={this.state.showPlayButton && this.state.showGalleryPlayButton}\r\n showThumbnails={this.state.showThumbnails}\r\n showIndex={this.state.showIndex}\r\n showNav={this.state.showNav}\r\n isRTL={this.state.isRTL}\r\n thumbnailPosition={this.state.thumbnailPosition}\r\n slideDuration={parseInt(this.state.slideDuration)}\r\n slideInterval={parseInt(this.state.slideInterval)}\r\n slideOnThumbnailOver={this.state.slideOnThumbnailOver}\r\n additionalClass=\"app-image-gallery\"\r\n autoPlay={true}\r\n />\r\n \r\n </section>\r\n );\r\n }\r\n}\r\n\r\nexport default ImageVideoGallery;","import {\r\n SHOW_BANNER,\r\n SHOW_BANNER_FAIL,\r\n SHOW_BANNER_INIT,\r\n SET_MESSAGE,\r\n} from \"./types\";\r\n\r\nimport BannerService from \"../services/banner.service\";\r\n\r\nexport const showBanner = () => (dispatch) => {\r\n dispatch({\r\n type: SHOW_BANNER_INIT,\r\n });\r\n return BannerService.getBannerByGame().then(\r\n (data) => {\r\n if(data!=null){\r\n dispatch({\r\n type: SHOW_BANNER,\r\n payload: { data: data },\r\n }); \r\n return Promise.resolve();\r\n }else{\r\n dispatch({\r\n type: SHOW_BANNER_FAIL,\r\n });\r\n \r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: \"Error al obtener banners\",\r\n });\r\n return Promise.reject();\r\n } \r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n \r\n dispatch({\r\n type: SHOW_BANNER_FAIL,\r\n });\r\n \r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n \r\n return Promise.reject();\r\n }\r\n );\r\n };\r\n ","import {\r\n GET_EVENT_BY_USER,\r\n GET_EVENT_TITLE_BY_USER,\r\n GET_EVENT_BY_USER_FAIL,\r\n GET_EVENT_BY_USER_INIT,\r\n UPDATE_STATUS_BY_KEY,\r\n SET_MESSAGE,\r\n UPDATE_EVENTO_OBJECT\r\n} from \"./types\";\r\n\r\nimport BannerService from \"../services/juego.service\";\r\n\r\nexport const getTitulosEventoById = (eventId) => (dispatch) => {\r\n dispatch({\r\n type: GET_EVENT_BY_USER_INIT,\r\n });\r\n return BannerService.getTitulosEventoById(eventId).then(\r\n (data) => {\r\n if(data!=null){\r\n dispatch({ \r\n type: GET_EVENT_TITLE_BY_USER,\r\n payload: { data: data },\r\n }); \r\n return Promise.resolve();\r\n }else{\r\n dispatch({\r\n type: GET_EVENT_BY_USER_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: \"Error al obtener titulos\",\r\n });\r\n return Promise.reject();\r\n } \r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: GET_EVENT_BY_USER_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n ); \r\n};\r\nexport const getEventosPorUsuario = (userId) => (dispatch) => {\r\n dispatch({\r\n type: GET_EVENT_BY_USER_INIT,\r\n });\r\n return BannerService.getEventosPorUsuario(userId).then(\r\n (data) => {\r\n if(data!=null){\r\n dispatch({ \r\n type: GET_EVENT_BY_USER,\r\n payload: { data: data },\r\n }); \r\n return Promise.resolve();\r\n }else{\r\n dispatch({\r\n type: GET_EVENT_BY_USER_FAIL,\r\n });\r\n \r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: \"Error al obtener banners\",\r\n });\r\n return Promise.reject();\r\n } \r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n \r\n dispatch({\r\n type: GET_EVENT_BY_USER_FAIL,\r\n });\r\n \r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n \r\n return Promise.reject();\r\n }\r\n );\r\n };\r\n\r\n // WS\r\n export const setStatusByKey = (key,value) => (dispatch) => {\r\n dispatch({ \r\n type: UPDATE_STATUS_BY_KEY,\r\n payload: { key:key,value:value },\r\n }); \r\n return Promise.resolve();\r\n };\r\n export const setEventoObject = (value) => (dispatch) => {\r\n dispatch({ \r\n type: UPDATE_EVENTO_OBJECT,\r\n payload: { value:value },\r\n }); \r\n return Promise.resolve();\r\n };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAAuCAYAAACxvCI2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDRBQTQxQkMyRTA2MTFFQkFBMzRCNzkwRTlDQUM3NUUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDRBQTQxQkIyRTA2MTFFQkFBMzRCNzkwRTlDQUM3NUUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUJCRDlDQ0QyQTdDMTFFQkIzMjFFQUU3QUQwMTk3QzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUJCRDlDQ0UyQTdDMTFFQkIzMjFFQUU3QUQwMTk3QzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5zf5ZnAAAFF0lEQVR42uxcy3HjMAyld7YBbQlyCfJl70oJcgl2CXIJVglxCVEJ9n0vUQnLEqISvPYMMIsghKhI8ifOezOaOBZJAeAjCIBKZsfj0QHAV8MPmAAAcQEAxAUAEBcAcQEAxAUAEBcAcQEAxAUAEBcAQFwAxAWAK+JnrMHvZ1fSx/Z07R7RCH/WH74qRwxXny5/Q3XS01Xces5OvLnEvPQn7glb+nl4VOKejayMtB0xXHMHxH34OUOoADxmqPBdoLzuk9FsLz5vyLuGPC4A4t6EvIeeIcEBVvt6xNVJW3K6Vqcrp+89JSpycjNx/4zKGDunthZB+FkZfWaydSVGCSUtGcWBLHtD8rdGvPsZSLlZlpxkTei7XcAeUg8vZHIdumhbx/qEZJXyemHDsXoNhf5znNkliCsTgIa20US1WZFCa2EcmfgcjK11Kwy1CIy5DTwrp8W0CRjxTNjnQB++967fCPJmQr+Gxl0pfaWOZcQxLAP2sfTne1VExnO/F+VAZP8DPbcdqFeoonDsQ8ZrJ2epiP1qMpxXxsiN8kxhGDZTnkSO9ay87EYYLqH7pZJP9mlIxp2Qk/tlE5ZzcjW5roO0rIfcMVIimF4YUhe2J9uc73eRdq889U7Z4nzv1VgYMb0+hRE722TEbckzLmkC5moVFsbqzA0PyNgpo2/FhC0oiaro50J4ia0IBwoxCTW129AuMFdb4yQTosZie8zoWYki7VLosST5JHnzwC7HC3BOevAzdh2EcyK8Ytty/7Xor0tqffUaRNqh5J2qHFYFYstakVt+3woPkgZWdGiMlZiUUEbf0Pc6Bo9hTcR5ctPWPBMaW9rGk74H97/Gqie9NYigSay3c9al6ZCnFHKsDVt4Ye/0E3pdFVMRNzThvmf7IpBAMRG90c5a4XVgAWjP/5cmUIYvh454eyi8YZdGLJS1seOsjC1a7lq+hw10/yTSxrJhH716hwD6/hCve6sDiNogZBc5M/H5jQJ+fb0FvLz2xLwN7qnPKxE5vaCOVohVUhy7Fzq8GNt9YiVDgYVhPU/uRkfjKo1n9tWrLxnlM69aDhuDRmybHC54tcKn3LYremZBz0jVgshowtZD4jUDbaQiUwbaNyLJyu60hNregxC3PPINhQt5IA4OGWzW83LKS3ESMqcYsRLjJjojn+JFESO5kTXws0y/6OLwIUaOJOLJY9j0tF81RtExVYN7Jq4OFwpV5uraAvNIGUoWzJkoMhzgwxHOjGVZLL+w3oUi0K6nF2siZcRQSDXEfqmwYTJAv1EhwFcgrqzRZu79q3h1hOhWxaCkeHEvEhwunm+NCW9vuP21BnFC5DuoMllpkNYq6cn+uUHeRNhvP5C4Dx8qWOFCbUyoLpLLQjrHqLLOWwUIz7FlJsaRv7fu8u8feLXQCiJiSqTThEnF77uALnyf+8ZifcaL6l9Q/1S09fdK3Fu/ZFO7jyc9XcRZionNO7a8jTA610tXYsIt77e8QoxWibAocx9Px1gWJusztedDilTpsg3YtOhwFOyVE6M/hxWVu2Pc2uPqsKCNZPV8WmTFhXwypisSfDrkOyZ04a7ztpcnElpx/Nq9PwV0n9ClcuHasO6/NMpmnhb94l6qBxZmsf+Pe6HMeipkkYTOysgzVYK6elYswgBZb24DcnbJOER/yxb+EqFBiD8hu/Zt15u4AIBQAQBAXADEBQAQFwBAXAAAcQEQFwBAXAAAcQEQFwBAXAAAcYHvjn8CDACmNo1i5JsZYQAAAABJRU5ErkJggg==\"","import React, { useState, useEffect,useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid,{ Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Menu,MenuItem,MenuButton,SubMenu} from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport {formatDateTime} from \"./Util\";\r\nimport {getEmpresaAct,deleteEmpresaAct} from \"../../actions/administracion\";\r\n\r\nimport \"../../config\";\r\n\r\n\r\nconst VerEmpresas = (props) => {\r\n const dispatch = useDispatch();\r\n const gridStyle = { minHeight: '300px',height:'100%' }\r\n const {listaEmpresa,loadingEmpresa} = useSelector((state) => state.administracion);\r\n let [loadEmpresa, setLoadEmpresa] = useState(false) \r\n\r\n if(loadEmpresa===false){\r\n setLoadEmpresa(true)\r\n dispatch(getEmpresaAct(\"0\",\"\",\"\",\"ASC\",\"\"))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n \r\n }\r\n\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\"); \r\n let [gridInfor, setGridInfor] = useState([listaEmpresa!==null?listaEmpresa:[]]); \r\n\r\n if(listaEmpresa!==null && listaEmpresa!=gridInfor && empresaFilter===\"\")\r\n setGridInfor(listaEmpresa)\r\n\r\n function filterCatalogo(nego,empresaFilter){\r\n //value => \r\n setGridInfor(nego.filter(function(item) {\r\n if (item[\"Nombre\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) || \r\n item[\"Institucion\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()) )\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeEvento(){\r\n props.closeEventoClick()\r\n }\r\n \r\n function formatEstado(estado){\r\n\t\tswitch(estado){\r\n\t\t\tcase \"A\":\r\n\t\t\t\treturn \"ACTIVO\"\r\n\t\t}\r\n\t\treturn \"INACTIVO\"\r\n\t}\r\n let columns= [\r\n \r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'Nombre',header: 'Empresa', defaultFlex: 1, xdefaultLocked: 'end' },\r\n { name: 'Institucion',header: 'Institucion', defaultFlex: 1, xdefaultLocked: 'start',defaultWidth: 400, }, \r\n { name: 'NumAccionesOferta',header: 'Acciones', defaultFlex: 1, xdefaultLocked: 'end'}, \r\n { name: 'Precio',header: 'Fecha Apertura', defaultFlex: 1, xdefaultLocked: 'end' }, \r\n { name: 'ValorUnitarioAccion',header: 'Valor por acción', defaultFlex: 1, xdefaultLocked: 'end' }, \r\n \r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps } ) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n \r\n {\r\n label: 'Eliminar',\r\n onClick:()=>{\r\n confirmAlert({\r\n title: 'Eliminar Empresa',\r\n message: '¿Seguro desea eliminar?.',\r\n buttons: [\r\n {\r\n label: 'Si',\r\n onClick: () =>{ \r\n dispatch(deleteEmpresaAct(rowProps.data[\"EmpresaId\"]))\r\n .then(() => { \r\n \r\n })\r\n .catch(() => {});\r\n }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {\r\n \r\n }\r\n }\r\n ]\r\n }); \r\n }\r\n }\r\n ]\r\n }, []) \r\n return (\r\n <div>\r\n <h6 className=\"crypt-bg-head\">EMPRESAS<div className='floatright'><div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaEmpresa!==null?listaEmpresa:[],e.target.value)\r\n }}/> <i className=\"fas fa-search\"></i></div></div></h6>\r\n <div className=\"tab-content\">\r\n <DataGrid\r\n idProperty=\"EmpresaId\"\r\n style={gridStyle}\r\n theme=\"default-light\"\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n />\r\n <div className=\"no-orders text-center\"></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(VerEmpresas);\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVEQjJDNjQ2MkRBMDExRUI5RjA4OEMxMTgyOEY0OUY2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVEQjJDNjQ3MkRBMDExRUI5RjA4OEMxMTgyOEY0OUY2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NURCMkM2NDQyREEwMTFFQjlGMDg4QzExODI4RjQ5RjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NURCMkM2NDUyREEwMTFFQjlGMDg4QzExODI4RjQ5RjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz59qc83AAABPklEQVR42pTTvUoDQRSG4YmuKFhI7FQUQSF2IYWFCBYWXoGVhbWtlaVtmlxAmtyBNxBSCFqoELQQUglJpZUgImgSMr5nPYtxdjbjHnhYdvZ8m8zPGmutcWygigd86rWq43963eAmWtZfLX3uDUeo2clV075UuIhOINzRvjgzZX5rDiUzuUraF9d4+AvdQLirfanwO5qBcFP7fspZ7TLaGfNt6/PMrRIVNNDTUE/vK25vIX5DumawiHl84BUDt8kNz2rTyPNCWZ8I/WQg0mtRnehYwROWXxmigWe8yX9fxSmu0A8ckhHucY4VCe/g0eYrWcR9mccRtky+WsOxhPcwbfJXWcJ3GasbqluZ8zLqGP5zvgNc4yDZZ9mmM2xjV/fbt1U3uERdDs/4IZHAOg71fgkL+iG8aPgCT8mX9S3AAN17DWn6FfKvAAAAAElFTkSuQmCC\"","import React, { useState, useRef } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { NotificationContainer, NotificationManager } from \"react-notifications\";\r\nimport Form from \"react-validation/build/form\";\r\nimport Input from \"react-validation/build/input\";\r\nimport CheckButton from \"react-validation/build/button\";\r\n\r\nimport logojunior from '../image/investTraderLogo.png';\r\n\r\nimport { login } from \"../actions/auth\";\r\nimport { getTodoEventoAct } from \"../actions/administracion\";\r\n\r\n\r\nconst required = (value) => {\r\n if (!value) {\r\n return (\r\n <div className=\"alert alert-danger\" role=\"alert\">\r\n Campo requerido!\r\n </div>\r\n );\r\n }\r\n};\r\n\r\n\r\nconst Login = (props) => {\r\n const form = useRef();\r\n const checkBtn = useRef();\r\n\r\n const [username, setUsername] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n const [shown, setShown] = React.useState(false);\r\n const switchShown = () => setShown(!shown);\r\n const { isLoggedIn } = useSelector(state => state.auth);\r\n const { message } = useSelector(state => state.message);\r\n const [passwordVisible, setPasswordVisible] = useState(false);\r\n const [error, setError] = useState('');\r\n const dispatch = useDispatch();\r\n const { listaTodosLosEventos } = useSelector((state) => state.administracion);\r\n let [loadTodosLosEventos, setLoadTodosLosEventos] = useState(false)\r\n const [isChecked, setIsChecked] = useState(false);\r\n\r\n\r\n\r\n const onChangeUsername = (e) => {\r\n const username = e.target.value;\r\n setUsername(username);\r\n };\r\n\r\n const onChangePassword = (e) => {\r\n const password = e.target.value;\r\n setPassword(password);\r\n };\r\n\r\n const handleLogin = (e) => {\r\n e.preventDefault();\r\n console.log(e);\r\n setLoading(true);\r\n form.current.validateAll();\r\n dispatch(login(username, password))\r\n .then((data) => {\r\n console.log(\"data\", data[\"role\"])\r\n\r\n\r\n //agg\r\n if (data[\"role\"] != \"ROLE_ADMIN\") {\r\n props.history.push(\"/seleccionarEvento\");\r\n } else {\r\n props.history.push(\"/sala\");\r\n }\r\n\r\n\r\n\r\n // window.location.reload();\r\n })\r\n .catch(() => {\r\n setLoading(false);\r\n\r\n setError('Credenciales inválidos');\r\n });\r\n\r\n\r\n };\r\n\r\n if (isLoggedIn) {\r\n //return <Redirect to=\"/seleccionarEvento\" />;\r\n\r\n }\r\n\r\n const handleCheckboxChange = (event) => {\r\n setIsChecked(event.target.checked);\r\n };\r\n\r\n return (\r\n <div>\r\n <header>\r\n <div className=\"container-full-width\">\r\n <div className=\"crypt-header\">\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-4 col-sm-5\">\r\n <div className=\"row\">\r\n <div className=\"col-xs-2\">\r\n <div className=\"crypt-logo\"><img src={logojunior} alt=\"Logo\" /></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-xl-8 col-lg-8 col-md-8 d-none d-md-block d-lg-block\">\r\n <ul className=\"crypt-heading-menu fright\">\r\n\r\n {/*<li className=\"crypt-box-menu menu-red\"><a href=\"register\">RegÃstrate</a></li>*/}\r\n\r\n </ul>\r\n </div>\r\n <i className=\"menu-toggle pe-7s-menu d-xs-block d-sm-block d-md-none d-sm-none\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"crypt-mobile-menu\">\r\n <ul className=\"crypt-heading-menu\">\r\n <li className=\"crypt-box-menu menu-green\"><a href=\"\">RegÃstrate</a></li>\r\n <li className=\"crypt-box-menu menu-red\"><a href=\"\">Iniciar sesión</a></li>\r\n\r\n </ul>\r\n <div className=\"crypt-gross-market-cap\">\r\n <h5>$34.795.90 <span className=\"crypt-up pl-2\">+3.435 %</span></h5>\r\n <h6>0.7925.90 BTC <span className=\"crypt-down pl-2\">+7.435 %</span></h6></div>\r\n </div>\r\n </header>\r\n\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-3\"></div>\r\n <div className=\"col-md-6\">\r\n <div className=\"cryptorio-forms cryptorio-forms-dark text-center pt-5 pb-5\">\r\n <div className=\"logo\">\r\n <img src={logojunior} alt=\"Logo\" />\r\n </div>\r\n <h3 className=\"p-4\">Iniciar Sesión</h3>\r\n\r\n\r\n <div className=\"cryptorio-main-form\">\r\n <Form onSubmit={handleLogin} ref={form} className=\"text-left\">\r\n\r\n <label className=\"label-credenciales\" for=\"email\">Correo electrónico</label>\r\n\r\n <Input\r\n autocomplete=\"off\"\r\n className=\"input-credenciales\"\r\n type=\"email\"\r\n id=\"email\"\r\n name=\"email\"\r\n placeholder=\"Escribe aquà tu correo electrónico\"\r\n required value={username}\r\n validations={[required]}\r\n onChange={onChangeUsername} />\r\n\r\n <label className=\"label-credenciales\" for=\"password\">Contraseña</label>\r\n\r\n {/*<div className=\"input-container\">*/}\r\n <div className=\"\">\r\n <Input\r\n className=\"input-credenciales\"\r\n autocomplete=\"new-password\"\r\n type={shown ? 'text' : 'password'}\r\n id=\"password\" name=\"password\"\r\n placeholder=\"Escribe aquà tu contraseña\"\r\n required value={password}\r\n onChange={onChangePassword}\r\n validations={[required]} />\r\n\r\n {/*<div className=\"inputPasswordSee\" onClick={switchShown} title=\"Ver Contraseña\">\r\n {shown ? <i className=\"fas fa-eye fa-2x \"></i> : <i className=\"fas fa-eye-slash fa-2x \"></i>}\r\n </div>*/}\r\n\r\n\r\n </div>\r\n\r\n\r\n <button className=\"inputIniciarSesion crypt-button-red-full\" disabled={loading} >\r\n {loading && (\r\n <span className=\"spinner-border spinner-border-sm\"></span>\r\n )}\r\n <span>Iniciar Sesión</span>\r\n </button>\r\n\r\n {/*<p className=\"float-right\"><a href=\"/recuperar\">¿Olvidaste tu contraseña?</a></p>*/}\r\n\r\n <div className=\"text-center\">\r\n\r\n\r\n <div className=\"inputCondiciones\">\r\n <div className=\"custom-control custom-checkbox mr-sm-2\">\r\n <input type=\"checkbox\" className=\"custom-control-input\" id=\"terms-agree\" required/>\r\n <label className=\"custom-control-label\" for=\"terms-agree\">\r\n Acepto la <a href=\"/condiciones\" target='_blank'>\r\n PolÃtica de privacidad de datos, términos y condiciones del servicio</a>, contenidos en este aplicativo.\r\n </label>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n </Form>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div className=\"col-md-3\"></div>\r\n </div>\r\n <NotificationContainer />\r\n </div>\r\n\r\n </div>\r\n );\r\n};\r\n\r\nexport default Login;","import { NotificationManager } from \"react-notifications\";\r\nimport {\r\n REGISTER_SUCCESS,\r\n REGISTER_FAIL,\r\n LOGIN_SUCCESS,\r\n LOGIN_FAIL,\r\n LOGOUT,\r\n SET_MESSAGE,\r\n\r\n} from \"./types\";\r\n\r\nimport AuthService from \"../services/auth.service\";\r\n\r\n\r\n\r\nexport const register = (username, email, password) => (dispatch) => {\r\n return AuthService.register(username, email, password).then(\r\n (response) => {\r\n dispatch({\r\n type: REGISTER_SUCCESS,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: response.data.message,\r\n });\r\n\r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: REGISTER_FAIL,\r\n });\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const login = (username, password) => (dispatch) => {\r\n return AuthService.login(username, password\r\n\r\n ).then(\r\n (data) => {\r\n if(data!=null){\r\n \r\n dispatch({\r\n type: LOGIN_SUCCESS,\r\n payload: { user: data },\r\n }); \r\n return Promise.resolve(data);\r\n\r\n }\r\n else{\r\n console.log(\"datos no recuperados\")\r\n dispatch({\r\n type: LOGIN_FAIL,\r\n payload: \"Error al validar usuario\",\r\n })\r\n NotificationManager.error(\r\n \"Error al validar usuario\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n ); \r\n \r\n \r\n dispatch({\r\n type: SET_MESSAGE,\r\n });\r\n return Promise.reject();\r\n } \r\n },\r\n (error) => {\r\n console.log(error)\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n dispatch({\r\n type: LOGIN_FAIL,\r\n payload: \"Error al validar usuario\",\r\n });\r\n NotificationManager.error(\r\n \"Error al validar usuario\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );\r\n\r\n dispatch({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n });\r\n\r\n return Promise.reject();\r\n }\r\n );\r\n};\r\n\r\nexport const logout = () => (dispatch) => {\r\n AuthService.logout();\r\n\r\n dispatch({\r\n type: LOGOUT,\r\n });\r\n};\r\n","import React, { useState, useRef } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport Form from \"react-validation/build/form\";\r\nimport Input from \"react-validation/build/input\";\r\nimport CheckButton from \"react-validation/build/button\";\r\nimport { isEmail } from \"validator\";\r\n\r\nimport { register } from \"../actions/auth\";\r\n\r\nimport logojunior from '../image/investTraderLogo.png';\r\n\r\nconst required = (value) => {\r\n if (!value) {\r\n return (\r\n <div className=\"alert alert-danger\" role=\"alert\">\r\n This field is required!\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst validEmail = (value) => {\r\n if (!isEmail(value)) {\r\n return (\r\n <div className=\"alert alert-danger\" role=\"alert\">\r\n This is not a valid email.\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst vusername = (value) => {\r\n if (value.length < 3 || value.length > 20) {\r\n return (\r\n <div className=\"alert alert-danger\" role=\"alert\">\r\n The username must be between 3 and 20 characters.\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst vpassword = (value) => {\r\n if (value.length < 6 || value.length > 40) {\r\n return (\r\n <div className=\"alert alert-danger\" role=\"alert\">\r\n The password must be between 6 and 40 characters.\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst Register = () => {\r\n const form = useRef();\r\n const checkBtn = useRef();\r\n\r\n const [username, setUsername] = useState(\"\");\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [successful, setSuccessful] = useState(false);\r\n\r\n const { message } = useSelector(state => state.message);\r\n const dispatch = useDispatch();\r\n\r\n const onChangeUsername = (e) => {\r\n const username = e.target.value;\r\n setUsername(username);\r\n };\r\n\r\n const onChangeEmail = (e) => {\r\n const email = e.target.value;\r\n setEmail(email);\r\n };\r\n\r\n const onChangePassword = (e) => {\r\n const password = e.target.value;\r\n setPassword(password);\r\n };\r\n\r\n const handleRegister = (e) => {\r\n e.preventDefault();\r\n\r\n setSuccessful(false);\r\n\r\n form.current.validateAll();\r\n\r\n if (checkBtn.current.context._errors.length === 0) {\r\n dispatch(register(username, email, password))\r\n .then(() => {\r\n setSuccessful(true);\r\n })\r\n .catch(() => {\r\n setSuccessful(false);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n <div className=\"row\">\r\n <div className=\"col-md-3\"></div>\r\n <div className=\"col-md-6\">\r\n <div className=\"cryptorio-forms cryptorio-forms-dark text-center pt-5 pb-5\">\r\n <div className=\"logo\">\r\n <img src={logojunior} alt=\"Logo\" />\r\n </div>\r\n <h3 className=\"p-4\">Registro</h3>\r\n <div className=\"cryptorio-main-form\">\r\n <form action=\"\" className=\"text-left\">\r\n <label className=\"label-credenciales\" for=\"email\">Correo electrónico</label>\r\n <input className=\"input-credenciales\" type=\"text\" id=\"email\" name=\"email\" placeholder=\"Tu correo electrónico\"/>\r\n <label className=\"label-credenciales\" for=\"password\">Contraseña</label>\r\n <input className=\"input-credenciales\" type=\"password\" id=\"password\" name=\"password\" placeholder=\"6-20 letras y números\"/>\r\n <label className=\"label-credenciales\" for=\"confirm-password\">Repetir Contraseña</label>\r\n <input className=\"input-credenciales\" type=\"password\" id=\"confirm-password\" name=\"password\" placeholder=\"6-20 letras y números\"/>\r\n <div className=\"my-1\">\r\n <div className=\"custom-control custom-checkbox mr-sm-2\">\r\n <input type=\"checkbox\" className=\"custom-control-input\" id=\"terms-agree\"/>\r\n <label className=\"custom-control-label\" for=\"terms-agree\">Acepto los términos y condiciones</label>\r\n </div>\r\n </div>\r\n <input type=\"submit\" value=\"Registrarse\" className=\"crypt-button-red-full\"/>\r\n </form>\r\n <p className=\"float-left\"><a href=\"login.html\">Iniciar Sesión</a></p>\r\n <p className=\"float-right\"><a href=\"forgot.html\">Recuperar Contraseña</a></p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-3\"></div>\r\n </div>\r\n \r\n \r\n\r\n/*\r\n <Form onSubmit={handleRegister} ref={form}>\r\n {!successful && (\r\n <div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"username\">Username</label>\r\n <Input\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"username\"\r\n value={username}\r\n onChange={onChangeUsername}\r\n validations={[required, vusername]}\r\n />\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <label htmlFor=\"email\">Email</label>\r\n <Input\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"email\"\r\n value={email}\r\n onChange={onChangeEmail}\r\n validations={[required, validEmail]}\r\n />\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <label htmlFor=\"password\">Password</label>\r\n <Input\r\n type=\"password\"\r\n className=\"form-control\"\r\n name=\"password\"\r\n value={password}\r\n onChange={onChangePassword}\r\n validations={[required, vpassword]}\r\n />\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <button className=\"btn btn-primary btn-block\">Sign Up</button>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {message && (\r\n <div className=\"form-group\">\r\n <div className={ successful ? \"alert alert-success\" : \"alert alert-danger\" } role=\"alert\">\r\n {message}\r\n </div>\r\n </div>\r\n )}\r\n <CheckButton style={{ display: \"none\" }} ref={checkBtn} />\r\n </Form>\r\n */\r\n );\r\n};\r\n\r\nexport default Register;\r\n","import React, { useState,useEffect} from \"react\";\r\nimport ItemRentaFija from \"./ItemRentaFija\"\r\n\r\nconst RentaFija = (props) => { \r\n const { titulos } = props;\r\n return (\r\n <div> \r\n {\r\n titulos.map((item, i) => { \r\n console.log(item)\r\n if(item[\"TipoRentaCod\"]===\"RF\"){\r\n return <ItemRentaFija key={i} item={item}/>\r\n }else{\r\n return \"\"\r\n }\r\n })\r\n } \r\n </div>\r\n );\r\n};\r\n\r\nexport default RentaFija;","import React, { useState,useEffect} from \"react\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { connect,useDispatch,useSelector } from \"react-redux\";\r\n\r\nimport { getEventosPorUsuario,getTitulosEventoById } from \"../actions/juego\";\r\nimport RentaFija from './juego/RentaFija'\r\nimport ItemRentaVariable from './juego/ItemRentaVariable'\r\n\r\nimport img01 from '../image/img01.jpg';\r\nimport img02 from '../image/img02.jpg';\r\nimport marca1 from '../image/marca1.png';\r\nimport marca2 from '../image/marca2.png';\r\nimport imagenNoticiaPositivaBig from '../image/imgNoticiaBig.jpg';\r\nimport imagenNoticiaNegativaBig from '../image/imgNoticiaBig2.jpg';\r\nimport imagenEmisor from '../image/logoRF1.png';\r\n\r\nimport leftArrow from '../image/arrowRight.svg';\r\nimport rightArrow from '../image/arrowLeft.svg';\r\n\r\nconst Juego = () => {\r\n const { user: currentUser } = useSelector((state) => state.auth); \r\n const { listEventos: currentEventos,listTitleEvent: currentTitle } = useSelector((state) => state.juego);\r\n const { loadingEventosPorUsr } = useSelector((state) => state.juego); \r\n const { titulosRVCount } = useSelector((state) => state.juego ); \r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => { \r\n \r\n dispatch(getEventosPorUsuario(currentUser[\"userId\"]))\r\n .then(() => { \r\n })\r\n .catch(() => {\r\n });\r\n }, [dispatch]);\r\n \r\n useEffect(() => { \r\n dispatch(getTitulosEventoById(currentEventos!==null&¤tEventos.length>0?currentEventos[0][\"EventoId\"]:1))\r\n .then(() => { \r\n console.log(\"getEventosPorUsuario ---- > \" + currentEventos.length)\r\n })\r\n .catch(() => {\r\n });\r\n }, [dispatch]);\r\n\r\n \r\n \r\n if (!currentUser) {\r\n return <Redirect to=\"/login\" />;\r\n } \r\n\r\n return (\r\n <div>\r\n \r\n <div className=\"alertContainerJuego\">\r\n <div>Selecciona las opciones que se muestran a continuación...</div>\r\n </div>\r\n \r\n <div class=\"overlay\">\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow3\">\r\n <h2>Configuración <i class=\"fas fa-cog\"></i></h2>\r\n <p><i class=\"far fa-address-card\"></i> <span>Nombre:</span> Pablo</p>\r\n <p><i class=\"far fa-address-card\"></i> <span>Apellido:</span> Admin</p>\r\n <p><i class=\"fas fa-mobile-alt\"></i> <span>Teléfono:</span> 01234 456 789</p>\r\n <p><i class=\"far fa-envelope\"></i> <span>Email:</span></p>\r\n <p><i class=\"fas fa-lock\"></i> <span>Contraseña:</span> Cambiar</p>\r\n <div className=\"dividerLine\"></div>\r\n <p><i class=\"fas fa-volume-up\"></i> <span>Sonido:</span> Encendido</p>\r\n <div className=\"dividerLine\"></div>\r\n <p><i class=\"fas fa-palette\"></i> <span>Tema:</span> Oscuro</p>\r\n <div className=\"dividerLine\"></div>\r\n <p className=\"textCenter\"><div className=\"btnGuardar\">GUARDAR</div> <div className=\"btnCancelar\">CANCELAR</div></p>\r\n \r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div className=\"mainContentInner\">\r\n <div className=\"content\">\r\n \r\n <div className=\"borderContent tableContent\">\r\n <div className=\"innerShadow3\">\r\n <div className=\"titleCont\"> \r\n <h3>RENTA VARIABLE</h3>\r\n <div className=\"titleRight\">\r\n <h3>COMPRAR</h3>\r\n <h3>VENDER</h3>\r\n </div>\r\n </div> \r\n <div className=\"tableContainer\"> \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca1} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">OBL</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">99</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgYellow\">%1.95</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca2} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">NKE</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">89</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgPurple\">%2.00</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca1} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">BE</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">999</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgRed\">%2.50</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca2} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">PCO</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">89</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgGreen\">%1.00</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca1} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">OBL</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">99</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgYellow\">%1.95</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca2} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">NKE</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">89</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgPurple\">%2.00</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca1} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">BE</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">999</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgRed\">%2.50</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n <div className=\"rowCustom\">\r\n <div className=\"oneCol\"><img src={marca2} alt=\"Logo1\" /></div>\r\n <div className=\"twoCol\">PCO</div>\r\n <div className=\"threeCol\">#ACC</div>\r\n <div className=\"fourCol\">89</div>\r\n <div className=\"fiveCol\"><div className=\"percentBarHorzontal bgGreen\">%1.00</div></div>\r\n <div className=\"sixCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n <div className=\"sevenCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <div className=\"dividerLine\"></div>\r\n \r\n <div className=\"titleCont\"> \r\n <h3>RENTA FIJA</h3>\r\n <div className=\"titleRight\">\r\n <h3>COMPRAR</h3> \r\n </div>\r\n </div> \r\n \r\n <div className=\"rowCustom2\">\r\n <div className=\"oneCol\"><div className=\"imgLogo gris\"><img src={imagenEmisor} alt=\"El Juego de la Bolsa\" /></div></div>\r\n <div className=\"twoCol\">Ministerio de Finanzas Bonos del Estado </div>\r\n <div className=\"threeCol\">1.500.000 - 5.23% - 180 dÃas - 1/4</div> \r\n <div className=\"fourCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n \r\n <div className=\"rowCustom2\">\r\n <div className=\"oneCol\"><div className=\"imgLogo yellowStyle\"><img src={imagenEmisor} alt=\"El Juego de la Bolsa\" /></div></div>\r\n <div className=\"twoCol\">Ministerio de Finanzas Bonos del Estado </div>\r\n <div className=\"threeCol\">1.500.000 - 5.23% - 180 dÃas - 1/4</div> \r\n <div className=\"fourCol\"><div className=\"cantidadCustom\"><input type=\"text\"/></div></div>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div className=\"btnContainer\">\r\n <div className=\"btnEnviar\">Enviar</div>\r\n <div className=\"btnCancelar\">Cancelar</div>\r\n </div>\r\n \r\n <div className=\"content hidetemp\">\r\n \r\n <div className=\"borderContent noticiaPositivaBig\">\r\n <div className=\"innerShadow3\">\r\n <h3>NOTICIA POSITIVA</h3> \r\n <div className=\"imgNoticiaPositiva\"><img src={imagenNoticiaPositivaBig} alt=\"El Juego de la Bolsa\" /></div>\r\n <div className=\"txtNoticiaPositiva\">Ecuador intensifica su promoción turÃstica en el mundo. Depósitos en los bancos aumentaron...</div>\r\n </div>\r\n </div>\r\n \r\n <div className=\"borderContent noticiaNegativaBig\">\r\n <div className=\"innerShadow3\">\r\n <h3>NOTICIA NEGATIVA</h3> \r\n <div className=\"imgNoticiaNegativa\"><img src={imagenNoticiaNegativaBig} alt=\"El Juego de la Bolsa\" /></div>\r\n <div className=\"txtNoticiaNegativa\">Ecuador intensifica su promoción turÃstica en el mundo. Depósitos en los bancos aumentaron...</div>\r\n </div>\r\n </div>\r\n \r\n \r\n <div className=\"borderContent colRentaFija\">\r\n <div className=\"innerShadow3\">\r\n <h3>VALORES DE RENTA FIJA</h3>\r\n <RentaFija titulos={currentTitle===null?[]:currentTitle}/> \r\n </div>\r\n </div>\r\n \r\n \r\n <div className=\"borderContent colBarras\">\r\n <div className=\"innerShadow3\">\r\n <h3>REPRESENTACION EN BARRAS</h3> \r\n <div className={[\"chart-container\",titulosRVCount<=2?\"sizeTwoBars\":titulosRVCount===3?\"sizeThreeBars\":titulosRVCount===4?\"sizeFourBars\":titulosRVCount===5?\"sizeFiveBars\":titulosRVCount===6?\"sizeSixBars\":titulosRVCount===7?\"sizeSevenBars\":\"\"].join(' ')}>\r\n <div className=\"bottomACC\">#ACC</div>\r\n {\r\n currentTitle!=null?currentTitle.filter(value => value[\"TipoRentaCod\"] === 'RV').map((item, i) => { \r\n console.log(item)\r\n if(item[\"TipoRentaCod\"]===\"RV\"){\r\n return <ItemRentaVariable key={i} index={i} item={item}/>\r\n }else{\r\n return \"\"\r\n }\r\n }):\"\"\r\n } \r\n {/*<div className=\"bar one\"><div className=\"percent\">43%</div><div className=\"logo1\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent1\">99</div></div>\r\n <div className=\"bar two\"><div className=\"percent\">60%</div><div className=\"logo2\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent2\">99</div></div> \r\n <div className=\"bar three\"><div className=\"percent\">78%</div><div className=\"logo3\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent3\">99</div></div>\r\n <div className=\"bar four\"><div className=\"percent\">79%</div><div className=\"logo4\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent4\">99</div></div>\r\n <div className=\"bar five\"><div className=\"percent\">50%</div><div className=\"logo5\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent5\">99</div></div>\r\n <div className=\"bar six\"><div className=\"percent\">69%</div><div className=\"logo6\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent6\">99</div></div> \r\n <div className=\"bar seven\"><div className=\"percent\">79%</div><div className=\"logo7\"><img src={marca2} alt=\"Logo Marca 1\" /></div><div className=\"bottomPercent7\">99</div></div> \r\n */}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div className=\"borderContent colJugadas\">\r\n <div className=\"innerShadow3\">\r\n <h3>JUGADAS</h3>\r\n <div className=\"containerJugadas\">\r\n <div className=\"jugada up\">\r\n <ul>\r\n <li><div className=\"imgLogoJugadas greenStyle\"><img src={marca1} alt=\"Logo Marca 1\" /></div></li>\r\n <li><div className=\"upArrow\"><i className=\"fas fa-arrow-up\"></i></div></li>\r\n <li><div className=\"cantidadJugada\">43% <span>Lorem ipsum</span></div></li> \r\n </ul>\r\n </div>\r\n <div className=\"jugada down\">\r\n <ul>\r\n <li><div className=\"imgLogoJugadas redStyle\"><img src={marca2} alt=\"Logo Marca 1\" /></div></li>\r\n <li><div className=\"upArrow\"><i className=\"fas fa-arrow-down\"></i></div></li>\r\n <li><div className=\"cantidadJugada\">43% <span>Lorem ipsum</span></div></li> \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n<div className=\"arrowControlsContainer\"> \r\n <div className=\"leftArrow arrowDisabled\"><img src={leftArrow} alt=\"left arrow\" /></div>\r\n <div className=\"rightArrow\"><img src={rightArrow} alt=\"right arrow\" /></div>\r\n</div>\r\n <div className=\"footerColContainer\">\r\n <div className=\"tableTransaction borderContent\">\r\n <div className=\"innerShadow2\">\r\n <div className=\"btnMaximizeGrid\"><i class=\"far fa-window-maximize\"></i></div>\r\n <div className=\"titleTable\">HISTORIAL DE TRANSACCIONES</div>\r\n <div className=\"table-content\"> \r\n <ul>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n <li>Compra de adiddas 5000 a 3.24</li>\r\n </ul>\r\n </div> \r\n </div>\r\n </div> \r\n </div> \r\n \r\n \r\n <div className=\"footerColContainer\"> \r\n <div className=\"footerCol borderContent\">\r\n <div className=\"innerShadow2\">\r\n <h2>NOTICIA POSITIVA</h2>\r\n <div className=\"noticeContainer\">\r\n <div className=\"imageNotice noticeStyle1\">\r\n <img src={img01} alt=\"Noticia 1\" />\r\n </div>\r\n <h3>Adidas completa la colocación de 1.000 millones de euros en bonos</h3>\r\n <p>Madrid – Adidas confirmaba en el dÃa de ayer el haber terminado con éxito la colocación de una emisión de bonos por valor de 1.000 millones de euros.</p>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div className=\"footerCol borderContent\">\r\n <div className=\"innerShadow2\">\r\n <h2>NOTICIA NEGATIVA</h2>\r\n <div className=\"noticeContainer\">\r\n <div className=\"imageNotice noticeStyle2\">\r\n <img src={img02} alt=\"Noticia 2\" />\r\n </div>\r\n <h3>El Ibex cae un 1,16% tras el aumento de restricciones y el oro se refuerza</h3>\r\n <p>Madrid – Adidas confirmaba en el dÃa de ayer el haber terminado con éxito la colocación de una emisión de bonos por valor de 1.000 millones de euros.</p>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div className=\"footerCol borderContent\">\r\n <div className=\"innerShadow2\">\r\n <h2>PROGRESIÓN</h2>\r\n \r\n </div>\r\n </div> \r\n </div>\r\n \r\n \r\n \r\n \r\n </div> \r\n <div className=\"userRow\">\r\n <div className=\"innerShadow3\">\r\n <h3>DIRECTOR DE RUEDA</h3>\r\n <div className=\"userConectedTitle\">Usuarios conectados</div> \r\n <div className=\"userListSidebar\">\r\n <ul>\r\n <li>\r\n <div className=\"profileImageList\"></div>\r\n <div className=\"userNameList\"><span>#1</span> Nelly Wesley</div>\r\n <div className=\"userLastPlay\">Última jugada 06/09/2020</div>\r\n <div className=\"userArrowRight\"><i className=\"fas fa-chevron-right\"></i></div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div> \r\n<div className=\"userBtn\">\r\n <div className=\"innerShadow3\">\r\n <ul>\r\n <li><div className=\"btnCompra\">Compra </div></li>\r\n <li><div className=\"btnVenta\">Venta </div></li>\r\n <li><div className=\"btnNuevaJugada\">Nueva Jugada</div></li>\r\n </ul>\r\n </div>\r\n</div> \r\n</div>\r\n \r\n \r\n \r\n );\r\n};\r\nconst mapStateToProps = state => ({ \r\n listEventos: state.listEventos,\r\n loadingEventosPorUsr: state.loadingEventosPorUsr,\r\n currentTitle: state.currentTitle,\r\n titulosRVCount: state.titulosRVCount\r\n });\r\nexport default connect(mapStateToProps, { \r\n})(Juego);\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport UserService from \"../services/user.service\";\r\n\r\nconst BoardUser = () => {\r\n const [content, setContent] = useState(\"\");\r\n\r\n useEffect(() => {\r\n UserService.getUserBoard().then(\r\n (response) => {\r\n setContent(response.data);\r\n },\r\n (error) => {\r\n const _content =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n setContent(_content);\r\n }\r\n );\r\n }, []);\r\n\r\n return (\r\n <div className=\"container\">\r\n <header className=\"jumbotron\">\r\n <h3>{content}</h3>\r\n </header>\r\n </div>\r\n );\r\n};\r\n\r\nexport default BoardUser;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport UserService from \"../services/user.service\";\r\n\r\nconst BoardModerator = () => {\r\n const [content, setContent] = useState(\"\");\r\n\r\n useEffect(() => {\r\n UserService.getModeratorBoard().then(\r\n (response) => {\r\n setContent(response.data);\r\n },\r\n (error) => {\r\n const _content =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n setContent(_content);\r\n }\r\n );\r\n }, []);\r\n\r\n return (\r\n <div className=\"container\">\r\n <header className=\"jumbotron\">\r\n <h3>{content}</h3>\r\n </header>\r\n </div>\r\n );\r\n};\r\n\r\nexport default BoardModerator;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport UserService from \"../services/user.service\";\r\n\r\nconst BoardAdmin = () => {\r\n const [content, setContent] = useState(\"\");\r\n\r\n useEffect(() => {\r\n UserService.getAdminBoard().then(\r\n (response) => {\r\n setContent(response.data);\r\n },\r\n (error) => {\r\n const _content =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n\r\n setContent(_content);\r\n }\r\n );\r\n }, []);\r\n\r\n return (\r\n <div className=\"container\">\r\n <header className=\"jumbotron\">\r\n <h3>{content}</h3>\r\n </header>\r\n </div>\r\n );\r\n};\r\n\r\nexport default BoardAdmin;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { NotificationManager } from \"react-notifications\";\r\nimport UploadFile from \"./UploadFile\";\r\n\r\nimport { updatePerfilUsuario } from \"../../actions/administracion\";\r\nimport \"../../config\";\r\n\r\nconst Sala = (props) => {\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n let history = useHistory();\r\n const dispatch = useDispatch();\r\n const [passwordVisible, setPasswordVisible] = useState(false);\r\n\r\n let [errors] = useState({ emailErr: \"\" }, { nombreErr: \"\" }, { nickErr: \"\" });\r\n\r\n let [nombre, setNombre] = useState(\r\n currentUser !== null ? currentUser[\"Nombre\"] : \"\"\r\n );\r\n\r\n let [nick, setNick] = useState(\r\n currentUser !== null ? currentUser[\"displayName\"] : \"\"\r\n );\r\n\r\n let [email, setEmail] = useState(\r\n currentUser !== null ? currentUser[\"email\"] : \"\"\r\n );\r\n\r\n let [clave, setClave] = useState(\"\");\r\n\r\n let [uploadId, setUploadId] = useState(\r\n currentUser !== null ? currentUser[\"UploadId\"] : \"-1\"\r\n );\r\n\r\n let [fileNombre, setFileNombre] = useState(\r\n currentUser !== null ? currentUser[\"fileNombre\"] : \"\"\r\n );\r\n\r\n let [fileNombreUrl, setFileNombreUrl] = useState(\r\n currentUser !== null ? currentUser[\"fileNombreUrl\"] : \"\"\r\n );\r\n\r\n let [imagenUrl, setImagenUrl] = useState(\r\n currentUser !== null ? currentUser[\"ImagenUrl\"] : \"\"\r\n );\r\n\r\n\r\n if (!currentUser) {\r\n return <Redirect to=\"/login\" />;\r\n }\r\n const nombreRegex = /^[a-zA-ZÀ-ÖØ-öø-ÿ{Ñ}{ñ}\\s]*$/;\r\n const textoRegex = /^[a-zA-Z0-9{Ñ}{ñ}\\s]*$/;\r\n\r\n function actualizarPerfil() {\r\n let valid = true;\r\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email)) {\r\n errors[\"emailErr\"] = \"Ingrese email (example@example.com)\"\r\n valid = false;\r\n }\r\n if (nombre == \"\") {\r\n errors[\"nombreErr\"] = \"Ingrese nombre\";\r\n valid = false;\r\n }\r\n if (!nombreRegex.test(nombre)) {\r\n errors[\"nombreErr\"] = \"Ingrese solo letras\"\r\n valid = false\r\n }\r\n\r\n\r\n if (nick == \"\") {\r\n errors[\"nickErr\"] = \"Ingrese apodo\";\r\n valid = false;\r\n }\r\n if (!textoRegex.test(nick)) {\r\n errors[\"nickErr\"] = \"Ingrese solo letras y números\"\r\n valid = false\r\n }\r\n if (!valid) {\r\n return;\r\n }\r\n dispatch(\r\n updatePerfilUsuario(\r\n currentUser[\"userId\"],\r\n nombre,\r\n nick,\r\n email,\r\n clave,\r\n imagenUrl,\r\n uploadId\r\n )\r\n )\r\n .then(() => {\r\n window.location.reload();\r\n })\r\n .catch(() => { });\r\n\r\n NotificationManager.success(\r\n \"Información actualizada\",\r\n \"Sistema\",\r\n 3000,\r\n () => { },\r\n 4\r\n );\r\n closeWindow();\r\n }\r\n function closeWindow() {\r\n props.closeProfileClick();\r\n }\r\n\r\n function closeEditEmpresa() {\r\n props.closeEditEmpresa();\r\n }\r\n function reloadDocuments(file) {\r\n const result = JSON.parse(file);\r\n setUploadId(result[\"UploadId\"]);\r\n setFileNombre(result[\"fileNombre\"]);\r\n setFileNombreUrl(result[\"fileNombreUrl\"]);\r\n }\r\n\r\n const convertirBase64 = (files) => {\r\n Array.from(files).forEach(file => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let arrayImage = []\r\n let base = reader.result;\r\n arrayImage = base.split(',');\r\n setImagenUrl(arrayImage[1])\r\n\r\n\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"overlay3 fade-in\">\r\n <div className=\"borderContent ventanaPerfil\">\r\n <div className=\"innerShadow3\">\r\n <div id=\"formulario-estilo\">\r\n <h2>Configuración</h2>\r\n <div className=\"vertical-scroll customScroll\">\r\n <div className=\"columna-1-formulario-ventana-perfil-edit-evento-user\">\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nombre:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nombre}\r\n maxLength={100}\r\n placeholder=\"Ingresar nombre\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNombre(e.target.value);\r\n errors[\"nombreErr\"] = \"\";\r\n }}\r\n ></input>\r\n {errors[\"nombreErr\"] !== \"\" ? (\r\n <div className=\"camporequerido\">{errors[\"nombreErr\"]}</div>\r\n ) : (\r\n \"\"\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Nick:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n value={nick}\r\n maxLength={100}\r\n placeholder=\"Ingresar nick\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setNick(e.target.value);\r\n errors[\"nickErr\"] = \"\";\r\n }}\r\n ></input>\r\n {errors[\"nickErr\"] !== \"\" ? (\r\n <div className=\"camporequerido\">{errors[\"nickErr\"]}</div>\r\n ) : (\r\n \"\"\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Email:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"off\"\r\n type=\"email\"\r\n value={email}\r\n maxLength={100}\r\n placeholder=\"Ingresar email\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setEmail(e.target.value);\r\n errors[\"emailErr\"] = \"\";\r\n }}\r\n ></input>\r\n {errors[\"emailErr\"] !== \"\" ? (\r\n <div className=\"camporequerido\">{errors[\"emailErr\"]}</div>\r\n ) : (\r\n \"\"\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Contraseña:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n <input\r\n autocomplete=\"new-password\"\r\n type={passwordVisible ? \"text\" : \"password\"}\r\n value={clave}\r\n maxLength={500}\r\n placeholder=\"Ingresar contraseña\"\r\n className=\"input-form\"\r\n onChange={(e) => {\r\n setClave(e.target.value);\r\n\r\n }}\r\n ></input>\r\n <button className={passwordVisible ? \"fas fa-eye fa-1x\" : \"fas fa-eye-slash fa-1x\"} onClick={() => setPasswordVisible(!passwordVisible)}></button>\r\n </div>\r\n </div>\r\n <div className=\"row-form\">\r\n <div className=\"col-30\">\r\n <label>\r\n <i className=\"fas fa-edit\"></i> <span>Imagen:</span>\r\n </label>\r\n </div>\r\n <div className=\"col-70\">\r\n\r\n <input type=\"file\" className=\"boxStyleSelect\" multiple onChange={(e) => convertirBase64(e.target.files)}></input>\r\n <div className=\"boxStyleSelect\">Selecciona el archivo para subirlo</div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"dividerLine\"></div>\r\n <div className=\"textCenter\">\r\n <div className=\"btnGuardar\" onClick={actualizarPerfil}>\r\n GUARDAR\r\n </div>{\" \"}\r\n <div className=\"btnCancelar\" onClick={closeWindow}>\r\n CANCELAR\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(Sala);\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport logojunior from \"../../image/investTraderLogo.png\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { logout } from \"../../actions/auth\";\r\nimport userImage from \"../../image/profileImg.png\";\r\nimport ConfigurarUsuario from \"./ConfigurarUsuario\";\r\nimport { enableFuncionalityForRole, formatTime, secondFormatComplete, secondFormatHour, time } from \"../general/Util\";\r\nimport { getDataEventAct } from \"../../actions/administracion\";\r\nimport { connect } from 'react-redux';\r\nimport { estadoBoton } from '././ControlJuego';\r\nimport { toggleBotonApertura, toggleBotonSubasta, toggleBotonAdjudicacion } from '../../actions/controlJuego';\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { useContext } from \"react\";\r\n\r\n\r\nconst Header = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n //console.log(\"currentUser\",currentUser)\r\n //console.log(\"logo\",currentUser[\"LogoEmpresa\"])\r\n\r\n // Timer\r\n let [secondsApertura, setSecondsApertura] = useState(0);\r\n let [secondsSubasta, setSecondsSubasta] = useState(0);\r\n let [secondsAdj, setSecondsAdj] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n const { datosjuego } = useSelector(state => state.controlJuego);\r\n const [intervalReloj,setIntervalReloj] = useState(0);\r\n //console.log(datosjuego)\r\n\r\n const [dateInit,setDateInit] = useState(new Date())\r\n\r\n\r\n // termina\r\n const { eventoSeleccionado: eventoSeleccionado, pInscripcion: pInscripcion, pColocacion: pColocacion, pSubasta: pSubasta, pAdjudicacion: pAdjudicacion } = useSelector((state) => state.juego);\r\n let [insc, setInsc] = useState(null);\r\n let [colo, setColo] = useState(null);\r\n let [sub, setSub] = useState(null);\r\n let [adj, setAdj] = useState(null);\r\n const { listaDatosEvento, loadingDatosEvento } = useSelector((state) => state.administracion);\r\n let [openProfile, setOpenProfile] = useState(\"\");\r\n let [admFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_ADM\") : false);\r\n let [userRuedaFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_RUED\") : false);\r\n let [userCajaFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_CAJA\") : false);\r\n let [userLiquidacionFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_LIQUI\") : false);\r\n let [userReceptorFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_RECEP\") : false);\r\n let [userOperadorFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_OPER\") : false);\r\n let [userRegistradorFuncionality] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"FUNC_REGIS\") : false\r\n );\r\n\r\n let [userFuntion] = useState(currentUser !== null ? enableFuncionalityForRole(currentUser[\"role\"], \"USER_ORDEN\") : false);\r\n let [loadDatosEvento, setLoadDatosEvento] = useState(false)\r\n let [mostrarHora, setMostrarHora] = useState(0);\r\n let [loadCargarHora, setLoadCargarHora] = useState(false)\r\n let [loadEstado, setloadEstado] = useState(false)\r\n\r\n\r\n const [dat, setDat] = useState(\r\n window.localStorage.getItem(\"value\")\r\n )\r\n const setLocalStorage = value => {\r\n try {\r\n setDat(value)\r\n window.localStorage.setItem(\"value\", value)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n if (loadDatosEvento === false && eventoSeleccionado !== null) {\r\n setLoadDatosEvento(true)\r\n dispatch(getDataEventAct(eventoSeleccionado))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n if (listaDatosEvento !== null && eventoSeleccionado !== null && eventoSeleccionado !== undefined && loadCargarHora === false) {\r\n\r\n console.log(listaDatosEvento);\r\n setInsc(new Date(listaDatosEvento !== null && listaDatosEvento !== undefined && listaDatosEvento !== \"NaN\" ? listaDatosEvento[\"PeriodoInscripcion\"] : \"\"));\r\n setColo(new Date(listaDatosEvento !== null && listaDatosEvento !== undefined && listaDatosEvento !== \"NaN\" ? listaDatosEvento[\"PeriodoColocacion\"] : \"\"));\r\n setSub(new Date(listaDatosEvento !== null && listaDatosEvento !== undefined && listaDatosEvento !== \"NaN\" ? listaDatosEvento[\"PeriodoSubasta\"] : \"\"));\r\n setAdj(new Date(listaDatosEvento !== null && listaDatosEvento !== undefined && listaDatosEvento !== \"NaN\" ? listaDatosEvento[\"PeriodoAdjudicacion\"] : \"\"));\r\n setLoadCargarHora(true)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const timer = setInterval(() => {\r\n\r\n //let fechaActual = new Date();\r\n let fechaActual = new Date();\r\n if (fechaActual >= insc && fechaActual < colo) { setMostrarHora(mostrarHora => 1); }\r\n else if (fechaActual >= colo && fechaActual < sub) { setMostrarHora(mostrarHora => 2); }\r\n else if (fechaActual >= sub && fechaActual <= adj) { setMostrarHora(mostrarHora => 3); }\r\n else { setMostrarHora(mostrarHora => 0); }\r\n\r\n }, 1000);\r\n return () => clearInterval(timer);\r\n });\r\n\r\n useEffect(() => {\r\n clearInterval(intervalReloj)\r\n console.log(\"llegue interval>\",intervalReloj)\r\n let intertmp = setInterval(muestraReloj, 1000);\r\n setIntervalReloj(intertmp)\r\n },[dateInit])\r\n \r\n\r\n\r\n function muestraReloj() {\r\n let fechaHora = dateInit//new Date(datosjuego[\"FechaActual\"])\r\n //console.log(fechaHora)\r\n let horas = fechaHora.getHours();\r\n let minutos = fechaHora.getMinutes();\r\n let segundos = fechaHora.getSeconds();\r\n //console.log(horas)\r\n fechaHora.setSeconds(fechaHora.getSeconds() + 1);\r\n\r\n\r\n if (horas < 10) { horas = '0' + horas; }\r\n if (minutos < 10) { minutos = '0' + minutos; }\r\n if (segundos < 10) { segundos = '0' + segundos; }\r\n if (document.getElementById(\"reloj\") != undefined && document.getElementById(\"reloj\") != null ){\r\n document.getElementById(\"reloj\").innerHTML = new Date().toLocaleDateString() + ' ' + horas + ':' + minutos + ':' + segundos\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n window.onload = function () { \r\n // setInterval(pintarHora, 1000,insc,colo,sub,adj);\r\n }\r\n const logOut = (e) => {\r\n // e.preventDefault();\r\n dispatch(logout());\r\n };\r\n const openProfileClick = () => {\r\n setOpenProfile(\"OPEN\")\r\n };\r\n const closeProfileClick = () => {\r\n setOpenProfile(\"\")\r\n };\r\n \r\n useEffect(() => {\r\n let interval = null;\r\n console.log(\"setDateInit--->\")\r\n //console.log(dateInit)\r\n //if(dateInit!==null){\r\n //console.log(\"aqui\")\r\n //setInterval(muestraReloj, 1000);\r\n // }\r\n if (datosjuego) {\r\n console.log(\"aqui--->\")\r\n //console.log(dateInit)\r\n switch (datosjuego[\"EstadoEjecucion\"]) {\r\n case \"I\":\r\n setDateInit(new Date(datosjuego[\"FechaActual\"]))\r\n secondsApertura = datosjuego[\"TiempoInicioRes\"] >= 0 ? datosjuego[\"TiempoInicioRes\"] : 0\r\n setSecondsApertura(secondsApertura)\r\n interval = setInterval(() => {\r\n if (secondsApertura > 0)\r\n setSecondsApertura((secondsApertura) => secondsApertura + -1);\r\n else\r\n clearInterval(interval);\r\n }, 1000);\r\n break\r\n case \"S\":\r\n setDateInit(new Date(datosjuego[\"FechaActual\"]))\r\n secondsSubasta = datosjuego[\"PeriodoSubastaRes\"] >= 0 ? datosjuego[\"PeriodoSubastaRes\"] : 0\r\n setSecondsSubasta(secondsSubasta)\r\n interval = setInterval(() => {\r\n if (secondsSubasta > 0)\r\n setSecondsSubasta((secondsSubasta) => secondsSubasta + -1);\r\n else\r\n clearInterval(interval);\r\n }, 1000);\r\n break\r\n case \"J\":\r\n setDateInit(new Date(datosjuego[\"FechaActual\"]))\r\n secondsAdj = datosjuego[\"PeriodoAdjudicacionRes\"] >= 0 ? datosjuego[\"PeriodoAdjudicacionRes\"] : 0\r\n setSecondsAdj(secondsAdj)\r\n interval = setInterval(() => {\r\n if (secondsAdj > 0)\r\n setSecondsAdj((secondsAdj) => secondsAdj + -1);\r\n else\r\n clearInterval(interval);\r\n }, 1000);\r\n break\r\n default:\r\n break\r\n }\r\n return () => {\r\n \r\n clearInterval(interval);\r\n \r\n };\r\n \r\n }\r\n }, [datosjuego])\r\n\r\n return (\r\n <div>\r\n\r\n {openProfile === \"OPEN\" ? <ConfigurarUsuario closeProfileClick={closeProfileClick} openProfile={openProfile} /> : \"\"}\r\n {currentUser ? (\r\n <div className=\"crypt-header\">\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-4 col-sm-5\">\r\n <div className=\"row\">\r\n <div className=\"col-xs-2\">\r\n <div className=\"crypt-logo\">\r\n <img src={logojunior} alt=\"Logo Marca 1\" />\r\n\r\n {currentUser[\"LogoEmpresa\"] !== undefined && currentUser[\"LogoEmpresa\"] !== \"\" && currentUser[\"LogoEmpresa\"] !== 1 && currentUser[\"LogoEmpresa\"] !== null ?\r\n (<img className=\"logoempresa\" src={`data:image/png;base64, ${currentUser[\"LogoEmpresa\"]}`} alt=\"LogoEmpresa\" />)\r\n : \"\"}\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div className=\"col-xl-8 col-lg-8 col-md-8 d-none d-md-block d-lg-block\">\r\n\r\n <ul className=\"crypt-heading-menu fright\">\r\n <li className=\"crypt-box-menu\">\r\n <div className=\"profileContainer\">\r\n <div className=\"userPicture\">\r\n\r\n <Menu menuButton={\r\n <MenuButton><i className=\"far fa-user fa-2x\" ></i></MenuButton>}>\r\n <MenuItem onClick={openProfileClick} >\r\n <i className=\"fas fa-address-card\"></i>Perfil\r\n </MenuItem>\r\n <MenuItem onClick={logOut}>\r\n <i className=\"fas fa-sign-out-alt\"></i>Salir\r\n </MenuItem>\r\n\r\n </Menu>\r\n </div>\r\n\r\n <div className=\"userInfo\">\r\n\r\n\r\n {userOperadorFuncionality === true || userRegistradorFuncionality === true ?\r\n <div>\r\n <span>Empresa: </span>{currentUser[\"NombreEmpresa\"].toUpperCase()}\r\n </div>\r\n :\r\n <span></span>}\r\n\r\n {userOperadorFuncionality === true || userRegistradorFuncionality === true ?\r\n <div>\r\n <span>Colegio: </span>\r\n {currentUser[\"NombreInstitucion\"].toUpperCase()}\r\n </div>\r\n : <span></span>}\r\n\r\n\r\n <div>\r\n <span>Usuario: </span>\r\n {currentUser !== null ? currentUser[\"Nombre\"].toUpperCase() : \"\"}\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n\r\n {listaDatosEvento !== null ?\r\n <li className=\"crypt-box-menu\">\r\n <div className=\"blockContainer\">\r\n <div>\r\n <span>Evento: </span>\r\n <span>{listaDatosEvento !== null && listaDatosEvento !== undefined ? listaDatosEvento[\"NombreEvento\"] : \"\"}</span>\r\n </div>\r\n <div className={[datosjuego && datosjuego[\"EstadoEjecucion\"] === \"I\" ? \"color-header\" : \"\"].join(' ')}>\r\n <span>Apertura:</span>\r\n {listaDatosEvento !== null && listaDatosEvento !== undefined ? formatTime(listaDatosEvento[\"PeriodoInscripcion\"]) : \"\"}\r\n </div>\r\n <div className={[datosjuego && datosjuego[\"EstadoEjecucion\"] === \"S\" ? \"color-header\" : \"\"].join(' ')}>\r\n <span>Subasta:</span>\r\n {listaDatosEvento !== null && listaDatosEvento !== undefined ? formatTime(listaDatosEvento[\"PeriodoSubasta\"]) : \"\"}\r\n </div>\r\n <div className={[datosjuego && datosjuego[\"EstadoEjecucion\"] === \"J\" ? \"color-header\" : \"\"].join(' ')}>\r\n <span>Adjudicación:</span>\r\n {listaDatosEvento !== null && listaDatosEvento !== undefined ? formatTime(listaDatosEvento[\"PeriodoAdjudicacion\"]) : \"\"}\r\n </div>\r\n </div>\r\n\r\n </li>\r\n :\r\n <li className=\"crypt-box-menu\">\r\n <div className=\"blockContainer\">\r\n <div>\r\n\r\n <span>Evento:</span>\r\n </div>\r\n <div>\r\n <span>Apertura:</span>\r\n </div>\r\n <div>\r\n <span>Subasta:</span>\r\n </div>\r\n <div>\r\n <span>Adjudicación:</span>\r\n\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n <li className=\"crypt-box-menu\">\r\n <div className=\"timeContainer\">\r\n <div className=\"timeTxt\">\r\n <div>Fecha Hora:</div>\r\n <div>Tiempo restante:</div>\r\n </div>\r\n <div className=\"continertime\">\r\n\r\n <div id=\"reloj\" className={[\"time\"].join(' ')}></div>\r\n <div className={[\"time\", datosjuego && datosjuego[\"EstadoEjecucion\"] === \"F\" ? \"red-color\" : \"\"].join(' ')}>\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"I\" ? secondFormatComplete(secondsApertura) : \"\"}\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"S\" ? secondFormatComplete(secondsSubasta) : \"\"}\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"J\" ? secondFormatComplete(secondsAdj) : \"\"}\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"F\" ? \"FINALIZADO\" : \"\"}\r\n {datosjuego && datosjuego[\"EstadoEjecucion\"] === \"\" || datosjuego[\"EstadoEjecucion\"] === null ? \"NO INICIADO\" : \"\"}\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <i className=\"menu-toggle pe-7s-menu d-xs-block d-sm-block d-md-none d-sm-none\"></i>\r\n </div>\r\n </div>\r\n ) : (\r\n <div></div>\r\n )}\r\n\r\n </div>\r\n );\r\n};\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n\r\n segundosApertura: state.juego.segundosApertura,\r\n segundosSubasta: state.juego.segundosSubasta,\r\n segundosAdjudicacion: state.juego.segundosAdjudicacion,\r\n});\r\nexport default connect(mapStateToProps, {\r\n})(Header);\r\n\r\n\r\n","import React, { useState,useEffect} from \"react\";\r\nimport { Redirect,useHistory } from 'react-router-dom';\r\nimport { connect,useDispatch,useSelector } from \"react-redux\";\r\n\r\n\r\nimport audCampana from '../audio/campana.mp3'\r\n\r\nconst AperturaRueda = (props) => {\r\n const { user: currentUser } = useSelector((state) => state.auth); \r\n \r\n let refLoading = React.createRef(); \r\n let history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n if (!currentUser) {\r\n return <Redirect to=\"/login\" />;\r\n }else{\r\n setTimeout(()=>{\r\n //history.push('/juego')\r\n },5000)\r\n }\r\n\r\n\r\n return (\r\n <div>\r\n <audio src={audCampana} autoPlay={true} playsInline></audio>\r\n <div className=\"title-apertura\">\r\n <div className=\"customBoxAviso\">\r\n <div className=\"innerShadow\">\r\n Apertura de rueda bursatil\r\n </div>\r\n </div>\r\n </div>\r\n <div className='apertura-cont-img'>\r\n <div className=\"ringing-bell\"><i class=\"fas fa-bell campanaIcon animated faa-ring animated fa-5x\"></i></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = state => ({ \r\n});\r\nexport default connect(mapStateToProps, { \r\n})(AperturaRueda);","import React, { Component} from \"react\";\r\n\r\nclass NoJuego extends Component { \r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n }\r\n }\r\n \r\n render() { \r\n return (\r\n <div className='nojuego'> \r\n <div className=\"customBoxAviso\">\r\n <div className=\"innerShadow\">\r\n No tienes juegos disponibles\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default NoJuego;","import React, { useState, useRef } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport logojunior from \"../image/investTraderLogo.png\";\r\nimport { sendEmailPassword } from \"../actions/user\";\r\nimport { NotificationContainer, NotificationManager } from \"react-notifications\";\r\nimport Form from \"react-validation/build/form\";\r\nimport Input from \"react-validation/build/input\";\r\n\r\nconst required = (value) => {\r\n if (!value) {\r\n return (\r\n <div className=\"alert alert-danger\" role=\"alert\">\r\n Campo requerido!\r\n </div>\r\n );\r\n\r\n }\r\n};\r\n\r\nconst Login = (props) => {\r\n const form = useRef();\r\n const dispatch = useDispatch();\r\n let [email, setEmail] = useState(null);\r\n let [errors] = useState({ \"emailErr\": \"\" });\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onChangeEmail = (e) => {\r\n const email = e.target.value;\r\n setEmail(email);\r\n };\r\n\r\n\r\n\r\n const recuperarClave = (e) => {\r\n e.preventDefault();\r\n let valid = true\r\n\r\n dispatch(sendEmailPassword(email))\r\n .then(() => {\r\n\r\n })\r\n .catch(() => {\r\n setLoading(false);\r\n\r\n });\r\n setEmail('');\r\n }\r\n // if (!valid) {\r\n // return\r\n // }\r\n // }\r\n\r\n return (\r\n <div>\r\n <header>\r\n <div className=\"container-full-width\">\r\n <div className=\"crypt-header\">\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-4 col-sm-5\">\r\n <div className=\"row\">\r\n <div className=\"col-xs-2\">\r\n <div className=\"crypt-logo\">\r\n <img src={logojunior} alt=\"Logo\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-xl-8 col-lg-8 col-md-8 d-none d-md-block d-lg-block\">\r\n <ul className=\"crypt-heading-menu fright\">\r\n <li className=\"crypt-box-menu menu-green\"><a href=\"/\">Iniciar sesión</a></li>\r\n {/*<li className=\"crypt-box-menu menu-red\"><a href=\"register\">RegÃÂstrate</a></li>*/}\r\n\r\n </ul>\r\n </div>\r\n <i className=\"menu-toggle pe-7s-menu d-xs-block d-sm-block d-md-none d-sm-none\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-3\"></div>\r\n <div className=\"col-md-6\">\r\n <div className=\"cryptorio-forms cryptorio-forms-dark text-center pt-5 pb-5\">\r\n <div className=\"logo\">\r\n <img src={logojunior} alt=\"Logo\" />\r\n </div>\r\n <h3 className=\"p-4\">Recuperar contraseña</h3>\r\n <div className=\"cryptorio-main-form\">\r\n\r\n <Form onSubmit={recuperarClave} ref={form} className=\"text-left\">\r\n <label className=\"label-credenciales\" for=\"email\">Ingrese su correo electrónico</label>\r\n <Input\r\n \r\n type=\"email\"\r\n value={email}\r\n maxLength={300}\r\n required\r\n placeholder=\"Correo electrónico\"\r\n className=\"input-credenciales\"\r\n //validations={[required]}\r\n onChange={onChangeEmail}\r\n ></Input>\r\n <button className=\"inputIniciarSesion crypt-button-red-full\" disabled={loading} >\r\n {loading && (\r\n <span className=\"spinner-border spinner-border-sm\"></span>\r\n )}\r\n <span>Enviar</span>\r\n </button>\r\n </Form>\r\n <p className=\"float-left-recuperar\">\r\n <a href=\"/login\">Regresar al Login</a>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-3\"></div>\r\n </div>\r\n </div>\r\n <NotificationContainer />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Login;","import {NotificationManager} from \"react-notifications\";\r\nimport {\r\n \r\n SEND_EMAIL_PASSWORD,\r\n SEND_EMAIL_PASSWORD_FAIL\r\n} from \"./types\";\r\n \r\nimport UserService from \"../services/user.service\";\r\n\r\nexport const sendEmailPassword = (email) => (dispatch) => {\r\n \r\n return UserService.getPassword(email).then(\r\n (response) => {\r\n if(response===0){\r\n \r\n dispatch({\r\n type: SEND_EMAIL_PASSWORD,\r\n }); \r\n NotificationManager.success(\r\n \"Se ha enviado una notificación a su correo!\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n ); \r\n }else if(response ===-1){ \r\n dispatch({\r\n type: SEND_EMAIL_PASSWORD_FAIL,\r\n });\r\n NotificationManager.error(\r\n \"Error, no se encontró el correo\",\r\n \"Sistema\",\r\n 3000,\r\n () => {},\r\n 4\r\n );\r\n } \r\n return Promise.resolve();\r\n },\r\n (error) => {\r\n const message =\r\n (error.response &&\r\n error.response.data &&\r\n error.response.data.message) ||\r\n error.message ||\r\n error.toString();\r\n dispatch({\r\n type: SEND_EMAIL_PASSWORD_FAIL,\r\n });\r\n \r\n return Promise.reject();\r\n }\r\n );\r\n };\r\n \r\n \r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport DataGrid, { Column } from '@inovua/reactdatagrid-community';\r\nimport '@inovua/reactdatagrid-community/base.css';\r\nimport '@inovua/reactdatagrid-community/theme/amber-dark.css';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu';\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { formatDateTime, formatTime } from \"./general/Util\";\r\nimport { getTodoEventoAct } from \"../actions/administracion\";\r\nimport { setStatusByKey } from \"../actions/juego\";\r\n\r\nimport \"../config\";\r\nimport { NotificationContainer, NotificationManager } from \"react-notifications\";\r\n\r\n\r\nconst ElegirEvento = (props) => {\r\n\r\n\r\n let history = useHistory();\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const { eventoSeleccionado: eventoSeleccionado } = useSelector((state) => state.juego);\r\n const [eventoSeleccionadoId, setEventoSeleccionadoId] = useState(-1)\r\n\r\n // nuevo minHeight: '300px', height: \"100%\"\r\n const [empresaSeleccionada, setEmpresaSeleccionada] = useState();\r\n //\r\n const gridStyle = { minHeight: '100vh', height: \"100%\" }\r\n const { listaTodosLosEventos } = useSelector((state) => state.administracion);\r\n //console.log(\"listaTodosLosEventos\", listaTodosLosEventos)\r\n let [loadTodosLosEventos, setLoadTodosLosEventos] = useState(false)\r\n let [list, setList] = useState([]);\r\n\r\n if (loadTodosLosEventos === false) {\r\n setLoadTodosLosEventos(true)\r\n dispatch(getTodoEventoAct(currentUser[\"userId\"], currentUser[\"role\"]))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n let [empresaFilter, setEmpresaFilter] = useState(\"\");\r\n let [gridInfor, setGridInfor] = useState([listaTodosLosEventos !== null ? listaTodosLosEventos : []]);\r\n\r\n if (listaTodosLosEventos !== null && listaTodosLosEventos != gridInfor && empresaFilter === \"\") {\r\n setGridInfor(listaTodosLosEventos)\r\n\r\n\r\n //agg\r\n if (listaTodosLosEventos.length == 1) {\r\n //setList(listaTodosLosEventos[0]);\r\n console.log(listaTodosLosEventos[0])\r\n setEventoSeleccionadoId(parseInt(listaTodosLosEventos[0][\"EventoId\"]))\r\n console.log(eventoSeleccionadoId)\r\n\r\n dispatch(setStatusByKey(\"eventoSeleccionado\",parseInt(listaTodosLosEventos[0][\"EventoId\"])))\r\n\r\n history.push('/sala')\r\n window.location.reload();\r\n }\r\n // hasta aqui\r\n\r\n }\r\n \r\n\r\n function filterCatalogo(nego, empresaFilter) {\r\n //value => \r\n setGridInfor(nego.filter(function (item) {\r\n if (item[\"NombreEvento\"].toLowerCase().includes(empresaFilter.toLocaleLowerCase()))\r\n return true;\r\n return false;\r\n }))\r\n }\r\n function closeEvento() {\r\n props.closeEventoClick()\r\n }\r\n\r\n function formatEstado(estado) {\r\n switch (estado) {\r\n case \"A\":\r\n return \"ACTIVO\"\r\n case \"\":\r\n return \"\"\r\n }\r\n\r\n }\r\n\r\n function formatModalidad(modalidad) {\r\n switch (modalidad) {\r\n case 1:\r\n return \"VIRTUAL\"\r\n case 2:\r\n return \"SEMIPRESENCIAL\"\r\n case 3:\r\n return \"MANUAL\"\r\n\r\n }\r\n }\r\n let columns = [\r\n\r\n /*{ name: 'EventoId', type: 'number', defaultWidth: 80 },*/\r\n { name: 'NombreEvento', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>EVENTO</div>), defaultFlex: 1, xdefaultLocked: 'end', minWidth: 500 },\r\n { name: 'FechaSubasta', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>FECHA SUBASTA</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => formatDateTime(data[\"FechaSubasta\"]) },\r\n { name: 'ModalidadId', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>MODALIDAD</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => formatModalidad(data[\"ModalidadId\"]) },\r\n { name: 'Estado', header: () => (<div style={{ textAlign: \"center\", fontSize: \"13px\" }}>ESTADO</div>), defaultFlex: 1, xdefaultLocked: 'end', render: ({ data }) => data != null ? formatEstado(data[\"Estado\"]) : \"\" },\r\n ]\r\n const renderRowContextMenu = useCallback((menuProps, { rowProps }) => {\r\n menuProps.autoDismiss = true\r\n menuProps.items = [\r\n {\r\n label: 'Ir a evento',\r\n onClick: () => {\r\n setEventoSeleccionadoId(rowProps.data[\"EventoId\"])\r\n dispatch(setStatusByKey(\"eventoSeleccionado\", parseInt(rowProps.data[\"EventoId\"])))\r\n history.push('/sala')\r\n window.location.reload();\r\n }\r\n },\r\n ]\r\n }, [])\r\n\r\n\r\n if (!currentUser) {\r\n return <Redirect to=\"/login\" />;\r\n }\r\n return (\r\n <div>\r\n <div>\r\n <h6 className=\"crypt-bg-head\">BUSCAR EVENTO\r\n <div className='floatright'>\r\n <div className=\"filterNeg\"><input type=\"text\" placeholder=\"Filtrar\" value={empresaFilter} onChange={(e) => {\r\n setEmpresaFilter(e.target.value);\r\n filterCatalogo(listaTodosLosEventos !== null ? listaTodosLosEventos : [], e.target.value)\r\n }} /> <i className=\"fas fa-search\"></i>\r\n </div>\r\n </div>\r\n </h6>\r\n </div>\r\n\r\n <div className=\"tab-content\">\r\n <DataGrid\r\n idProperty=\"EventoId\"\r\n style={gridStyle}\r\n columns={columns}\r\n enableSelection={true}\r\n selection={{ mode: \"single\" }}\r\n dataSource={gridInfor}\r\n renderRowContextMenu={renderRowContextMenu}\r\n theme=\"amber-dark\"\r\n stickyHeader={true}\r\n\r\n />\r\n <div className=\"no-orders text-center\"></div>\r\n </div>\r\n <NotificationContainer />\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(ElegirEvento);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport ElegirEvento from \"./ElegirEvento\";\r\nimport Sala from \"./Sala\";\r\nimport { connect, useDispatch, useSelector } from \"react-redux\";\r\nimport { NotificationManager } from \"react-notifications\";\r\nimport \"@szhsin/react-menu/dist/index.css\";\r\nimport '@szhsin/react-menu/dist/index.css';\r\nimport { getTodoEventoAct } from \"../actions/administracion\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst SeleccionarEvento = (props) => {\r\n const dispatch = useDispatch();\r\n const { user: currentUser } = useSelector((state) => state.auth);\r\n const { listaTodosLosEventos } = useSelector((state) => state.administracion);\r\n\r\n \r\n let [loadTodosLosEventos, setLoadTodosLosEventos] = useState(false)\r\n\r\n if (loadTodosLosEventos === false) {\r\n setLoadTodosLosEventos(true)\r\n dispatch(getTodoEventoAct(currentUser[\"userId\"], currentUser[\"role\"]))\r\n .then(() => {\r\n })\r\n .catch(() => {\r\n });\r\n\r\n\r\n }\r\n\r\n \r\n \r\n\r\n \r\n\r\n// if (listaTodosLosEventos===null) {\r\n // return <Redirect to=\"/sala\" />;\r\n // }else{\r\n // return <Redirect to=\"/elegirEvento\" />;\r\n // }\r\n\r\n\r\n return (\r\n\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row sm-gutters\">\r\n <div className=\"col-xl-12\">\r\n <div className=\"crypt-market-status\">\r\n {/*{listaTodosLosEventos !== null ? <ElegirEvento/> : <Sala/>}*/}\r\n\r\n\r\n <ElegirEvento />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n );\r\n};\r\nconst mapStateToProps = (state) => ({});\r\nexport default connect(mapStateToProps, {})(SeleccionarEvento);\r\n","import { createBrowserHistory } from \"history\";\r\n\r\nexport const history = createBrowserHistory();\r\n","import React, { useState, useEffect } from \"react\";\r\nimport '../config'\r\nimport logojunior from '../image/investTraderLogo.png';\r\n\r\nconst CondicionesLegales = (props) => {\r\n\r\n let [loadCssClass, setLoadCssClass] = useState(true);\r\n\r\n if (loadCssClass === true) {\r\n setLoadCssClass(false)\r\n document.getElementById('root').classList.add(\"root-fn\");\r\n }\r\n\r\n return (\r\n <div>\r\n <header>\r\n <div className=\"container-full-width\">\r\n <div className=\"crypt-header\">\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-4 col-sm-5\">\r\n <div className=\"row\">\r\n <div className=\"col-xs-2\">\r\n <div className=\"crypt-logo\"><img src={logojunior} alt=\"Logo\" /></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-xl-8 col-lg-8 col-md-8 d-none d-md-block d-lg-block\">\r\n <ul className=\"crypt-heading-menu fright\">\r\n\r\n {/*<li className=\"crypt-box-menu menu-red\"><a href=\"register\">RegÃstrate</a></li>*/}\r\n\r\n </ul>\r\n </div>\r\n <i className=\"menu-toggle pe-7s-menu d-xs-block d-sm-block d-md-none d-sm-none\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"crypt-mobile-menu\">\r\n <ul className=\"crypt-heading-menu\">\r\n <li className=\"crypt-box-menu menu-green\"><a href=\"\">RegÃstrate</a></li>\r\n <li className=\"crypt-box-menu menu-red\"><a href=\"\">Iniciar sesión</a></li>\r\n\r\n </ul>\r\n <div className=\"crypt-gross-market-cap\">\r\n <h5>$34.795.90 <span className=\"crypt-up pl-2\">+3.435 %</span></h5>\r\n <h6>0.7925.90 BTC <span className=\"crypt-down pl-2\">+7.435 %</span></h6></div>\r\n </div>\r\n </header>\r\n <div className='fade-in'>\r\n <div className=\"overlay2\">\r\n <div className=\"winContainer-nopos\">\r\n <div className=\"borderContent\">\r\n <div className=\"innerShadow2 condiciones\">\r\n <p className=\"condiciones-titulo\"><b>POLÃTICA EN MATERIA DE PROTECCIÓN DE DATOS PARA SERVICIOS DE CAPACITACIÓN Y EVENTOS</b></p>\r\n <p>\r\n La Bolsa de Valores de Quito (En adelante BVQ), con el objetivo de aplicar las\r\n disposiciones, polÃticas y principios contenidos en la Ley de Protección de Datos\r\n Personales (En adelante LODP), en el tratamiento de la información proporcionada por\r\n usuarios de capacitación o eventos, informa:\r\n </p>\r\n <ul className=\"custom-list\">\r\n <li>La BVQ reconoce sus obligaciones en calidad de responsable del tratamiento de\r\n datos personales contenidas en la LOPD y normativa secundaria en la materia, al\r\n recopilar datos personales directamente o por medio de la Institución solicitante,\r\n previo consentimiento expreso de sus titulares.</li>\r\n <li>El tratamiento de datos personales se sustenta en el consentimiento expreso de\r\n los usuarios, de una misión realizada en interés público y en el ejercicio de\r\n facultades conferidas a la BVQ por la Ley.</li>\r\n <li>Que la BVQ, para el adecuado desarrollo de sus actividades podrá requerir datos\r\n de sus clientes y cualquier otro Usuario que, de manera directa o indirecta, tenga\r\n relación con la BVQ.</li>\r\n <li>Que la BVQ podrá recoger, recopilar, registrar, organizar, estructurar, conservar,\r\n custodiar, modificar, consultar, utilizar, aprovechar, comunicar o transferir los datos\r\n personales del Titular, con la finalidad de dar cumplimiento a las obligaciones\r\n legales adquiridas.</li>\r\n <li>Tratará los Datos Personales de los Titulares para los propósitos establecidos en\r\n la regulación societaria y tributaria, en estricto apego a la Ley Orgánica de\r\n Protección de Datos Personales.</li>\r\n <li>La BVQ adoptará mecanismos de seguridad para la protección de datos\r\n personales a los que tenga acceso y por ende sujetarse al principio de seguridad\r\n de datos personales y por lo tanto implementará las medidas necesarias y a su\r\n alcance para asegurar la confidencialidad, integridad, seguridad y disponibilidad de\r\n los datos de su Titular.</li>\r\n <li>La BVQ ha implementado mecanismos de verificación, evaluación y valoración\r\n continua y permanente de la eficiencia, eficacia y efectividad de las medidas de\r\n carácter técnico, organizativo, con el objeto de garantizar y mejorar la seguridad\r\n del tratamiento de datos personales.</li>\r\n <li>Que en el ejercicio de sus derechos puede solicitar a la BVQ el acceso,\r\n rectificación, actualización, eliminación, oposición o suspensión del tratamiento de\r\n sus datos personales de conformidad con la ley vigente.</li>\r\n <li>La información y los medios para recopilar la información de los usuarios de\r\n capacitación, será por medio de: Formularios o fichas de inscripción en Excel;\r\n Base de datos puntopagobvq.com; Correo Electrónico; WhatsApp; Formulario de\r\n registro de asistencias a capacitaciones o eventos; Formularios electrónicos en\r\n aplicativos webs o transferencia de sus datos personales por medio de la\r\n Institución en la que labora o estudia y que haya solicitado los servicios y\r\n productos que ofrece la BVQ.</li>\r\n </ul>\r\n <p className=\"condiciones-titulo\"><b>DECLARACIONES DEL USUARIO DE CAPACITACIONES O EVENTOS</b></p>\r\n <p>\r\n En calidad de Titular de los Datos Personales o de responsable de los datos\r\n personales de las personas naturales para las que se solicitan los servicios ofrecidos\r\n por la BVQ, declara lo siguiente:\r\n </p>\r\n\r\n <ul className=\"custom-list\">\r\n <li>De forma expresa ha consentido en la comunicación de los datos personales a la\r\n BVQ, para sus fines determinados o en su defecto otorga su consentimiento para\r\n el tratamiento de sus datos personales, en caso de ser provistos, para los fines\r\n que la BVQ determine, de conformidad con la PolÃtica en la materia; y, reconoce\r\n que dicha manifestación de voluntad es libre, especÃfica, informada e inequÃvoca.</li>\r\n <li>Que ha consentido para que la BVQ trate bases de datos públicos o privados en\r\n las que se incluya sus Datos Personales, en caso de ser provistos.</li>\r\n <li>Reconoce que la BVQ le ha informado sobre los fines del tratamiento de los datos\r\n personales aquà proporcionados, en aplicación del principio de transparencia; y\r\n sobre los cuales brinda su expresa autorización y que serán utilizados para:\r\n \r\n <ul className=\"sub-list-interno\">\r\n <li>Recopilación de Comunicación de productos y servicios de la BVQ.</li>\r\n <li>Utilización de información para fines estadÃsticos (elaboración de perfiles) y/o\r\n de investigación.</li>\r\n <li>Recopilación de información en bases o repositorios de datos.</li>\r\n <li>Información promocional respecto a capacitaciones, invitación a eventos\r\n organizados o patrocinados directa o indirectamente por la BVQ; y, demás\r\n fines comerciales acordes con la normativa vigente.</li>\r\n <li>Transferencia de datos a cualquier tercero, incluyendo, pero sin limitarse a\r\n autoridades judiciales, entidades de control, y empresas asociadas o filiales de\r\n BVQ, para el cumplimiento de fines directamente relacionados con las\r\n funciones legÃtimas de BVQ y del tercero destinatario.</li>\r\n <li>Facturación en el caso de capacitaciones que tienen un costo para el Usuario.</li>\r\n <li>En el caso de información de estudiantes recopilada para el uso de la\r\n herramienta “Juego de Bolsaâ€, la información únicamente tendrá como fin el\r\n asignar un usuario y contraseña para la utilización del aplicativo tecnológico “el\r\n Juego de Bolsaâ€.</li>\r\n </ul>\r\n </li>\r\n <li>Reconoce que, en el Titular de sus Datos Personales, podrá hacer efectivos sus\r\n derechos de acceso, eliminación, rectificación y actualización, oposición, anulación\r\n y limitación del tratamiento.</li>\r\n <li>Reconoce que el titular de los datos personales podrá, en cualquier momento y de\r\n forma gratuita, presentar requerimientos, peticiones, quejas o reclamaciones\r\n directamente al Responsable del Tratamiento, a través de la información de\r\n contacto que se encuentra a disposición en el portal web de la BVQ.</li>\r\n\r\n </ul>\r\n <p className=\"sub-list\"><b>BASE LEGAL</b></p>\r\n <p>\r\n El usuario de capacitaciones o eventos reconoce que la base legal que sustenta los\r\n procesos de recopilación de datos personales es la siguiente:\r\n </p>\r\n <p>\r\n En materia de mercado de valores:\r\n </p>\r\n <ul className=\"sub-list\">\r\n <li>Libro II del Código Orgánico Monetario y Financiero</li>\r\n <li>Reglamento a la Ley de Mercado de Valores</li>\r\n <li>Codificación de Regulaciones de la Junta de PolÃtica y Regulación\r\n Financiera</li>\r\n <li>Reglamento General Conjunto de las Bolsas de Valores de Quito y\r\n Guayaquil</li>\r\n <li>Reglamento General de la Bolsa de Valores de Quito</li>\r\n </ul>\r\n <p>\r\n En materia de prevención de lavado de activos:\r\n </p>\r\n <ul className=\"sub-list\">\r\n <li>ArtÃculo 1 de la Ley Orgánica Reformatoria de Prevención detección y\r\n erradicación del Lavado de Activos</li>\r\n <li>ArtÃculo 2 del Reglamento Ley de Lavado de Activos Y del Financiamiento\r\n de Delitos</li>\r\n <li>ArtÃculo 2, y 3 de la Resolución No. JPRF-V-2022-024</li>\r\n <li>ArtÃculo 1 de la Resolución SCVS-DNPLA-006-2022</li>\r\n\r\n </ul>\r\n <p>\r\n En materia tributaria para procesos de facturación:\r\n </p>\r\n <ul className=\"sub-list\">\r\n <li>Ley Orgánica de Régimen Tributario Interno</li>\r\n <li>Reglamento de Comprobantes de Venta, Retención y Complementarios</li>\r\n </ul>\r\n <p className=\"sub-list\"><b>CONSERVACIÓN</b></p>\r\n <p>\r\n La información es conservada para el tratamiento durante el tiempo que requiera el\r\n servicio solicitado y podrá ser almacenada de manera ampliada por hasta 10 años,\r\n previo consentimiento de los titulares, para la promoción de productos, servicios y\r\n archivo estadÃstico de la BVQ.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\nexport default CondicionesLegales;","import React, { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Router, Switch, Route} from \"react-router-dom\";\r\n\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"./App.css\";\r\nimport 'react-notifications/lib/notifications.css';\r\nimport Login from \"./components/Login\";\r\nimport Register from \"./components/Register\";\r\nimport Sala from \"./components/Sala\";\r\nimport Juego from \"./components/Juego\";\r\nimport BoardUser from \"./components/BoardUser\";\r\nimport BoardModerator from \"./components/BoardModerator\";\r\nimport BoardAdmin from \"./components/BoardAdmin\";\r\nimport Header from \"./components/general/Header\";\r\nimport AperturaRueda from \"./components/AperturaRueda\";\r\nimport NoJuego from \"./components/errors/NoJuego\"\r\nimport Recuperar from \"./components/Recuperar\";\r\nimport SeleccionarEvento from \"./components/SeleccionarEvento\";\r\nimport { clearMessage } from \"./actions/message\";\r\n\r\nimport { history } from \"./helpers/history\";\r\nimport ElegirEvento from \"./components/ElegirEvento\";\r\nimport CondicionesLegales from \"./components/CondicionesLegales\";\r\n\r\nconst App = () => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n history.listen((location) => {\r\n dispatch(clearMessage()); // clear message when changing location\r\n });\r\n }, [dispatch]);\r\n\r\n return (\r\n <Router history={history}>\r\n <div className=\"mainContainer style1\">\r\n <Header></Header>\r\n <div>\r\n <Switch>\r\n <Route exact path={[\"/\", \"/home\"]} component={Login} />\r\n <Route exact path=\"/login\" component={Login} />\r\n <Route exact path=\"/register\" component={Register} />\r\n <Route exact path=\"/recuperar\" component={Recuperar} />\r\n <Route exact path=\"/sala\" component={Sala} />\r\n <Route exact path=\"/juego\" component={Juego} />\r\n <Route exact path=\"/apertura\" component={AperturaRueda} />\r\n <Route exact path=\"/nojuegos\" component={NoJuego} />\r\n <Route exact path=\"/elegirEvento\" component={ElegirEvento} />\r\n <Route exact path=\"/seleccionarEvento\" component={SeleccionarEvento} />\r\n <Route path=\"/user\" component={BoardUser} />\r\n <Route path=\"/mod\" component={BoardModerator} />\r\n <Route path=\"/admin\" component={BoardAdmin} />\r\n <Route path=\"/condiciones\" component={CondicionesLegales} />\r\n \r\n </Switch>\r\n </div>\r\n </div>\r\n </Router>\r\n );\r\n};\r\n\r\nexport default App;\r\n","import { SET_MESSAGE, CLEAR_MESSAGE } from \"./types\";\r\n\r\nexport const setMessage = (message) => ({\r\n type: SET_MESSAGE,\r\n payload: message,\r\n});\r\n\r\nexport const clearMessage = () => ({\r\n type: CLEAR_MESSAGE,\r\n});\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./store\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\nReactDOM.render(\r\n <Provider store={store}>\r\n <App />\r\n </Provider>,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can chaÄ‘inge\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React, { useState,useEffect} from \"react\";\r\n\r\nconst ProgressBar = (props) => {\r\n const { bgcolor, completed } = props;\r\n\r\n const containerStyles = {\r\n height: 20,\r\n width: '100%',\r\n backgroundColor: \"#FFF\",\r\n borderRadius: 50,\r\n margin: 50,\r\n transition: 'width 1s ease-in-out'\r\n }\r\n\r\n const fillerStyles = {\r\n height: '100%',\r\n width: `${completed}%`,\r\n //maxWidth:'100%',\r\n backgroundColor: bgcolor,\r\n borderRadius: 'inherit',\r\n textAlign: 'right'\r\n }\r\n\r\n const labelStyles = {\r\n padding: 5,\r\n color: 'white',\r\n fontWeight: 'bold'\r\n }\r\n return (\r\n <div style={containerStyles}>\r\n <div style={fillerStyles}>\r\n <span style={labelStyles}>{`${completed}%`}</span>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProgressBar;","import React, { Component} from \"react\";\r\nimport Loading from \"./ProgressBar\";\r\n\r\nclass LoadingContainer extends Component { \r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n completed:0\r\n }\r\n if(this.props.autoplay){\r\n this.restartLoading()\r\n }\r\n }\r\n restartLoading(){\r\n this.setState({completed:0})\r\n setInterval(() => {\r\n if(this.state.completed<100){\r\n this.setState({completed:this.state.completed + 1})\r\n } \r\n }, 1000);\r\n }\r\n\r\n render() { \r\n return (\r\n <div className='salaloading'> \r\n <Loading bgcolor={\"#28ba00\"} completed={this.state.completed} autoplay={this.props.autoplay}/>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default LoadingContainer;","import axios from \"axios\";\r\nimport authHeader from \"./auth-header\";\r\n\r\nrequire('dotenv').config()\r\n \r\n\r\nconst API_URL = process.env.URL_SERVICE;// \"http://localhost:8080/api/test/\";\r\n\r\n// recuperar clave getPassword\r\nconst getPassword =(email) =>{\r\n const params = {\"strEmail\":email}\r\n return axios \r\n .post(global.config.URL_SERVICE + \"RecuperarClave\", params,{headers: {'Content-Type': 'application/json; charset=utf-8',}})\r\n .then((response) => {\r\n let itemR = response[\"data\"].split(\"\\\\\\\"\").join(\"\\\"\"); \r\n const result = JSON.parse(itemR);\r\n return result; \r\n });\r\n}\r\n\r\nconst getPublicContent = () => {\r\n return axios.get(API_URL + \"all\");\r\n};\r\n\r\nconst getUserBoard = () => {\r\n return axios.get(API_URL + \"user\", { headers: authHeader() });\r\n};\r\n\r\nconst getModeratorBoard = () => {\r\n return axios.get(API_URL + \"mod\", { headers: authHeader() });\r\n};\r\n\r\nconst getAdminBoard = () => {\r\n return axios.get(API_URL + \"admin\", { headers: authHeader() });\r\n};\r\n\r\nexport default {\r\n getPublicContent,\r\n getUserBoard,\r\n getModeratorBoard,\r\n getAdminBoard,\r\n getPassword\r\n};","export const toggleValueApertura = () => {\r\n return {\r\n type: 'SEND_VALUE_APERTURA'\r\n };\r\n };\r\n\r\n export const toggleValueSubasta = () => {\r\n return {\r\n type: 'SEND_VALUE_SUBASTA'\r\n };\r\n };\r\n export const toggleValueAdjudicacion = () => {\r\n return {\r\n type: 'SEND_VALUE_ADJUDICACION'\r\n };\r\n };\r\n\r\n export const toggleBotonApertura = () => {\r\n return {\r\n type: 'SEND_VALUE_BOTON_APERTURA'\r\n };\r\n };\r\n\r\n export const toggleBotonSubasta = () => {\r\n return {\r\n type: 'SEND_VALUE_BOTON_SUBASTA'\r\n };\r\n };\r\n\r\n export const toggleBotonAdjudicacion = () => {\r\n return {\r\n type: 'SEND_VALUE_BOTON_ADJUDICACION'\r\n };\r\n };\r\n \r\n export const toggleBotonVisibleEditarOrden = () => {\r\n return {\r\n type: 'SEND_VALUE_BOTON_EDITAR_ORDEN'\r\n };\r\n };"],"sourceRoot":""}