{"version":3,"sources":["entidades/DocumentoEntidade.tsx","entidades/LoginEntidade.tsx","entidades/PesquisaDados.tsx","entidades/PlanoVinculadoEntidade.tsx","entidades/PrestacaoEntidade.tsx","entidades/ProcessoBeneficioEntidade.tsx","entidades/SitContratoEntidade.tsx","entidades/WebBloqueioFuncEntidade.tsx","pages/Page.tsx","pages/PageClean.tsx","pages/NotFoundPage.tsx","pages/Home/HomeCard.tsx","components/ListaPlanos/styles.ts","components/ListaPlanos/index.tsx","components/ListaProcesso/styles.ts","components/ListaProcesso/index.tsx","components/LoadingComponent/styles.ts","components/LoadingComponent/index.tsx","pages/Home/Ativo/index.tsx","pages/Home/Assistido/index.tsx","pages/Home/AtivoSaldado/index.tsx","pages/Home/NaoParticipante/index.tsx","pages/Home/index.tsx","pages/DadosPessoais/index.tsx","pages/Relacionamento/index.tsx","pages/TrocarSenha/index.tsx","_utils/Data.js","pages/Planos/index.tsx","pages/ListarParticipantes/index.tsx","pages/InformeRendimentos/index.tsx","pages/Contracheque/ContrachequeDetalhe.tsx","pages/Contracheque/index.tsx","pages/Documentos/index.tsx","pages/Mensagens/index.tsx","pages/SimuladorBeneficios/index.tsx","pages/SimuladorBeneficios/Menor8.tsx","pages/SimuladorBeneficios/Maior8.tsx","pages/Adesao/index.tsx","pages/Emprestimo/EmprestimoDetalhe/Prestacoes/index.tsx","pages/Emprestimo/EmprestimoDetalhe/Dados/index.tsx","pages/Emprestimo/EmprestimoDetalhe/index.tsx","pages/Emprestimo/EmprestimoLista/index.tsx","domains/DMN_CATEGORIA.tsx","pages/Emprestimo/EmprestimoSimulador/Inicio/index.tsx","pages/Emprestimo/EmprestimoSimulador/Prestacoes/index.tsx","_utils/decimalFix.ts","pages/Emprestimo/EmprestimoSimulador/Resumo/index.tsx","pages/Emprestimo/EmprestimoSimulador/Contratacao/index.tsx","pages/_admin/PageAdmin.tsx","pages/_admin/Home.tsx","pages/Documentos/Tabelas.tsx","pages/_admin/Documentos.tsx","pages/_admin/MensagemNova.tsx","pages/_admin/BloquearFuncionalidade/index.tsx","pages/_admin/Rotas.tsx","contexts/Home.tsx","Rotas.tsx","pages/Login/EsqueciSenha.tsx","pages/Login/Termos.tsx","pages/Login/TrocarSenhaPrimeiroAcesso.tsx","pages/Login/index.tsx","pages/Mensagens/Modal.tsx","pages/Mensagens/ListaMensagens.tsx","services/AdesaoService.tsx","services/CalendarioPagamentoService.tsx","services/DependenteService.tsx","services/DadosPessoaisService.tsx","services/DocumentoService.tsx","services/EmpresaService.tsx","services/EmprestimoService.tsx","services/FichaFechamentoService.tsx","services/FichaFinanceiraAssistidoService.tsx","services/FichaFinanceiraService.tsx","services/FuncionalidadeService.tsx","services/FuncionarioService.tsx","services/InfoRendService.tsx","services/LGPDService.tsx","services/ListasService.tsx","services/LogService.tsx","services/MensagemService.ts","services/PlanoService.tsx","services/ProcessoBeneficioService.ts","services/RelacionamentoService.ts","services/SimuladorCodeprevService.ts","services/UsuarioService.tsx","services/SituacaoPlanoService.ts","index.tsx"],"names":["DocumentoEntidade","OID_DOCUMENTO","OID_ARQUIVO_UPLOAD","OID_DOCUMENTO_PASTA","TXT_TITULO","IND_ATIVO","DTA_INCLUSAO","CD_PLANO","DS_PLANO","LoginEntidade","Cpf","Senha","Inscricao","DataNascimento","Chave","SenhaAntiga","ConfirmarSenha","SenhaNova","Origem","PesquisaDados","CD_FUNDACAO","CD_EMPRESA","CD_SIT_PLANO","NUM_MATRICULA","NOME","PlanoVinculadoEntidade","NUM_INSCRICAO","DT_INSC_PLANO","DT_SITUACAO_ATUAL","CD_MOTIVO_DESLIG","DT_DESLIG_PLANO","FUNDADOR","PERC_TAXA_MAXIMA","GRUPO","DT_PRIMEIRA_CONTRIB","DT_VENC_CARENCIA","CD_SIT_INSCRICAO","TIPO_IRRF","IDADE_RECEB_BENEF","cd_tipo_cobranca","NUM_BANCO","NUM_AGENCIA","NUM_CONTA","DIA_VENC","CD_GRUPO","cd_perfil_invest","NUM_PROTOCOLO","VITALICIO","VL_PERC_VITALICIO","LEI_108","SALDO_PROJ","PECULIO_INV","PECULIO_MORTE","INTEGRALIZA_SALDO","CK_EXTRATO_CST","DT_EMISSAO_CERTIFICADO","TIPO_IRRF_CANC","IND_OPTANTE_MAXIMA_BASICA","IND_AFA_JUDICIAL","DS_PERFIL_INVEST","CD_CATEGORIA","DS_CATEGORIA","DS_SIT_PLANO","COD_CNPB","SalarioContribuicao","PercentualContribuicao","ProcessoBeneficio","Modalidades","UltimoSalario","DT_INIC_VALIDADE","VL_BENEF_SALDADO_ATUAL","VL_BENEF_SALDADO_INICIAL","PrestacaoEntidade","ANO_CONTRATO","NUM_CONTRATO","SEQ_PREST","TIPO","PARCELA","DT_VENC","DT_PAGTO","CD_ORIGEM_REC","VL_PRINCIPAL","VL_JUROS","VL_PRESTACAO","VL_MULTA","VL_MORA","VL_MULTA_SALDO","VL_MORA_SALDO","VL_DESCONTO","VL_RECEBIDO","VL_SALDO_ANT","VL_SALDO_ATUAL","VL_TX_ADM","VL_TX_SEGURO","VL_TX_INAD","VL_IOF","VL_CORR_SALDO","VL_CORR_PRINC","VL_CORR_JUROS","VL_INDICE","VL_INDICE_ACUM","VL_CORR_PREST_ATRASO","VL_ACRESCIMO","ENVIO_COBRANCA","DT_ENVIO_COBRANCA","ORIGEM_LANC","VL_CORR_PREST","VL_CORR_PREST_ACUM","VL_MORA_ACUM","VL_TX_INVALIDEZ","TX_JUROS_ACUM","NOVO_PRAZO","VL_DESC_SEGURO","VL_DESC_SEGURO_ESPECIAL","VL_JUROS_CONTRATO","VL_PAGTO_PARCIAL","ID_MORATORIA","VL_IOF_COMPLEMENTAR","TX_NOVO_JUROS","BLOQUEIO_COBRANCA","VL_SALDO_MEDIO","DT_ENVIO_NOT_COBRANCA","NUM_NOT_COBRANCA_ENVIADA","DES_VL_RECEBIDO","ProcessoBeneficioEntidade","CD_ESPECIE","NUM_PROCESSO","ANO_PROCESSO","VERSAO","CD_PERFIL_INVESTIM","DT_PROX_PAGTO","DT_TERMINO","DT_RETROATIVIDADE","DT_CONCESSAO","NUM_TOT_PARCELAS","NUM_PARCELAS_PAG","SALDO_INICIAL","SALDO_ATUAL","SALDO_ANTERIOR","TIPO_CALCULO","CD_SITUACAO","VL_PERC_RESGATE","VL_PARC_RESGATE","VL_FATOR_REDUTOR","VL_REDUTOR_ATUARIAL","DT_REINICIO_PAGTO","NUM_PROCESSO_PREV","DT_INI_REVISAO","FATOR_VINCULACAO","FATOR_ALIQUOTA","CD_CARGO","CD_NIVEL_SALARIAL","PROC_REVISAO","DT_ULTIMA_REVISAO","SALDO_RISCO","DT_PREV_PAGTO_SAQUE","DT_PAGTO_SAQUE","CD_CALC_REGRESSIVO","VL_PMP","CD_OPCAO_RECEB_RENDA","CD_OPCAO_RECEB_BP","CD_OPCAO_RECEB_BAV","DT_INICIO_RENDA","DT_INICIO_BP","DT_INICIO_BAV","DT_TERMINO_RENDA","DT_TERMINO_BP","DT_TERMINO_BAV","PRAZO_RECEB","DT_ULTIMO_PROCESSAMENTO","CD_TIPO_CALC_CD","CD_PLANO_SALARIAL","TIPO_PAGTO_TAXA","ID_COMP_LIQUID","FATOR_REDUTOR","ANT_PECUL_BENEF","PERC_REAJ_VR","SALDO_RVITALICIA","NUM_SEQ_DEP","SEXO_DEP","DT_NASC_DEP","DT_VALIDADE_DEP","VL_ADICIONAL","VL_INDIVIDUAL","VL_GLOBAL","SALDO_PARTICIPANTE","SALDO_PATROCINADORA","DT_OPCAO_BPD","PRAZO_DIFERIMENTO","SALDO_CUSTEIO_PLANO","VAL_CUST_ADM","VAL_CUST_FUNDO","SALDO_ANT_RISCO","SALDO_ATUAL_RISCO","PERC_SALDO_RISCO","SALDO_INIC_RISCO","DS_ESPECIE","DS_SITUACAO","DT_REQUERIMENTO","DT_AFASTAMENTO","DT_INICIO_PREV","DT_INICIO_FUND","VL_PARCELA_MENSAL","DS_OPCAO_RECEB","DT_APOSENTADORIA","DS_PROCESSO","ESPECIE_ANO_NUM_PROCESSO","OPCAO_RECB_13","SitContratoEntidade","STATUS","WebBloqueioFuncEntidade","OID_BLOQUEIO_FUNC","OID_FUNCIONALIDADE","DTA_INICIO","DTA_FIM","DTA_CRIACAO","TXT_MOTIVO_BLOQUEIO","NOM_USUARIO","DES_FUNCIONALIDADE","SIGLA_ENTID","NumFuncionalidade","PageClean","className","style","width","this","props","tamanho","src","alt","children","Component","Page","componentWillMount","localStorage","getItem","config","appName","UsuarioService","VerificarAdmin","admin","LGPDService","Buscar","history","push","FuncionarioService","dados","nomeUsuario","DadosPessoais","NOME_ENTID","Funcionario","Usuario","IND_PRIMEIRO_ACESSO","setTimeout","buscarBloqueio","gravarLog","Menu","menu","filteredRoutes","Rotas","filter","a","indexOf","id","setState","logout","message","alert","console","error","Funcionalidade","LogService","CriarLog","PlanoService","planos","cdPlanos","length","FuncionalidadeService","BuscarBloqueiosPorNumFuncionalidade","motivoBloqueio","loading","valor","Session","clear","renderChildren","state","mensagem","tipo","TipoAlerta","danger","menuAberto","sessaoExpirada","failure","exception","Title","titulo","rota","location","pathname","i","caminho","includes","opacity","hidden","height","map","index","link","caminhoLink","mostrarMenu","key","to","icone","href","onClick","marginLeft","marginRight","React","NotFoundPage","textAlign","marginTop","color","fontSize","marginBottom","HomeCard","label","PlanoButtonContainer","styled","div","PlanoButton","ativo","darken","lighten","ListaPlanos","onChange","cdPlanoAtivo","plano","ProcessoButtonContainer","ProcessoButton","button","ListaProcesso","processos","dsProcessoAtivo","textoInstrucao","processo","disabled","Container","Loader","img","LoaderText","LoadingComponent","Ativo","context","useContext","HomeContext","useState","Plano","setPlano","UltimaContribuicao","setUltimaContribuicao","Saldos","setSaldos","Loading","setLoading","Erro","setErro","useEffect","buscarPlano","FichaFinanceiraService","BuscarUltimaExibicaoPorPlano","ultimaContribuicao","FichaFechamentoService","BuscarSaldoPorPlano","saldos","err","response","data","Percentual","SRC","TipoCampoEstatico","dinheiro","renderRow","moment","DataReferencia","format","Contribuicoes","contrib","Td","Item1","Item2","Descontos","desconto","DS_AGRUPADOR_WEB","CONTRIB_PARTICIPANTE","Liquido","undefined","DT_FECHAMENTO","substring","VL_GRUPO1","VL_GRUPO2","VL_ACUMULADO","VL_COTA","texto","msgAdicional","Assistido","Processo","setProcesso","UltimaFolha","setUltimaFolha","Calendario","setCalendario","buscarProcessoBeneficio","processoBeneficio","FichaFinanceiraAssistidoService","BuscarUltimaPorPlanoProcesso","toString","ultimaFolha","CalendarioPagamentoService","BuscarPorPlano","calendario","Proventos","Resumo","Referencia","Indice","VALOR_IND","rubrica","DS_RUBRICA","DT_COMPETENCIA","VALOR_MC","DES_MES","NUM_DIA","AtivoSaldado","BuscarSaldado","NaoParticipante","Home","page","useRef","Pensionista","Array","Planos","setPlanos","CdPlano","setCdPlano","ProcessosBeneficio","setProcessosBeneficio","setEspecieAnoNumProcesso","setFuncionalidade","planoSelecionado","salvarPlano","buscarProcessos","ProcessoBeneficioService","processosBeneficio","especieAnoNumProcesso","salvarProcessoBeneficio","processoSelecionado","current","cdPlano","HOME_ATIVOS_E_AUTOPATROCINADOS","HOME_ASISSTIDOS","HOME_PENSIONISTAS","ref","createRef","Entidade","NOME_EMPRESA","SEXO","DS_ESTADO_CIVIL","CPF","IDADE","CEP","dependentes","DependenteService","SEUS_DADOS","tamanhoCampo","posicaoTitulo","PosicaoTituloCampoEstatico","cima","DS_SEXO","NU_IDENT","ORG_EMIS_IDENT","DT_EMIS_IDENT","CPF_CGC","DT_NASCIMENTO","DT_ADMISSAO","DT_RECADASTRO","NOME_PAI","NOME_MAE","EMAIL_AUX","END_ENTID","NR_END_ENTID","COMP_END_ENTID","BAIRRO_ENTID","CID_ENTID","UF_ENTID","CEP_ENTID","dependente","NOME_DEP","DS_GRAU_PARENTESCO","Relacionamento","form","validar","limparErros","Email","email","Assunto","assunto","Mensagem","Nome","RelacionamentoService","Enviar","limparCampos","FALE_CONOSCO_MENSAGENS","contexto","nome","max","obrigatorio","textarea","rows","TipoBotao","primary","submit","padraoFormulario","TrocarSenha","trocarSenha","mensagemSucesso","senhaNova","adicionarErro","confirmarSenha","login","senhaAtual","AlterarSenha","htmlFor","usaLoading","DataInvalida","dataObjeto","dataString","dia","getDate","mes","getMonth","ano","getFullYear","diaReal","parseInt","mesReal","anoReal","VerificaLimitesData","componentDidMount","listaPlanos","toggleModal","modalVisivel","BuscarDatasExtrato","datasExtrato","buscarBloqueioExtrato","dataInicio","DataInicial","dataFim","DataFinal","renderModal","role","type","data-dismiss","aria-label","aria-hidden","renderExtratoForm","gerarExtrato","converteData","validarData","Date","RelatorioExtratoPorPlanoReferencia","replaceAll","relatorio","navigator","msSaveBlob","Blob","url","window","URL","createObjectURL","document","createElement","setAttribute","body","appendChild","click","revokeObjectURL","text","nomeCampo","split","EXTRATO","mascara","placeholder","tamanhoTitulo","SEUS_PLANOS","align","TamanhoBotao","pequeno","setItem","ListarParticipantes","pesquisar","matricula","Pesquisar","resultadoPesquisa","selecionar","cpf","inscricao","usuario","Selecionar","setToken","AccessToken","func","PENSIONISTA","InformeRendimentos","carregarReferencia","InfoRendService","BuscarPorReferencia","referencia","informe","gerarRelatorio","Relatorio","handle","datas","BuscarReferencias","INFORME_DE_RENDIMENTOS_ASSISTIDOS_PENSIONISTAS","opcoes","padrao","ANO_EXERCICIO","ANO_CALENDARIO","Grupos","DES_GRUPO","Itens","linha","DES_INFO_REND","VAL_LINHA","toLocaleString","minimumFractionDigits","ContrachequeDetalhe","dataReferencia","cdTipoFolha","cdEspecie","contracheque","Bruto","DesTipoFolha","match","params","BuscarPorCodigo","BuscarPorDataReferencia","replace","maximumFractionDigits","rendimento","Contracheque","resultPlanos","buscarDatas","BuscarDatas","especies","CONTRACHEQUE_ASISSTIDOS_PENSIONISTAS","especie","Especie","Lista","DT_REFERENCIA","DS_TIPO_FOLHA","VAL_BRUTO","VAL_DESCONTOS","VAL_LIQUIDO","RegExp","CD_TIPO_FOLHA","Documentos","options","alerta","buscarLista","handleOptionChange","e","selectedOption","target","value","DocumentoService","BuscarPorPlanoPasta","oidPasta","resultado","documentos","pastas","pastaAtual","pastaPai","baixarDocumento","doc","BuscarPorOidDocumento","documentoInfo","Download","documento","NOM_ARQUIVO_LOCAL","renderPastaDocumentosTabela","renderPastaTabela","renderDocumentoTabela","pasta","NOM_PASTA","reload","DOCUMENTOS","name","checked","Mensagens","mensagens","funcionario","MensagemService","BuscarPorFundacaoEmpresaPlano","ListaMensagens","mostrarDados","formatValue","val","possibleNumber","Number","isNaN","SliderWithTooltip","createSliderWithTooltip","Slider","SimuladorBeneficios","dataNascimento","saldoAcumulado","salarioContribuicao","dataUltimoSalario","percentualContrib","contribMensal","contribPatronal","idadeMinima","idadeMaxima","idadeAposentadoria","idadeAtual","percentualAVista","aporte","outroValor","naoParticipante","termoAceito","idadePlano","planoFiltrado","dataInscricao","diff","BuscarNP","calcularPercentual","percentual","percentualPatronal","log","continuar","isValido","isValid","calcularIdadeNP","setAporte","setOutroValor","SIMULADOR_DE_BENEFÍCIOS_CODEPREV","onBlur","tipFormatter","v","tipProps","placement","visible","min","dots","step","desativado","Menor8","saldoProjetado5","saldoProjetado8","valorResgate5","valorResgate8","rendaMensal","load","goBack","salario","isString","IdadeAposentadoria","PercentualContrib","PercentualSaque","Aporte","SaldoAcumulado","SimuladorCodeprevService","Simular","dadosSimulacao","SaldoProjetado","SaldoProjetado8","Saque","Saque8","RendaMensal","Renda","Renda8","StringTempoRecebimento","parseFloat","Maior8","saldoProjetado","valorResgate","memoria","MemoriaCalculo","item","Key","Value","Prestacoes","prestacoes","ModalAberto","setModalAberto","Prestacao","setPrestacao","ToMoney","Valor","prestacao","mini","colSpan","onClose","onConfirm","visivel","tituloBotaoFechar","Dados","detalhes","NOME_PENSIONISTA","NOME_PARTICIPANTE","CPF_PENSIONISTA","CPF_PARTICIPANTE","DS_MODAL","DS_NATUR","PRAZO","DT_SOLICITACAO","DT_CREDITO","VL_SOLICITADO","VL_REFORMADO","VL_LIQUIDO","info","EmprestimoDetalhe","EmprestimoService","BuscarDetalhePorNumeroAno","numero","erro","render","EMPRESTIMOS_CONSULTA","DMN_CATEGORIA","EmprestimoLista","ref_cor","BuscarSituacoes","listaSituacoes","situacaoSelecionada","situacao","buscar","sit","BuscarPorSituacao","emprestimos","montarLink","nomeMembro","valorMembro","x","EmprestimoSimulador","carencia","listacarencias","valorSolicitado","valorMargemConsignavel","margemPreenchida","naturezas","natureza","CdModal","limiteMaximo","limiteUnico","dataCredito","recursoUtilizado","valorDisponivel","ativoOuAssistido","modalValorMargemConsignavel","modalNovacao","separarFolha","folha","novaFolha","provento","countP","countD","f","RUBRICA_PROV_DESC","carregarDados","BuscarLimiteUnicoDataCredito","margemConsignavel","BuscarAtivos","CD_NATUR","ATIVO","ASSISTIDO","carregarNatureza","natur","modal","CD_MODAL","toFixed","ValorMargem","Carencia","CdNatur","JSON","stringify","EMPRESTIMOS_SIMULAÇÃO","dangerouslySetInnerHTML","__html","CONSIDERAR_CARENCIA_CONCESSAO","fontWeight","textoVazio","LimiteCalculado","formGroup","thousandSeparator","decimalSeparator","allowedDecimalSeparators","decimalScale","fixedDecimalScale","onValueChange","preventDefault","SaldoDevedor","ValorReformado","EmprestimoSimuladorPrestacoes","parametros","BuscarParcelas","listaContratos","selecionarContrato","contrato","Disponivel","Selecionado","Prazo","contratoSelecionado","parse","reduce","y","saldoContratosAtivos","valorFinanciado","TaxaJuros","cursor","ValorPrestacao","ValorTaxaAdministracao","ValorTaxaSeguro","ValorIOF","ValorSolicitado","Motivo","light","iconeDireita","decimalFix","EmprestimoSimuladorResumo","BuscarLinkDocumentosEmprestimo","linkTermosEmprestimo","leuTermoAssinado","leuContratoAbertura","Modalidade","ValorLiquido","ValorCustoEfetivoTotalAnual","ValorCustoEfetivoTotalMensal","DataCredito","TaxaEncargo","TX_ADM","TX_SEGURO","TX_IOF","tipoAtivo","success","iconeInativo","rel","EmprestimoSimuladorContratacao","fileUpload","oidArquivoUpload","tokenDigitado","tokenEnviado","aderiuContratoEmpréstimoOnline","contratar","Contrato","TokenEnviado","TokenDigitado","Contratar","enviarToken","GerarToken","token","EMPRESTIMOS_CONTRATAÇÃO","PosicaoTituloCampoTexto","PageAdmin","removeItem","toggleMenu","Tabelas","deletarDocumento","oidDocumento","confirm","Deletar","deletarPasta","oidDocumentPasta","DeletarPasta","downloadDocumento","documentoBlob","blobURL","tempLink","linkBase","itens","campoTexto","apiUrl","formDocumento","alertDocumento","formPasta","alertPasta","BuscarTodos","OID_DOCUMENTO_PASTA_PAI","salvarPasta","nomePasta","NOM_GRUPO_USUARIO","CriarPasta","uploadFile","formData","FormData","arquivoUpload","files","append","uploading","axios","post","headers","onUploadProgress","progressEvent","uploadPercentage","Math","round","loaded","total","then","result","podeCriarDocumento","visibilidadeFileInput","salvarDocumento","nomeDocumento","Criar","MensagemNova","onChangeFundacao","event","listaEmpresa","listaFundacao","fundacao","Empresas","listaPlano","empresa","onChangeEmpresa","validarCheckboxes","dadosMensagem","TXT_CORPO","DTA_EXPIRACAO","IND_MOBILE","IND_PORTAL","IND_EMAIL","IND_SMS","tituloMensagem","dataExpiracao","situacaoPlano","enviarMobile","enviarPortal","enviarEmail","EnviarMensagem","BuscarTodas","listas","listaSituacaoPlano","ListasService","ListarFundacaoEmpresaPlano","Fundacoes","SitPlanos","BloquearFuncionalidade","buscarListaBloqueios","EmpresaService","empresas","bloqueios","BuscarPorIndAtivo","funcionaidades","bloquear","funcionalidadeSelecionada","empresaSelecionada","Bloquear","msg","Desbloquear","renderListaBloqueio","linhas","bloqueio","renderNovoBloqueio","GetRotas","componente","routeProps","exact","createContext","HomeProvider","setProcessoBeneficio","useCallback","Provider","EsqueciSenha","enviarSenha","SituacaoParticipante","UsuarioServiceN","BuscarSituacaoParticipante","CriarAcesso","block","Termos","aceitar","Inserir","recusar","TrocarSenhaPrimeiroAcesso","AlterarSenhaPrimeiroAcesso","Login","onSubmit","senha","BuscarMatriculas","matriculas","loginFeito","SelecionarMatricula","funcionarioLogin","handleFieldChange","packageJson","version","Modal","badgeVisivel","tipoBadge","nomeBadge","DTA_MENSAGEM","NOM_FUNDACAO","NOM_EMPRESA","renderBadge","defaultProps","OID_MENSAGEM","AdesaoService","CreateRequest","RequestType","GET","ResponseType","Upload","model","POST","BaseService","criteria","BuscarTodosPorPasta","BuscarPrestacoesPorNumeroAno","BuscarModalidades","BuscarAutorizacaoMargem","tipoFolha","enviarPorEmail","num","SaoFranciscoBuscarSaldoPorPlano","NUM_FUNCIONALIDADE","CD_PLANO2","CD_PLANO3","origem","numFuncionalidade","dtInicio","dtFim","relacionamentoEntidade","user","require","default","RotasAdmin","MainRender","path","component","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.76038d94.chunk.js","sourcesContent":["export class DocumentoEntidade {\r\n public OID_DOCUMENTO: number;\r\n public OID_ARQUIVO_UPLOAD: number;\r\n public OID_DOCUMENTO_PASTA?: number;\r\n public TXT_TITULO: string;\r\n public IND_ATIVO: string;\r\n public DTA_INCLUSAO: Date;\r\n public CD_PLANO: string;\r\n public DS_PLANO: string;\r\n}\r\n","export class LoginEntidade {\r\n public Cpf?: string;\r\n public Senha?: string;\r\n public Inscricao?: string;\r\n public DataNascimento?: string;\r\n public Chave?: string;\r\n public SenhaAntiga?: string;\r\n public ConfirmarSenha?: string;\r\n public SenhaNova?: string;\r\n public Origem: number;\r\n}\r\n","export class PesquisaDados {\r\n public CD_FUNDACAO: string;\r\n public CD_EMPRESA: string;\r\n public CD_PLANO: string;\r\n public CD_SIT_PLANO: string;\r\n public NUM_MATRICULA: string;\r\n public NOME: string;\r\n}","import { ProcessoBeneficioEntidade } from \"./ProcessoBeneficioEntidade\";\r\nimport { ModalidadeEntidade } from \"./ModalidadeEntidade\";\r\nexport class PlanoVinculadoEntidade {\r\n public CD_FUNDACAO: string;\r\n public NUM_INSCRICAO: string;\r\n public CD_PLANO: string;\r\n public DT_INSC_PLANO: Date;\r\n public CD_SIT_PLANO: string;\r\n public DT_SITUACAO_ATUAL: Date;\r\n public CD_MOTIVO_DESLIG: string;\r\n public DT_DESLIG_PLANO?: Date;\r\n public FUNDADOR: string;\r\n public PERC_TAXA_MAXIMA?: number;\r\n public GRUPO: string;\r\n public DT_PRIMEIRA_CONTRIB?: Date;\r\n public DT_VENC_CARENCIA?: Date;\r\n public CD_SIT_INSCRICAO: string;\r\n public TIPO_IRRF: string;\r\n public IDADE_RECEB_BENEF?: number;\r\n public cd_tipo_cobranca: string;\r\n public NUM_BANCO: string;\r\n public NUM_AGENCIA: string;\r\n public NUM_CONTA: string;\r\n public DIA_VENC?: number;\r\n public CD_GRUPO: string;\r\n public cd_perfil_invest?: number;\r\n public NUM_PROTOCOLO: string;\r\n public VITALICIO: string;\r\n public VL_PERC_VITALICIO?: number;\r\n public LEI_108: string;\r\n public SALDO_PROJ?: number;\r\n public PECULIO_INV?: number;\r\n public PECULIO_MORTE?: number;\r\n public INTEGRALIZA_SALDO: string;\r\n public CK_EXTRATO_CST: string;\r\n public DT_EMISSAO_CERTIFICADO?: Date;\r\n public TIPO_IRRF_CANC: string;\r\n public IND_OPTANTE_MAXIMA_BASICA: string;\r\n public IND_AFA_JUDICIAL: string;\r\n public DS_PERFIL_INVEST: string;\r\n public CD_CATEGORIA: string;\r\n public DS_CATEGORIA: string;\r\n public DS_PLANO: string;\r\n public DS_SIT_PLANO: string;\r\n public COD_CNPB: string;\r\n public SalarioContribuicao: number;\r\n public PercentualContribuicao: number;\r\n public ProcessoBeneficio: ProcessoBeneficioEntidade;\r\n public Modalidades: Array;\r\n public UltimoSalario: number;\r\n public CD_EMPRESA: string;\r\n public DT_INIC_VALIDADE?: Date;\r\n public VL_BENEF_SALDADO_ATUAL: number;\r\n public VL_BENEF_SALDADO_INICIAL: number;\r\n}","\r\n\r\nexport class PrestacaoEntidade {\r\n public CD_FUNDACAO: string;\r\n public ANO_CONTRATO: number;\r\n public NUM_CONTRATO: number;\r\n public SEQ_PREST: number;\r\n public TIPO: string;\r\n public PARCELA?: number;\r\n public DT_VENC?: Date;\r\n public DT_PAGTO?: Date;\r\n public CD_ORIGEM_REC?: number;\r\n public VL_PRINCIPAL?: number;\r\n public VL_JUROS?: number;\r\n public VL_PRESTACAO?: number;\r\n public VL_MULTA?: number;\r\n public VL_MORA?: number;\r\n public VL_MULTA_SALDO?: number;\r\n public VL_MORA_SALDO?: number;\r\n public VL_DESCONTO?: number;\r\n public VL_RECEBIDO?: number;\r\n public VL_SALDO_ANT?: number;\r\n public VL_SALDO_ATUAL?: number;\r\n public VL_TX_ADM?: number;\r\n public VL_TX_SEGURO?: number;\r\n public VL_TX_INAD?: number;\r\n public VL_IOF?: number;\r\n public VL_CORR_SALDO?: number;\r\n public VL_CORR_PRINC?: number;\r\n public VL_CORR_JUROS?: number;\r\n public VL_INDICE?: number;\r\n public VL_INDICE_ACUM?: number;\r\n public VL_CORR_PREST_ATRASO?: number;\r\n public VL_ACRESCIMO?: number;\r\n public ENVIO_COBRANCA?: number;\r\n public DT_ENVIO_COBRANCA?: Date;\r\n public ORIGEM_LANC: string;\r\n public VL_CORR_PREST?: number;\r\n public VL_CORR_PREST_ACUM?: number;\r\n public VL_MORA_ACUM?: number;\r\n public VL_TX_INVALIDEZ?: number;\r\n public TX_JUROS_ACUM?: number;\r\n public NOVO_PRAZO?: number;\r\n public VL_DESC_SEGURO?: number;\r\n public VL_DESC_SEGURO_ESPECIAL?: number;\r\n public VL_JUROS_CONTRATO?: number;\r\n public VL_PAGTO_PARCIAL?: number;\r\n public ID_MORATORIA: string;\r\n public VL_IOF_COMPLEMENTAR?: number;\r\n public TX_NOVO_JUROS?: number;\r\n public BLOQUEIO_COBRANCA: string;\r\n public VL_SALDO_MEDIO?: number;\r\n public DT_ENVIO_NOT_COBRANCA?: Date;\r\n public NUM_NOT_COBRANCA_ENVIADA?: number;\r\n public DES_VL_RECEBIDO: string;\r\n}","\r\n\r\nexport class ProcessoBeneficioEntidade {\r\n public CD_FUNDACAO: string;\r\n public CD_EMPRESA: string;\r\n public CD_PLANO: string;\r\n public CD_ESPECIE: string;\r\n public NUM_PROCESSO: number;\r\n public ANO_PROCESSO: string;\r\n public VERSAO: number;\r\n public NUM_INSCRICAO: string;\r\n public CD_PERFIL_INVESTIM: string;\r\n public DT_PROX_PAGTO?: Date;\r\n public DT_TERMINO?: Date;\r\n public DT_RETROATIVIDADE?: Date;\r\n public DT_CONCESSAO?: Date;\r\n public NUM_TOT_PARCELAS?: number;\r\n public NUM_PARCELAS_PAG?: number;\r\n public SALDO_INICIAL?: number;\r\n public SALDO_ATUAL?: number;\r\n public SALDO_ANTERIOR?: number;\r\n public TIPO_CALCULO: string;\r\n public CD_SITUACAO: string;\r\n public VL_PERC_RESGATE?: number;\r\n public VL_PARC_RESGATE?: number;\r\n public VL_FATOR_REDUTOR?: number;\r\n public VL_REDUTOR_ATUARIAL?: number;\r\n public DT_REINICIO_PAGTO?: Date;\r\n public NUM_PROCESSO_PREV: string;\r\n public DT_INI_REVISAO?: Date;\r\n public FATOR_VINCULACAO?: number;\r\n public FATOR_ALIQUOTA?: number;\r\n public CD_CARGO: string;\r\n public CD_NIVEL_SALARIAL: string;\r\n public PROC_REVISAO: string;\r\n public DT_ULTIMA_REVISAO?: Date;\r\n public SALDO_RISCO?: number;\r\n public DT_PREV_PAGTO_SAQUE?: Date;\r\n public DT_PAGTO_SAQUE?: Date;\r\n public CD_CALC_REGRESSIVO: string;\r\n public VL_PMP?: number;\r\n public CD_OPCAO_RECEB_RENDA: string;\r\n public CD_OPCAO_RECEB_BP: string;\r\n public CD_OPCAO_RECEB_BAV: string;\r\n public DT_INICIO_RENDA?: Date;\r\n public DT_INICIO_BP?: Date;\r\n public DT_INICIO_BAV?: Date;\r\n public DT_TERMINO_RENDA?: Date;\r\n public DT_TERMINO_BP?: Date;\r\n public DT_TERMINO_BAV?: Date;\r\n public PRAZO_RECEB?: number;\r\n public DT_ULTIMO_PROCESSAMENTO?: Date;\r\n public CD_TIPO_CALC_CD?: number;\r\n public CD_PLANO_SALARIAL: string;\r\n public TIPO_PAGTO_TAXA: string;\r\n public ID_COMP_LIQUID: string;\r\n public FATOR_REDUTOR?: number;\r\n public ANT_PECUL_BENEF: string;\r\n public PERC_REAJ_VR?: number;\r\n public SALDO_RVITALICIA?: number;\r\n public NUM_SEQ_DEP?: number;\r\n public SEXO_DEP: string;\r\n public DT_NASC_DEP?: Date;\r\n public DT_VALIDADE_DEP?: Date;\r\n public VL_ADICIONAL?: number;\r\n public VL_INDIVIDUAL?: number;\r\n public VL_GLOBAL?: number;\r\n public SALDO_PARTICIPANTE?: number;\r\n public SALDO_PATROCINADORA?: number;\r\n public DT_OPCAO_BPD?: Date;\r\n public PRAZO_DIFERIMENTO?: number;\r\n public SALDO_CUSTEIO_PLANO?: number;\r\n public VAL_CUST_ADM?: number;\r\n public VAL_CUST_FUNDO?: number;\r\n public SALDO_ANT_RISCO?: number;\r\n public SALDO_ATUAL_RISCO?: number;\r\n public PERC_SALDO_RISCO?: number;\r\n public SALDO_INIC_RISCO?: number;\r\n public DS_ESPECIE: string;\r\n public DS_SITUACAO: string;\r\n public DT_REQUERIMENTO?: Date;\r\n public DT_AFASTAMENTO?: Date;\r\n public DT_INICIO_PREV?: Date;\r\n public DT_INICIO_FUND?: Date;\r\n public VL_PARCELA_MENSAL?: number;\r\n public DS_OPCAO_RECEB: string;\r\n public DT_APOSENTADORIA?: Date;\r\n public DS_PROCESSO: string;\r\n public ESPECIE_ANO_NUM_PROCESSO: string;\r\n public OPCAO_RECB_13: string;\r\n}","export class SitContratoEntidade {\r\n\tpublic CD_SITUACAO: number;\r\n\tpublic DS_SITUACAO: string;\r\n\tpublic STATUS: string;\r\n}\r\n","export class WebBloqueioFuncEntidade {\r\n public OID_BLOQUEIO_FUNC: number;\r\n public OID_FUNCIONALIDADE: number;\r\n public CD_FUNDACAO: string;\r\n public CD_EMPRESA: string;\r\n public CD_PLANO: string;\r\n public NUM_MATRICULA: string;\r\n public DTA_INICIO?: Date;\r\n public DTA_FIM?: Date;\r\n public DTA_CRIACAO: Date;\r\n public TXT_MOTIVO_BLOQUEIO: string;\r\n public NOM_USUARIO: string;\r\n public DES_FUNCIONALIDADE: string;\r\n public SIGLA_ENTID: string;\r\n public DS_PLANO: string;\r\n}","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { Session } from \"@intech/react-service\";\r\nimport { FuncionarioService, LGPDService, PlanoService, FuncionalidadeService, UsuarioService, LogService } from \"./../services\";\r\nimport { Row, Col, Alerta, TipoAlerta } from \"@intechprev/componentes-web\";\r\n\r\nimport Rotas from \"../Rotas\";\r\n\r\nimport config from \"../config.json\";\r\nimport { format } from \"url\";\r\n\r\nexport enum NumFuncionalidade {\r\n \"HOME_ATIVOS_E_AUTOPATROCINADOS\" = 1,\r\n \"HOME_ASISSTIDOS\" = 2,\r\n \"HOME_PENSIONISTAS\" = 3,\r\n \"SEUS_DADOS\" = 4,\r\n \"SEUS_PLANOS\" = 5,\r\n \"EXTRATO\" = 6,\r\n \"CONTRACHEQUE_ASISSTIDOS_PENSIONISTAS\" = 7,\r\n \"INFORME_DE_RENDIMENTOS_ASSISTIDOS_PENSIONISTAS\" = 8,\r\n \"DOCUMENTOS\" = 9,\r\n \"FALE_CONOSCO_MENSAGENS\" = 10,\r\n \"FORMULARIOS\" = 11,\r\n \"SIMULADOR_DE_BENEFÍCIOS_CODEPREV\" = 12,\r\n \"EMPRESTIMOS_CONSULTA\" = 13,\r\n \"EMPRESTIMOS_SIMULAÇÃO\" = 14,\r\n \"EMPRESTIMOS_CONTRATAÇÃO\" = 15\r\n}\r\n\r\ninterface Props {\r\n Funcionalidade?: NumFuncionalidade;\r\n history?: any;\r\n titulo?: string;\r\n}\r\n\r\ninterface State {\r\n nomeUsuario: string;\r\n loading: boolean;\r\n admin: boolean;\r\n menuAberto: boolean;\r\n sessaoExpirada: boolean;\r\n failure: boolean;\r\n exception: any;\r\n motivoBloqueio: string;\r\n filteredRoutes: Array;\r\n}\r\n\r\nexport default class Page extends React.Component {\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n nomeUsuario: \"\",\r\n loading: true,\r\n menuAberto: false,\r\n admin: false,\r\n sessaoExpirada: true,\r\n failure: false,\r\n exception: {},\r\n motivoBloqueio: \"Aguarde enquanto o sistema carrega as informaformações.\",\r\n filteredRoutes: []\r\n }\r\n }\r\n\r\n componentWillMount = async () => {\r\n try {\r\n\r\n var token = await localStorage.getItem(`@${config.appName}:token`);\r\n\r\n if (token) {\r\n var admin = await UsuarioService.VerificarAdmin();\r\n var termo = await LGPDService.Buscar();\r\n\r\n if (!termo && !admin) {\r\n this.props.history.push('/termos');\r\n } else {\r\n var dados = await FuncionarioService.Buscar();\r\n var nomeUsuario = dados.DadosPessoais ? dados.DadosPessoais.NOME_ENTID : dados.Funcionario.NOME_ENTID;\r\n\r\n if (!admin && dados.Usuario && dados.Usuario.IND_PRIMEIRO_ACESSO === \"S\") {\r\n setTimeout(() => this.props.history.push('/trocarSenhaPrimeiroAcesso'), 500);\r\n } else {\r\n await this.buscarBloqueio();\r\n await this.gravarLog();\r\n\r\n var menu = await UsuarioService.Menu();\r\n var filteredRoutes = Rotas.filter((a) => menu.indexOf(a.id) > -1);\r\n\r\n await this.setState({\r\n nomeUsuario,\r\n admin,\r\n filteredRoutes\r\n });\r\n }\r\n }\r\n\r\n } else {\r\n await this.logout();\r\n }\r\n } catch (err) {\r\n if (err.message.indexOf(\"401\") > -1) {\r\n await this.logout();\r\n } else {\r\n alert(\"Ops! Ocorreu um erro ao processar sua requisição.\");\r\n console.error(err);\r\n }\r\n }\r\n\r\n }\r\n\r\n gravarLog = async () => {\r\n if (this.props.Funcionalidade) {\r\n await LogService.CriarLog(this.props.Funcionalidade);\r\n }\r\n }\r\n\r\n buscarBloqueio = async () => {\r\n if (this.props.Funcionalidade) {\r\n const planos = await PlanoService.Buscar();\r\n const cdPlanos = [];\r\n if (planos.length > 0) {\r\n /* Código do plano do participante logado. */\r\n cdPlanos.push(planos[0].CD_PLANO);\r\n /* Código do segundo plano do participante logado (repetir o primeiro caso só tenha um plano). */\r\n cdPlanos.push(planos.length > 1 ? planos[1].CD_PLANO : cdPlanos[0]);\r\n /* Código do terceiro plano do participante logado (repetir o segundo caso só tenha um ou dois planos ) */\r\n cdPlanos.push(planos.length > 2 ? planos[2].CD_PLANO : cdPlanos[1]);\r\n }\r\n else {\r\n cdPlanos.push(\"0000\");\r\n cdPlanos.push(\"0000\");\r\n cdPlanos.push(\"0000\");\r\n }\r\n\r\n const motivoBloqueio = await FuncionalidadeService.BuscarBloqueiosPorNumFuncionalidade(this.props.Funcionalidade, cdPlanos[0], cdPlanos[1], cdPlanos[2]);\r\n\r\n this.setState({ motivoBloqueio });\r\n\r\n }\r\n else\r\n this.setState({ motivoBloqueio: \"\" });\r\n }\r\n\r\n loading = async (valor: boolean) => {\r\n await this.setState({\r\n loading: valor\r\n });\r\n }\r\n\r\n // getRota() {\r\n // var rota = window.location.pathname;\r\n // for (var i = 0; i < Rotas.length; i++) {\r\n // if (rota === Rotas[i].caminho)\r\n // return Rotas[i].componente();\r\n // }\r\n // }\r\n\r\n logout = async () => {\r\n await Session.clear();\r\n this.props.history.push(\"/login\");\r\n }\r\n\r\n renderChildren = () => {\r\n return (this.state.motivoBloqueio === \"\" ?\r\n this.props.children :\r\n \r\n );\r\n }\r\n\r\n render() {\r\n var Title = () => {\r\n if (this.props.titulo) {\r\n return

{this.props.titulo}

;\r\n } else {\r\n var rota = this.props.history.location.pathname;\r\n\r\n var titulo;\r\n\r\n for (var i = 0; i < Rotas.length; i++) {\r\n if (rota === Rotas[i].caminho || rota === Rotas[i].caminho || rota.includes(Rotas[i].caminho)) {\r\n titulo =

{Rotas[i].titulo}

;\r\n }\r\n }\r\n\r\n return titulo;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n </Col>\r\n\r\n <Col tamanho={\"5\"} className={\"col-lg-5 col-6 text-right user-icon\"}>\r\n <Row>\r\n <Col className={\"nome-usuario d-sm-none d-none d-sm-block\"}>\r\n {this.state.nomeUsuario}\r\n\r\n {this.state.admin &&\r\n <span>\r\n <Link to={\"/listarParticipantes\"} className={\"icon\"} style={{ marginLeft: 10, marginRight: 10 }}>\r\n <i className={\"fas fa-user-friends\"}></i>\r\n </Link>\r\n <Link to={\"/admin\"} className={\"icon\"}>\r\n <i className={\"fas fa-lock\"}></i>\r\n </Link>\r\n </span>\r\n }\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n\r\n <div className=\"wrapper-content\">\r\n {this.renderChildren()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\ninterface Props {\r\n\ttamanho?: number;\r\n}\r\n\r\nexport default class PageClean extends Component<Props> {\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"panel-login middle-box\"\r\n\t\t\t\tstyle={{\r\n\t\t\t\t\twidth: this.props.tamanho\r\n\t\t\t\t}}>\r\n\t\t\t\t<div className=\"logo\">\r\n <img src=\"./imagens/logo.png\" alt=\"Logo\" />\r\n </div>\r\n\r\n\t\t\t\t{this.props.children}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport class NotFoundPage extends React.Component {\r\n render() {\r\n return (\r\n <div style={{ textAlign: \"center\", marginTop: 100, color: \"#a9abad\" }}> \r\n <h1 style={{ fontSize: 120 }}>404</h1>\r\n <h4 style={{ marginBottom: 40 }}>Página não encontrada!</h4>\r\n\r\n <Link to=\"/\">Voltar</Link>\r\n </div>\r\n );\r\n }\r\n}","import React, { ReactNode, ReactNodeArray } from \"react\";\r\n\r\ninterface Props {\r\n titulo: string;\r\n label?: string;\r\n children: ReactNode | ReactNodeArray;\r\n}\r\n\r\nexport class HomeCard extends React.Component<Props> {\r\n\r\n render() {\r\n return (\r\n <div className=\"card mb-3\">\r\n <div className={\"card-title\"}>\r\n {this.props.titulo}\r\n\r\n {this.props.label &&\r\n <span className={\"badge badge-secondary\"}>{this.props.label}</span>\r\n }\r\n </div>\r\n \r\n <div className={\"card-content\"}>\r\n {this.props.children}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n}","import { darken, lighten } from \"polished\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const PlanoButtonContainer = styled.div`\r\n display: inline-block;\r\n width: 100%;\r\n margin: 10px;\r\n\r\n @media (min-width: 768px) {\r\n width: 350px;\r\n }\r\n`;\r\n\r\nexport const PlanoButton = styled.div<any>`\r\n width: 100%;\r\n border: 1px solid #006789;\r\n border-radius: 5px;\r\n background: ${(props) =>\r\n props.ativo ? \"#006789\" : \"#FFFFFF\"};\r\n color: ${(props) => (props.ativo ? \"#FFFFFF\" : \"#006789\")};\r\n padding: 5px;\r\n text-align: center;\r\n transition: background 0.3s;\r\n\r\n &:hover {\r\n background: ${(props) =>\r\n props.ativo\r\n ? darken(0.1, \"#006789\")\r\n : lighten(0.4, \"#FFFFFF\")};\r\n cursor: pointer;\r\n }\r\n\r\n @media (min-width: 768px) {\r\n width: 350px;\r\n }\r\n`;\r\n","import React from \"react\";\r\n\r\nimport { PlanoButtonContainer, PlanoButton } from \"./styles\";\r\n\r\nconst ListaPlanos: React.FC<any> = ({ planos, onChange, cdPlanoAtivo }) => {\r\n return (\r\n <div>\r\n {planos.map((plano: any, index: number) => (\r\n <PlanoButtonContainer key={index}>\r\n <PlanoButton\r\n ativo={plano.CD_PLANO === cdPlanoAtivo}\r\n onClick={() => onChange(plano)}\r\n >\r\n <b>{plano.DS_PLANO}</b>\r\n <div>Situação: {plano.DS_SIT_PLANO}</div>\r\n <div>Categoria: {plano.DS_CATEGORIA}</div>\r\n </PlanoButton>\r\n </PlanoButtonContainer>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ListaPlanos;\r\n","import { darken, lighten } from \"polished\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const ProcessoButtonContainer = styled.div`\r\n display: inline-block;\r\n width: 100%;\r\n margin: 10px;\r\n\r\n @media (min-width: 768px) {\r\n width: 350px;\r\n }\r\n`;\r\n\r\nexport const ProcessoButton = styled.button <any>`\r\n width: 100%;\r\n border: 1px solid #006789;\r\n border-radius: 5px;\r\n background: ${(props) =>\r\n props.ativo ? \"#006789\" : \"#FFFFFF\"};\r\n color: ${(props) => (props.ativo ? \"#FFFFFF\" : \"#006789\")};\r\n padding: 5px;\r\n text-align: center;\r\n transition: background 0.3s;\r\n\r\n &:hover {\r\n background: ${(props) =>\r\n props.ativo\r\n ? darken(0.1, \"#006789\")\r\n : lighten(0.4, \"#FFFFFF\")};\r\n cursor: pointer;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.65;\r\n }\r\n\r\n @media (min-width: 768px) {\r\n width: 350px;\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport { ProcessoBeneficioEntidade } from \"../../entidades\";\r\n\r\nimport { ProcessoButtonContainer, ProcessoButton } from \"./styles\";\r\n\r\ninterface IProps {\r\n processos: Array<ProcessoBeneficioEntidade>;\r\n onChange: (processo: ProcessoBeneficioEntidade) => void;\r\n dsProcessoAtivo: string;\r\n textoInstrucao: string;\r\n}\r\n\r\nconst ListaProcesso: React.FC<IProps> = ({\r\n processos,\r\n onChange,\r\n dsProcessoAtivo,\r\n textoInstrucao\r\n}) => {\r\n\r\n if (processos.length < 2) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div>\r\n <span className={\"text-primary\"}>\r\n {textoInstrucao}\r\n </span>\r\n <div>\r\n {processos.map((processo: ProcessoBeneficioEntidade, index: number) => (\r\n <ProcessoButtonContainer key={index}>\r\n <ProcessoButton\r\n ativo={processo.DS_PROCESSO === dsProcessoAtivo}\r\n disabled={processo.DS_PROCESSO === dsProcessoAtivo}\r\n onClick={() => onChange(processo)}\r\n >\r\n <b>{processo.DS_ESPECIE}</b>\r\n <div>{processo.ANO_PROCESSO + \"/\" + processo.NUM_PROCESSO + \" - \" + processo.DT_CONCESSAO}</div>\r\n </ProcessoButton>\r\n </ProcessoButtonContainer>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ListaProcesso;","import styled from \"styled-components\";\r\n\r\nexport const Container = styled.div`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport const Loader = styled.img`\r\n width: 100px;\r\n`;\r\n\r\nexport const LoaderText = styled.div`\r\n\r\n`;","import React from 'react';\r\nimport { Box } from '@intechprev/componentes-web';\r\nimport { Container, Loader, LoaderText } from './styles';\r\n\r\nconst LoadingComponent: React.FC = () => {\r\n return (\r\n <Box>\r\n <Container>\r\n <Loader src={'./imagens/loading.gif'} alt='loader' />\r\n\r\n <LoaderText>Carregando...</LoaderText>\r\n </Container>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default LoadingComponent;","import React, { useContext, useEffect, useState } from \"react\";\r\nimport moment from \"moment\";\r\nimport { Row, Col, Box, CampoEstatico, TipoCampoEstatico, Alerta, TipoAlerta } from \"@intechprev/componentes-web\";\r\nimport { HomeCard } from \"./../HomeCard\";\r\nimport { FichaFinanceiraService, FichaFechamentoService } from \"./../../../services\";\r\nimport { HomeContext } from \"../../../contexts\";\r\nimport { PlanoVinculadoEntidade } from \"../../../entidades\";\r\nimport { LoadingComponent } from \"../../../components\";\r\n\r\nexport const Ativo: React.FC = () => {\r\n const context = useContext(HomeContext);\r\n\r\n const [Plano, setPlano] = useState<PlanoVinculadoEntidade>(new PlanoVinculadoEntidade());\r\n const [UltimaContribuicao, setUltimaContribuicao] = useState<any>({});\r\n const [Saldos, setSaldos] = useState<any>({});\r\n\r\n const [Loading, setLoading] = useState<boolean>(false);\r\n const [Erro, setErro] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n try {\r\n const Plano = await context.buscarPlano();\r\n\r\n const ultimaContribuicao = await FichaFinanceiraService.BuscarUltimaExibicaoPorPlano(Plano.CD_PLANO);\r\n const saldos = await FichaFechamentoService.BuscarSaldoPorPlano(Plano.CD_PLANO);\r\n\r\n setUltimaContribuicao(ultimaContribuicao);\r\n setSaldos(saldos);\r\n setPlano(Plano);\r\n }\r\n catch (e) {\r\n const err: any = e;\r\n setErro(err.response ? err.response.data : err);\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n })();\r\n }, [context]);\r\n\r\n return (\r\n <div>\r\n {Loading && <LoadingComponent />}\r\n\r\n {!Loading && Erro !== \"\" && <Alerta tipo={TipoAlerta.danger} mensagem={Erro} />}\r\n\r\n {!Loading && Erro === \"\" && UltimaContribuicao &&\r\n <div>\r\n <Row>\r\n <Col>\r\n <HomeCard titulo={Plano.DS_PLANO}>\r\n {Plano.DS_CATEGORIA}\r\n </HomeCard>\r\n </Col>\r\n {typeof UltimaContribuicao !== \"string\" &&\r\n <Col>\r\n <HomeCard titulo={\"Contribuição Atual\"} >\r\n {UltimaContribuicao.Percentual}%\r\n </HomeCard>\r\n </Col>\r\n }\r\n {typeof UltimaContribuicao !== \"string\" &&\r\n <Col>\r\n <HomeCard titulo={\"Salário de Participação\"}>\r\n <CampoEstatico valor={UltimaContribuicao.SRC} tipo={TipoCampoEstatico.dinheiro} />\r\n </HomeCard>\r\n </Col>\r\n }\r\n <Col>\r\n <HomeCard titulo={\"Data de Inscrição\"}>\r\n {Plano.DT_INSC_PLANO}\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Regime de Tributação\"}>\r\n {Plano.TIPO_IRRF === \"2\" ? \"Regressivo\" : \"Progressivo\"}\r\n </HomeCard>\r\n </Col>\r\n </Row>\r\n\r\n {typeof UltimaContribuicao !== \"string\" &&\r\n <Row className={\"mt-4\"}>\r\n <Col>\r\n <Box renderRow={true} titulo={\"Sua Última Contribuição\"} label={`Posição de ${moment(UltimaContribuicao.DataReferencia, \"DD/MM/YYYY\").format(\"DD/MM/YYYY\")}`}>\r\n\r\n <table className={\"table table-striped table-sm\"}>\r\n <tbody>\r\n {UltimaContribuicao.Contribuicoes && UltimaContribuicao.Contribuicoes.map((contrib: any, index: number) => {\r\n // Define o tipo de linha (td ou th) baseado no index. Se for o ultimo, será o total, e será th\r\n var Td = (props: any) => <td className={props.className}>{props.children}</td>;\r\n\r\n if (index == UltimaContribuicao.Contribuicoes.length - 1)\r\n Td = (props: any) => <th className={props.className}>{props.children}</th>;\r\n\r\n return (\r\n <tr key={index}>\r\n <Td>{contrib.Item1}</Td>\r\n <Td className={\"text-right\"}>\r\n <CampoEstatico valor={contrib.Item2} tipo={TipoCampoEstatico.dinheiro} />\r\n </Td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n\r\n </Box>\r\n\r\n <Box renderRow={true} titulo={\"Custeio\"} label={`Posição de ${moment(UltimaContribuicao.DataReferencia, \"DD/MM/YYYY\").format(\"DD/MM/YYYY\")}`}>\r\n\r\n <table className={\"table table-striped table-sm\"}>\r\n <tbody>\r\n {UltimaContribuicao.Descontos && UltimaContribuicao.Descontos.map((desconto: any, index: number) => {\r\n // Define o tipo de linha (td ou th) baseado no index. Se for o ultimo, será o total, e será th\r\n var Td = (props: any) => <td className={props.className}>{props.children}</td>;\r\n\r\n if (index == UltimaContribuicao.Descontos.length - 1)\r\n Td = (props: any) => <th className={props.className}>{props.children}</th>;\r\n\r\n return (\r\n <tr key={index}>\r\n <Td>{desconto.DS_AGRUPADOR_WEB}</Td>\r\n <Td className={\"text-right\"}>\r\n <CampoEstatico valor={desconto.CONTRIB_PARTICIPANTE} tipo={TipoCampoEstatico.dinheiro} />\r\n </Td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n\r\n <b>Valor Líquido (Contribuição Total - Custeio Total): <CampoEstatico valor={UltimaContribuicao.Liquido} tipo={TipoCampoEstatico.dinheiro} /></b>\r\n\r\n </Box>\r\n </Col>\r\n\r\n <Col>\r\n <Box titulo={\"Seu Saldo\"} label={`Posição de ${Saldos.DT_FECHAMENTO !== undefined ? Saldos.DT_FECHAMENTO.substring(3) : \"\"}`}>\r\n\r\n <table className={\"table table-borderless table-sm\"}>\r\n <tbody>\r\n <tr>\r\n <td>Minhas Contribuições (total):</td>\r\n <td className={'text-right'}>\r\n <CampoEstatico valor={Saldos.VL_GRUPO1} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>Contribuições Patronais (total):</td>\r\n <td className={'text-right'}>\r\n <CampoEstatico valor={Saldos.VL_GRUPO2} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>Contribuições Totais:</td>\r\n <td className={'text-right'}>\r\n <CampoEstatico valor={Saldos.VL_GRUPO1 + Saldos.VL_GRUPO2} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <hr />\r\n\r\n <div className={\"mb-3 pl-2 pr-2 table\"}>\r\n Rendimento do Plano:\r\n <p className={\"float-right\"}>\r\n <CampoEstatico valor={Saldos.VL_ACUMULADO - (Saldos.VL_GRUPO1 + Saldos.VL_GRUPO2)} tipo={TipoCampoEstatico.dinheiro} />\r\n </p>\r\n </div>\r\n\r\n <div className={\"alert alert-success\"}>\r\n <b>Saldo Acumulado Atualizado:</b>\r\n <p className={\"float-right\"}>\r\n <b><CampoEstatico valor={Saldos.VL_ACUMULADO} tipo={TipoCampoEstatico.dinheiro} /></b>\r\n </p>\r\n </div>\r\n\r\n <p className={\"text-info\"}>\r\n Valor da cota em {Saldos.DT_FECHAMENTO !== undefined ? Saldos.DT_FECHAMENTO.substring(3) : \"\"}: <CampoEstatico valor={Saldos.VL_COTA} tipo={TipoCampoEstatico.texto} />\r\n </p>\r\n </Box>\r\n </Col>\r\n </Row>\r\n }\r\n\r\n {UltimaContribuicao.msgAdicional &&\r\n <Alerta tipo={TipoAlerta.danger} mensagem={UltimaContribuicao.msgAdicional} />\r\n }\r\n </div>\r\n }\r\n </div>\r\n );\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Row, Col, Box, CampoEstatico, TipoCampoEstatico, Alerta, TipoAlerta } from \"@intechprev/componentes-web\";\r\nimport { HomeCard } from \"./../HomeCard\";\r\nimport { CalendarioPagamentoService, FichaFinanceiraAssistidoService } from \"./../../../services\";\r\nimport { PlanoVinculadoEntidade, ProcessoBeneficioEntidade } from \"../../../entidades\";\r\nimport { HomeContext } from \"../../../contexts\";\r\nimport { LoadingComponent } from \"../../../components\";\r\n\r\nexport const Assistido: React.FC = () => {\r\n const context = useContext(HomeContext);\r\n\r\n const [Plano, setPlano] = useState<PlanoVinculadoEntidade>(new PlanoVinculadoEntidade());\r\n const [Processo, setProcesso] = useState<ProcessoBeneficioEntidade>(new ProcessoBeneficioEntidade());\r\n const [UltimaFolha, setUltimaFolha] = useState<any>({});\r\n const [Calendario, setCalendario] = useState<Array<any>>([]);\r\n\r\n const [Loading, setLoading] = useState<boolean>(false);\r\n const [Erro, setErro] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n try {\r\n const Plano = await context.buscarPlano();\r\n\r\n const processoBeneficio = await context.buscarProcessoBeneficio();\r\n if (processoBeneficio && processoBeneficio.NUM_PROCESSO) {\r\n const ultimaFolha = await FichaFinanceiraAssistidoService.BuscarUltimaPorPlanoProcesso(Plano.CD_PLANO, processoBeneficio.CD_ESPECIE, processoBeneficio.ANO_PROCESSO, processoBeneficio.NUM_PROCESSO.toString());\r\n const calendario = await CalendarioPagamentoService.BuscarPorPlano(Plano.CD_PLANO);\r\n\r\n setUltimaFolha(ultimaFolha);\r\n setProcesso(processoBeneficio);\r\n setCalendario(calendario);\r\n }\r\n setPlano(Plano);\r\n }\r\n catch (e) {\r\n const err: any = e;\r\n setErro(err.response ? err.response.data : err);\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n })();\r\n }, [context]);\r\n\r\n return (\r\n <div>\r\n {Loading && <LoadingComponent />}\r\n\r\n {!Loading && Erro !== \"\" && <Alerta tipo={TipoAlerta.danger} mensagem={Erro} />}\r\n\r\n {!Loading && Erro === \"\" && Processo &&\r\n <div>\r\n <Row>\r\n <Col>\r\n <HomeCard titulo={Plano.DS_PLANO}>\r\n {Plano.DS_CATEGORIA}\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Situação\"}>\r\n {Processo.DS_ESPECIE}\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Data de Início do Benefício\"}>\r\n {Processo.DT_INICIO_FUND}\r\n </HomeCard>\r\n </Col>\r\n </Row>\r\n\r\n {Processo.SALDO_ATUAL > 0 &&\r\n <Row>\r\n <Col>\r\n <HomeCard titulo={\"Saldo de Conta Aplicável Atual - SCAA (em cotas)\"}>\r\n <CampoEstatico valor={Processo.SALDO_ATUAL} />\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Renda - % SCAA\"}>\r\n {Processo.VL_PARCELA_MENSAL}%\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Provável Encerramento do Benefício\"}>\r\n {Processo.DT_APOSENTADORIA}\r\n </HomeCard>\r\n </Col>\r\n {Plano.CD_PLANO !== \"0001\" &&\r\n <Col>\r\n <HomeCard titulo={\"Regime de Tributação\"}>\r\n {Plano.TIPO_IRRF === \"2\" ? \"Regressivo\" : \"Progressivo\"}\r\n </HomeCard>\r\n </Col>\r\n }\r\n </Row>\r\n }\r\n\r\n <Row className={\"mt-4\"}>\r\n <Col tamanho={\"8\"}>\r\n {UltimaFolha.Proventos && UltimaFolha.Proventos.length > 0 &&\r\n <Box titulo={`Contracheque de ${UltimaFolha.Resumo.Referencia.substring(3)}`}\r\n label={Plano.CD_PLANO === \"0002\" && `Valor da cota: ${UltimaFolha.Resumo.Indice.VALOR_IND}`}>\r\n <h6 className={\"text-right text-secondary mb-4\"}></h6>\r\n <h2 className={\"text-center mb-5\"}>Valor Líquido: <CampoEstatico valor={UltimaFolha.Resumo.Liquido} tipo={TipoCampoEstatico.dinheiro} /></h2>\r\n\r\n <table className={\"table table-striped table-sm\"}>\r\n <thead>\r\n <tr>\r\n <th>Rubrica</th>\r\n <th>Tipo</th>\r\n <th>Competência</th>\r\n <th className={\"text-right\"}>Valor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {UltimaFolha.Proventos.map((rubrica: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{rubrica.DS_RUBRICA}</td>\r\n <td className={\"text-success\"}>Provento</td>\r\n <td>{rubrica.DT_COMPETENCIA}</td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={rubrica.VALOR_MC} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n )\r\n })}\r\n\r\n {UltimaFolha.Descontos.map((rubrica: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{rubrica.DS_RUBRICA}</td>\r\n <td className={\"text-danger\"}>Desconto</td>\r\n <td>{rubrica.DT_COMPETENCIA}</td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={rubrica.VALOR_MC} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n\r\n </Box>\r\n }\r\n </Col>\r\n\r\n <Col>\r\n <Box titulo={\"Calendário de Pagamento\"}>\r\n <table className={\"table table-striped table-sm\"}>\r\n <tbody>\r\n {Calendario.map((data: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{data.DES_MES}</td>\r\n <td className={\"text-right\"}>{data.NUM_DIA}</td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n </Box>\r\n </Col>\r\n </Row>\r\n </div>\r\n }\r\n\r\n {!Processo &&\r\n <Alerta tipo={TipoAlerta.danger} mensagem={\"Nenhum processo de benefício disponível para este plano.\"} />\r\n }\r\n </div>\r\n );\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport moment from \"moment\";\r\nimport { Row, Col, CampoEstatico, TipoCampoEstatico, Alerta, TipoAlerta } from \"@intechprev/componentes-web\";\r\nimport { HomeCard } from \"./../HomeCard\";\r\nimport { HomeContext } from \"../../../contexts\";\r\nimport { PlanoVinculadoEntidade } from \"../../../entidades\";\r\nimport { LoadingComponent } from \"../../../components\";\r\nimport { PlanoService } from \"./../../../services\";\r\n\r\nexport const AtivoSaldado: React.FC = () => {\r\n const context = useContext(HomeContext);\r\n\r\n const [Plano, setPlano] = useState<PlanoVinculadoEntidade>(new PlanoVinculadoEntidade());\r\n\r\n const [Loading, setLoading] = useState<boolean>(false);\r\n const [Erro, setErro] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n try {\r\n const Plano = await PlanoService.BuscarSaldado();\r\n\r\n setPlano(Plano);\r\n }\r\n catch (e) {\r\n const err: any = e;\r\n setErro(err.response ? err.response.data : err);\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n })();\r\n }, [context]);\r\n\r\n return (\r\n <div>\r\n {Loading && <LoadingComponent />}\r\n\r\n {!Loading && Erro !== \"\" && <Alerta tipo={TipoAlerta.danger} mensagem={Erro} />}\r\n\r\n {!Loading && Erro === \"\" && Plano &&\r\n <div>\r\n <Row>\r\n <Col>\r\n <HomeCard titulo={\"PLANO BD SALDADO\"}>\r\n {Plano.DS_SIT_PLANO}\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Data Saldamento\"}>\r\n {Plano.DT_INSC_PLANO}\r\n </HomeCard>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col>\r\n <HomeCard titulo={\"Valor Inicial do Saldamento\"}>\r\n <CampoEstatico valor={Plano.VL_BENEF_SALDADO_INICIAL} tipo={TipoCampoEstatico.dinheiro} />\r\n </HomeCard>\r\n </Col>\r\n <Col>\r\n <HomeCard titulo={\"Valor Atualizado\"} label={`em ${moment(Plano.DT_INIC_VALIDADE, \"DD/MM/YYYY\").format(\"DD/MM/YYYY\")}`}>\r\n <CampoEstatico valor={Plano.VL_BENEF_SALDADO_ATUAL} tipo={TipoCampoEstatico.dinheiro} />\r\n </HomeCard>\r\n </Col>\r\n </Row>\r\n </div>\r\n }\r\n </div>\r\n );\r\n}","import React from \"react\";\r\nimport { Box } from \"@intechprev/componentes-web\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const NaoParticipante: React.FC = () => {\r\n\r\n return (\r\n <Box>\r\n <div>\r\n <b>\r\n {\"Bem Vindo.\"}\r\n </b>\r\n </div>\r\n\r\n <br />\r\n\r\n <Link className={\"btn btn-block btn-primary\"} to={\"/simulador\"}>{\"Simular Benefício\"}</Link>\r\n\r\n <br />\r\n\r\n {/* <Link className={\"btn btn-block btn-primary\"} to={\"/adesao\"}>{\"Aderir ao plano\"}</Link> */}\r\n </Box>\r\n );\r\n}","import React, { useEffect, useState, useRef, useContext } from \"react\";\r\nimport { Page } from \"../\";\r\n\r\nimport { PlanoService, ProcessoBeneficioService } from \"./../../services\";\r\nimport { Ativo } from \"./Ativo\";\r\nimport { Assistido } from \"./Assistido\";\r\nimport { AtivoSaldado } from \"./AtivoSaldado\";\r\nimport { NaoParticipante } from \"./NaoParticipante\";\r\nimport { Alerta, TipoAlerta } from \"@intechprev/componentes-web\";\r\nimport { NumFuncionalidade } from \"../Page\";\r\nimport { PlanoVinculadoEntidade, ProcessoBeneficioEntidade } from \"../../entidades\";\r\nimport { ListaPlanos, ListaProcesso, LoadingComponent } from \"../../components\";\r\nimport { HomeContext } from \"../../contexts\";\r\n\r\nexport const Home: React.FC = ({ ...props }) => {\r\n const page = useRef<Page>();\r\n const context = useContext(HomeContext);\r\n\r\n const Pensionista = localStorage.getItem(\"pensionista\") === \"true\";\r\n\r\n const [Planos, setPlanos] = useState<Array<PlanoVinculadoEntidade>>(new Array<PlanoVinculadoEntidade>());\r\n const [Plano, setPlano] = useState<PlanoVinculadoEntidade>(new PlanoVinculadoEntidade());\r\n const [CdPlano, setCdPlano] = useState<string>(\"\");\r\n const [ProcessosBeneficio, setProcessosBeneficio] = useState<Array<ProcessoBeneficioEntidade>>(new Array<ProcessoBeneficioEntidade>());\r\n const [Processo, setProcesso] = useState<ProcessoBeneficioEntidade>(new ProcessoBeneficioEntidade());\r\n const [EspecieAnoNumProcesso, setEspecieAnoNumProcesso] = useState<string>(\"\");\r\n // const [Pensionista, setPensionista] = useState<boolean>(false);\r\n const [Funcionalidade, setFuncionalidade] = useState<NumFuncionalidade>();\r\n const [Loading, setLoading] = useState<boolean>(false);\r\n const [Erro, setErro] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n (async () => {\r\n page.current.loading(true);\r\n setLoading(true);\r\n try {\r\n const planos = await PlanoService.Buscar();\r\n\r\n if (planos.length > 0) {\r\n const plano = planos[0];\r\n const cdPlano = plano.CD_PLANO;\r\n\r\n await buscarProcessos(plano);\r\n\r\n let Funcionalidade = NumFuncionalidade.HOME_ATIVOS_E_AUTOPATROCINADOS;\r\n\r\n if (plano.CD_CATEGORIA === \"4\")\r\n Funcionalidade = NumFuncionalidade.HOME_ASISSTIDOS\r\n\r\n if (Pensionista)\r\n Funcionalidade = NumFuncionalidade.HOME_PENSIONISTAS\r\n\r\n setFuncionalidade(Funcionalidade);\r\n setPlanos(planos);\r\n setPlano(plano);\r\n setCdPlano(cdPlano);\r\n\r\n context.salvarPlano(plano);\r\n }\r\n }\r\n catch (e) {\r\n const err: any = e;\r\n setErro(err.response ? err.response.data : err);\r\n }\r\n finally {\r\n page.current.loading(false);\r\n setLoading(false);\r\n }\r\n })();\r\n }, []);\r\n\r\n async function carregarPlano(Plano: PlanoVinculadoEntidade) {\r\n const CdPlano = Plano.CD_PLANO;\r\n const planoSelecionado = Planos.filter(plano => plano.CD_PLANO === CdPlano)[0];\r\n\r\n setCdPlano(CdPlano);\r\n setPlano(planoSelecionado);\r\n\r\n context.salvarPlano(planoSelecionado);\r\n\r\n await buscarProcessos(planoSelecionado);\r\n };\r\n\r\n async function buscarProcessos(Plano: PlanoVinculadoEntidade) {\r\n if (Plano.CD_CATEGORIA === \"4\") {\r\n const processosBeneficio: Array<ProcessoBeneficioEntidade> = await ProcessoBeneficioService.BuscarPorPlano(Plano.CD_PLANO);\r\n\r\n if (processosBeneficio.length > 0) {\r\n const processo = processosBeneficio[0];\r\n const especieAnoNumProcesso = processo.ESPECIE_ANO_NUM_PROCESSO;\r\n // const especieAnoNumProcesso = processo.CD_ESPECIE + processo.ANO_PROCESSO + processo.NUM_PROCESSO;\r\n\r\n setProcessosBeneficio(processosBeneficio);\r\n setProcesso(processo);\r\n setEspecieAnoNumProcesso(especieAnoNumProcesso);\r\n\r\n context.salvarProcessoBeneficio(processo);\r\n }\r\n }\r\n };\r\n\r\n async function carregarProcesso(processoBeneficio: ProcessoBeneficioEntidade) {\r\n const especieAnoNumProcesso = processoBeneficio.ESPECIE_ANO_NUM_PROCESSO;\r\n const processoSelecionado = ProcessosBeneficio.filter(processo => processo.ESPECIE_ANO_NUM_PROCESSO === especieAnoNumProcesso)[0];\r\n\r\n setProcesso(processoSelecionado);\r\n setEspecieAnoNumProcesso(especieAnoNumProcesso);\r\n\r\n context.salvarProcessoBeneficio(processoSelecionado);\r\n }\r\n\r\n return (\r\n <Page Funcionalidade={Funcionalidade} {...props} ref={page}>\r\n <>\r\n {Loading && <LoadingComponent />}\r\n\r\n {!Loading && Erro !== \"\" && <Alerta tipo={TipoAlerta.danger} mensagem={Erro} />}\r\n\r\n {!Loading && Erro === \"\" && (<>\r\n {Planos.length > 1 &&\r\n <ListaPlanos\r\n planos={Planos}\r\n onChange={carregarPlano}\r\n cdPlanoAtivo={CdPlano}\r\n />\r\n }\r\n\r\n {ProcessosBeneficio.length > 1 &&\r\n <ListaProcesso\r\n processos={ProcessosBeneficio}\r\n dsProcessoAtivo={Processo.DS_PROCESSO}\r\n onChange={carregarProcesso}\r\n textoInstrucao={\"Selecione um processo de benefício\"}\r\n />\r\n }\r\n\r\n {Plano.CD_PLANO === \"0003\" && (Plano.CD_CATEGORIA === \"1\" || Plano.CD_CATEGORIA === \"3\") &&\r\n <AtivoSaldado />\r\n }\r\n {Plano.CD_PLANO !== \"0003\" && (Plano.CD_CATEGORIA === \"1\" || Plano.CD_CATEGORIA === \"3\") &&\r\n <Ativo />\r\n }\r\n {Plano.CD_CATEGORIA === \"4\" &&\r\n <Assistido />\r\n }\r\n {Plano.CD_CATEGORIA === undefined &&\r\n <NaoParticipante />\r\n }\r\n </>)}\r\n </>\r\n </Page>\r\n )\r\n}","import React, { Component } from \"react\";\r\nimport { FuncionarioService, DependenteService } from \"./../../services\";\r\n\r\nimport { Page } from \"..\";\r\nimport { CampoEstatico, Row, Col, Box, PosicaoTituloCampoEstatico } from \"@intechprev/componentes-web\";\r\nimport { NumFuncionalidade } from \"../Page\";\r\n\r\ninterface Props {\r\n}\r\n\r\ninterface State {\r\n dados: {\r\n Funcionario: any,\r\n DadosPessoais: any,\r\n Entidade: any,\r\n NOME_EMPRESA: string,\r\n SEXO: string,\r\n DS_ESTADO_CIVIL: string,\r\n CPF: string,\r\n IDADE: string,\r\n CEP: string\r\n },\r\n dependentes: any\r\n}\r\n\r\nexport class DadosPessoais extends Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.state = {\r\n dados: {\r\n Funcionario: {},\r\n DadosPessoais: {},\r\n Entidade: {},\r\n NOME_EMPRESA: \"\",\r\n SEXO: \"\",\r\n DS_ESTADO_CIVIL: \"\",\r\n CPF: \"\",\r\n IDADE: \"\",\r\n CEP: \"\"\r\n },\r\n dependentes: []\r\n };\r\n\r\n }\r\n\r\n async componentWillMount() {\r\n if (localStorage.getItem(\"pensionista\") === \"false\") {\r\n var dependentes = await DependenteService.Buscar();\r\n this.setState({ dependentes });\r\n }\r\n\r\n var dados = await FuncionarioService.Buscar();\r\n this.setState({\r\n dados\r\n });\r\n\r\n await this.page.current.loading(false);\r\n }\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.SEUS_DADOS} {...this.props} ref={this.page}>\r\n {this.page.current &&\r\n <Row>\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <Box titulo={\"Dados Pessoais\"}>\r\n\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Nome\" valor={this.state.dados.DadosPessoais.NOME_ENTID} tamanhoCampo=\"12\" id=\"0\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Empresa\" valor={this.state.dados.NOME_EMPRESA} id=\"1\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Matrícula\" valor={this.state.dados.Funcionario.NUM_MATRICULA} id=\"2\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Sexo\" valor={this.state.dados.DadosPessoais.DS_SEXO} id=\"3\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Estado Civil\" valor={this.state.dados.DS_ESTADO_CIVIL} id=\"4\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"RG\" valor={this.state.dados.DadosPessoais.NU_IDENT} id=\"5\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Órgão Emissor RG\" valor={this.state.dados.DadosPessoais.ORG_EMIS_IDENT} id=\"6\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Emissão RG\" valor={this.state.dados.DadosPessoais.DT_EMIS_IDENT} id=\"7\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"CPF\" valor={this.state.dados.DadosPessoais.CPF_CGC} tamanhoCampo=\"6\" id=\"8\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Data de nascimento\" valor={this.state.dados.DadosPessoais.DT_NASCIMENTO} id=\"9\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Idade\" valor={this.state.dados.IDADE} id=\"10\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Data de Admissão\" valor={this.state.dados.Funcionario.DT_ADMISSAO} id=\"11\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Data de Recadastro\" valor={this.state.dados.Funcionario.DT_RECADASTRO} id=\"12\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Nome do Pai\" valor={this.state.dados.DadosPessoais.NOME_PAI} id=\"13\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Nome da Mãe\" valor={this.state.dados.DadosPessoais.NOME_MAE} id=\"14\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n {/* <CampoEstatico titulo=\"Contrato Único\" valor={\"Não Assinado\"} id=\"15\" /> */}\r\n <CampoEstatico titulo=\"E-mail\" valor={this.state.dados.DadosPessoais.EMAIL_AUX} tamanhoCampo=\"6\" id=\"16\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n\r\n </Box>\r\n </Col>\r\n\r\n <Col>\r\n <Box titulo={\"Endereço\"}>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Endereço\" valor={this.state.dados.Entidade.END_ENTID} id=\"17\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Número\" valor={this.state.dados.Entidade.NR_END_ENTID} id=\"18\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Complemento\" valor={this.state.dados.Entidade.COMP_END_ENTID} id=\"19\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Bairro\" valor={this.state.dados.Entidade.BAIRRO_ENTID} id=\"20\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Cidade\" valor={this.state.dados.Entidade.CID_ENTID} tamanhoCampo=\"4\" id=\"21\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"UF\" valor={this.state.dados.Entidade.UF_ENTID} tamanhoCampo=\"2\" id=\"22\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"CEP\" valor={this.state.dados.Entidade.CEP_ENTID} id=\"23\" />\r\n </div>\r\n </Box>\r\n\r\n <Box titulo={\"Dados Bancários\"}>\r\n <div className=\"form-row\">\r\n <CampoEstatico titulo=\"Banco\" valor={this.state.dados.Entidade.NUM_BANCO} tamanhoCampo=\"4\" id=\"24\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Agência\" valor={this.state.dados.Entidade.NUM_AGENCIA} tamanhoCampo=\"4\" id=\"25\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n <CampoEstatico titulo=\"Conta\" valor={this.state.dados.Entidade.NUM_CONTA} tamanhoCampo=\"4\" id=\"26\" posicaoTitulo={PosicaoTituloCampoEstatico.cima} />\r\n </div>\r\n\r\n <div className=\"form-row\">\r\n </div>\r\n </Box>\r\n\r\n {\r\n this.state.dependentes.length > 0 &&\r\n\r\n <Box titulo={\"Dependentes\"}>\r\n <table className=\"table\">\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"250\" }}>Nome</th>\r\n <th>Sexo</th>\r\n <th style={{ width: \"150\" }}>Data de Nascimento</th>\r\n <th style={{ width: \"150\" }}>Grau de Parentesco</th>\r\n <th>CPF</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n this.state.dependentes.map((dependente: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>\r\n {dependente.NOME_DEP}\r\n </td>\r\n <td>\r\n {dependente.SEXO_DEP == \"F\" ? \"FEMININO\" : \"MASCULINO\"}\r\n </td>\r\n <td>\r\n {dependente.DT_NASC_DEP}\r\n </td>\r\n <td>\r\n {dependente.DS_GRAU_PARENTESCO}\r\n </td>\r\n <td>\r\n {\r\n typeof (dependente.CPF) !== 'undefined' || dependente.CPF === \"\" ? dependente.CPF : \"-\"\r\n }\r\n </td>\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n </Box>\r\n }\r\n </Col>\r\n </Row>\r\n }\r\n </Page>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Row, Col, Box, Botao, CampoTexto, Form, Alerta, TipoBotao, TipoAlerta } from '@intechprev/componentes-web';\r\nimport { RelacionamentoService } from \"./../../services\";\r\n\r\nimport { Page } from \"../\";\r\nimport { NumFuncionalidade } from '../Page';\r\nimport { RelacionamentoEntidade } from '../../entidades';\r\n\r\ninterface Props {\r\n}\r\n\r\ninterface State {\r\n email: string;\r\n assunto: string;\r\n mensagem: string;\r\n}\r\n\r\nexport class Relacionamento extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n assunto: \"\",\r\n mensagem: \"\",\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.page.current.loading(false);\r\n }\r\n\r\n validar = async () => {\r\n await this.alert.current.limparErros();\r\n await this.form.current.validar();\r\n\r\n if (this.alert.current.state.mensagem.length === 0 && this.alert.current.props.mensagem.length === 0) {\r\n try {\r\n var dados: RelacionamentoEntidade = {\r\n Email: this.state.email,\r\n Assunto: this.state.assunto,\r\n Mensagem: this.state.mensagem,\r\n Nome: \"\"\r\n }\r\n await RelacionamentoService.Enviar(dados);\r\n alert(\"Mensagem enviada com sucesso!\");\r\n await this.limparCampos();\r\n } catch (err) {\r\n if (err.response)\r\n alert(err.response.data);\r\n else\r\n console.error(err);\r\n }\r\n } else {\r\n\r\n }\r\n }\r\n\r\n /**\r\n * @description Método que limpa os states de campo para limpar o formulário de nova mensagem.\r\n */\r\n limparCampos = () => {\r\n this.setState({\r\n email: \"\",\r\n assunto: \"\",\r\n mensagem: \"\",\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.FALE_CONOSCO_MENSAGENS} {...this.props} ref={this.page}>\r\n <Row>\r\n <Col>\r\n <Box>\r\n <Form ref={this.form}>\r\n <CampoTexto contexto={this} nome={\"email\"} max={50} valor={this.state.email} titulo={\"Seu e-mail\"} tipo={\"email\"} />\r\n <CampoTexto contexto={this} nome={\"assunto\"} max={50} valor={this.state.assunto} titulo={\"Assunto\"} obrigatorio />\r\n <CampoTexto contexto={this} nome={\"mensagem\"} max={4000} textarea valor={this.state.mensagem} rows={10} titulo={\"Mensagem\"} obrigatorio />\r\n\r\n <Botao titulo={\"Enviar\"} tipo={TipoBotao.primary} submit onClick={this.validar} />\r\n <br /><br />\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} tamanho={\"6\"} />\r\n </Form>\r\n </Box>\r\n </Col>\r\n </Row>\r\n </Page>\r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Row, Col, Box, Botao, CampoTexto, Alerta, TipoAlerta, TipoBotao, Form } from \"@intechprev/componentes-web\";\r\nimport { UsuarioService } from \"./../../services\";\r\nimport { Page } from \"..\";\r\nimport { LoginEntidade } from '../../entidades';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\ninterface State {\r\n senhaAtual: string;\r\n senhaNova: string;\r\n confirmarSenha: string;\r\n mensagemSucesso: boolean\r\n}\r\n\r\nexport class TrocarSenha extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n senhaAtual: \"\",\r\n senhaNova: \"\",\r\n confirmarSenha: \"\",\r\n mensagemSucesso: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.page.current.loading(false);\r\n }\r\n\r\n trocarSenha = async () => {\r\n // Define os estados iniciais de alertas.\r\n await this.alert.current.limparErros();\r\n await this.form.current.validar();\r\n\r\n this.setState({ mensagemSucesso: false })\r\n\r\n // Valida se a nova senha tem 6 ou mais caracteres.\r\n if (this.state.senhaNova.length < 6)\r\n this.alert.current.adicionarErro(\"A nova senha deve possuir no mínimo 6 caracteres.\");\r\n\r\n // Valida se os campos de nova senha e confirmação são iguais.\r\n if (this.state.senhaNova !== this.state.confirmarSenha)\r\n this.alert.current.adicionarErro(\"As senhas não coincidem.\");\r\n\r\n try {\r\n if (this.alert.current.state.mensagem.length === 0 && this.alert.current.props.mensagem.length === 0) {\r\n var login = new LoginEntidade();\r\n login.SenhaAntiga = this.state.senhaAtual;\r\n login.SenhaNova = this.state.senhaNova;\r\n await UsuarioService.AlterarSenha(login);\r\n this.setState({ mensagemSucesso: true })\r\n }\r\n } catch (err) {\r\n if (err.response)\r\n this.alert.current.adicionarErro(err.response.data)\r\n else\r\n console.error(err);\r\n }\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n <Page {...this.props} ref={this.page}>\r\n <Row>\r\n <Col className={\"col-lg-12\"}>\r\n <Box titulo={\"\"}>\r\n <Form ref={this.form}>\r\n\r\n <Row className={\"form-group\"}>\r\n <label htmlFor=\"senhaAtual\" className=\"col-2 col-form-label\"><b>Senha atual</b></label>\r\n <Col tamanho={\"10\"}>\r\n <CampoTexto contexto={this} nome={\"senhaAtual\"} obrigatorio tipo={\"password\"} valor={this.state.senhaAtual} />\r\n </Col>\r\n </Row>\r\n\r\n <Row className={\"form-group\"}>\r\n <label htmlFor=\"senhaNova\" className=\"col-sm-2 col-form-label\"><b>Nova senha</b></label>\r\n <Col tamanho={\"10\"}>\r\n <CampoTexto contexto={this} nome={\"senhaNova\"} obrigatorio tipo={\"password\"} valor={this.state.senhaNova} />\r\n </Col>\r\n </Row>\r\n\r\n <Row className={\"form-group\"}>\r\n <label htmlFor=\"confirmarSenha\" className=\"col-sm-2 col-form-label\"><b>Confirme nova senha</b></label>\r\n <Col tamanho={\"10\"}>\r\n <CampoTexto contexto={this} nome={\"confirmarSenha\"} obrigatorio tipo={\"password\"} valor={this.state.confirmarSenha} />\r\n </Col>\r\n </Row>\r\n\r\n {this.state.mensagemSucesso &&\r\n <Alerta tipo={TipoAlerta.primary} mensagem={\"Senha alterada com sucesso.\"} />\r\n }\r\n\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} />\r\n <hr />\r\n\r\n <Botao submit titulo={\"Trocar Senha\"} tipo={TipoBotao.primary}\r\n onClick={() => this.trocarSenha()} usaLoading />\r\n\r\n </Form>\r\n </Box>\r\n </Col>\r\n </Row>\r\n </Page>\r\n );\r\n }\r\n}\r\n","\r\n/** \r\n * @param {Object} dataObjeto - objeto do tipo 'date' com a data a ser verificada.\r\n * @param {string} dataString - string com a mesma data a ser comparada.\r\n * @return {boolean} - data válida ou não.\r\n * @description verificar se a data de nascimento não ultrapassa a data atual e está dentro dos limites.\r\n */\r\nexport default function DataInvalida(dataObjeto, dataString) {\r\n if(dataString === '')\r\n return false;\r\n\r\n if(dataString.length < 10)\r\n return true;\r\n\r\n var dataInvalida = VerificaLimitesData(dataObjeto, dataString);\r\n if(dataInvalida)\r\n return true;\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * @param {Object} dataObjeto - objeto do tipo 'date' com a data a ser verificada.\r\n * @param {string} dataString - string com a mesma data a ser comparada.\r\n * @return {boolean} - data válida ou não\r\n * @description Verificar se a data recebida está com os dias, meses e anos dentro do limite.\r\n */\r\nfunction VerificaLimitesData(dataObjeto, dataString) {\r\n var dia = dataObjeto.getDate();\r\n var mes = dataObjeto.getMonth() + 1;\r\n var ano = dataObjeto.getFullYear();\r\n\r\n var diaReal = parseInt(dataString.substring(0, 2), 10);\r\n var mesReal = parseInt(dataString.substring(3, 5), 10);\r\n var anoReal = parseInt(dataString.substring(6), 10);\r\n\r\n // Verifica se os dias e meses estão dentro dos valores limites (1-30 e 1-12) comparando a data recebida como string (valor fixo) com a data como Objeto (que incrementa valores caso supere os limites).\r\n if(dia === diaReal && mes === mesReal && ano === anoReal) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { PlanoService, FichaFechamentoService } from \"./../../services\";\r\n\r\nimport { Page } from \"..\";\r\nimport { Box, TipoBotao, Form, Alerta, Row, Col, CampoTexto, TipoAlerta, Botao, TamanhoBotao } from \"@intechprev/componentes-web\";\r\nimport DataInvalida from \"../../_utils/Data\";\r\nimport { NumFuncionalidade } from \"../Page\";\r\nimport { FuncionalidadeService } from \"../../services\";\r\n\r\ninterface Props { }\r\n\r\ninterface State {\r\n listaPlanos: Array<any>;\r\n\r\n modalVisivel: boolean,\r\n cdPlano: string,\r\n dataInicio: string,\r\n dataFim: string,\r\n motivoBloqueio: string;\r\n}\r\n\r\nexport default class Planos extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n\r\n this.state = {\r\n modalVisivel: false,\r\n listaPlanos: [],\r\n dataInicio: \"\",\r\n dataFim: \"\",\r\n cdPlano: \"\",\r\n motivoBloqueio: \"Aguarde enquanto o sistema carrega as informaformações.\"\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n var listaPlanos = await PlanoService.Buscar();\r\n\r\n await this.setState({\r\n listaPlanos\r\n });\r\n\r\n await this.page.current.loading(false);\r\n }\r\n\r\n /**\r\n * @description Método que altera o state 'modalVisivel' que, consequentemente, deixa a modal visível ou não. Além disso, ao fechar a modal, os states de registros devem\r\n * permanecer vazios e os states de erro devem receber'false'. Ao abrir a modal, os states recebem os valores default.\r\n */\r\n toggleModal = async (cdPlano: string) => {\r\n if (!this.state.modalVisivel) {\r\n var datasExtrato = await FichaFechamentoService.BuscarDatasExtrato(cdPlano);\r\n await this.buscarBloqueioExtrato();\r\n await this.setState({\r\n dataInicio: datasExtrato.DataInicial.substring(3),\r\n dataFim: datasExtrato.DataFinal.substring(3),\r\n });\r\n }\r\n await this.setState({\r\n modalVisivel: !this.state.modalVisivel,\r\n cdPlano\r\n });\r\n }\r\n\r\n renderModal = () => {\r\n if (this.state.modalVisivel) {\r\n return (\r\n <div className=\"modal\" role=\"dialog\">\r\n <div className=\"modal-dialog modal-lg\" role=\"document\">\r\n <div className=\"modal-content\">\r\n\r\n <div className=\"modal-header\">\r\n <h5 className=\"modal-title\">Período</h5>\r\n <button type=\"button\" className=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" onClick={() => this.toggleModal(\"\")}>\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n\r\n {this.renderExtratoForm()}\r\n\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n else\r\n return <div></div>\r\n\r\n }\r\n\r\n gerarExtrato = async () => {\r\n try {\r\n await this.alert.current.limparErros();\r\n await this.form.current.validar();\r\n\r\n var dataInicio = this.converteData(\"01/\" + this.state.dataInicio);\r\n var dataFim = this.converteData(\"01/\" + this.state.dataFim);\r\n\r\n await this.validarData(\"01/\" + this.state.dataInicio, dataInicio, \"Data de Início\");\r\n await this.validarData(\"01/\" + this.state.dataFim, dataFim, \"Data Fim\");\r\n\r\n if (dataInicio > dataFim)\r\n this.alert.current.adicionarErro(\"A data inicial é superior à data final\");\r\n\r\n if (dataFim > new Date())\r\n this.alert.current.adicionarErro(\"A data final é superior à data atual\");\r\n\r\n if (this.alert.current.state.mensagem.length === 0 && this.alert.current.props.mensagem.length === 0) {\r\n\r\n var relatorio = await PlanoService.RelatorioExtratoPorPlanoReferencia(this.state.cdPlano, (\"01/\" + this.state.dataInicio).replaceAll(\"/\", \".\"), (\"01/\" + this.state.dataFim).replaceAll(\"/\", \".\"), false);\r\n\r\n if (navigator.msSaveBlob) {\r\n // IE10+ : (has Blob, but not a[download] or URL)\r\n return navigator.msSaveBlob(new Blob([relatorio], { type: \"application/pdf\" }), \"extrato.pdf\");\r\n } else {\r\n const url = window.URL.createObjectURL(new Blob([relatorio]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', \"extrato.pdf\");\r\n document.body.appendChild(link);\r\n\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n }\r\n }\r\n } catch (e) {\r\n const err = e[\"response\"] ? e[\"response\"][\"data\"] : e;\r\n this.alert.current.adicionarErro((typeof err === \"object\") ? await err.text() : err);\r\n }\r\n }\r\n\r\n validarData = async (data: string, dataObjeto: Date, nomeCampo: string) => {\r\n if (DataInvalida(dataObjeto, data))\r\n await this.alert.current.adicionarErro(`Campo \"${nomeCampo}\" inválido.`);\r\n }\r\n\r\n converteData = (data: any) => {\r\n var dataObjeto = data.split(\"/\");\r\n dataObjeto = new Date(dataObjeto[2], dataObjeto[1] - 1, dataObjeto[0]);\r\n return dataObjeto;\r\n }\r\n\r\n buscarBloqueioExtrato = async () => {\r\n const Funcionalidade = NumFuncionalidade.EXTRATO;\r\n\r\n const planos = await PlanoService.Buscar();\r\n const cdPlanos = [];\r\n /* Código do plano do participante logado. */\r\n cdPlanos.push(planos[0].CD_PLANO);\r\n /* Código do segundo plano do participante logado (repetir o primeiro caso só tenha um plano). */\r\n cdPlanos.push(planos.length > 1 ? planos[1].CD_PLANO : cdPlanos[0]);\r\n /* Código do terceiro plano do participante logado (repetir o segundo caso só tenha um ou dois planos ) */\r\n cdPlanos.push(planos.length > 2 ? planos[2].CD_PLANO : cdPlanos[1]);\r\n\r\n const motivoBloqueio = await FuncionalidadeService.BuscarBloqueiosPorNumFuncionalidade(Funcionalidade, cdPlanos[0], cdPlanos[1], cdPlanos[2]);\r\n\r\n this.setState({ motivoBloqueio });\r\n }\r\n\r\n renderExtratoForm = () => {\r\n if (this.state.motivoBloqueio) {\r\n return (\r\n <div className=\"modal-body\">\r\n <Alerta mensagem={this.state.motivoBloqueio} tipo={TipoAlerta.danger} />\r\n </div>\r\n );\r\n }\r\n return (\r\n <Form ref={this.form}>\r\n <div className=\"modal-body\">\r\n <Row>\r\n <Col className={\"col-lg-6\"}>\r\n <CampoTexto\r\n contexto={this}\r\n nome={\"dataInicio\"}\r\n mascara={\"99/9999\"}\r\n obrigatorio\r\n valor={this.state.dataInicio}\r\n titulo={\"Data de Início\"}\r\n placeholder={\"MM/AAAA\"}\r\n tamanhoTitulo={\"lg-4\"}\r\n />\r\n </Col>\r\n\r\n <Col className={\"col-lg-6\"}>\r\n <CampoTexto\r\n contexto={this}\r\n nome={\"dataFim\"}\r\n mascara={\"99/9999\"}\r\n obrigatorio\r\n valor={this.state.dataFim}\r\n titulo={\"Data Final\"}\r\n placeholder={\"MM/AAAA\"}\r\n tamanhoTitulo={\"lg-4\"}\r\n />\r\n </Col>\r\n </Row>\r\n <div></div>\r\n </div>\r\n\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} /> {/** tamanho={\"5\"} rowClassName={\"justify-content-end\"} style={{marginRight: 15}} */}\r\n\r\n <div className=\"modal-footer\">\r\n <Botao titulo={\"Gerar\"} tipo={TipoBotao.primary} submit onClick={this.gerarExtrato} usaLoading />\r\n </div>\r\n </Form>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.SEUS_PLANOS} {...this.props} ref={this.page}>\r\n <Box>\r\n <table className=\"table\" id=\"tabelaPlanos\">\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"250\" }}>Plano</th>\r\n <th style={{ width: \"280\" }}>Situação</th>\r\n <th style={{ width: \"180\" }}>Categoria</th>\r\n <th style={{ width: \"150\" }}>Data de inscrição</th>\r\n <th style={{ width: \"130\" }}></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n this.state.listaPlanos.map((plano: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{plano.DS_PLANO}</td>\r\n <td>{plano.DS_SIT_PLANO}</td>\r\n <td>{plano.DS_CATEGORIA}</td>\r\n <td>{plano.DT_INSC_PLANO}</td>\r\n <td align=\"center\">\r\n {plano.CD_CATEGORIA !== \"4\" && plano.CD_PLANO !== \"0001\" &&\r\n <Botao tipo={TipoBotao.primary} tamanho={TamanhoBotao.pequeno} titulo={\"Extrato\"} usaLoading\r\n onClick={() => { localStorage.setItem(\"empresa\", plano.CD_EMPRESA); this.toggleModal(plano.CD_PLANO); }} />\r\n }\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </Box>\r\n\r\n {this.renderModal()}\r\n </Page>\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Row, Col, Box, Form, CampoTexto, Botao, TipoBotao, TamanhoBotao } from '@intechprev/componentes-web';\r\n\r\nimport { FuncionarioService } from \"./../../services\";\r\nimport { UsuarioService } from \"./../../services\";\r\nimport { Session } from '@intech/react-service';\r\nimport { LoginEntidade, PesquisaDados } from '../../entidades';\r\n\r\ninterface Props {\r\n history?: any;\r\n}\r\n\r\ninterface State {\r\n matricula: string,\r\n nome: string,\r\n resultadoPesquisa: any\r\n}\r\n\r\nexport class ListarParticipantes extends Component<Props, State> {\r\n\r\n private form = React.createRef<Form>();\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n\r\n this.state = {\r\n matricula: \"\",\r\n nome: \"\",\r\n resultadoPesquisa: []\r\n };\r\n };\r\n\r\n pesquisar = async () => {\r\n var dados = new PesquisaDados;\r\n dados.NUM_MATRICULA = this.state.matricula;\r\n dados.NOME = this.state.nome;\r\n var resultadoPesquisa = await FuncionarioService.Pesquisar(dados);\r\n await this.setState({ resultadoPesquisa });\r\n }\r\n\r\n selecionar = async (cpf: string, inscricao: string) => {\r\n try {\r\n const usuario: LoginEntidade = {\r\n Cpf: cpf,\r\n Inscricao: inscricao,\r\n Origem: 1\r\n };\r\n const login = await UsuarioService.Selecionar(usuario);\r\n await Session.setToken(login.AccessToken, false);\r\n\r\n const dados = await FuncionarioService.Buscar();\r\n\r\n await localStorage.setItem(\"fundacao\", dados.Funcionario.CD_FUNDACAO);\r\n await localStorage.setItem(\"empresa\", dados.Funcionario.CD_EMPRESA);\r\n await localStorage.setItem(\"pensionista\", login.Pensionista.toString());\r\n\r\n this.props.history.push(`/`);\r\n //document.location.href = '.';\r\n } catch (e) {\r\n alert(e.response.data);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Row className={\"mt-5 ml-5 mr-5\"}>\r\n <Col>\r\n <Box titulo={\"Listagem de Participantes\"}>\r\n\r\n <Form ref={this.form}>\r\n\r\n <CampoTexto contexto={this} nome={\"matricula\"} placeholder={\"Matricula\"} valor={this.state.matricula} />\r\n <CampoTexto contexto={this} nome={\"nome\"} placeholder={\"Nome\"} valor={this.state.nome} />\r\n <Botao titulo={\"Procurar\"} tipo={TipoBotao.primary} submit onClick={this.pesquisar} />\r\n\r\n </Form>\r\n\r\n {this.state.resultadoPesquisa.length > 0 &&\r\n <div>\r\n <br />\r\n\r\n <table className={\"table table-hover\"}>\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"1px\" }}></th>\r\n <th>Nome</th>\r\n <th>Matrícula</th>\r\n <th>CPF</th>\r\n <th>Empresa</th>\r\n <th>Plano</th>\r\n <th>Categoria</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {this.state.resultadoPesquisa.map((func: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>\r\n {func.PENSIONISTA === \"S\" &&\r\n <div className={\"badge badge-success\"}>PENSIONISTA</div>\r\n }\r\n </td>\r\n <td>{func.NOME_ENTID}</td>\r\n <td>{func.NUM_MATRICULA}</td>\r\n <td>{func.CPF_CGC}</td>\r\n <td>{func.CD_EMPRESA}</td>\r\n <td>{func.CD_PLANO}</td>\r\n <td>{func.DS_CATEGORIA}</td>\r\n <td>\r\n <Botao titulo={\"Selecionar\"} tipo={TipoBotao.primary} tamanho={TamanhoBotao.pequeno}\r\n onClick={async () => await this.selecionar(func.CPF_CGC, func.NUM_INSCRICAO)} />\r\n </td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n\r\n {this.state.resultadoPesquisa.length < 0 &&\r\n <div className={\"alert alert-danger\"}>A pesquisa não retornou resultados</div>\r\n }\r\n </Box>\r\n </Col>\r\n </Row>\r\n );\r\n }\r\n\r\n}","import React from 'react';\r\nimport { InfoRendService } from \"./../../services\";\r\nimport { Row, Col, Box, Form, Botao, Combo } from '@intechprev/componentes-web';\r\nimport { Page } from \"..\";\r\nimport { HeaderInfoRendEntidade } from '../../entidades';\r\nimport { NumFuncionalidade } from '../Page';\r\n\r\ninterface Props { }\r\n\r\ninterface State {\r\n datas: any,\r\n informe: HeaderInfoRendEntidade;\r\n referencia: number;\r\n}\r\n\r\nexport class InformeRendimentos extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n private form = React.createRef<Form>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n datas: [],\r\n referencia: 0,\r\n informe: null\r\n }\r\n\r\n this.page = React.createRef();\r\n }\r\n\r\n async componentDidMount() {\r\n try {\r\n var datas = await InfoRendService.BuscarReferencias();\r\n await this.setState({ datas });\r\n\r\n var datas = await InfoRendService.BuscarReferencias();\r\n if (datas.length > 0) {\r\n await this.setState({\r\n datas,\r\n referencia: datas[0]\r\n });\r\n\r\n await this.carregarReferencia();\r\n }\r\n\r\n await this.page.current.loading(false);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n carregarReferencia = async () => {\r\n try {\r\n var informe = await InfoRendService.BuscarPorReferencia(this.state.referencia);\r\n this.setState({ informe });\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n gerarRelatorio = async () => {\r\n try {\r\n //await this.form.current.validar();\r\n\r\n var relatorio = await InfoRendService.Relatorio(this.state.referencia);\r\n\r\n if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\r\n return navigator.msSaveBlob(new Blob([relatorio]), \"Informe de Rendimentos.pdf\");\r\n } else {\r\n const url = window.URL.createObjectURL(new Blob([relatorio]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', 'informe de rendimentos.pdf');\r\n document.body.appendChild(link);\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n }\r\n\r\n } catch (e) {\r\n // malabarismos malucos\r\n const handle: any = e;\r\n const err: any = handle[\"response\"] ? handle[\"response\"][\"data\"] : e;\r\n\r\n if (typeof err === \"object\") {\r\n alert(await err.text());\r\n }\r\n else\r\n alert(err);\r\n }\r\n }\r\n\r\n render() {\r\n if (this.state.datas.length > 0) {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.INFORME_DE_RENDIMENTOS_ASSISTIDOS_PENSIONISTAS} {...this.props} ref={this.page}>\r\n <Row>\r\n <Col className=\"col-lg-8\">\r\n <Box titulo={\"Resumo\"}>\r\n <Form ref={this.form}>\r\n <Row className={\"form-group\"}>\r\n <Col className={\"col-sm-6\"}>\r\n <Combo\r\n contexto={this}\r\n titulo={\"Calendário:\"}\r\n tamanhoTitulo={\"6\"}\r\n nome={\"referencia\"}\r\n valor={this.state.referencia}\r\n opcoes={this.state.datas}\r\n padrao={this.state.referencia}\r\n onChange={this.carregarReferencia}\r\n />\r\n </Col>\r\n </Row>\r\n </Form>\r\n\r\n {this.state.informe &&\r\n <>\r\n <h4>Ano Exercício: <span className=\"text-primary\">{this.state.informe.ANO_EXERCICIO}</span></h4>\r\n <h4>Ano Calendário: <span className=\"text-primary\">{this.state.informe.ANO_CALENDARIO}</span></h4>\r\n <br />\r\n\r\n {\r\n this.state.informe.Grupos.map((informe: any, index: number) => {\r\n return (\r\n <div key={index}>\r\n <h5><b>{informe.DES_GRUPO}</b></h5>\r\n\r\n <table className=\"table table-striped\">\r\n <tbody>\r\n {\r\n informe.Itens.map((linha: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{linha.DES_INFO_REND}</td>\r\n <td className=\"text-right\" style={{ width: 150 }}>\r\n <b>R$ {linha.VAL_LINHA.toLocaleString('pt-br', { minimumFractionDigits: 2 })}</b>\r\n </td>\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n <br />\r\n </div>\r\n );\r\n })\r\n }\r\n\r\n <Botao className=\"btn btn-primary\" titulo={\"Gerar Informe de Rendimentos\"}\r\n onClick={this.gerarRelatorio} />\r\n </>\r\n }\r\n </Box>\r\n </Col>\r\n </Row>\r\n </Page>\r\n );\r\n } else {\r\n return (\r\n <Page {...this.props} ref={this.page}>\r\n <div id=\"sem-informe\" className=\"alert alert-danger\">Nenhum informe disponível.</div>\r\n </Page>\r\n );\r\n }\r\n }\r\n}","import React from 'react';\r\nimport { FichaFinanceiraAssistidoService } from \"./../../services\";\r\nimport { Row, Col, Box, Botao, CampoEstatico } from \"@intechprev/componentes-web\";\r\nimport { Page } from '..';\r\nimport { HomeCard } from '../Home/HomeCard';\r\nimport { PlanoService } from '../../services';\r\n\r\ninterface Props {\r\n match?: any;\r\n}\r\n\r\ninterface State {\r\n plano: any,\r\n contracheque: {\r\n Proventos: any,\r\n Descontos: any,\r\n Resumo: {\r\n Bruto: any,\r\n Descontos: any,\r\n Liquido: any,\r\n DesTipoFolha: string\r\n }\r\n },\r\n cdPlano: string,\r\n dataReferencia: string,\r\n cdTipoFolha: string,\r\n cdEspecie: string\r\n}\r\n\r\nvar erro = false;\r\nexport default class ContrachequeDetalhe extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n plano: {},\r\n contracheque: {\r\n Proventos: [],\r\n Descontos: [],\r\n Resumo: {\r\n Bruto: \"\",\r\n Descontos: \"\",\r\n Liquido: \"\",\r\n DesTipoFolha: \"\"\r\n }\r\n },\r\n cdPlano: props.match.params.plano,\r\n dataReferencia: props.match.params.data,\r\n cdTipoFolha: props.match.params.cdTipoFolha,\r\n cdEspecie: props.match.params.cdEspecie\r\n };\r\n\r\n this.page = React.createRef();\r\n }\r\n\r\n async componentDidMount() {\r\n var plano = await PlanoService.BuscarPorCodigo(this.state.cdPlano);\r\n await this.setState({ plano });\r\n\r\n var contracheque = await FichaFinanceiraAssistidoService.BuscarPorDataReferencia(this.state.cdPlano, this.state.dataReferencia, this.state.cdTipoFolha, this.state.cdEspecie);\r\n await this.setState({ contracheque });\r\n\r\n await this.page.current.loading(false);\r\n }\r\n\r\n gerarRelatorio = async () => {\r\n try {\r\n // this.relatorio.current.download();\r\n\r\n var relatorio = await FichaFinanceiraAssistidoService.Relatorio(this.state.cdPlano, this.state.dataReferencia, this.state.cdTipoFolha, this.state.cdEspecie);\r\n\r\n if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\r\n return navigator.msSaveBlob(new Blob([relatorio]), \"Contracheque.pdf\");\r\n } else {\r\n const url = window.URL.createObjectURL(new Blob([relatorio]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', 'contracheque.pdf');\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n } catch (e) {\r\n // malabarismos malucos\r\n const handle: any = e;\r\n const err: any = handle[\"response\"] ? handle[\"response\"][\"data\"] : e;\r\n\r\n if (typeof err === \"object\") {\r\n alert(await err.text());\r\n }\r\n else\r\n alert(err);\r\n }\r\n }\r\n\r\n render() {\r\n if (erro) {\r\n return (\r\n <Page {...this.props} ref={this.page}>\r\n <div className=\"alert alert-danger\">Não há detalhes para o mês escolhido!</div>\r\n </Page>\r\n );\r\n } else {\r\n return (\r\n <Page {...this.props} ref={this.page} titulo={\"Contracheque \" + this.state.dataReferencia.replace(\".\", \"/\").replace(\".\", \"/\").substring(3)}>\r\n <Row>\r\n <Col tamanho={\"3\"}>\r\n <HomeCard titulo={this.state.plano.DS_PLANO}>\r\n {this.state.plano.DS_CATEGORIA}\r\n </HomeCard>\r\n </Col>\r\n <Col tamanho={\"3\"}>\r\n <HomeCard titulo={\"Tipo\"}>\r\n {this.state.contracheque.Resumo.DesTipoFolha}\r\n </HomeCard>\r\n </Col>\r\n {this.state.contracheque.Proventos.length > 0 &&\r\n <Col tamanho={\"6\"}>\r\n <HomeCard titulo={\"ESPÉCIE\"}>\r\n {this.state.contracheque.Proventos[0].DS_ESPECIE}\r\n </HomeCard>\r\n </Col>\r\n }\r\n <Col className={\"col-lg-4\"}>\r\n <Box>\r\n <Row className={\"text-center\"}>\r\n\r\n <Col className={\"col-lg-4\"}>\r\n <h5>BRUTO</h5>\r\n <span className=\"text text-info\">R$ {this.state.contracheque.Resumo.Bruto.toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</span>\r\n </Col>\r\n\r\n <Col className={\"col-lg-4\"}>\r\n <h5>DESCONTOS</h5>\r\n <span className=\"text text-danger\">R$ {this.state.contracheque.Resumo.Descontos.toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</span>\r\n </Col>\r\n\r\n <Col className={\"col-lg-4\"}>\r\n <h5>LÍQUIDO</h5>\r\n <span className=\"text text-warning\">R$ {this.state.contracheque.Resumo.Liquido.toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</span>\r\n </Col>\r\n\r\n </Row>\r\n </Box>\r\n </Col>\r\n\r\n <Col className={\"col-lg-12\"}>\r\n <Box>\r\n <Row>\r\n\r\n <Col className={\"col-lg-6\"}>\r\n <h2>\r\n <i className=\"fa fa-plus-circle text-success\"></i>\r\n Rendimentos\r\n </h2>\r\n <table className=\"table table-striped\">\r\n <thead>\r\n <tr>\r\n <th>Descrição</th>\r\n <th>Valor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n this.state.contracheque.Proventos.map((rendimento: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{rendimento.DS_RUBRICA}</td>\r\n <td>R$ {rendimento.VALOR_MC.toLocaleString('pt-br', { minimumFractionDigits: 2 })}</td>\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n </Col>\r\n\r\n <Col className={\"col-lg-6\"}>\r\n <h2>\r\n <i className=\"fa fa-minus-circle text-danger\"></i>\r\n Descontos\r\n </h2>\r\n <table className=\"table table-striped\">\r\n <thead>\r\n <tr>\r\n <th>Descrição</th>\r\n <th>Valor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n this.state.contracheque.Descontos.map((desconto: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{desconto.DS_RUBRICA}</td>\r\n <td>R$ {desconto.VALOR_MC.toLocaleString('pt-br', { minimumFractionDigits: 2 })}</td>\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n </Col>\r\n\r\n </Row>\r\n\r\n <Botao titulo={\"Baixar\"} className=\"btn btn-primary\" onClick={this.gerarRelatorio} usaLoading />\r\n </Box>\r\n </Col>\r\n </Row>\r\n </Page>\r\n );\r\n }\r\n }\r\n}","import React from 'react';\r\nimport { FichaFinanceiraAssistidoService, PlanoService } from \"./../../services\";\r\nimport { Row, Col, Box, Alerta, TipoAlerta } from \"@intechprev/componentes-web\";\r\nimport { Page } from \"..\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ContrachequeDetalhe from './ContrachequeDetalhe';\r\nimport { NumFuncionalidade } from '../Page';\r\n\r\nexport { ContrachequeDetalhe }\r\n\r\ninterface Props { }\r\n\r\ninterface State {\r\n planos: any;\r\n especies: Array<any>;\r\n}\r\n\r\nexport default class Contracheque extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n planos: [],\r\n especies: []\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n var resultPlanos = await PlanoService.Buscar();\r\n await this.buscarDatas(resultPlanos);\r\n await this.page.current.loading(false);\r\n }\r\n\r\n buscarDatas = async (planos: any) => {\r\n for (var i = 0; i < planos.length; i++) {\r\n var datas = await FichaFinanceiraAssistidoService.BuscarDatas(planos[i].CD_PLANO);\r\n //planos[i].contracheque = datas;\r\n\r\n await this.setState({\r\n planos: [...this.state.planos, planos[i]],\r\n especies: datas\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.CONTRACHEQUE_ASISSTIDOS_PENSIONISTAS} {...this.props} ref={this.page}>\r\n <Row>\r\n {\r\n this.state.especies.map((especie: any, index: number) => {\r\n return (\r\n\r\n <Col key={index} className={\"col-lg-6\"}>\r\n <Box titulo={\"\"}>\r\n <div className={\"cc-title\"}>\r\n {especie.Especie.DS_PLANO}\r\n </div>\r\n <br />\r\n\r\n <div className={\"mb-4\"}>\r\n <b>ESPÉCIE:</b> {especie.Especie.DS_ESPECIE}<br />\r\n <b>PROCESSO:</b> {especie.Especie.NUM_PROCESSO}/{especie.Especie.ANO_PROCESSO}\r\n </div>\r\n\r\n {especie.Lista.length > 0 &&\r\n <table className=\"table\">\r\n\r\n <thead>\r\n <tr>\r\n <th>Referência</th>\r\n <th>Tipo</th>\r\n <th>Bruto</th>\r\n <th>Descontos</th>\r\n <th>Líquido</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {\r\n especie.Lista.map((valor: any, index: number) => {\r\n return (\r\n <tr key={index} >\r\n <td>\r\n {valor.DT_REFERENCIA.substring(3)}\r\n </td>\r\n <td>\r\n {valor.DS_TIPO_FOLHA}\r\n </td>\r\n <td className=\"text-info\">\r\n {valor.VAL_BRUTO.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n </td>\r\n <td className=\"text-danger\">\r\n {valor.VAL_DESCONTOS.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n </td>\r\n <td className=\"text-success\">\r\n {valor.VAL_LIQUIDO.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n </td>\r\n <td>\r\n <Link className={\"btn btn-primary btn-sm\"} to={`/contracheque/${especie.Especie.CD_PLANO}/${valor.DT_REFERENCIA.replace(new RegExp('/', 'g'), '.')}/${valor.CD_TIPO_FOLHA}/${valor.CD_ESPECIE}`}>Detalhar</Link>\r\n </td>\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n\r\n </table>\r\n }\r\n\r\n {especie.Lista.length === 0 &&\r\n <div>Nenhum contracheque disponível para este plano.</div>\r\n }\r\n </Box>\r\n </Col>\r\n )\r\n })\r\n }\r\n </Row>\r\n\r\n {this.state.especies.length === 0 &&\r\n <Alerta tipo={TipoAlerta.danger} mensagem={\"Nenhum contracheque disponível para este plano.\"} />\r\n }\r\n\r\n </Page>\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport { DocumentoService, PlanoService } from \"./../../services\";\r\nimport {\r\n DocumentoEntidade,\r\n DocumentoPastaEntidade,\r\n PlanoVinculadoEntidade,\r\n} from \"./../../entidades\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { Page } from \"..\";\r\nimport {\r\n Row,\r\n Col,\r\n Box,\r\n Botao,\r\n Alerta,\r\n TipoAlerta,\r\n TipoBotao,\r\n} from \"@intechprev/componentes-web\";\r\nimport { NumFuncionalidade } from \"../Page\";\r\n\r\ninterface Props {\r\n match?: any;\r\n}\r\n\r\ninterface State {\r\n documentos: Array<DocumentoEntidade>;\r\n oidPasta: number;\r\n pastas: Array<DocumentoPastaEntidade>;\r\n pastaAtual: DocumentoPastaEntidade;\r\n pastaPai: DocumentoPastaEntidade;\r\n planos: Array<PlanoVinculadoEntidade>;\r\n selectedOption: string;\r\n}\r\n\r\nexport class Documentos extends React.Component<Props, State> {\r\n private options = [\"data\", \"nome\"];\r\n\r\n private alerta = React.createRef<Alerta>();\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n documentos: [],\r\n oidPasta: props.match.params.pasta || 0,\r\n pastas: [],\r\n pastaAtual: null,\r\n pastaPai: null,\r\n planos: [],\r\n selectedOption: this.options[0],\r\n };\r\n }\r\n\r\n componentDidMount = async () => {\r\n try {\r\n await this.page.current.loading(true);\r\n var planos = await PlanoService.Buscar();\r\n\r\n await this.setState({\r\n planos,\r\n });\r\n\r\n await this.buscarLista();\r\n await this.page.current.loading(false);\r\n } catch (erro) {\r\n if (erro.response) {\r\n alert(erro.response.data);\r\n } else {\r\n alert(erro);\r\n }\r\n }\r\n };\r\n\r\n UNSAFE_componentWillReceiveProps() {\r\n window.location.reload();\r\n }\r\n\r\n handleOptionChange = (e: any) => {\r\n const selectedOption = e.target.value;\r\n this.setState(\r\n {\r\n selectedOption,\r\n },\r\n this.buscarLista\r\n );\r\n };\r\n\r\n buscarLista = async () => {\r\n var resultado = await DocumentoService.BuscarPorPlanoPasta(\r\n this.state.planos[0].CD_PLANO,\r\n this.state.oidPasta,\r\n this.state.selectedOption\r\n );\r\n\r\n await this.setState({\r\n documentos: resultado.documentos,\r\n pastas: resultado.pastas,\r\n pastaAtual: resultado.pastaAtual,\r\n pastaPai: resultado.pastaPai,\r\n });\r\n };\r\n\r\n baixarDocumento = async (doc: DocumentoEntidade) => {\r\n try {\r\n const documentoInfo = await DocumentoService.BuscarPorOidDocumento(\r\n doc.OID_DOCUMENTO\r\n );\r\n const documento = await DocumentoService.Download(\r\n doc.OID_DOCUMENTO\r\n );\r\n\r\n if (navigator.msSaveBlob) {\r\n // IE10+ : (has Blob, but not a[download] or URL)\r\n return navigator.msSaveBlob(\r\n new Blob([documento]),\r\n documentoInfo.NOM_ARQUIVO_LOCAL\r\n );\r\n } else {\r\n const url = window.URL.createObjectURL(new Blob([documento]));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", documentoInfo.NOM_ARQUIVO_LOCAL);\r\n document.body.appendChild(link);\r\n\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n }\r\n } catch (err) {\r\n if (err.response) {\r\n await this.alerta.current!.adicionarErro(\r\n \"Houve um erro ao baixar o arquivo.\"\r\n );\r\n console.error(err);\r\n return null;\r\n }\r\n await this.alerta.current!.adicionarErro(err);\r\n console.error(err);\r\n }\r\n };\r\n\r\n renderPastaDocumentosTabela = () => {\r\n if (\r\n this.state.pastas.length === 0 &&\r\n this.state.documentos.length === 0\r\n ) {\r\n return (\r\n <Alerta\r\n mensagem={\"Nenhum item disponível.\"}\r\n tipo={TipoAlerta.danger}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <div>\r\n <table\r\n className={\r\n \"table table-sm table-striped table-bordered table-hover\"\r\n }\r\n >\r\n <tbody>\r\n {this.renderPastaTabela()}\r\n {this.renderDocumentoTabela()}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n };\r\n\r\n renderPastaTabela = () => {\r\n return this.state.pastas.map(\r\n (pasta: DocumentoPastaEntidade, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td\r\n style={{ width: \"50px\" }}\r\n className={\"align-middle text-center\"}\r\n >\r\n <i\r\n className={\r\n \"fa fa-2x fa-folder-open text-warning\"\r\n }\r\n ></i>\r\n </td>\r\n <td>\r\n <Link\r\n className={\"btn btn-link\"}\r\n to={`/documentos/${pasta.OID_DOCUMENTO_PASTA}`}\r\n >\r\n {pasta.NOM_PASTA}\r\n </Link>\r\n </td>\r\n </tr>\r\n );\r\n }\r\n );\r\n };\r\n\r\n renderDocumentoTabela = () => {\r\n return this.state.documentos.map(\r\n (doc: DocumentoEntidade, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td\r\n style={{ width: \"50px\" }}\r\n className={\"align-middle text-center\"}\r\n >\r\n <i className={\"fa fa-2x fa-file text-info\"}></i>\r\n </td>\r\n <td>\r\n <Botao\r\n onClick={() => this.baixarDocumento(doc)}\r\n titulo={doc.TXT_TITULO}\r\n tipo={TipoBotao.link}\r\n usaLoading\r\n />\r\n </td>\r\n </tr>\r\n );\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n <Page\r\n Funcionalidade={NumFuncionalidade.DOCUMENTOS}\r\n {...this.props}\r\n ref={this.page}\r\n >\r\n <Row>\r\n <Col>\r\n <Box titulo={\"Pastas e Arquivos Disponibilizados\"}>\r\n <Row className={\"mb-3\"}>\r\n <Col>\r\n <span>\r\n <div className={\"form-group\"}>\r\n {\"Ordenar Por:\"}\r\n </div>\r\n <div\r\n className={\r\n \"form-check form-check-inline\"\r\n }\r\n >\r\n <input\r\n className={\"form-check-input\"}\r\n type={\"radio\"}\r\n name={\"inlineRadioOptions\"}\r\n id={\"inlineRadio1\"}\r\n value={this.options[0]}\r\n checked={\r\n this.state\r\n .selectedOption ===\r\n this.options[0]\r\n }\r\n onChange={\r\n this.handleOptionChange\r\n }\r\n />\r\n <label\r\n className={\"form-check-label\"}\r\n htmlFor={\"inlineRadio1\"}\r\n >\r\n {\"Data\"}\r\n </label>\r\n </div>\r\n <div\r\n className={\r\n \"form-check form-check-inline\"\r\n }\r\n >\r\n <input\r\n className={\"form-check-input\"}\r\n type={\"radio\"}\r\n name={\"inlineRadioOptions\"}\r\n id={\"inlineRadio2\"}\r\n value={this.options[1]}\r\n checked={\r\n this.state\r\n .selectedOption ===\r\n this.options[1]\r\n }\r\n onChange={\r\n this.handleOptionChange\r\n }\r\n />\r\n <label\r\n className={\"form-check-label\"}\r\n htmlFor={\"inlineRadio2\"}\r\n >\r\n {\"Nome\"}\r\n </label>\r\n </div>\r\n </span>\r\n {this.state.pastaAtual && (\r\n <>\r\n <Link\r\n className={\"btn btn-primary\"}\r\n to={`/documentos/${this.state.pastaPai\r\n ? this.state.pastaPai\r\n .OID_DOCUMENTO_PASTA\r\n : \"\"\r\n }`}\r\n >\r\n <i\r\n className={\r\n \"fa fa-chevron-left mr-2\"\r\n }\r\n ></i>\r\n Voltar\r\n </Link>\r\n <span\r\n className={\r\n \"ml-3 text-info align-self-center\"\r\n }\r\n >\r\n {`Pasta atual: ./${this.state.pastaPai\r\n ? this.state.pastaPai\r\n .NOM_PASTA + \"/\"\r\n : \"\"\r\n }${this.state.pastaAtual\r\n .NOM_PASTA\r\n }`}\r\n </span>\r\n </>\r\n )}\r\n </Col>\r\n </Row>\r\n\r\n <Alerta\r\n tipo={TipoAlerta.danger}\r\n ref={this.alerta}\r\n />\r\n\r\n {this.renderPastaDocumentosTabela()}\r\n </Box>\r\n </Col>\r\n </Row>\r\n </Page>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { MensagemService, PlanoService, FuncionarioService } from \"./../../services\";\r\nimport { Row, Col, Box, Botao, TipoBotao } from '@intechprev/componentes-web';\r\n\r\nimport ListaMensagens from \"./ListaMensagens\";\r\nimport { Page } from \"..\";\r\nimport { NumFuncionalidade } from '../Page';\r\n\r\ninterface Props {\r\n history?: any\r\n}\r\n\r\ninterface State {\r\n mensagens: any,\r\n planos: any\r\n}\r\n\r\nexport default class Mensagens extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n mensagens: [],\r\n planos: []\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n try {\r\n var planos = await PlanoService.Buscar();\r\n var funcionario = await FuncionarioService.Buscar();\r\n\r\n planos.map(async (plano: any) => {\r\n\r\n var mensagens = await MensagemService.BuscarPorFundacaoEmpresaPlano(funcionario.Funcionario.CD_FUNDACAO, funcionario.Funcionario.CD_EMPRESA, plano.CD_PLANO);\r\n plano.mensagens = mensagens;\r\n await this.setState({\r\n planos: [...this.state.planos, plano]\r\n });\r\n\r\n });\r\n\r\n await this.page.current.loading(false);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.FALE_CONOSCO_MENSAGENS} {...this.props} ref={this.page}>\r\n {this.state.planos.length > 0 &&\r\n <Row>\r\n <Col>\r\n <Box titulo={\"Mensagens\"}>\r\n {this.state.planos[0].mensagens.length > 0 &&\r\n <ListaMensagens mostrarDados={false} mensagens={this.state.planos[0].mensagens} />}\r\n\r\n {this.state.planos[0].mensagens.length === 0 &&\r\n <div id=\"alertMensagem\" className=\"alert alert-danger\">Nenhuma mensagem enviada.</div>}\r\n </Box>\r\n </Col>\r\n </Row>\r\n }\r\n </Page>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { History } from 'history';\r\nimport { Row, Col, Box, Botao, CampoTexto, Form, Alerta, TipoBotao, TipoAlerta, CampoEstatico, TipoCampoEstatico, PosicaoTituloCampoEstatico, CampoValor } from '@intechprev/componentes-web';\r\nimport Slider, { createSliderWithTooltip } from 'rc-slider';\r\nimport moment from \"moment\";\r\n\r\nimport { Page } from \"../\";\r\nimport { FichaFechamentoService, PlanoService, FichaFinanceiraService, FuncionarioService } from \"./../../services\";\r\nimport { timingSafeEqual } from 'crypto';\r\nimport { NumFuncionalidade } from '../Page';\r\n\r\nfunction formatValue(val: string) {\r\n const possibleNumber = Number(val);\r\n if (isNaN(possibleNumber))\r\n return Number(\r\n val.replace(\"R$\", \"\")\r\n .replace(/\\./g, \"\")\r\n .replace(\",\", \".\")\r\n );\r\n return possibleNumber;\r\n}\r\n\r\nconst SliderWithTooltip = createSliderWithTooltip(Slider);\r\n\r\ninterface Props {\r\n history?: History;\r\n}\r\n\r\ninterface State {\r\n dataNascimento: string;\r\n saldoAcumulado: number;\r\n salarioContribuicao: number;\r\n dataUltimoSalario: string;\r\n percentualContrib: number;\r\n contribMensal: number;\r\n contribPatronal: number;\r\n idadeMinima: number;\r\n idadeMaxima: number;\r\n idadeAposentadoria: number;\r\n idadeAtual: number;\r\n percentualAVista: number;\r\n aporte: number;\r\n outroValor: number;\r\n naoParticipante: boolean;\r\n termoAceito: boolean;\r\n Erro: string;\r\n}\r\n\r\nexport default class SimuladorBeneficios extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n state: State = {\r\n dataNascimento: \"\",\r\n saldoAcumulado: 0,\r\n salarioContribuicao: 0,\r\n dataUltimoSalario: \"00/0000\",\r\n percentualContrib: 0,\r\n contribMensal: 0,\r\n contribPatronal: 0,\r\n idadeMinima: 58,\r\n idadeMaxima: 80,\r\n idadeAposentadoria: 0,\r\n idadeAtual: 0,\r\n percentualAVista: 0,\r\n aporte: 0,\r\n outroValor: 0,\r\n naoParticipante: true,\r\n termoAceito: false,\r\n Erro: \"\"\r\n }\r\n\r\n componentDidMount = async () => {\r\n var planos = await PlanoService.Buscar();\r\n\r\n var saldos;\r\n var ultimaContribuicao;\r\n var idadePlano = 0;\r\n var naoParticipante = true;\r\n var plano;\r\n\r\n var planoFiltrado = planos.filter((plano: any) => plano.CD_PLANO !== \"0001\");\r\n\r\n if (planoFiltrado.length > 0) {\r\n plano = planoFiltrado[0];\r\n\r\n var cdPlano = plano.CD_PLANO;\r\n saldos = await FichaFechamentoService.BuscarSaldoPorPlano(cdPlano);\r\n ultimaContribuicao = await FichaFinanceiraService.BuscarUltimaExibicaoPorPlano(cdPlano);\r\n\r\n var dataInscricao = moment(plano.DT_INSC_PLANO, \"DD/MM/YYYY\");\r\n idadePlano = moment().diff(dataInscricao, \"years\");\r\n\r\n naoParticipante = false;\r\n }\r\n\r\n var dataNascimento;\r\n\r\n if (naoParticipante) {\r\n const dados = await FuncionarioService.BuscarNP();\r\n dataNascimento = moment(dados.Funcionario.DT_NASCIMENTO, \"DD/MM/YYYY\");\r\n }\r\n else {\r\n const dados = await FuncionarioService.Buscar();\r\n dataNascimento = moment(dados.DadosPessoais.DT_NASCIMENTO, \"DD/MM/YYYY\");\r\n }\r\n\r\n var idadeAtual = moment().diff(dataNascimento, \"years\");\r\n\r\n var idadeMinima = this.state.idadeMinima;\r\n var idadeMaxima = this.state.idadeMaxima;\r\n\r\n // Idade Minima Nao Participante\r\n if (naoParticipante && idadeAtual > this.state.idadeMinima)\r\n idadeMinima = idadeAtual + 1;\r\n\r\n // Idade Minima Participante Normal\r\n if (!naoParticipante && idadeAtual > this.state.idadeMinima && idadePlano > 5)\r\n idadeMinima = idadeAtual;\r\n\r\n if (idadeAtual >= 80)\r\n idadeMaxima = 90;\r\n\r\n await this.setState({\r\n saldoAcumulado: saldos ? saldos.VL_ACUMULADO : 0,\r\n salarioContribuicao: ultimaContribuicao ? ultimaContribuicao.SRC : 0,\r\n dataUltimoSalario: ultimaContribuicao ? ultimaContribuicao.DataReferencia.substring(3) : \"\",\r\n percentualContrib: ultimaContribuicao ? ultimaContribuicao.Percentual : 2,\r\n idadeMinima,\r\n idadeMaxima,\r\n idadeAposentadoria: idadeMinima,\r\n idadeAtual,\r\n naoParticipante\r\n });\r\n\r\n await this.calcularPercentual(ultimaContribuicao ? ultimaContribuicao.Percentual : 2);\r\n await this.page.current.loading(false);\r\n }\r\n\r\n calcularPercentual = async (percentual: number) => {\r\n var percentualPatronal = percentual > 8 ? 8 : percentual;\r\n console.log({ salarioContribuicao: this.state.salarioContribuicao.toString() });\r\n var salarioContribuicao = formatValue(this.state.salarioContribuicao.toString());\r\n console.log({ salarioContribuicao });\r\n console.log({ percentual });\r\n await this.setState({\r\n percentualContrib: percentual,\r\n contribMensal: salarioContribuicao / 100 * percentual,\r\n contribPatronal: salarioContribuicao / 100 * percentualPatronal\r\n });\r\n }\r\n\r\n continuar = async () => {\r\n try {\r\n var alert = this.alert.current;\r\n var form = this.form.current;\r\n\r\n await alert.limparErros();\r\n await form.validar();\r\n\r\n if (form.isValido()) {\r\n if (this.state.naoParticipante) {\r\n const dta = moment(this.state.dataNascimento, \"dd/MM/yyyy\");\r\n\r\n if (!dta.isValid()) {\r\n alert.adicionarErro('Campo \"Data de Nascimento\" inválido.');\r\n return;\r\n }\r\n }\r\n\r\n var outroValor = formatValue(this.state.outroValor.toString());\r\n if (outroValor > 0) {\r\n await this.setState({\r\n aporte: outroValor\r\n });\r\n }\r\n\r\n if (this.state.percentualContrib >= 8)\r\n this.props.history.push({\r\n pathname: `/simulador/maior8`,\r\n state: {\r\n ...this.state,\r\n aporte: outroValor > 0 ? outroValor : this.state.aporte\r\n }\r\n });\r\n else\r\n this.props.history.push({\r\n pathname: `/simulador/menor8`,\r\n state: {\r\n ...this.state,\r\n aporte: outroValor > 0 ? outroValor : this.state.aporte\r\n }\r\n });\r\n }\r\n }\r\n catch (err) {\r\n if (err.response)\r\n this.alert.current.adicionarErro(err.response.data);\r\n else\r\n this.alert.current.adicionarErro(err);\r\n }\r\n }\r\n\r\n calcularIdadeNP = () => {\r\n var dataNascimento = moment(this.state.dataNascimento, \"DD/MM/YYYY\");\r\n\r\n var idadeAtual = moment().diff(dataNascimento, \"years\");\r\n\r\n var idadeMinima = this.state.idadeMinima;\r\n var idadeMaxima = this.state.idadeMaxima;\r\n\r\n // Idade Minima Nao Participante\r\n if (idadeAtual > this.state.idadeMinima)\r\n idadeMinima = idadeAtual + 1;\r\n\r\n if (idadeAtual >= 80)\r\n idadeMaxima = 90;\r\n\r\n this.setState({\r\n idadeMinima,\r\n idadeMaxima,\r\n idadeAposentadoria: idadeMinima,\r\n idadeAtual\r\n });\r\n };\r\n\r\n setAporte = (val: number) => {\r\n this.setState({\r\n aporte: val,\r\n outroValor: 0\r\n });\r\n };\r\n\r\n setOutroValor = (e: any) => {\r\n var outroValor = formatValue(this.state.outroValor.toString());\r\n if (outroValor > 0) {\r\n this.setState({\r\n aporte: 0\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n if (this.state.Erro !== \"\") {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.SIMULADOR_DE_BENEFÍCIOS_CODEPREV} {...this.props} ref={this.page}>\r\n\r\n <Alerta tipo={TipoAlerta.danger} mensagem={this.state.Erro} />\r\n\r\n </Page>\r\n );\r\n }\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.SIMULADOR_DE_BENEFÍCIOS_CODEPREV} {...this.props} ref={this.page}>\r\n <Box>\r\n <Form ref={this.form}>\r\n <h2>Bem-vindo ao simulador de benefícios do plano CODEPREV!</h2>\r\n <h3 className={\"mb-5 mt-3\"}>\r\n O seu benefício será simulado com base no seu Saldo de Conta Aplicável acumulado,\r\n até o momento, com o acréscimo das suas contribuições futuras até a data da sua aposentadoria.\r\n A taxa referencial de juros utilizada na simulação é de 3,5% ao ano.\r\n </h3>\r\n\r\n {/* Nao Participante */}\r\n {this.state.naoParticipante && <>\r\n <CampoValor\r\n contexto={this}\r\n nome={\"salarioContribuicao\"}\r\n valor={this.state.salarioContribuicao}\r\n titulo={\"Seu Último Salário de Contribuição\"}\r\n onChange={(e: any) => this.setState({ salarioContribuicao: e.target.value })}\r\n onBlur={() => this.calcularPercentual(this.state.percentualContrib)}\r\n tamanhoTitulo={\"lg-3\"}\r\n obrigatorio\r\n />\r\n\r\n <CampoTexto\r\n contexto={this}\r\n nome={\"dataNascimento\"}\r\n valor={this.state.dataNascimento}\r\n titulo={\"Data de Nascimento\"}\r\n tamanhoTitulo={\"lg-3\"}\r\n mascara={\"99/99/9999\"}\r\n onBlur={this.calcularIdadeNP}\r\n obrigatorio\r\n />\r\n </>}\r\n\r\n {/* Participante Normal */}\r\n {!this.state.naoParticipante && <>\r\n <h4 className={\"mt-5 mb-2\"}>Seu Saldo Acumulado Atualizado</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.saldoAcumulado} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Seu Último Salário de Contribuição (em {this.state.dataUltimoSalario})</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.salarioContribuicao} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n </>}\r\n\r\n <br />\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Entre com o percentual de contribuição mensal desejado</h4>\r\n <div className={\"mb-5 pl-4 pr-4\"}>\r\n <SliderWithTooltip tipFormatter={(v: number) => `${v} %`}\r\n tipProps={{ placement: 'bottom', visible: true }}\r\n min={2} max={30} value={this.state.percentualContrib} dots={true}\r\n onChange={this.calcularPercentual} />\r\n </div>\r\n\r\n <CampoEstatico titulo={`Contribuição Mensal`} valor={this.state.contribMensal} tamanhoTitulo={\"4\"}\r\n tipo={TipoCampoEstatico.dinheiro} />\r\n\r\n <CampoEstatico titulo={`Contribuição Patronal (paritária até 8%)`} valor={this.state.contribPatronal} tamanhoTitulo={\"4\"}\r\n tipo={TipoCampoEstatico.dinheiro} />\r\n <br />\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Com quantos anos você deseja se aposentar?</h4>\r\n <div className={\"mb-5 pl-4 pr-4\"}>\r\n <SliderWithTooltip tipFormatter={(v: number) => `${v} anos`}\r\n tipProps={{ placement: 'bottom', visible: true }}\r\n min={this.state.idadeMinima} max={this.state.idadeMaxima} value={this.state.idadeAposentadoria} dots={true}\r\n onChange={(val) => this.setState({ idadeAposentadoria: val })} />\r\n </div>\r\n <br />\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Qual percentual do seu Saldo você deseja receber à vista na concessão do benefício?</h4>\r\n <div className={\"mb-5 pl-4 pr-4\"}>\r\n <SliderWithTooltip tipFormatter={(v: number) => `${v} %`}\r\n tipProps={{ placement: 'bottom', visible: true }}\r\n min={0} max={25} value={this.state.percentualAVista} dots={true}\r\n onChange={(val) => this.setState({ percentualAVista: val })} />\r\n </div>\r\n <br />\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Deseja fazer um aporte de Contribuição Extraordinária?</h4>\r\n <div className={\"mb-5 pl-4 pr-4\"}>\r\n <SliderWithTooltip tipFormatter={(v: number) => <CampoEstatico valor={v} tipo={TipoCampoEstatico.dinheiro} />}\r\n tipProps={{ placement: 'bottom', visible: true }}\r\n min={0} max={50000} step={1000} value={this.state.aporte} dots={true}\r\n onChange={this.setAporte} />\r\n </div>\r\n\r\n <CampoValor\r\n contexto={this}\r\n nome={\"outroValor\"}\r\n valor={this.state.outroValor}\r\n titulo={\"Outro Valor\"}\r\n onBlur={this.setOutroValor}\r\n />\r\n <br />\r\n\r\n <div className={\"alert alert-warning pt-4\"}>\r\n <p>\r\n <ul>\r\n <li>Esta é uma simulação de benefício considerando as informações do participante posicionada na data da realização do cálculo.</li>\r\n <li>Os cálculos apresentados não são definitivos e resultam de projeções de caráter apenas ilustrativo, não gerando qualquer direito ao recebimento.</li>\r\n <li>O presente cálculo poderá sofrer alterações quando da concessão definitiva do benefício.</li>\r\n <li>Esta simulação observou as regras do Regulamento do Plano de Benefícios ao qual o participante está vinculado, vigentes na data da realização da presente simulação.</li>\r\n </ul>\r\n </p>\r\n\r\n <Row>\r\n <Col tamanho={\"1\"} className={\"text-right\"}>\r\n <input type={\"checkbox\"} checked={this.state.termoAceito} onChange={() => this.setState({ termoAceito: !this.state.termoAceito })} />\r\n </Col>\r\n <Col>\r\n <p>\r\n Li e entendi!\r\n </p>\r\n </Col>\r\n </Row>\r\n </div>\r\n\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} tamanho={\"6\"} />\r\n <br /><br />\r\n <Botao titulo={\"Simular\"} tipo={TipoBotao.primary} submit onClick={this.continuar} desativado={!this.state.termoAceito} />\r\n </Form>\r\n </Box>\r\n </Page>\r\n )\r\n }\r\n}","import React from \"react\";\r\nimport { History } from 'history';\r\nimport { Box, CampoEstatico, TipoCampoEstatico, Row, Col, Botao, TipoBotao } from \"@intechprev/componentes-web\";\r\n\r\nimport { Page } from \"..\";\r\nimport { SimuladorCodeprevService } from \"./../../services\";\r\n\r\ninterface RendaMensal {\r\n Percentual: number;\r\n Renda: number;\r\n Renda8: number;\r\n StringTempoRecebimento: string;\r\n}\r\n\r\ninterface Props {\r\n location?: any;\r\n history?: History;\r\n}\r\n\r\ninterface State {\r\n idadeAtual: number;\r\n idadeAposentadoria: number;\r\n saldoProjetado5: number;\r\n saldoProjetado8: number;\r\n valorResgate5: number;\r\n valorResgate8: number;\r\n rendaMensal: Array<RendaMensal>;\r\n}\r\n\r\nexport default class Menor8 extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n state: State = {\r\n idadeAtual: 0,\r\n idadeAposentadoria: 0,\r\n saldoProjetado5: 0,\r\n saldoProjetado8: 0,\r\n valorResgate5: 0,\r\n valorResgate8: 0,\r\n rendaMensal: []\r\n }\r\n\r\n componentWillMount = async () => {\r\n this.load();\r\n //this.props.navigation.addListener('willFocus', this.load);\r\n }\r\n\r\n load = async () => {\r\n if (typeof this.props.location.state === \"undefined\") {\r\n this.props.history.goBack();\r\n }\r\n else {\r\n\r\n const salario = this.props.location.state.salarioContribuicao;\r\n const isString = typeof salario === \"string\";\r\n\r\n var dados = {\r\n DataNascimento: this.props.location.state.dataNascimento,\r\n IdadeAposentadoria: this.props.location.state.idadeAposentadoria,\r\n PercentualContrib: this.props.location.state.percentualContrib,\r\n PercentualSaque: this.props.location.state.percentualAVista,\r\n Aporte: this.props.location.state.aporte,\r\n SaldoAcumulado: this.props.location.state.saldoAcumulado,\r\n SalarioContribuicao: isString ?\r\n formatValue(salario.toString()) :\r\n salario\r\n };\r\n\r\n var dadosSimulacao = await SimuladorCodeprevService.Simular(dados);\r\n\r\n await this.setState({\r\n idadeAtual: this.props.location.state.idadeAtual,\r\n idadeAposentadoria: this.props.location.state.idadeAposentadoria,\r\n saldoProjetado5: dadosSimulacao.SaldoProjetado,\r\n saldoProjetado8: dadosSimulacao.SaldoProjetado8,\r\n valorResgate5: dadosSimulacao.Saque,\r\n valorResgate8: dadosSimulacao.Saque8,\r\n rendaMensal: dadosSimulacao.RendaMensal\r\n });\r\n\r\n await this.page.current.loading(false);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Page {...this.props} ref={this.page}>\r\n {this.props.location.state &&\r\n <Box titulo={\"Resultados\"}>\r\n <h2>Importante!</h2>\r\n <h3 className={\"mb-5 mt-3\"}>\r\n Todos os valores desta simulação foram apurados considerando as informações por você fornecidas.\r\n As rentabilidades e benefícios projetados são unicamente referências, não constituindo nenhuma garantia\r\n por parte da Fundação São Francisco.\r\n </h3>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Idade Atual</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.idadeAtual} /></h5>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Idade na Aposentadoria</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.idadeAposentadoria} /></h5>\r\n\r\n <Row>\r\n <Col>\r\n <h4 className={\"mt-5 mb-2\"}>Saldo Projetado Acumulado *</h4>\r\n <h6>(*caso optar por {this.props.location.state.percentualContrib}% de contribuição)</h6>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.saldoProjetado5} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n </Col>\r\n <Col>\r\n <h4 className={\"mt-5 mb-2\"}>Saldo Projetado Acumulado *</h4>\r\n <h6>(*caso optar por 8% de contribuição: a patrocinadora também contribuirá para você até no máximo 8%)</h6>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.saldoProjetado8} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col>\r\n <h4 className={\"mt-5 mb-2\"}>Valor do Resgate à Vista *</h4>\r\n <h6>(*caso optar por {this.props.location.state.percentualContrib}% de contribuição)</h6>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.valorResgate5} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n </Col>\r\n\r\n <Col>\r\n <h4 className={\"mt-5 mb-2\"}>Valor do Resgate à Vista *</h4>\r\n <h6>(*caso optar por 8% de contribuição: a patrocinadora também contribuirá para você até no máximo 8%)</h6>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.valorResgate8} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n </Col>\r\n </Row>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Renda Mensal Inicial</h4>\r\n <h5 className={\"mb-5 mt-3\"}>\r\n Os Benefícios sob a forma de renda mensal corresponderão ao valor obtido pela aplicação de um percentual,\r\n de até 1,5% (um e meio por cento), do Saldo de Conta Aplicável existente ao final do mês de referência do benefício.\r\n </h5>\r\n\r\n <table className={\"table table-striped table-sm\"}>\r\n <thead>\r\n <tr>\r\n <th>Percentual</th>\r\n <th>Renda Mensal (contrib {this.props.location.state.percentualContrib}%)</th>\r\n <th>Renda Mensal (contrib 8%)</th>\r\n <th>Tempo de Recebimento (13 parcelas anuais)</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.state.rendaMensal.map((rendaMensal: RendaMensal, index) => {\r\n return (\r\n <tr key={index}>\r\n <td>{rendaMensal.Percentual}%</td>\r\n <td><CampoEstatico valor={rendaMensal.Renda} tipo={TipoCampoEstatico.dinheiro} /></td>\r\n <td><CampoEstatico valor={rendaMensal.Renda8} tipo={TipoCampoEstatico.dinheiro} /></td>\r\n <td>{rendaMensal.StringTempoRecebimento}</td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n <br /><br />\r\n <Botao titulo={\"Nova Simulação\"} tipo={TipoBotao.primary} submit onClick={() => this.props.history.goBack()} />\r\n </Box>\r\n }\r\n </Page>\r\n );\r\n }\r\n}\r\n\r\nfunction formatValue(val: string) {\r\n return parseFloat(\r\n val.replace(\"R$\", \"\")\r\n .replace(/\\./g, \"\")\r\n .replace(\",\", \".\")\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { History } from 'history';\r\nimport { Box, CampoEstatico, TipoCampoEstatico, Botao, TipoBotao } from \"@intechprev/componentes-web\";\r\nimport { SimuladorCodeprevService, UsuarioService } from \"./../../services\";\r\n\r\nimport { Page } from \"..\";\r\n\r\ninterface RendaMensal {\r\n Percentual: number;\r\n Renda: number;\r\n StringTempoRecebimento: string;\r\n}\r\n\r\ninterface Props {\r\n location?: any;\r\n history?: History;\r\n navigation?: any;\r\n}\r\n\r\ninterface State {\r\n idadeAtual: number;\r\n idadeAposentadoria: number;\r\n saldoProjetado: number;\r\n valorResgate: number;\r\n rendaMensal: Array<RendaMensal>;\r\n memoria: Array<any>;\r\n admin: boolean;\r\n}\r\n\r\nexport default class Maior8 extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n state: State = {\r\n admin: false,\r\n idadeAtual: 0,\r\n idadeAposentadoria: 0,\r\n saldoProjetado: 0,\r\n valorResgate: 0,\r\n memoria: [],\r\n rendaMensal: []\r\n }\r\n\r\n componentWillMount = async () => {\r\n this.load();\r\n //this.props.navigation.addListener('willFocus', this.load);\r\n }\r\n\r\n load = async () => {\r\n if (typeof this.props.location.state === \"undefined\") {\r\n this.props.history.goBack();\r\n }\r\n else {\r\n var admin = await UsuarioService.VerificarAdmin();\r\n\r\n const salario = this.props.location.state.salarioContribuicao;\r\n const isString = typeof salario === \"string\";\r\n\r\n var dados = {\r\n DataNascimento: this.props.location.state.dataNascimento,\r\n IdadeAposentadoria: this.props.location.state.idadeAposentadoria,\r\n PercentualContrib: this.props.location.state.percentualContrib,\r\n PercentualSaque: this.props.location.state.percentualAVista,\r\n Aporte: this.props.location.state.aporte,\r\n SaldoAcumulado: this.props.location.state.saldoAcumulado,\r\n SalarioContribuicao: isString ?\r\n formatValue(salario.toString()) :\r\n salario\r\n };\r\n\r\n var dadosSimulacao = await SimuladorCodeprevService.Simular(dados);\r\n\r\n await this.setState({\r\n admin,\r\n idadeAtual: this.props.location.state.idadeAtual,\r\n idadeAposentadoria: this.props.location.state.idadeAposentadoria,\r\n saldoProjetado: dadosSimulacao.SaldoProjetado,\r\n valorResgate: dadosSimulacao.Saque,\r\n rendaMensal: dadosSimulacao.RendaMensal,\r\n memoria: dadosSimulacao.MemoriaCalculo\r\n });\r\n\r\n await this.page.current.loading(false);\r\n }\r\n }\r\n\r\n memoria = async () => {\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n <Page {...this.props} ref={this.page}>\r\n <Box titulo={\"Resultados\"}>\r\n <h2>Importante!</h2>\r\n <h3 className={\"mb-5 mt-3\"}>\r\n Todos os valores desta simulação foram apurados considerando as informações por você fornecidas.\r\n As rentabilidades e benefícios projetados são unicamente referências, não constituindo nenhuma garantia\r\n por parte da Fundação São Francisco.\r\n </h3>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Idade Atual</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.idadeAtual} /></h5>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Idade na Aposentadoria</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.idadeAposentadoria} /></h5>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Saldo Projetado Acumulado</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.saldoProjetado} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Valor do Resgate à Vista</h4>\r\n <h5 className={\"text-secondary\"}><CampoEstatico valor={this.state.valorResgate} tipo={TipoCampoEstatico.dinheiro} /></h5>\r\n\r\n <h4 className={\"mt-5 mb-2\"}>Renda Mensal Inicial</h4>\r\n <h5 className={\"mb-5 mt-3\"}>\r\n Os Benefícios sob a forma de renda mensal corresponderão ao valor obtido pela aplicação de um percentual,\r\n de até 1,5% (um e meio por cento), do Saldo de Conta Aplicável existente ao final do mês de referência do benefício.\r\n </h5>\r\n\r\n <table className={\"table table-striped table-sm\"}>\r\n <thead>\r\n <tr>\r\n <th>Percentual</th>\r\n <th>Renda Mensal</th>\r\n <th>Tempo de Recebimento (13 parcelas anuais)</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.state.rendaMensal.map((rendaMensal: RendaMensal, index) => {\r\n return (\r\n <tr key={index}>\r\n <td>{rendaMensal.Percentual}%</td>\r\n <td><CampoEstatico valor={rendaMensal.Renda} tipo={TipoCampoEstatico.dinheiro} /></td>\r\n <td>{rendaMensal.StringTempoRecebimento}</td>\r\n </tr>\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n <br /><br />\r\n <Botao titulo={\"Nova Simulação\"} tipo={TipoBotao.primary} submit onClick={() => this.props.history.goBack()} />\r\n </Box>\r\n {this.state.admin &&\r\n <Box titulo={\"Memória de Cálculo\"}>\r\n {this.state.memoria.map((item, index) => {\r\n return (\r\n <>\r\n <b>{item.Key}</b>:\r\n <br />\r\n {item.Value}<br /><br />\r\n </>\r\n );\r\n })}\r\n </Box>\r\n }\r\n </Page>\r\n );\r\n }\r\n}\r\n\r\nfunction formatValue(val: string) {\r\n return parseFloat(\r\n val.replace(\"R$\", \"\")\r\n .replace(/\\./g, \"\")\r\n .replace(\",\", \".\")\r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Page } from \"..\";\r\nimport { Botao, Box, Col, Row } from \"@intechprev/componentes-web\";\r\nimport { Upload } from \"./Upload\";\r\nimport { AdesaoService } from \"./../../services\";\r\n\r\nexport const Adesao: React.FC = ({ ...props }) => {\r\n const page = React.createRef<Page>();\r\n\r\n useEffect(() => {\r\n page.current.loading(false);\r\n }, []);\r\n\r\n async function handleDownload() {\r\n const pdf = await AdesaoService.Download();\r\n const nomeArquivo = \"Formulario de Adesao.pdf\";\r\n\r\n if (navigator.msSaveBlob) {\r\n // IE10+ : (has Blob, but not a[download] or URL)\r\n return navigator.msSaveBlob(new Blob([pdf]));\r\n } else {\r\n const url = window.URL.createObjectURL(new Blob([pdf]));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", nomeArquivo);\r\n document.body.appendChild(link);\r\n\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n }\r\n }\r\n\r\n async function handleFinish(oid: number) { }\r\n\r\n return (\r\n <Page {...props} ref={page}>\r\n <Box>\r\n <h4 className=\"mb-4\">Veja como é simples se inscrever no Codeprev</h4>\r\n <p>1. Após a efetivação de sua contratação pela CODEVASF</p>\r\n <p>a. Faça o download do Formulário de Adesão no botão abaixo;</p>\r\n <p>b. Preencha o Formulário de Adesão com suas informações e salve-o no seu computador;</p>\r\n <p>c. Realize nessa página o upload do Formulário de Adesão preenchido;</p>\r\n <p>d. Em breve você receberá um e-mail, onde:</p>\r\n <p>i. Será autorizado a efetuar a assinatura eletrônica do Formulário</p>\r\n <p>ii. Poderá fazer o upload dos documentos exigidos (RG, CPF)</p>\r\n <p>2. A documentação enviada será analisada pela Fundação São Francisco</p>\r\n <p>a. Se houver pendências:</p>\r\n <p>i. Será devolvida por e-mail apontando os ajustes necessários</p>\r\n <p>ii. Você deverá providenciar os ajustes e realizar novamente os procedimentos acima</p>\r\n <p>b. Se estiver em conformidade:</p>\r\n <p>i. A inscrição será homologada pela Fundação São Francisco</p>\r\n\r\n <Botao titulo=\"Baixar Formulário de Adesão\" icone=\"fa-download\" onClick={handleDownload} />\r\n <br />\r\n <br />\r\n <hr />\r\n <h4 className=\"mb-4\">Enviar Formulário de Adesão</h4>\r\n <Upload onFinish={handleFinish} />\r\n </Box>\r\n </Page>\r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { Botao, Box, CampoEstatico, Modal, TamanhoBotao, TipoCampoEstatico } from \"@intechprev/componentes-web\";\r\nimport { PrestacaoEntidade } from \"../../../../entidades\";\r\n\r\ninterface IProps {\r\n prestacoes: PrestacaoEntidade[];\r\n}\r\n\r\nexport const Prestacoes: React.FC<IProps> = ({ prestacoes }) => {\r\n const [ModalAberto, setModalAberto] = useState<boolean>(false);\r\n const [Prestacao, setPrestacao] = useState<PrestacaoEntidade>(new PrestacaoEntidade());\r\n\r\n function ToMoney(Valor: number | undefined) {\r\n if (Valor == undefined) {\r\n return \"0\";\r\n }\r\n return (\r\n \"R$ \" +\r\n Valor.toLocaleString(\"pt-br\", {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n })\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {prestacoes.length > 0 && (\r\n <Box titulo={\"Prestações\"}>\r\n <table className={\"table table-striped table-sm\"}>\r\n <thead>\r\n <tr>\r\n <th>Nº</th>\r\n <th>Vencimento</th>\r\n <th>Pagamento</th>\r\n <th>Prestação</th>\r\n <th>Recebido</th>\r\n <th>Saldo Devedor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {prestacoes.map((prestacao: PrestacaoEntidade, index: number) => {\r\n if (prestacao.TIPO === \"P\") {\r\n return (\r\n <tr key={index}>\r\n <td>{prestacao.PARCELA}</td>\r\n <td>{prestacao.DT_VENC}</td>\r\n <td>{prestacao.DT_PAGTO}</td>\r\n <td>\r\n <Botao\r\n titulo={ToMoney(prestacao.VL_PRESTACAO!)}\r\n tamanho={TamanhoBotao.mini}\r\n onClick={() => {\r\n setModalAberto(true);\r\n setPrestacao(prestacao);\r\n }}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_RECEBIDO}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_SALDO_ATUAL}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n } else if (prestacao.TIPO === \"S\") {\r\n return (\r\n <tr key={index}>\r\n <td></td>\r\n <td>{prestacao.DT_VENC}</td>\r\n <td colSpan={4}>Suspensa</td>\r\n </tr>\r\n );\r\n } else {\r\n return (\r\n <tr key={index}>\r\n <td colSpan={6}></td>\r\n </tr>\r\n );\r\n }\r\n })}\r\n </tbody>\r\n </table>\r\n </Box>\r\n )}\r\n\r\n <Modal\r\n onClose={() => setModalAberto(!ModalAberto)}\r\n onConfirm={() => setModalAberto(!ModalAberto)}\r\n visivel={ModalAberto}\r\n titulo={`Valor da Prestação: ${ToMoney(Prestacao.VL_PRESTACAO!)}`}\r\n tituloBotaoFechar={\"OK, Entendi!\"}\r\n >\r\n <CampoEstatico\r\n titulo={\"Principal\"}\r\n valor={Prestacao.VL_PRINCIPAL!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Juros\"}\r\n valor={Prestacao.VL_JUROS!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Seguro\"}\r\n valor={Prestacao.VL_TX_SEGURO!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Taxa Inadimplência\"}\r\n valor={Prestacao.VL_TX_INAD!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Taxa Administração\"}\r\n valor={Prestacao.VL_TX_ADM!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Multa\"}\r\n valor={Prestacao.VL_MULTA!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Mora\"}\r\n valor={Prestacao.VL_MORA!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n <CampoEstatico\r\n titulo={\"Desconto\"}\r\n valor={Prestacao.VL_DESCONTO!}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"7\"}\r\n />\r\n </Modal>\r\n </>\r\n );\r\n}","import React from \"react\";\r\nimport { Alerta, Box, CampoEstatico, TipoAlerta, TipoCampoEstatico } from \"@intechprev/componentes-web\";\r\nimport { ContratoEntidade } from \"../../../../entidades\";\r\n\r\ninterface IProps {\r\n detalhes: ContratoEntidade;\r\n}\r\n\r\nexport const Dados: React.FC<IProps> = ({ detalhes }) => {\r\n return (\r\n <>\r\n {detalhes && (\r\n <Box titulo={\"Dados do Empréstimo\"}>\r\n <CampoEstatico\r\n valor={`${detalhes.NUM_CONTRATO}/${detalhes.ANO_CONTRATO}`}\r\n titulo={\"Contrato\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.NOME_PENSIONISTA ? detalhes.NOME_PENSIONISTA : detalhes.NOME_PARTICIPANTE}\r\n titulo={\"Nome\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.CPF_PENSIONISTA ? detalhes.CPF_PENSIONISTA : detalhes.CPF_PARTICIPANTE}\r\n titulo={\"CPF\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.DS_PLANO}\r\n titulo={\"Plano\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.DS_SITUACAO}\r\n titulo={\"Situação\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.DS_MODAL}\r\n titulo={\"Modalidade\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.DS_NATUR}\r\n titulo={\"Natureza\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.PRAZO}\r\n titulo={\"Prazo\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.DT_SOLICITACAO}\r\n titulo={\"Solicitado em\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.DT_CREDITO}\r\n titulo={\"Data de Crédito\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_SOLICITADO}\r\n titulo={\"Valor Solicitado\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_PRESTACAO}\r\n titulo={\"Valor Prestação\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_IOF}\r\n titulo={\"IOF\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_TX_ADM}\r\n titulo={\"Taxa ADM\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_TX_INAD}\r\n titulo={\"Taxa Garantia\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_REFORMADO}\r\n titulo={\"Valor Reformado\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={detalhes.VL_LIQUIDO}\r\n titulo={\"Valor Líquido\"}\r\n tamanhoTitulo={\"5\"}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n\r\n <CampoEstatico\r\n valor={`${detalhes.NUM_BANCO}/${detalhes.NUM_AGENCIA}/${detalhes.NUM_CONTA}`}\r\n titulo={\"Dados Bancários\"}\r\n tamanhoTitulo={\"5\"}\r\n />\r\n\r\n {detalhes.CD_SITUACAO === 0 && (\r\n <Alerta\r\n tipo={TipoAlerta.info}\r\n mensagem={\r\n \"Para cancelar o empréstimo, é necessário solicitar por e-mail, colocando no assunto Cancelamento do Empréstimo e o número da sua matrícula, até o dia 20 do mês do crédito do empréstimo.\"\r\n }\r\n />\r\n )}\r\n </Box>\r\n )}\r\n </>\r\n );\r\n}","import React from \"react\";\r\n\r\nimport { Alerta, TipoAlerta, Row, Col } from \"@intechprev/componentes-web\";\r\n\r\nimport { EmprestimoService } from \"../../../services\";\r\nimport { ContratoEntidade } from \"../../../entidades\";\r\n\r\nimport { Page } from \"../..\";\r\nimport { NumFuncionalidade } from \"../../Page\";\r\nimport { Prestacoes } from \"./Prestacoes\";\r\nimport { Dados } from \"./Dados\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ninterface Props {\r\n match?: any;\r\n}\r\n\r\ninterface State {\r\n numero: string;\r\n ano: string;\r\n detalhes: ContratoEntidade;\r\n erro: string;\r\n}\r\n\r\nexport class EmprestimoDetalhe extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n numero: props.match.params.numero,\r\n ano: props.match.params.ano,\r\n detalhes: null,\r\n erro: \"\"\r\n };\r\n }\r\n\r\n componentDidMount = async () => {\r\n await this.page.current.loading(true);\r\n try {\r\n const detalhes = await EmprestimoService.BuscarDetalhePorNumeroAno(this.state.numero, this.state.ano);\r\n\r\n this.setState({ detalhes });\r\n } catch (err) {\r\n const erro = err.response ? err.response.data : err;\r\n this.setState({\r\n erro: erro || \"Houve um erro ao carregar o detalhamento do empréstimo. Tente novamente mais tarde.\"\r\n });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n render = () => {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.EMPRESTIMOS_CONSULTA} {...this.props} ref={this.page}>\r\n {this.state.erro !== \"\" && <Alerta mensagem={this.state.erro} tipo={TipoAlerta.danger} />}\r\n\r\n {this.state.detalhes && (\r\n <>\r\n <Row className={\"mb-2\"}>\r\n <Col>\r\n <Link className={\"btn btn-primary\"} to={\"/emprestimo\"}>\r\n Voltar\r\n </Link>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <Dados detalhes={this.state.detalhes} />\r\n </Col>\r\n\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <Prestacoes prestacoes={this.state.detalhes.Prestacoes} />\r\n </Col>\r\n </Row>\r\n </>\r\n )}\r\n </Page>\r\n );\r\n };\r\n}\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { History } from \"history\";\r\n\r\nimport { Box, CampoEstatico, TipoCampoEstatico, Alerta, TipoAlerta, Botao, Combo } from \"@intechprev/componentes-web\";\r\n// import { EmprestimoDetalhe } from \"./EmprestimoDetalhe\";\r\n\r\nimport { EmprestimoService } from \"../../../services\";\r\nimport { ContratoEntidade, SitContratoEntidade } from \"../../../entidades\";\r\n\r\nimport { Page } from \"../../\";\r\nimport { NumFuncionalidade } from \"../../Page\";\r\n\r\ninterface Props {\r\n history?: History;\r\n}\r\n\r\ninterface State {\r\n emprestimos: Array<ContratoEntidade>;\r\n erro: string;\r\n situacao: string;\r\n situacaoSelecionada: SitContratoEntidade;\r\n listaSituacoes: Array<SitContratoEntidade>;\r\n}\r\n\r\nexport class EmprestimoLista extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n private ref_cor: { [index: string]: string } = {\r\n \"1\": \"warning\",\r\n \"2\": \"warning\",\r\n \"3\": \"success\",\r\n \"5\": \"danger\",\r\n };\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n emprestimos: [],\r\n listaSituacoes: [],\r\n erro: \"\",\r\n situacao: \"3\",\r\n situacaoSelecionada: new SitContratoEntidade()\r\n };\r\n }\r\n\r\n componentDidMount = async () => {\r\n await this.page.current.loading(true);\r\n try {\r\n const listaSituacoes = await EmprestimoService.BuscarSituacoes();\r\n const situacaoSelecionada = listaSituacoes[0];\r\n const situacao = situacaoSelecionada.CD_SITUACAO.toString();\r\n\r\n this.setState({\r\n listaSituacoes,\r\n situacaoSelecionada,\r\n situacao\r\n });\r\n\r\n await this.buscar();\r\n } catch (err) {\r\n this.setState({\r\n erro: err.response ? err.response.data : err\r\n });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n buscar = async () => {\r\n await this.page.current.loading(true);\r\n try {\r\n const situacao = parseInt(this.state.situacao, 10);\r\n\r\n const situacaoSelecionada = this.state.listaSituacoes.filter((sit) => sit.CD_SITUACAO === situacao)[0];\r\n\r\n const emprestimos = await EmprestimoService.BuscarPorSituacao(situacao);\r\n\r\n this.setState({\r\n emprestimos,\r\n situacaoSelecionada\r\n });\r\n } catch (err) {\r\n this.setState({\r\n erro: err.response ? err.response.data : err\r\n });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n montarLink = (numero: any, ano: any) => {\r\n return `emprestimo/detalhe/${numero}/${ano}`;\r\n };\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.EMPRESTIMOS_CONSULTA} {...this.props} ref={this.page}>\r\n <Botao className={\"mb-3\"} onClick={() => this.props.history.push(\"/emprestimo/simulador\")} titulo={\"Simular Empréstimo\"} />\r\n\r\n {this.state.listaSituacoes.length > 0 &&\r\n <Box titulo={\"Selecione uma Situação para visualizar seus empréstimo\"}>\r\n <Combo\r\n contexto={this}\r\n nome={\"situacao\"}\r\n valor={this.state.situacao}\r\n opcoes={this.state.listaSituacoes}\r\n padrao={this.state.situacao}\r\n onChange={this.buscar}\r\n nomeMembro={\"DS_SITUACAO\"}\r\n valorMembro={\"CD_SITUACAO\"}\r\n />\r\n </Box>\r\n }\r\n\r\n <Box titulo={\"Empréstimos Concedidos - \" + this.state.situacaoSelecionada.DS_SITUACAO}>\r\n\r\n {this.state.emprestimos.length === 0 && <Alerta mensagem={\"Você não possui nenhum empréstimo concedido com a Fundação São Francisco para essa situação.\"} tipo={TipoAlerta.danger} />}\r\n\r\n {this.state.emprestimos.length > 0 &&\r\n <table className={\"table\"}>\r\n <thead>\r\n <tr>\r\n <th>Situação</th>\r\n <th>Nº/Ano</th>\r\n <th>Solicitação</th>\r\n <th>Crédito</th>\r\n <th>Valor Solicitado</th>\r\n <th>Valor Prestação</th>\r\n <th>Valor Líquido</th>\r\n <th>Prazo</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.state.emprestimos.map((info: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>\r\n <i className={`mr-2 fas fa-circle text-${this.ref_cor[this.state.situacaoSelecionada.CD_SITUACAO.toString()]}`}></i>\r\n {this.state.situacaoSelecionada.DS_SITUACAO}\r\n </td>\r\n <td>{`${info.NUM_CONTRATO}/${info.ANO_CONTRATO}`}</td>\r\n <td>{info.DT_SOLICITACAO}</td>\r\n <td>{info.DT_CREDITO}</td>\r\n <td>\r\n <CampoEstatico valor={info.VL_SOLICITADO} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n <td>\r\n <CampoEstatico valor={info.VL_PRESTACAO} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n <td>\r\n <CampoEstatico valor={info.VL_LIQUIDO} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n <td>{info.PRAZO}</td>\r\n <td>\r\n <Link className={\"text-primary\"} to={this.montarLink(info.NUM_CONTRATO, info.ANO_CONTRATO)}>\r\n Detalhar\r\n </Link>\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n }\r\n\r\n {this.state.emprestimos.filter((x) => x.CD_SITUACAO === 0).length > 0 && (\r\n <Alerta\r\n tipo={TipoAlerta.info}\r\n mensagem={\r\n \"Para cancelar o empréstimo com situação em <b>SIMULAÇÃO</b>, é necessário solicitar por e-mail, colocando no assunto Cancelamento do Empréstimo e o número da sua matrícula, até o dia 20 do mês do crédito do empréstimo.\"\r\n }\r\n />\r\n )}\r\n </Box>\r\n </Page>\r\n );\r\n }\r\n}\r\n","export enum DMN_CATEGORIA {\r\n ATIVO = \"1\",\r\n DESLIGADO = \"2\",\r\n AUTOPATROCINIO = \"3\",\r\n ASSISTIDO = \"4\",\r\n EM_LICENSA = \"5\",\r\n DIFERIDO = \"6\"\r\n}","import React from \"react\";\r\nimport { History } from \"history\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport {\r\n Box,\r\n Combo,\r\n CampoEstatico,\r\n TipoCampoEstatico,\r\n Row,\r\n Col,\r\n Botao,\r\n Form,\r\n Alerta,\r\n TipoAlerta,\r\n Modal,\r\n PosicaoTituloCampoEstatico,\r\n} from \"@intechprev/componentes-web\";\r\n\r\nimport { Page } from \"../../..\";\r\nimport { NumFuncionalidade } from \"../../../Page\";\r\nimport { PlanoVinculadoEntidade, ContratoEntidade, ParametrosSimulacao, NaturezaEntidade } from \"../../../../entidades\";\r\nimport { PlanoService, EmprestimoService } from \"../../../../services\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { ListaPlanos } from \"../../../../components\";\r\nimport { DMN_CATEGORIA } from \"../../../../domains\";\r\nimport moment from \"moment\";\r\n\r\nexport interface IParametrosSimulacao {\r\n valorSolicitado: number;\r\n valorMargemConsignavel: number;\r\n plano: string;\r\n emprestimos: Array<ContratoEntidade>;\r\n}\r\n\r\ninterface IProps {\r\n history?: History;\r\n}\r\n\r\ninterface IState {\r\n cdPlano: string;\r\n plano: PlanoVinculadoEntidade;\r\n listaPlanos: Array<PlanoVinculadoEntidade>;\r\n carencia: number;\r\n listacarencias: Array<any>;\r\n\r\n emprestimos: Array<ContratoEntidade>;\r\n naturezas: Array<NaturezaEntidade>;\r\n natureza: string;\r\n CdModal: number;\r\n\r\n valorSolicitado: number;\r\n valorMargemConsignavel: number;\r\n margemPreenchida: boolean;\r\n limiteMaximo: number;\r\n limiteUnico: number;\r\n dataCredito: string;\r\n recursoUtilizado: number;\r\n valorDisponivel: number;\r\n\r\n modalValorMargemConsignavel: boolean;\r\n modalNovacao: boolean;\r\n\r\n ativoOuAssistido: boolean;\r\n erro: string;\r\n}\r\n\r\nexport class EmprestimoSimulador extends React.Component<IProps, IState> {\r\n\r\n private page = React.createRef<Page>();\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n state: IState = {\r\n cdPlano: \"\",\r\n listaPlanos: [],\r\n carencia: 0,\r\n listacarencias: [\r\n {\r\n Key: 0,\r\n Value: \"CARÊNCIA NORMAL\"\r\n },\r\n {\r\n Key: 30,\r\n Value: \"CARÊNCIA ESTENDIDA - 30 DIAS\"\r\n },\r\n {\r\n Key: 60,\r\n Value: \"CARÊNCIA ESTENDIDA - 60 DIAS\"\r\n },\r\n {\r\n Key: 90,\r\n Value: \"CARÊNCIA ESTENDIDA - 90 DIAS\"\r\n }\r\n ],\r\n plano: new PlanoVinculadoEntidade(),\r\n\r\n emprestimos: [],\r\n\r\n valorSolicitado: 0,\r\n valorMargemConsignavel: 0,\r\n margemPreenchida: false,\r\n\r\n naturezas: [],\r\n natureza: \"\",\r\n CdModal: 0,\r\n limiteMaximo: 0,\r\n limiteUnico: 0,\r\n dataCredito: \"\",\r\n recursoUtilizado: 0,\r\n valorDisponivel: 0,\r\n ativoOuAssistido: false,\r\n modalValorMargemConsignavel: false,\r\n modalNovacao: false,\r\n erro: \"\"\r\n };\r\n\r\n componentDidMount = async () => {\r\n await this.page.current.loading(true);\r\n try {\r\n\r\n var listaPlanos = await PlanoService.Buscar();\r\n\r\n this.setState({\r\n listaPlanos,\r\n });\r\n\r\n // await this.carregarDados();\r\n\r\n } catch (err) {\r\n const erro: any = err;\r\n this.setState({ erro: (erro.response ? (erro.response.data) : erro) });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n separarFolha = (folha: any) => {\r\n let novaFolha: any = {\r\n provento: [],\r\n desconto: []\r\n }\r\n\r\n let countP = 0;\r\n let countD = 0;\r\n\r\n for (let f = 0; f < folha.length; f++) {\r\n if (folha[f].RUBRICA_PROV_DESC === \"P\") {\r\n novaFolha.provento[countP] = folha[f];\r\n countP++;\r\n }\r\n if (folha[f].RUBRICA_PROV_DESC === \"D\") {\r\n novaFolha.desconto[countD] = folha[f];\r\n countD++;\r\n }\r\n }\r\n\r\n return novaFolha;\r\n }\r\n\r\n carregarDados = async (Plano: PlanoVinculadoEntidade) => {\r\n await this.page.current.loading(true);\r\n try {\r\n // if (Plano.CD_CATEGORIA !== DMN_CATEGORIA.ASSISTIDO)\r\n // return this.setState({\r\n // plano: Plano,\r\n // cdPlano: Plano.CD_PLANO,\r\n // ativoOuAssistido: ([DMN_CATEGORIA.ATIVO, DMN_CATEGORIA.ASSISTIDO] as string[]).includes(Plano.CD_CATEGORIA),\r\n // });\r\n // if (this.state.cdPlano === \"\") {\r\n // await this.setState({\r\n // cdPlano: this.state.listaPlanos[0].CD_PLANO,\r\n // });\r\n // }\r\n\r\n // var plano = this.state.listaPlanos.filter((plano) => plano.CD_PLANO === this.state.cdPlano);\r\n\r\n var { limiteMaximo, limiteUnico, dataCredito, margemConsignavel, valorDisponivel, recursoUtilizado, naturezas } = await EmprestimoService.BuscarLimiteUnicoDataCredito(Plano.CD_PLANO);\r\n\r\n const emprestimos = await EmprestimoService.BuscarAtivos(moment(dataCredito, \"DD/MM/yyyy\").format(\"DD.MM.yyyy\"));\r\n\r\n var valorMargemConsignavel = 0;\r\n\r\n if (margemConsignavel != null) {\r\n valorMargemConsignavel = Number(margemConsignavel);\r\n await this.setState({\r\n margemPreenchida: true,\r\n });\r\n }\r\n\r\n await this.setState({\r\n emprestimos,\r\n limiteMaximo,\r\n limiteUnico,\r\n dataCredito,\r\n recursoUtilizado,\r\n valorDisponivel,\r\n valorMargemConsignavel,\r\n naturezas,\r\n natureza: naturezas.length > 0 ? naturezas[0].CD_NATUR : \"\",\r\n plano: Plano,\r\n cdPlano: Plano.CD_PLANO,\r\n ativoOuAssistido: ([DMN_CATEGORIA.ATIVO, DMN_CATEGORIA.ASSISTIDO] as string[]).includes(Plano.CD_CATEGORIA)\r\n });\r\n\r\n } catch (err) {\r\n const erro: any = err;\r\n await this.setState({ erro: (erro.response ? (erro.response.data) : erro) });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n carregarNatureza = async () => {\r\n try {\r\n const natur = this.state.naturezas.filter(x => x.CD_NATUR === Number(this.state.natureza));\r\n if (natur.length > 0) {\r\n const modal = natur[0].CD_MODAL;\r\n this.setState({\r\n CdModal: modal\r\n })\r\n }\r\n } catch (err) {\r\n const erro: any = err;\r\n this.setState({ erro: (erro.response ? (erro.response.data) : erro) });\r\n }\r\n }\r\n\r\n continuar = async () => {\r\n try {\r\n await this.alert.current.limparErros();\r\n await this.form.current.validar();\r\n\r\n if (this.state.valorSolicitado <= 0) {\r\n await this.alert.current.adicionarErro(\"O valor solicitado não pode ser menor ou igual a zero.\");\r\n return;\r\n }\r\n\r\n if (this.state.valorSolicitado && this.state.valorMargemConsignavel) {\r\n if (this.state.valorSolicitado > Number(this.state.valorDisponivel.toFixed(2)))\r\n await this.alert.current.adicionarErro('O valor solicitado não pode ser superior ao valor \"Disponível\".');\r\n }\r\n\r\n if (!this.state.natureza) {\r\n await this.alert.current.adicionarErro(\"Escolha uma Natureza para realizar a simulação.\")\r\n }\r\n\r\n if (this.alert.current.state.mensagem.length === 0 && this.alert.current.props.mensagem.length === 0) {\r\n var dados: ParametrosSimulacao = {\r\n valorSolicitado: this.state.valorSolicitado,\r\n ValorMargem: Number(this.state.valorMargemConsignavel),\r\n CdPlano: this.state.plano.CD_PLANO,\r\n Carencia: this.state.carencia,\r\n emprestimos: this.state.emprestimos,\r\n CdNatur: Number(this.state.natureza),\r\n CdModal: this.state.CdModal\r\n };\r\n\r\n localStorage.setItem(\"emprestimo-parametros\", JSON.stringify(dados));\r\n this.props.history.push(\"/emprestimo/simuladorprestacoes\");\r\n }\r\n } catch (err) {\r\n const erro: any = err;\r\n this.setState({ erro: (erro.response ? (erro.response.data) : erro) });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.EMPRESTIMOS_SIMULAÇÃO} {...this.props} ref={this.page}>\r\n {this.state.erro !== \"\" && (\r\n <div className={\"alert alert-info\"} style={{ \"color\": \"#000 !important\" }} dangerouslySetInnerHTML={{ __html: this.state.erro }} />\r\n )}\r\n\r\n {this.state.erro === \"\" && (<>\r\n <h3>Bem-Vindo ao Simulador de Empréstimos da São Francisco!</h3>\r\n {/* <h5>Ao final da sua simulação você poderá realizar o requerimento do seu empréstimo diretamente por aqui, de forma on-line e segura!</h5> */}\r\n\r\n <Box titulo={\"Selecione um Plano para a Simulação\"}>\r\n {/* <Combo\r\n contexto={this}\r\n nome={\"cdPlano\"}\r\n valor={this.state.cdPlano}\r\n opcoes={this.state.listaPlanos}\r\n padrao={this.state.cdPlano}\r\n onChange={this.carregarDados}\r\n nomeMembro={\"DS_PLANO\"}\r\n valorMembro={\"CD_PLANO\"}\r\n textoVazio={\"Escolha um Plano para Realizar a Simulação\"}\r\n /> */}\r\n <ListaPlanos\r\n planos={this.state.listaPlanos}\r\n onChange={this.carregarDados}\r\n cdPlanoAtivo={this.state.cdPlano}\r\n />\r\n </Box>\r\n\r\n {this.state.naturezas.length > 0 && this.state.naturezas[0].CONSIDERAR_CARENCIA_CONCESSAO === \"S\" &&\r\n <Box titulo={\"Selecione uma Carência para a Simulação\"}>\r\n <Combo\r\n contexto={this}\r\n nome={\"carencia\"}\r\n valor={this.state.carencia}\r\n opcoes={this.state.listacarencias}\r\n padrao={this.state.carencia}\r\n nomeMembro={\"Value\"}\r\n valorMembro={\"Key\"}\r\n />\r\n </Box>\r\n }\r\n\r\n {this.state.plano.CD_PLANO && (\r\n <Box titulo={`Empréstimo ${this.state.plano.DS_PLANO}`}>\r\n {!this.state.ativoOuAssistido && (\r\n <Alerta\r\n tipo={TipoAlerta.danger}\r\n mensagem={\"Empréstimos São Francisco disponíveis apenas para quem é Ativo ou Assistido no plano de benefícios.\"}\r\n />\r\n )}\r\n\r\n {this.state.ativoOuAssistido && (\r\n <>\r\n {/* <p>\r\n {\"Visite a página de \"}\r\n <Link className={\"text-secondary\"} to={\"/documentos\"}>\r\n {\"Pastas e Arquivos Disponibilizados\"}\r\n </Link>\r\n {\" para visualizar o regulamento de empréstimo.\"}\r\n </p> */}\r\n <Row className={\"text-center\"}>\r\n {/* {this.state.cdPlano !== \"0001\" && this.state.plano.CD_CATEGORIA !== \"4\" && ( */}\r\n {/* <>\r\n <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>Limite Máximo Bruto</h4>\r\n {/* <p style={{ fontSize: 12 }}>70% do Saldo da Conta Participante (Excluídos os recursos portados)</p> *}\r\n <h3 className={\"text-primary\"}>\r\n <CampoEstatico valor={this.state.limiteMaximo} tipo={TipoCampoEstatico.dinheiro} />\r\n </h3>\r\n </Box>\r\n </Col>\r\n </> */}\r\n {/* <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>Limite Líquido</h4>\r\n <p style={{ fontSize: 12 }}>Maior valor de empréstimo para seu plano</p>\r\n <h3 className={\"text-primary\"}>\r\n <CampoEstatico valor={this.state.limiteUnico} tipo={TipoCampoEstatico.dinheiro} />\r\n </h3>\r\n </Box>\r\n </Col> */}\r\n {/* <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>Data de Crédito</h4>\r\n <p style={{ fontSize: 12 }}>Data que você receberá o seu empréstimo</p>\r\n <h3 className={\"text-primary\"}>\r\n <CampoEstatico valor={this.state.dataCredito} />\r\n </h3>\r\n </Box>\r\n </Col> */}\r\n </Row>\r\n <Row className={\"text-center\"}>\r\n <Col tamanho={\"8\"}>\r\n <Row>\r\n <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>Empréstimo(s) ativo(s)</h4>\r\n <p style={{ fontSize: 12 }}>Saldo Devido</p>\r\n <h3 className={\"text-secondary\"}>\r\n <CampoEstatico valor={this.state.recursoUtilizado} tipo={TipoCampoEstatico.dinheiro} />\r\n </h3>\r\n </Box>\r\n </Col>\r\n {/* <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>Disponível</h4>\r\n <p style={{ fontSize: 12 }}>\r\n Valor que você pode requerer\r\n <br />\r\n <br />\r\n </p>\r\n <h3 className={\"text-success\"}>\r\n <CampoEstatico valor={this.state.valorDisponivel} tipo={TipoCampoEstatico.dinheiro} />\r\n </h3>\r\n </Box>\r\n </Col> */}\r\n <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>{\"Márgem Consignável\"}</h4>\r\n <p style={{ fontSize: 12 }}>Valor máximo de Prestação</p>\r\n <h3 className={\"text-success\"}>\r\n <CampoEstatico\r\n valor={this.state.valorMargemConsignavel}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </h3>\r\n </Box>\r\n </Col>\r\n\r\n\r\n </Row>\r\n\r\n {this.state.naturezas.length > 0 && <>\r\n <Row>\r\n <Col>\r\n <Box titulo={\"Selecione uma Natureza para a Simulação *\"}>\r\n <Combo\r\n contexto={this}\r\n nome={\"natureza\"}\r\n valor={this.state.natureza}\r\n opcoes={this.state.naturezas}\r\n // padrao={this.state.natureza}\r\n onChange={this.carregarNatureza}\r\n textoVazio={\"Selecione uma Natureza para a Simulação\"}\r\n nomeMembro={\"DS_NATUR\"}\r\n valorMembro={\"CD_NATUR\"}\r\n />\r\n </Box>\r\n </Col>\r\n\r\n <Col>\r\n </Col>\r\n </Row>\r\n </>}\r\n </Col>\r\n\r\n {this.state.naturezas.length > 0 &&\r\n <Col>\r\n <Box>\r\n <h4 style={{ fontWeight: \"bold\" }}>{\"Limite Liquido Permitido\"}</h4>\r\n {this.state.naturezas.map((natur: NaturezaEntidade, index: number) => {\r\n return (<>\r\n <p style={{ fontSize: 12 }}>{natur.DS_NATUR}</p>\r\n <h3 className={\"text-secondary\"}>\r\n <CampoEstatico\r\n key={index}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n posicaoTitulo={PosicaoTituloCampoEstatico.cima}\r\n // titulo={natur.DS_NATUR}\r\n valor={natur.LimiteCalculado}\r\n />\r\n </h3>\r\n </>)\r\n })}\r\n </Box>\r\n </Col>\r\n }\r\n </Row>\r\n\r\n <Box titulo={\"Parâmetros para Simulação\"}>\r\n <Form ref={this.form}>\r\n <Row formGroup>\r\n <Col className=\"col-lg-12\">\r\n <b>\r\n <label htmlFor=\"valorSolicitado\">Digite Aqui o Valor Líquido Desejado de Empréstimo *</label>\r\n </b>\r\n </Col>\r\n\r\n <Col className=\"col-lg-12\">\r\n <NumberFormat\r\n name={\"valorSolicitado\"}\r\n id={\"valorSolicitado\"}\r\n className={\"form-control\"}\r\n thousandSeparator={\".\"}\r\n decimalSeparator=\",\"\r\n allowedDecimalSeparators={[\".\"]}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n value={this.state.valorSolicitado}\r\n onValueChange={(e) => this.setState({ valorSolicitado: Number(e.value) })}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n {/* <Row formGroup>\r\n <Col className=\"col-lg-12\">\r\n <b>\r\n <label htmlFor=\"valorSolicitado\">\r\n Margem Consignável *{\" \"}\r\n <small>\r\n (Valor da margem a ser confirmado pela fonte pagadora, após a data do efetivo pagamento do mês do crédito do empréstimo)\r\n </small>\r\n </label>\r\n </b>\r\n </Col>\r\n\r\n <Col className=\"col-lg-12\">\r\n <div className=\"input-group\">\r\n <NumberFormat\r\n name={\"valorMargemConsignavel\"}\r\n id={\"valorMargemConsignavel\"}\r\n className={\"form-control\"}\r\n thousandSeparator={\".\"}\r\n decimalSeparator=\",\"\r\n allowedDecimalSeparators={[\".\"]}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n value={this.state.valorMargemConsignavel}\r\n disabled={this.state.margemPreenchida}\r\n onValueChange={(e) => this.setState({ valorMargemConsignavel: Number(e.value) })}\r\n />\r\n <div className=\"input-group-append\">\r\n <Botao\r\n titulo=\"O que é isso?\"\r\n onClick={() =>\r\n this.setState({\r\n modalValorMargemConsignavel: !this.state.modalValorMargemConsignavel,\r\n })\r\n }\r\n />\r\n </div>\r\n </div>\r\n </Col>\r\n </Row> */}\r\n\r\n <Modal\r\n onClose={() =>\r\n this.setState({\r\n modalValorMargemConsignavel: !this.state.modalValorMargemConsignavel,\r\n })\r\n }\r\n onConfirm={() =>\r\n this.setState({\r\n modalValorMargemConsignavel: !this.state.modalValorMargemConsignavel,\r\n })\r\n }\r\n visivel={this.state.modalValorMargemConsignavel}\r\n titulo={\"O que é a Margem Consignável?\"}\r\n >\r\n Margem Consignável é 30% do valor máximo da renda de um trabalhador, aposentado, pensionista ou servidor público que pode ser\r\n comprometido do seu salário ou benefício mensal em um empréstimo consignado, no qual o valor do empréstimo é descontado\r\n diretamente da folha de pagamento, contracheque ou conta de benefício INSS.\r\n <br />\r\n <br />\r\n Você encontrará margem consignável no seu contracheque.\r\n </Modal>\r\n\r\n <Modal\r\n onClose={() =>\r\n this.setState({\r\n modalNovacao: !this.state.modalNovacao,\r\n })\r\n }\r\n onConfirm={() =>\r\n this.setState({\r\n modalNovacao: !this.state.modalNovacao,\r\n })\r\n }\r\n visivel={this.state.modalNovacao}\r\n titulo={\"O que é a Novação de Dívida?\"}\r\n >\r\n Novação é a transformação de uma dívida em outra, com extinção da antiga. Desta forma surge uma nova dívida do devedor em\r\n relação ao credor, com o desaparecimento da original.\r\n <br />\r\n <br />\r\n Dá-se a novação:\r\n <br />\r\n <br />\r\n <ul>\r\n <li>Quando o devedor contrai com o credor nova dívida para extinguir e substituir a anterior;</li>\r\n <li>Quando novo devedor sucede ao antigo, ficando este quite com o credor;</li>\r\n <li>Quando, em virtude de obrigação nova, outro credor é substituído ao antigo, ficando o devedor quite com este.</li>\r\n </ul>\r\n </Modal>\r\n\r\n {this.state.emprestimos.length > 0 && (\r\n <>\r\n <p className={\"mt-5\"}>\r\n Você já possúi {this.state.emprestimos.length} contratos ativos. Esse contrato será reformado - Novação (\r\n <a\r\n href=\"#\"\r\n onClick={(e) => {\r\n e.preventDefault();\r\n this.setState({\r\n modalNovacao: !this.state.modalNovacao,\r\n });\r\n }}\r\n >\r\n O que é isso?\r\n </a>\r\n )\r\n </p>\r\n <table className={\"table\"}>\r\n <thead>\r\n <tr>\r\n <th>Nº/Ano</th>\r\n <th>Crédito</th>\r\n <th>Valor Solicitado</th>\r\n <th>Saldo Devedor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.state.emprestimos.map((info: ContratoEntidade, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{`${info.NUM_CONTRATO}/${info.ANO_CONTRATO}`}</td>\r\n <td>{info.DT_CREDITO}</td>\r\n <td>\r\n <CampoEstatico valor={info.VL_SOLICITADO} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={info.SaldoDevedor.ValorReformado}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </>\r\n )}\r\n\r\n <Botao titulo={\"Calcular Prazos e Prestações\"} onClick={this.continuar} submit />\r\n\r\n <br />\r\n <br />\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} tamanho={\"6\"} />\r\n\r\n </Form>\r\n <Alerta tipo={TipoAlerta.info} tamanho={\"6\"} mensagem={\"* campos obrigatórios.\"} />\r\n </Box>\r\n </>\r\n )}\r\n </Box>\r\n )}\r\n\r\n {/* {this.state.plano.CD_PLANO && this.state.plano.CD_CATEGORIA !== DMN_CATEGORIA.ASSISTIDO && <Alerta tipo={TipoAlerta.danger} mensagem={\"Simulador de Empréstimo disponível apenas para participantes na categoria de Assistido.\"} />} */}\r\n </>)}\r\n </Page>\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { History } from \"history\";\r\nimport {\r\n PlanoVinculadoEntidade,\r\n ContratoEntidade,\r\n ParametrosSimulacao,\r\n ContratoDisponivel,\r\n} from \"../../../../entidades\";\r\nimport { Page } from \"../../..\";\r\nimport { NumFuncionalidade } from \"../../../Page\";\r\nimport { Box, CampoEstatico, TipoCampoEstatico, Alerta, TipoAlerta, Botao, TipoBotao, Col, Row, } from \"@intechprev/componentes-web\";\r\n// import { IParametrosSimulacao } from \"./../Inicio\";\r\nimport { EmprestimoService } from \"../../../../services\";\r\n\r\ninterface IProps {\r\n history?: History;\r\n}\r\n\r\ninterface IState {\r\n plano: string;\r\n Carencia: number;\r\n CdNatur: number;\r\n CdModal: number;\r\n emprestimos: Array<ContratoEntidade>;\r\n valorSolicitado: number;\r\n valorMargemConsignavel: number;\r\n saldoContratosAtivos: number;\r\n valorFinanciado: number;\r\n listaContratos: Array<ContratoDisponivel>;\r\n contratoSelecionado: ContratoDisponivel;\r\n\r\n erro: string;\r\n}\r\n\r\nexport class EmprestimoSimuladorPrestacoes extends React.Component<IProps, IState> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n const dados: ParametrosSimulacao = JSON.parse(\r\n localStorage.getItem(\"emprestimo-parametros\")\r\n );\r\n\r\n var recursoUtilizado = 0;\r\n\r\n if (dados.emprestimos.length > 0) {\r\n recursoUtilizado = dados.emprestimos.map(x => x.SaldoDevedor.ValorReformado).reduce((x, y) => x + y);\r\n }\r\n\r\n this.state = {\r\n plano: dados.CdPlano,\r\n Carencia: dados.Carencia,\r\n emprestimos: dados.emprestimos,\r\n valorSolicitado: dados.valorSolicitado,\r\n valorMargemConsignavel: dados.ValorMargem,\r\n saldoContratosAtivos: recursoUtilizado,\r\n valorFinanciado: dados.valorSolicitado + recursoUtilizado,\r\n CdNatur: dados.CdNatur,\r\n CdModal: dados.CdModal,\r\n listaContratos: [],\r\n contratoSelecionado: null,\r\n\r\n erro: null,\r\n };\r\n }\r\n\r\n componentDidMount = async () => {\r\n await this.page.current.loading(true);\r\n try {\r\n\r\n var parametros: ParametrosSimulacao = {\r\n CdPlano: this.state.plano,\r\n ValorMargem: this.state.valorMargemConsignavel,\r\n valorSolicitado: this.state.valorSolicitado,\r\n Carencia: this.state.Carencia,\r\n CdNatur: this.state.CdNatur,\r\n CdModal: this.state.CdModal\r\n };\r\n\r\n var listaContratos = await EmprestimoService.BuscarParcelas(parametros);\r\n this.setState({\r\n listaContratos,\r\n });\r\n\r\n } catch (err) {\r\n const error: any = err;\r\n this.setState({\r\n erro: error.response ? error.response.data : error,\r\n });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n selecionarContrato = async (contrato: ContratoDisponivel) => {\r\n if (contrato.Disponivel) {\r\n const listaContratos = this.state.listaContratos.map((item) => {\r\n return {\r\n ...item,\r\n Selecionado: item.Prazo === contrato.Prazo,\r\n };\r\n });\r\n\r\n contrato.Selecionado = true;\r\n\r\n this.setState({\r\n listaContratos,\r\n contratoSelecionado: contrato,\r\n });\r\n }\r\n };\r\n\r\n continuar = async () => {\r\n if (this.state.contratoSelecionado) {\r\n localStorage.setItem(\r\n \"emprestimo-contrato-selecionado\",\r\n JSON.stringify(this.state.contratoSelecionado)\r\n );\r\n this.props.history.push(\"/emprestimo/simuladorresumo\");\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Page Funcionalidade={NumFuncionalidade.EMPRESTIMOS_SIMULAÇÃO} {...this.props} ref={this.page} >\r\n <h3>Bem-Vindo ao Simulador de Empréstimos da São Francisco!</h3>\r\n {/* <h5>\r\n Ao final da sua simulação você poderá realizar o\r\n requerimento do seu empréstimo diretamente por aqui, de\r\n forma on-line e segura!\r\n </h5> */}\r\n\r\n <Box titulo={\"Prazos e Prestações\"}>\r\n <p>Selecione o melhor prazo/taxa disponível para você!</p>\r\n\r\n <Row>\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <CampoEstatico\r\n titulo={\"Líquido a Receber\"}\r\n valor={this.state.valorSolicitado}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"6\"}\r\n />\r\n </Col>\r\n\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <CampoEstatico\r\n titulo={\"Margem Consignável\"}\r\n valor={this.state.valorMargemConsignavel}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"6\"}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <CampoEstatico\r\n titulo={\"Saldo Contratos Ativos\"}\r\n valor={this.state.saldoContratosAtivos}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"6\"}\r\n />\r\n </Col>\r\n\r\n <Col tamanho={\"12\"} className={\"col-lg-6\"}>\r\n <CampoEstatico\r\n titulo={\"Juros Aplicado\"}\r\n valor={this.state.listaContratos.length > 0 && this.state.listaContratos[0].TaxaJuros}\r\n tipo={TipoCampoEstatico.percentual}\r\n tamanhoTitulo={\"6\"}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n {this.state.erro && (\r\n <Alerta\r\n tipo={TipoAlerta.danger}\r\n mensagem={this.state.erro}\r\n />\r\n )}\r\n {this.state.listaContratos.length > 0 && (\r\n <table\r\n className={\"table table-hover mt-5\"}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"1px\" }}></th>\r\n <th style={{ width: \"70px\" }}>{\"Prazo\"}</th>\r\n {/* <th style={{ width: \"70px\" }}>{\"Taxa\"}</th> */}\r\n <th style={{ width: \"120px\" }}>{\"Prestação\"}</th>\r\n <th style={{ width: \"120px\" }}>{\"Taxa Administração\"}</th>\r\n <th style={{ width: \"120px\" }}>{\"Taxa Seguro Empréstimo\"}</th>\r\n <th style={{ width: \"120px\" }}>{\"Valor do IOF\"}</th>\r\n <th style={{ width: \"120px\" }}>{\"Valor Bruto a Solicitar\"}</th>\r\n <th>{\"Disponibilidade\"}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.state.listaContratos.map(\r\n (contrato: ContratoDisponivel, index: number) => {\r\n return (\r\n <tr key={index} onClick={() => this.selecionarContrato(contrato)}>\r\n <td>\r\n {contrato.Disponivel &&\r\n contrato.Selecionado && (\r\n <i\r\n className={\r\n \"fas fa-circle text-success\"\r\n }\r\n ></i>\r\n )}\r\n\r\n {contrato.Disponivel &&\r\n !contrato.Selecionado && (\r\n <i\r\n className={\r\n \"far fa-circle\"\r\n }\r\n ></i>\r\n )}\r\n\r\n {!contrato.Disponivel && (\r\n <i\r\n className={\r\n \"far fa-times-circle text-danger\"\r\n }\r\n ></i>\r\n )}\r\n </td>\r\n <td>{contrato.Prazo}</td>\r\n {/* <td>\r\n <CampoEstatico\r\n valor={contrato.TaxaJuros}\r\n tipo={TipoCampoEstatico.percentual}\r\n />\r\n </td> */}\r\n <td>\r\n <CampoEstatico\r\n valor={contrato.ValorPrestacao}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={contrato.ValorTaxaAdministracao}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={contrato.ValorTaxaSeguro}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={contrato.ValorIOF}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={contrato.ValorSolicitado}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <span className={`text-${contrato.Disponivel ? \"success\" : \"danger\"}`}>\r\n {contrato.Disponivel ? \"Disponível\" : contrato.Motivo}\r\n </span>\r\n </td>\r\n </tr>\r\n );\r\n }\r\n )}\r\n </tbody>\r\n </table>\r\n )}\r\n\r\n <Botao\r\n titulo={\"Voltar\"}\r\n tipo={TipoBotao.light}\r\n onClick={() => this.props.history.goBack()}\r\n icone={\"fas fa-chevron-left\"}\r\n />\r\n\r\n <Botao\r\n titulo={\"Resumo\"}\r\n className={\"ml-2\"}\r\n onClick={this.continuar}\r\n icone={\"fas fa-chevron-right\"}\r\n desativado={!this.state.contratoSelecionado}\r\n iconeDireita\r\n submit\r\n />\r\n </Box>\r\n </Page>\r\n );\r\n }\r\n}\r\n","export function decimalFix(\r\n value: string | number,\r\n minimumFractionDigits = 2,\r\n maximumFractionDigits = 2,\r\n type: \"money\" | \"percent\" | \"text\" = \"money\"\r\n): string {\r\n try {\r\n\r\n let val = 0;\r\n if (value !== undefined && value !== null) {\r\n if (typeof value === \"string\") {\r\n val = Number(value);\r\n }\r\n else {\r\n val = value;\r\n }\r\n }\r\n\r\n const text = val.toLocaleString(\"pt-br\", {\r\n minimumFractionDigits: minimumFractionDigits,\r\n maximumFractionDigits: maximumFractionDigits,\r\n });\r\n\r\n switch (type) {\r\n case \"money\": {\r\n return `R$ ${text}`;\r\n }\r\n case \"percent\": {\r\n return `${text}%`;\r\n }\r\n case \"text\": {\r\n return text;\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.log(err)\r\n return (`Houve um erro no processamento do número \"${value}\"`);\r\n }\r\n}\r\n\r\nexport function decimalFixIfDecimal(\r\n value: string | number,\r\n minimumFractionDigits = 2,\r\n maximumFractionDigits = 2,\r\n type: \"money\" | \"percent\" | \"text\" = \"money\"\r\n): string {\r\n try {\r\n\r\n let val = 0;\r\n if (value !== undefined && value !== null) {\r\n if (typeof value === \"string\") {\r\n val = Number(value);\r\n }\r\n else {\r\n val = value;\r\n }\r\n }\r\n\r\n const isDecimal = val % 1 !== 0;\r\n\r\n if (isDecimal)\r\n return decimalFix(val, minimumFractionDigits, maximumFractionDigits, type);\r\n return decimalFix(val, 0, 0, type);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n return (`Houve um erro no processamento do número \"${value}\"`);\r\n }\r\n}","import React from \"react\";\r\nimport { History } from \"history\";\r\nimport { PlanoVinculadoEntidade, ContratoEntidade, ContratoDisponivel, ParametrosSimulacao, PrestacaoEntidade } from \"../../../../entidades\";\r\nimport { Page } from \"../../..\";\r\nimport { NumFuncionalidade } from \"../../../Page\";\r\nimport { Box, CampoEstatico, TipoCampoEstatico, Row, Col, Botao, TipoBotao, TipoAlerta, Alerta, BotaoSwitch } from \"@intechprev/componentes-web\";\r\nimport { EmprestimoService, PlanoService } from \"../../../../services\";\r\nimport { decimalFix } from \"../../../../_utils/decimalFix\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ninterface IProps {\r\n history?: History;\r\n}\r\n\r\ninterface IState {\r\n plano: PlanoVinculadoEntidade;\r\n emprestimos: Array<ContratoEntidade>;\r\n valorSolicitado: number;\r\n valorMargemConsignavel: number;\r\n saldoContratosAtivos: number;\r\n contrato: ContratoDisponivel;\r\n leuTermoAssinado: boolean;\r\n leuContratoAbertura: boolean;\r\n linkTermosEmprestimo: string;\r\n\r\n erro: string;\r\n}\r\n\r\nexport class EmprestimoSimuladorResumo extends React.Component<IProps, IState> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n const dados: ParametrosSimulacao = JSON.parse(localStorage.getItem(\"emprestimo-parametros\"));\r\n const contrato: ContratoDisponivel = JSON.parse(localStorage.getItem(\"emprestimo-contrato-selecionado\"));\r\n\r\n var recursoUtilizado = 0;\r\n\r\n if (dados.emprestimos.length > 0) {\r\n recursoUtilizado = dados.emprestimos.map(x => x.SaldoDevedor.ValorReformado).reduce((x, y) => x + y);\r\n }\r\n\r\n this.state = {\r\n plano: new PlanoVinculadoEntidade(),\r\n emprestimos: dados.emprestimos,\r\n valorSolicitado: dados.valorSolicitado,\r\n valorMargemConsignavel: dados.ValorMargem,\r\n saldoContratosAtivos: recursoUtilizado,\r\n contrato,\r\n leuTermoAssinado: false,\r\n leuContratoAbertura: false,\r\n linkTermosEmprestimo: \"\",\r\n\r\n erro: null,\r\n };\r\n }\r\n\r\n componentDidMount = async () => {\r\n await this.page.current.loading(true);\r\n try {\r\n const dados: ParametrosSimulacao = JSON.parse(localStorage.getItem(\"emprestimo-parametros\"));\r\n\r\n const plano = await PlanoService.Buscar();\r\n\r\n const linkTermosEmprestimo = await EmprestimoService.BuscarLinkDocumentosEmprestimo();\r\n\r\n this.setState({\r\n plano: plano.filter(x => x.CD_PLANO === dados.CdPlano)[0],\r\n linkTermosEmprestimo: linkTermosEmprestimo\r\n });\r\n } catch (err) {\r\n const error: any = err;\r\n this.setState({\r\n erro: error.response ? error.response.data : error,\r\n });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Page {...this.props} Funcionalidade={NumFuncionalidade.EMPRESTIMOS_SIMULAÇÃO} ref={this.page}>\r\n <h3>Bem-Vindo ao Simulador de Empréstimos da São Francisco!</h3>\r\n {/* <h5>Ao final da sua simulação você poderá realizar o requerimento do seu empréstimo diretamente por aqui, de forma on-line e segura!</h5> */}\r\n\r\n <Row>\r\n <Col>\r\n <Box titulo={\"Resumo dos Cálculos\"}>\r\n <CampoEstatico\r\n titulo={\"Plano\"}\r\n valor={this.state.plano.DS_PLANO}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <CampoEstatico\r\n titulo={\"Modalidade do Empréstimo\"}\r\n valor={this.state.contrato.Modalidade.DS_MODAL}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <CampoEstatico\r\n titulo={\"Saldo Devedor\"}\r\n valor={this.state.saldoContratosAtivos}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <CampoEstatico\r\n titulo={\"Valor Solicitado\"}\r\n valor={this.state.contrato.ValorSolicitado}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <CampoEstatico\r\n titulo={\"Total de Encargos/Tributos*\"}\r\n valor={this.state.contrato.ValorTaxaAdministracao + this.state.contrato.ValorTaxaSeguro + this.state.contrato.ValorIOF}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <b>\r\n <CampoEstatico\r\n titulo={\"Valor Líquido\"}\r\n valor={this.state.contrato.ValorLiquido}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n </b>\r\n\r\n <b>\r\n <CampoEstatico\r\n titulo={\"Custo Efetivo Total Anual (CET Anual)\"}\r\n valor={this.state.contrato.ValorCustoEfetivoTotalAnual}\r\n tipo={TipoCampoEstatico.percentual}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n </b>\r\n\r\n <b>\r\n <CampoEstatico\r\n titulo={\"Custo Efetivo Total Mensal (CET Mensal)\"}\r\n valor={this.state.contrato.ValorCustoEfetivoTotalMensal}\r\n tipo={TipoCampoEstatico.percentual}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n </b>\r\n\r\n <CampoEstatico\r\n titulo={\"Data de Crédito\"}\r\n valor={this.state.contrato.DataCredito}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <h4 className={\"mt-5\"}>Resumo dos Cálculos</h4>\r\n\r\n <CampoEstatico\r\n titulo={\"Prazo\"}\r\n valor={`${this.state.contrato.Prazo} Meses`}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <CampoEstatico\r\n titulo={\"Taxa\"}\r\n valor={this.state.contrato.TaxaJuros}\r\n tipo={TipoCampoEstatico.percentual}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n\r\n <CampoEstatico\r\n titulo={\"Prestações\"}\r\n valor={this.state.contrato.ValorPrestacao}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n tamanhoTitulo={\"md-4\"}\r\n />\r\n </Box>\r\n </Col>\r\n\r\n <Col>\r\n <Box titulo={\"* Encargos/Tributos Calculados\"}>\r\n <table className={\"table table-sm\"}>\r\n <thead>\r\n <tr>\r\n <th>Encargo/Tributo</th>\r\n <th className={\"text-right\"}>% dos Encargos</th>\r\n <th className={\"text-right\"}>Valor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>TAXA DE ADMINISTRAÇÃO</td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={this.state.contrato.TaxaEncargo.TX_ADM} tipo={TipoCampoEstatico.percentual} />\r\n </td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={this.state.contrato.ValorTaxaAdministracao} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>TAXA SEGURO EMPRÉSTIMO</td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={this.state.contrato.TaxaEncargo.TX_SEGURO} tipo={TipoCampoEstatico.percentual} />\r\n </td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={this.state.contrato.ValorTaxaSeguro} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>IOF</td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={decimalFix(this.state.contrato.TaxaEncargo.TX_IOF, 4, 4, \"percent\")} />\r\n </td>\r\n <td className={\"text-right\"}>\r\n <CampoEstatico valor={this.state.contrato.ValorIOF} tipo={TipoCampoEstatico.dinheiro} />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </Box>\r\n\r\n <Box titulo={\"Evolução das Prestações Tabela PRICE\"}>\r\n {this.state.contrato.Prestacoes.length > 0 && <>\r\n <table className={\"table table-striped table-sm\"}>\r\n <thead>\r\n <tr>\r\n <th>Nº</th>\r\n <th>Vencimento</th>\r\n <th>Principal</th>\r\n <th>Juros</th>\r\n <th>Prestação</th>\r\n <th>Saldo Anterior</th>\r\n <th>Saldo Devedor</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.state.contrato.Prestacoes.map((prestacao: PrestacaoEntidade, index: number) => {\r\n if (prestacao.TIPO === \"P\") {\r\n return (\r\n <tr key={index}>\r\n <td>{prestacao.PARCELA}</td>\r\n <td>{prestacao.DT_VENC}</td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_PRINCIPAL}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_JUROS}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_PRESTACAO}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_SALDO_ANT}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n <td>\r\n <CampoEstatico\r\n valor={prestacao.VL_SALDO_ATUAL}\r\n tipo={TipoCampoEstatico.dinheiro}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n } else if (prestacao.TIPO === \"S\") {\r\n return (\r\n <tr key={index}>\r\n <td></td>\r\n <td>{prestacao.DT_VENC}</td>\r\n <td colSpan={4}>Suspensa</td>\r\n </tr>\r\n );\r\n } else {\r\n return (\r\n <tr key={index}>\r\n <td colSpan={6}></td>\r\n </tr>\r\n );\r\n }\r\n })}\r\n </tbody>\r\n </table>\r\n </>}\r\n\r\n {this.state.contrato.Prestacoes.length === 0 && <Alerta tipo={TipoAlerta.danger} mensagem={\"Nenhum dado de prestações disponível no momento\"} />}\r\n </Box>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col>\r\n <Box>\r\n <div className={`alert alert-${this.state.leuTermoAssinado ? \"info\" : \"warning\"}`}>\r\n <Row className={\"mb-2\"}>\r\n <Col className={\"col-1 align-self-center\"}>\r\n <BotaoSwitch\r\n tipoAtivo={TipoBotao.success}\r\n iconeInativo={\"fas fa-square-full\"}\r\n checked={this.state.leuTermoAssinado}\r\n onChange={() => this.setState({ leuTermoAssinado: !this.state.leuTermoAssinado })}\r\n />\r\n </Col>\r\n\r\n <Col className={\"align-self-center\"}>\r\n {\"Declaro que li e concordo com as informações dispostas na Política de Crédito para Concessão de Empréstimos.\"}\r\n <br />\r\n <Link to={this.state.linkTermosEmprestimo} className={\"btn btn-link btn-sm\"} target={\"_blank\"} rel={\"noreferrer\"}>\r\n {\"Clique aqui para acessar a Política de Crédito para Concessão de Empréstimos.\"}\r\n </Link>\r\n </Col>\r\n </Row>\r\n </div>\r\n\r\n <div className={`alert alert-${this.state.leuContratoAbertura ? \"info\" : \"warning\"}`}>\r\n <Row className={\"mb-2\"}>\r\n <Col className={\"col-1 align-self-center\"}>\r\n <BotaoSwitch\r\n tipoAtivo={TipoBotao.success}\r\n iconeInativo={\"fas fa-square-full\"}\r\n checked={this.state.leuContratoAbertura}\r\n onChange={() => this.setState({ leuContratoAbertura: !this.state.leuContratoAbertura })}\r\n />\r\n </Col>\r\n\r\n <Col className={\"align-self-center\"}>\r\n {\"Declaro que li e concordo com as informações dispostas no Contrato de Abertura de Crédito de empréstimo.\"}\r\n <br />\r\n <Link to={this.state.linkTermosEmprestimo} className={\"btn btn-link btn-sm\"} target={\"_blank\"} rel={\"noreferrer\"}>\r\n {\"Clique aqui para acessar o Contrato de Abertura de Crédito de empréstimo.\"}\r\n </Link>\r\n </Col>\r\n </Row>\r\n </div>\r\n\r\n <div className={\"mt-5\"}>\r\n <Botao titulo={\"Voltar\"}\r\n tipo={TipoBotao.light}\r\n onClick={() => this.props.history.goBack()}\r\n icone={\"fas fa-chevron-left\"}\r\n />\r\n\r\n <Botao\r\n titulo={\"Gostei! Quero Solicitar esse Empréstimo!\"}\r\n className={\"ml-2\"}\r\n onClick={() => this.props.history.push(\"/emprestimo/simuladorcontratacao\")}\r\n icone={\"fas fa-chevron-right\"}\r\n iconeDireita\r\n desativado={!this.state.leuContratoAbertura || !this.state.leuTermoAssinado}\r\n submit\r\n />\r\n </div>\r\n </Box>\r\n </Col>\r\n </Row>\r\n </Page>\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { History } from \"history\";\r\nimport { Box, Botao, CampoEstatico, Alerta, TipoAlerta, TipoBotao, CampoTexto, PosicaoTituloCampoTexto, } from \"@intechprev/componentes-web\";\r\n\r\nimport { FuncionarioService, EmprestimoService } from \"../../../../services\";\r\nimport { Page } from \"../../..\";\r\nimport { NumFuncionalidade } from \"../../../Page\";\r\nimport { FuncionarioDados, ParametrosSimulacao, ContratoDisponivel, ParametrosContrato } from \"../../../../entidades\";\r\n\r\ninterface IProps {\r\n history?: History;\r\n}\r\n\r\ninterface IState {\r\n funcionario: FuncionarioDados;\r\n oidArquivoUpload: string;\r\n\r\n valorMargemConsignavel: number;\r\n contrato: ContratoDisponivel;\r\n tokenDigitado: string;\r\n tokenEnviado: string;\r\n // ativo: boolean;\r\n\r\n aderiuContratoEmpréstimoOnline: boolean;\r\n erro: string;\r\n}\r\n\r\nexport class EmprestimoSimuladorContratacao extends React.Component<IProps, IState> {\r\n\r\n private page = React.createRef<Page>();\r\n\r\n private fileUpload: any;\r\n\r\n state: IState = {\r\n funcionario: null,\r\n oidArquivoUpload: \"\",\r\n\r\n valorMargemConsignavel: 0,\r\n contrato: null,\r\n\r\n tokenDigitado: \"\",\r\n tokenEnviado: \"\",\r\n // ativo: false,\r\n\r\n aderiuContratoEmpréstimoOnline: false,\r\n erro: null\r\n };\r\n\r\n componentDidMount = async () => {\r\n await this.page.current.loading(true);\r\n\r\n try {\r\n const dados: ParametrosSimulacao = JSON.parse(localStorage.getItem(\"emprestimo-parametros\"));\r\n\r\n const contrato: ContratoDisponivel = JSON.parse(localStorage.getItem(\"emprestimo-contrato-selecionado\"));\r\n\r\n const funcionario = await FuncionarioService.Buscar();\r\n\r\n // const aderiuContratoEmpréstimoOnline = funcionario.DadosPessoais.ID_EMP_ONLINE === \"S\";\r\n const aderiuContratoEmpréstimoOnline = true;\r\n\r\n await this.setState({\r\n funcionario,\r\n valorMargemConsignavel: dados.ValorMargem,\r\n contrato,\r\n // ativo: [\"1\"].includes(dados.plano.CD_CATEGORIA),\r\n aderiuContratoEmpréstimoOnline\r\n });\r\n } catch (err) {\r\n const error: any = err;\r\n this.setState({\r\n erro: error.response ? error.response.data : error,\r\n });\r\n }\r\n finally {\r\n await this.page.current.loading(false);\r\n }\r\n };\r\n\r\n contratar = async () => {\r\n try {\r\n const dados: ParametrosContrato = {\r\n Contrato: this.state.contrato,\r\n ValorMargem: this.state.valorMargemConsignavel,\r\n TokenEnviado: this.state.tokenEnviado,\r\n TokenDigitado: this.state.tokenDigitado\r\n };\r\n // const numContrato = await EmprestimoService.Contratar(dados);\r\n await EmprestimoService.Contratar(dados);\r\n alert(\"Sua solicitação foi enviada com sucesso!\");\r\n\r\n this.props.history.push(\"/emprestimo\");\r\n } catch (err) {\r\n const error: any = err;\r\n this.setState({\r\n erro: error.response ? error.response.data : error,\r\n });\r\n };\r\n }\r\n\r\n enviarToken = async () => {\r\n try {\r\n var token = await EmprestimoService.GerarToken();\r\n this.setState({\r\n tokenEnviado: token\r\n });\r\n alert(\"Para validar a operação de empréstimo, insira o código que foi enviado por SMS ao seu celular ou ao seu email e clique em contratar empréstimo.\");\r\n } catch (err) {\r\n const error: any = err;\r\n this.setState({\r\n erro: error.response ? error.response.data : error,\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Page {...this.props} Funcionalidade={NumFuncionalidade.EMPRESTIMOS_CONTRATAÇÃO} ref={this.page}>\r\n\r\n {this.state.erro && <Alerta tipo={TipoAlerta.danger} mensagem={this.state.erro} />}\r\n\r\n {!this.state.erro && <>\r\n {!this.state.aderiuContratoEmpréstimoOnline && (\r\n <Alerta\r\n tipo={TipoAlerta.danger}\r\n mensagem={\r\n \"Você não pode usar esta funcionalidade, pois não aderiu ao contrato de empréstimo on-line. Para aderir, entre em contato com nossa equipe da Seguridade através do e-mail seguridade@previrb.com.br ou pelo telefone 21 2277-1999, de segunda a sexta-feira, das 9h às 17h.\"\r\n }\r\n />\r\n )}\r\n\r\n {this.state.aderiuContratoEmpréstimoOnline && (\r\n <>\r\n <h3>Bem-Vindo ao Simulador de Empréstimos da São Francisco!</h3>\r\n {/* <h5>Ao final da sua simulação você poderá realizar o requerimento do seu empréstimo diretamente por aqui, de forma on-line e segura!</h5> */}\r\n\r\n {!(this.state.funcionario &&\r\n this.state.funcionario.Entidade &&\r\n this.state.funcionario.Entidade.NUM_BANCO &&\r\n this.state.funcionario.Entidade.NUM_AGENCIA &&\r\n this.state.funcionario.Entidade.NUM_CONTA) && (\r\n <>\r\n <Alerta tipo={TipoAlerta.danger} mensagem={\"Você não possui dados bancários cadastrados, favor enviar um comprovante para nossa central de atendimento, indicando a sua matrícula.\"} />\r\n </>\r\n )}\r\n\r\n {(this.state.funcionario &&\r\n this.state.funcionario.Entidade &&\r\n this.state.funcionario.Entidade.NUM_BANCO &&\r\n this.state.funcionario.Entidade.NUM_AGENCIA &&\r\n this.state.funcionario.Entidade.NUM_CONTA) && (\r\n <>\r\n <Box titulo={\"Requerimento do Empréstimo\"} renderRow>\r\n <Box titulo={\"Dados Bancários\"}>\r\n <CampoEstatico titulo={\"Banco\"} valor={this.state.funcionario.Entidade.NUM_BANCO} tamanhoTitulo={\"md-4\"} />\r\n\r\n <CampoEstatico titulo={\"Agência\"} valor={this.state.funcionario.Entidade.NUM_AGENCIA} tamanhoTitulo={\"md-4\"} />\r\n\r\n <CampoEstatico titulo={\"Conta\"} valor={this.state.funcionario.Entidade.NUM_CONTA} tamanhoTitulo={\"md-4\"} />\r\n </Box>\r\n\r\n {/* {this.state.ativo && (\r\n <ArquivoUpload\r\n texto={\r\n 'Para concluir a sua solicitação de empréstimo é necessário enviar o seu último contracheque contendo a margem consignável informada por você. Somente será possível enviar arquivos \"TIF, JPG, BMP, PNG e PDF\".'\r\n }\r\n titulo={\"Comprovante Margem Consignável\"}\r\n id={\"documento\"}\r\n setOidArquivoUpload={this.setOidArquivoUpload}\r\n />\r\n )} */}\r\n\r\n <Box titulo={\"Código de Validação\"}>\r\n <p>\r\n {\"Para dar sequência a sua solicitação de empréstimo, \"}\r\n <b>{\"enviaremos um código de validação para o seu e-mail cadastrado na São Francisco.\"}</b>\r\n </p>\r\n\r\n <Botao\r\n className={\"mb-3\"}\r\n onClick={this.enviarToken}\r\n titulo={\"Solicitar código de validação\"}\r\n tipo={TipoBotao.primary}\r\n usaLoading\r\n />\r\n\r\n <CampoTexto\r\n titulo={\"Digite aqui o Código de Validação recebido via E-mail\"}\r\n posicaoTitulo={PosicaoTituloCampoTexto.cima}\r\n valor={this.state.tokenDigitado}\r\n nome={\"tokenDigitado\"}\r\n contexto={this}\r\n />\r\n </Box>\r\n\r\n <Botao\r\n titulo={\"Solicitar empréstimo!\"}\r\n className={\"ml-2\"}\r\n onClick={this.contratar}\r\n icone={\"fas fa-chevron-right\"}\r\n usaLoading\r\n iconeDireita\r\n submit\r\n />\r\n </Box>\r\n </>\r\n )}\r\n </>\r\n )}\r\n </>}\r\n </Page>\r\n );\r\n }\r\n}\r\n","import React, { Component, RefObject } from 'react'\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { Row, Col } from \"@intechprev/componentes-web\";\r\n\r\nimport Rotas from \"./Rotas\";\r\nimport { FuncionarioService } from '../../services';\r\nimport config from './../../config.json';\r\nimport { UsuarioService } from \"./../../services\";\r\n\r\ninterface Props {\r\n history?: any;\r\n ref: RefObject<PageAdmin>;\r\n}\r\n\r\n\r\ninterface State {\r\n admin: boolean;\r\n loading: boolean;\r\n matricula: string;\r\n nomeUsuario: string;\r\n}\r\n\r\nexport default class PageAdmin extends Component<Props, State> {\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n admin: false,\r\n loading: false,\r\n matricula: \"\",\r\n nomeUsuario: \"\"\r\n }\r\n }\r\n\r\n componentWillMount = async () => {\r\n try {\r\n\r\n var token = await localStorage.getItem(`@${config.appName}:token`);\r\n\r\n if (token) {\r\n const admin = await UsuarioService.VerificarAdmin();\r\n var dados = await FuncionarioService.Buscar();\r\n var nomeUsuario = dados.DadosPessoais.NOME_ENTID;\r\n var matricula = dados.Funcionario.NUM_MATRICULA;\r\n\r\n if (!admin) {\r\n this.props.history.push('/');\r\n }\r\n else {\r\n await this.setState({\r\n admin,\r\n matricula,\r\n nomeUsuario\r\n });\r\n }\r\n\r\n } else {\r\n await this.logout();\r\n }\r\n } catch (err) {\r\n if (err.message.indexOf(\"401\") > -1) {\r\n await this.logout();\r\n } else {\r\n alert(\"Ops! Ocorreu um erro ao processar sua requisição.\");\r\n console.error(err);\r\n }\r\n }\r\n\r\n }\r\n\r\n logout = async () => {\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"token-admin\");\r\n this.props.history.push(\"login\");\r\n }\r\n\r\n loading = async (valor: boolean) => {\r\n await this.setState({\r\n loading: valor\r\n });\r\n }\r\n\r\n toggleMenu = async () => {\r\n\r\n }\r\n\r\n render() {\r\n\r\n var Title = () => {\r\n var rota = this.props.history.location.pathname;\r\n\r\n var titulo;\r\n\r\n for (var i = 0; i < Rotas.length; i++) {\r\n if (rota === Rotas[i].caminho || rota === Rotas[i].caminhoLink || rota.includes(Rotas[i].caminhoLink)) {\r\n titulo = <h2 id=\"titulo\">{Rotas[i].titulo}</h2>;\r\n }\r\n }\r\n\r\n return titulo;\r\n };\r\n\r\n return (\r\n <div className=\"wrapper\">\r\n <nav className=\"navbar-default nav-open\">\r\n <ul>\r\n <li className=\"navbar-header\">\r\n <img src=\"imagens/logo.png\" alt=\"logo\" />\r\n </li>\r\n {\r\n Rotas.map((rota, index) => {\r\n var link = rota.caminhoLink ? rota.caminhoLink : rota.caminho;\r\n\r\n if (rota.mostrarMenu) {\r\n return (\r\n <li key={index} id={rota.id}>\r\n <Link to={link}>\r\n <i className={rota.icone}></i>\r\n {rota.titulo}\r\n </Link>\r\n </li>\r\n );\r\n }\r\n else return \"\";\r\n })\r\n }\r\n <li>\r\n <a href=\".\" onClick={() => this.props.history.push(\"/\")}>\r\n <i className=\"fas fa-sign-out-alt\"></i>\r\n Sair do admin\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n\r\n <div className=\"page-wrapper nav-open\">\r\n <Row className=\"page-heading\">\r\n <Col>\r\n <button className=\"btn btn-primary btn-menu\" onClick={this.toggleMenu}>\r\n <i className=\"fa fa-list\"></i>\r\n </button>\r\n\r\n <Title />\r\n </Col>\r\n\r\n <Col tamanho={\"6\"} className={\"text-right user-icon\"}>\r\n <Row>\r\n <Col className={\"nome-usuario\"}>\r\n {this.state.nomeUsuario}\r\n\r\n {this.state.admin &&\r\n <span>\r\n <Link to={\"/listarParticipantes\"} className={\"icon\"} style={{ marginLeft: 10, marginRight: 10 }}>\r\n <i className={\"fas fa-user-friends\"}></i>\r\n </Link>\r\n <Link to={\"/admin\"} className={\"icon\"}>\r\n <i className={\"fas fa-lock\"}></i>\r\n </Link>\r\n </span>\r\n }\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n\r\n <div className=\"wrapper-content\">\r\n {this.props.children}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}","import React, { Component } from 'react'\r\n\r\nimport PageAdmin from \"./PageAdmin\";\r\n\r\nimport { Row, Col } from \"@intechprev/componentes-web\";\r\n\r\nexport default class Home extends Component {\r\n page = React.createRef<PageAdmin>();\r\n\r\n render() {\r\n return (\r\n <PageAdmin {...this.props} ref={this.page}>\r\n \r\n\r\n\r\n </PageAdmin>\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { DocumentoService } from \"./../../services\";\r\nimport { Row, Col, Botao, TipoBotao } from '@intechprev/componentes-web';\r\nimport { Link } from \"react-router-dom\";\r\nimport { DocumentoEntidade } from '../../entidades';\r\n\r\ninterface Props {\r\n itens: any,\r\n tipo: string,\r\n icone: string,\r\n campoTexto: string,\r\n admin: boolean\r\n}\r\n\r\nexport default class Tabelas extends React.Component<Props> {\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n }\r\n\r\n deletarDocumento = async (oidDocumento: number) => {\r\n if (window.confirm('Deseja realmente excluir o documento?')) {\r\n var doc = new DocumentoEntidade();\r\n doc.OID_DOCUMENTO = oidDocumento\r\n await DocumentoService.Deletar(doc);\r\n document.location.reload();\r\n }\r\n }\r\n\r\n deletarPasta = async (oidDocumentPasta: number) => {\r\n if (window.confirm('Deseja realmente excluir a pasta e todo seu conteúdo?')) {\r\n await DocumentoService.DeletarPasta(oidDocumentPasta);\r\n document.location.reload();\r\n }\r\n }\r\n\r\n downloadDocumento = async (oidDocumento: number) => {\r\n try {\r\n var documento = await DocumentoService.BuscarPorOidDocumento(oidDocumento);\r\n\r\n var documentoBlob = await DocumentoService.Download(oidDocumento);\r\n\r\n const blobURL = window.URL.createObjectURL(new Blob([documentoBlob]));\r\n const tempLink = document.createElement('a');\r\n tempLink.href = blobURL;\r\n tempLink.setAttribute('download', documento.NOM_ARQUIVO_LOCAL);\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n\r\n } catch (err) {\r\n if (err.response) {\r\n alert(err.response.data);\r\n console.error(err.response.data);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n var linkBase = \"/documentos\";\r\n\r\n if (this.props.admin)\r\n linkBase = \"/admin/documentos\";\r\n\r\n return (\r\n <div>\r\n {\r\n this.props.itens.map((item: any, index: number) => {\r\n return (\r\n <Row key={index} className={\"m-3\"}>\r\n <Col tamanho={\"1\"}>\r\n <i className={\"fa fa-2x \" + this.props.icone}></i>\r\n </Col>\r\n\r\n <Col className={\"mt-1\"}>\r\n {this.props.tipo === \"pasta\" &&\r\n <Link className={\"btn btn-link\"} to={`${linkBase}/${item.OID_DOCUMENTO_PASTA}`}>{item[this.props.campoTexto]}</Link>\r\n }\r\n\r\n {this.props.tipo !== \"pasta\" &&\r\n <Botao tipo={TipoBotao.link} onClick={() => this.downloadDocumento(item.OID_DOCUMENTO)} titulo={item[this.props.campoTexto]} />\r\n }\r\n </Col>\r\n\r\n {this.props.admin &&\r\n <Col tamanho={\"1\"}>\r\n <Botao titulo={\"\"} className={\"btn btn-sm btn-danger\"} icone={\"fa fa-trash\"}\r\n onClick={async () => {\r\n if (this.props.tipo === \"pasta\")\r\n await this.deletarPasta(item.OID_DOCUMENTO_PASTA);\r\n else\r\n await this.deletarDocumento(item.OID_DOCUMENTO);\r\n }} />\r\n </Col>\r\n }\r\n </Row>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport axios from \"axios\";\r\nimport { DocumentoService, PlanoService } from \"./../../services\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Tabelas from './../Documentos/Tabelas';\r\n\r\nimport { Page } from \"..\";\r\nimport { Row, Col, Box, Form, Botao, Alerta, CampoTexto, TipoAlerta, TipoBotao, Combo } from '@intechprev/componentes-web';\r\nimport config from '../../config.json';\r\nimport { PageAdmin } from \".\";\r\nimport { DocumentoEntidade, DocumentoPastaEntidade } from \"../../entidades\";\r\n\r\nconst apiUrl = config.apiUrl\r\n\r\nexport {\r\n Tabelas\r\n}\r\n\r\ninterface Props {\r\n match?: any;\r\n}\r\n\r\ninterface State {\r\n planos: any,\r\n plano: any,\r\n documentos: any,\r\n pastas: any,\r\n nomePasta: string\r\n nomeDocumento: string,\r\n arquivoUpload: string,\r\n podeCriarDocumento: boolean\r\n oidArquivoUpload: number,\r\n oidPasta: any,\r\n pastaAtual: string\r\n pastaPai: string,\r\n visibilidadeFileInput: boolean,\r\n uploadPercentage: number,\r\n uploading: boolean\r\n}\r\n\r\nexport default class Documentos extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<PageAdmin>();\r\n private formDocumento = React.createRef<Form>();\r\n private alertDocumento = React.createRef<Alerta>();\r\n private formPasta = React.createRef<Form>();\r\n private alertPasta = React.createRef<Alerta>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n planos: [],\r\n plano: null,\r\n documentos: [],\r\n pastas: [],\r\n nomePasta: \"\",\r\n nomeDocumento: \"\",\r\n arquivoUpload: \"\",\r\n podeCriarDocumento: false,\r\n oidArquivoUpload: 0,\r\n oidPasta: props.match.params.pasta || 0,\r\n pastaAtual: null,\r\n pastaPai: \"\",\r\n visibilidadeFileInput: true,\r\n uploadPercentage: 0,\r\n uploading: false\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n await this.buscarLista();\r\n await this.page.current.loading(false);\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps() {\r\n window.location.reload();\r\n }\r\n\r\n buscarLista = async () => {\r\n var planos = await PlanoService.BuscarTodos();\r\n var resultado = await DocumentoService.BuscarPorPlanoPasta(planos[0].CD_PLANO, this.state.oidPasta, \"nome\");\r\n\r\n var pastaPai = \"\";\r\n\r\n if (resultado.pastaAtual && resultado.pastaAtual.OID_DOCUMENTO_PASTA_PAI)\r\n pastaPai = resultado.pastaAtual.OID_DOCUMENTO_PASTA_PAI;\r\n\r\n await this.setState({\r\n documentos: resultado.documentos,\r\n pastas: resultado.pastas,\r\n pastaAtual: resultado.pastaAtual,\r\n pastaPai,\r\n planos\r\n });\r\n }\r\n\r\n salvarPasta = async (e: Event) => {\r\n if (e)\r\n e.preventDefault();\r\n\r\n await this.alertPasta.current.limparErros();\r\n await this.formPasta.current.validar();\r\n\r\n if (this.alertPasta.current.state.mensagem.length === 0 && this.alertPasta.current.props.mensagem.length === 0) {\r\n try {\r\n const pasta: DocumentoPastaEntidade = {\r\n NOM_PASTA: this.state.nomePasta,\r\n OID_DOCUMENTO_PASTA: this.state.oidPasta,\r\n DTA_INCLUSAO: null,\r\n NOM_GRUPO_USUARIO: null\r\n };\r\n await DocumentoService.CriarPasta(pasta);\r\n await this.setState({\r\n nomePasta: \"\"\r\n });\r\n\r\n await this.buscarLista();\r\n\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n }\r\n\r\n uploadFile = async (e: any) => {\r\n try {\r\n const formData = new FormData()\r\n var arquivoUpload = e.target.files[0];\r\n\r\n formData.append(\"File\", arquivoUpload, arquivoUpload.name);\r\n\r\n await this.setState({ uploading: true });\r\n\r\n axios.post(apiUrl + '/upload', formData, {\r\n headers: { 'Content-Type': 'multipart/form-data' },\r\n onUploadProgress: async progressEvent => {\r\n await this.setState({\r\n uploadPercentage: Math.round((progressEvent.loaded * 100) / progressEvent.total)\r\n });\r\n },\r\n })\r\n .then(result => {\r\n this.setState({\r\n podeCriarDocumento: true,\r\n oidArquivoUpload: result.data,\r\n visibilidadeFileInput: false,\r\n uploading: false,\r\n uploadPercentage: 0\r\n });\r\n })\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n salvarDocumento = async (e: any) => {\r\n if (e)\r\n e.preventDefault();\r\n\r\n await this.alertDocumento.current.limparErros();\r\n await this.formDocumento.current.validar();\r\n\r\n if (this.alertDocumento.current.state.mensagem.length === 0 && this.alertDocumento.current.props.mensagem.length === 0) {\r\n try {\r\n var oidPasta = this.state.oidPasta;\r\n if (oidPasta === undefined || oidPasta === \"0\" || oidPasta === 0 || oidPasta === \"\")\r\n oidPasta = null;\r\n\r\n const plano = this.state.planos.filter((x: any) => x.CD_PLANO === this.state.plano)[0];\r\n\r\n const doc: DocumentoEntidade = {\r\n OID_ARQUIVO_UPLOAD: this.state.oidArquivoUpload,\r\n TXT_TITULO: this.state.nomeDocumento,\r\n CD_PLANO: this.state.plano,\r\n IND_ATIVO: \"SIM\",\r\n OID_DOCUMENTO_PASTA: oidPasta,\r\n DS_PLANO: plano ? plano.DS_PLANO : \"\",\r\n DTA_INCLUSAO: null,\r\n OID_DOCUMENTO: null\r\n };\r\n await DocumentoService.Criar(doc);\r\n await this.setState({\r\n nomeDocumento: \"\",\r\n arquivoUpload: \"\",\r\n oidArquivoUpload: 0,\r\n visibilidadeFileInput: true,\r\n podeCriarDocumento: false\r\n });\r\n await this.buscarLista();\r\n\r\n } catch (e) {\r\n const err: any = e;\r\n await this.alertDocumento.current.adicionarErro(err.response ? err.response.data : err);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <PageAdmin {...this.props} ref={this.page}>\r\n\r\n <Row>\r\n <Col tamanho={\"lg-5\"}>\r\n <Box titulo={\"UPLOAD DE DOCUMENTOS\"}>\r\n <Form ref={this.formDocumento}>\r\n\r\n <CampoTexto contexto={this} nome={\"nomeDocumento\"} max={50} valor={this.state.nomeDocumento} titulo={\"Título\"} obrigatorio />\r\n\r\n <Combo contexto={this} titulo={\"Plano\"} obrigatorio={false}\r\n nome={\"plano\"} valor={this.state.plano} textoVazio=\"Todas(os)\"\r\n opcoes={this.state.planos} nomeMembro={\"DS_PLANO\"} valorMembro={\"CD_PLANO\"} />\r\n\r\n <div className=\"form-group\">\r\n\r\n <label htmlFor=\"selecionar-documento\"><b>Arquivo</b></label><br />\r\n\r\n {/* {this.state.uploading &&\r\n <div className=\"progress\" style={{ marginBottom: 10 }}>\r\n <div className=\"progress-bar progress-bar-striped progress-bar-animated\" role=\"progressbar\" style={{width: this.state.uploadPercentage + \"%\"}} aria-valuenow=\"50\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\r\n </div>\r\n } */}\r\n\r\n {this.state.visibilidadeFileInput && !this.state.uploading &&\r\n <input name=\"selecionar-documento\" id=\"selecionar-documento\" type=\"file\" onChange={this.uploadFile} />\r\n }\r\n\r\n {!this.state.visibilidadeFileInput && !this.state.uploading &&\r\n <div>\r\n <Alerta tipo={TipoAlerta.success} mensagem={\"Arquivo enviado com sucesso\"} />\r\n <Botao titulo={\"Enviar outro arquivo\"} tipo={TipoBotao.primary}\r\n onClick={async () => await this.setState({ visibilidadeFileInput: true, oidArquivoUpload: 0, podeCriarDocumento: false })} />\r\n </div>\r\n }\r\n <hr />\r\n\r\n <Botao titulo={\"Salvar\"} tipo={TipoBotao.primary} submit desativado={!this.state.podeCriarDocumento}\r\n onClick={this.salvarDocumento} usaLoading />\r\n </div>\r\n\r\n <Alerta ref={this.alertDocumento} padraoFormulario tipo={TipoAlerta.danger} />\r\n\r\n </Form>\r\n </Box>\r\n\r\n <Box titulo={\"CRIAÇÃO DE PASTA\"}>\r\n <Form ref={this.formPasta}>\r\n\r\n <CampoTexto contexto={this} nome={\"nomePasta\"} max={50} valor={this.state.nomePasta} titulo={\"Nome\"} obrigatorio />\r\n <hr />\r\n\r\n <div className=\"form-group\">\r\n <Botao className={\"btn btn-primary\"} titulo={\"Salvar\"} submit onClick={this.salvarPasta} />\r\n </div>\r\n\r\n <Alerta ref={this.alertPasta} padraoFormulario tipo={TipoAlerta.danger} />\r\n\r\n </Form>\r\n </Box>\r\n </Col>\r\n\r\n <Col>\r\n <Box>\r\n {this.state.pastaAtual &&\r\n <Link className={\"btn btn-primary mb-4\"} to={`/admin/documentos/${this.state.pastaPai}`}>\r\n <i className={\"fa fa-chevron-left mr-2\"}></i>\r\n Voltar\r\n </Link>\r\n }\r\n\r\n {(this.state.pastas.length > 0 || this.state.documentos.length > 0) &&\r\n <div>\r\n <Tabelas {...this.props} itens={this.state.pastas} campoTexto={\"NOM_PASTA\"} icone={\"fa-folder-open text-warning\"} tipo={\"pasta\"} admin={true} />\r\n <Tabelas {...this.props} itens={this.state.documentos} campoTexto={\"TXT_TITULO\"} icone={\"fa-file text-info\"} tipo={\"documento\"} admin={true} />\r\n </div>\r\n }\r\n\r\n {this.state.pastas.length === 0 && this.state.documentos.length === 0 &&\r\n <div className=\"alert alert-danger\">Nenhum item disponível.</div>\r\n }\r\n </Box>\r\n </Col>\r\n </Row>\r\n\r\n </PageAdmin>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { MensagemService, ListasService } from \"./../../services\";\r\nimport { handleFieldChange } from \"@intechprev/react-lib\";\r\nimport { Row, Col, Box, CampoTexto, Botao, Form, Alerta, Combo, TipoBotao, TipoAlerta } from \"@intechprev/componentes-web\";\r\nimport DataInvalida from '../../_utils/DataInvalida';\r\nimport ListaMensagens from \"../Mensagens/ListaMensagens\";\r\nimport { PageAdmin } from '.';\r\nimport { MensagemEntidade } from '../../entidades';\r\n\r\ninterface Props { }\r\n\r\ninterface State {\r\n // States campos\r\n tituloMensagem: string,\r\n mensagem: string,\r\n enviarEmail: boolean,\r\n enviarPortal: boolean,\r\n enviarMobile: boolean,\r\n dataExpiracao: string,\r\n fundacao: any,\r\n empresa: any,\r\n plano: string,\r\n situacaoPlano: string,\r\n matricula: string,\r\n\r\n // States Listas\r\n listas: [],\r\n listaFundacao: any,\r\n listaEmpresa: [],\r\n listaPlano: [],\r\n listaSituacaoPlano: [],\r\n mensagens: MensagemEntidade[],\r\n\r\n modalVisivel: false\r\n}\r\n\r\nexport class MensagemNova extends React.Component<Props, State> {\r\n\r\n private page = React.createRef<PageAdmin>();\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.state = {\r\n\r\n // States campos\r\n tituloMensagem: \"\",\r\n mensagem: \"\",\r\n enviarEmail: false,\r\n enviarPortal: false,\r\n enviarMobile: false,\r\n dataExpiracao: \"\",\r\n fundacao: \"\",\r\n empresa: \"\",\r\n plano: \"\",\r\n situacaoPlano: \"\",\r\n matricula: \"\",\r\n\r\n // States Listas\r\n listas: [],\r\n listaFundacao: [],\r\n listaEmpresa: [],\r\n listaPlano: [],\r\n listaSituacaoPlano: [],\r\n mensagens: [],\r\n\r\n modalVisivel: false\r\n }\r\n }\r\n\r\n /**\r\n * @description Método de ciclo de vida, chamado ao montar o componente. Busca todas as listagens e armazena em seus respectivos states.\r\n */\r\n async componentDidMount() {\r\n\r\n try {\r\n var mensagens = await MensagemService.BuscarTodas();\r\n await this.setState({ mensagens })\r\n\r\n var listas = await ListasService.ListarFundacaoEmpresaPlano();\r\n await this.setState({\r\n listas,\r\n listaFundacao: listas.Fundacoes,\r\n listaSituacaoPlano: listas.SitPlanos,\r\n fundacao: listas.Fundacoes[0].CD_FUNDACAO\r\n });\r\n\r\n await this.onChangeFundacao(null);\r\n\r\n await this.page.current.loading(false);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n /**\r\n * @description Método que busca as empresas que existem dentro da fundação selecionada e armazena no state listaEmpresa.\r\n * @param {event} object\r\n */\r\n onChangeFundacao = async (event: Event) => {\r\n try {\r\n await this.setState({ listaEmpresa: this.state.listaFundacao[this.state.fundacao - 1].Empresas });\r\n } catch (err) {\r\n this.setState({\r\n listaEmpresa: [],\r\n listaPlano: [],\r\n empresa: \"\",\r\n plano: \"\"\r\n });\r\n console.error(err);\r\n }\r\n }\r\n\r\n /**\r\n * @description Método que busca os planos que existem dentro da empresa selecionada e armazena no state listaPlanos.\r\n * @param {event} object\r\n */\r\n onChangeEmpresa = async (event: Event) => {\r\n try {\r\n await this.setState({ listaPlano: this.state.listaFundacao[this.state.fundacao - 1].Empresas[this.state.empresa - 1].Planos });\r\n } catch (err) {\r\n this.setState({\r\n listaPlano: [],\r\n plano: \"\"\r\n })\r\n console.error(err);\r\n }\r\n }\r\n\r\n validar = async () => {\r\n await this.alert.current.limparErros();\r\n await this.form.current.validar();\r\n await this.validarData();\r\n await this.validarCheckboxes();\r\n\r\n var dadosMensagem = {\r\n TXT_TITULO: \"\",\r\n TXT_CORPO: \"\",\r\n DTA_EXPIRACAO: \"\",\r\n CD_FUNDACAO: \"\",\r\n CD_EMPRESA: \"\",\r\n CD_PLANO: \"\",\r\n CD_SIT_PLANO: \"\",\r\n NUM_MATRICULA: \"\",\r\n IND_MOBILE: \"\",\r\n IND_PORTAL: \"\",\r\n IND_EMAIL: \"\",\r\n IND_SMS: \"NAO\"\r\n };\r\n if (this.alert.current.state.mensagem.length === 0 && this.alert.current.props.mensagem.length === 0) {\r\n dadosMensagem.TXT_TITULO = this.state.tituloMensagem;\r\n dadosMensagem.TXT_CORPO = this.state.mensagem;\r\n dadosMensagem.DTA_EXPIRACAO = this.state.dataExpiracao;\r\n dadosMensagem.CD_FUNDACAO = this.state.fundacao;\r\n dadosMensagem.CD_EMPRESA = this.state.empresa;\r\n dadosMensagem.CD_PLANO = this.state.plano;\r\n dadosMensagem.CD_SIT_PLANO = this.state.situacaoPlano;\r\n dadosMensagem.NUM_MATRICULA = this.state.matricula;\r\n dadosMensagem.IND_MOBILE = this.state.enviarMobile ? \"SIM\" : \"NAO\";\r\n dadosMensagem.IND_PORTAL = this.state.enviarPortal ? \"SIM\" : \"NAO\";\r\n dadosMensagem.IND_EMAIL = this.state.enviarEmail ? \"SIM\" : \"NAO\";\r\n\r\n try {\r\n await MensagemService.EnviarMensagem(dadosMensagem);\r\n alert(\"Mensagem enviada com sucesso!\");\r\n await this.limparCampos();\r\n\r\n var mensagens = await MensagemService.BuscarTodas();\r\n this.setState({ mensagens });\r\n\r\n } catch (err) {\r\n if (err.response)\r\n alert(err.response.data);\r\n else\r\n console.error(err);\r\n }\r\n } else {\r\n\r\n }\r\n }\r\n\r\n validarCheckboxes = async () => {\r\n if (!this.state.enviarEmail && !this.state.enviarPortal) {\r\n await this.alert.current.adicionarErro(\"Campo \\\"Enviar via\\\" obrigatório.\");\r\n }\r\n }\r\n\r\n validarData = async () => {\r\n // var dataObjeto: any;\r\n // dataObjeto = this.state.dataExpiracao.split(\"/\");\r\n // dataObjeto = new Date(dataObjeto[2], dataObjeto[1] - 1, dataObjeto[0]);\r\n // var dataInvalida = DataInvalida(dataObjeto, this.state.dataExpiracao);\r\n\r\n // if(dataObjeto < new Date()) {\r\n // await this.alert.current.adicionarErro(\"A Data de Expiração deve ser superior à data atual.\");\r\n // } else {\r\n // if(dataInvalida)\r\n // await this.alert.current.adicionarErro(\"Campo \\\"Data de Expiração\\\" inválido.\");\r\n // }\r\n }\r\n\r\n /**\r\n * @description Método que limpa os states de campo para limpar o formulário de nova mensagem.\r\n */\r\n limparCampos = () => {\r\n this.setState({\r\n tituloMensagem: \"\",\r\n mensagem: \"\",\r\n enviarEmail: false,\r\n enviarPortal: false,\r\n // enviarMobile: false,\r\n dataExpiracao: \"\",\r\n empresa: \"\",\r\n plano: \"\",\r\n situacaoPlano: \"\",\r\n matricula: \"\"\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n <PageAdmin {...this.props} ref={this.page}>\r\n <Row>\r\n <Col>\r\n <Box titulo={\"NOVA MENSAGEM\"}>\r\n <Form ref={this.form}>\r\n\r\n <Row>\r\n <Col className={\"col-lg-6\"}>\r\n\r\n <CampoTexto contexto={this} nome={\"tituloMensagem\"} max={50} valor={this.state.tituloMensagem} titulo={\"Título\"} obrigatorio />\r\n\r\n <CampoTexto contexto={this} nome={\"mensagem\"} max={4000} textarea valor={this.state.mensagem} rows={10} titulo={\"Corpo da Mensagem\"} obrigatorio />\r\n\r\n <div className=\"form-group\">\r\n <label><b>Enviar via</b></label>\r\n <Row>\r\n <Col className={\"col-lg-2\"}>\r\n <input name=\"enviarEmail\" id=\"enviarEmail\" type={\"checkbox\"} checked={this.state.enviarEmail} onChange={(e) => this.setState({ enviarEmail: !this.state.enviarEmail })} /> \r\n <label htmlFor=\"enviarEmail\">E-mail</label>\r\n </Col>\r\n\r\n <Col className={\"col-lg-2\"}>\r\n <input name=\"enviarPortal\" id=\"enviarPortal\" type=\"checkbox\" checked={this.state.enviarPortal} onChange={(e) => this.setState({ enviarPortal: !this.state.enviarPortal })} /> \r\n <label htmlFor=\"enviarPortal\">Portal</label>\r\n </Col>\r\n </Row>\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <CampoTexto contexto={this} nome={\"dataExpiracao\"} mascara={\"99/99/9999\"} valor={this.state.dataExpiracao}\r\n titulo={\"Data de Expiração\"} />\r\n <span className=\"text text-secondary\">Deixe em branco para indicar que a mensagem não terá uma data de expiração</span>\r\n </div>\r\n </Col>\r\n\r\n <Col className={\"col-lg-6\"}>\r\n <Combo contexto={this} titulo={\"Fundação\"} onChange={this.onChangeFundacao}\r\n nome={\"fundacao\"} valor={this.state.fundacao} obrigatorio\r\n opcoes={this.state.listaFundacao} nomeMembro={\"NOME_ENTID\"} valorMembro={\"CD_FUNDACAO\"} />\r\n\r\n <Combo contexto={this} titulo={\"Empresa\"} onChange={this.onChangeEmpresa}\r\n nome={\"empresa\"} valor={this.state.empresa} obrigatorio={false} textoVazio=\"Todas(os)\"\r\n opcoes={this.state.listaEmpresa} nomeMembro={\"NOME_ENTID\"} valorMembro={\"CD_EMPRESA\"} />\r\n\r\n <Combo contexto={this} titulo={\"Plano\"} obrigatorio={false}\r\n nome={\"plano\"} valor={this.state.plano} textoVazio=\"Todas(os)\"\r\n opcoes={this.state.listaPlano} nomeMembro={\"DS_PLANO\"} valorMembro={\"CD_PLANO\"} />\r\n\r\n <Combo contexto={this} titulo={\"Situação do plano\"} obrigatorio={false}\r\n nome={\"situacaoPlano\"} valor={this.state.situacaoPlano} textoVazio=\"Todas(os)\"\r\n opcoes={this.state.listaSituacaoPlano} nomeMembro={\"DS_SIT_PLANO\"} valorMembro={\"CD_SIT_PLANO\"} />\r\n\r\n <div className=\"form-group\">\r\n <CampoTexto contexto={this} nome={\"matricula\"} mascara={\"999999999\"} valor={this.state.matricula} titulo={\"Matrícula\"} />\r\n <span className=\"text text-secondary\">Deixe em branco para enviar para todas as matrículas dentro dos parâmetros acima</span>\r\n </div>\r\n </Col>\r\n\r\n </Row>\r\n <Botao titulo={\"Enviar\"} tipo={TipoBotao.primary} submit onClick={this.validar} usaLoading={true} />\r\n <br /><br />\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} tamanho={\"6\"} />\r\n </Form>\r\n </Box>\r\n\r\n <Box titulo={\"HISTÓRICO DE MENSAGENS\"}>\r\n {this.state.mensagens.length === 0 &&\r\n <div id=\"alerta\" className={\"alert alert-danger\"}>\r\n Nenhuma mensagem enviada.\r\n </div>\r\n }\r\n {this.state.mensagens.length !== 0 &&\r\n <ListaMensagens mensagens={this.state.mensagens} />\r\n }\r\n </Box>\r\n </Col>\r\n </Row>\r\n </PageAdmin>\r\n );\r\n }\r\n}","import PageAdmin from \"../PageAdmin\";\r\nimport React from \"react\";\r\nimport { FuncionalidadeService, PlanoService, EmpresaService, FuncionarioService } from \"../../../services\";\r\n// import { FuncionalidadeService, PlanoService, EmpresaService, FuncionarioService } from \"./../../services\";\r\nimport { FuncionalidadeEntidade, PlanoEntidade, EmpresaEntidade, WebBloqueioFuncEntidade } from \"../../../entidades\";\r\nimport { Row, Col, Box, Alerta, TipoAlerta, Combo, CampoTexto, Form, Botao, TipoBotao } from \"@intechprev/componentes-web\";\r\n\r\ninterface Props { }\r\n\r\ninterface State {\r\n bloqueios: Array<WebBloqueioFuncEntidade>;\r\n funcionaidades: Array<FuncionalidadeEntidade>;\r\n funcionalidadeSelecionada: string;\r\n empresas: Array<EmpresaEntidade>;\r\n empresaSelecionada: string;\r\n planos: Array<PlanoEntidade>\r\n planoSelecionado: string;\r\n matricula: string;\r\n motivoBloqueio: string;\r\n}\r\n\r\nexport class BloquearFuncionalidade extends React.Component<Props, State> {\r\n private alerta = React.createRef<Alerta>();\r\n private form = React.createRef<Form>();\r\n private page = React.createRef<PageAdmin>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n bloqueios: [],\r\n funcionaidades: [],\r\n funcionalidadeSelecionada: \"\",\r\n empresas: [],\r\n empresaSelecionada: null,\r\n planos: [],\r\n planoSelecionado: null,\r\n matricula: \"\",\r\n motivoBloqueio: \"Essa funcionalidade encontra-se temporariamente fora do ar.\"\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n try {\r\n await this.buscarListaBloqueios();\r\n\r\n const empresas = await EmpresaService.BuscarTodas();\r\n const planos = await PlanoService.BuscarTodos();\r\n\r\n this.setState({\r\n empresas,\r\n planos\r\n });\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n buscarListaBloqueios = async () => {\r\n const bloqueios = await FuncionalidadeService.Buscar();\r\n const funcionaidades = await FuncionalidadeService.BuscarPorIndAtivo(\"SIM\");\r\n\r\n this.setState({\r\n bloqueios,\r\n funcionaidades\r\n });\r\n }\r\n\r\n bloquear = async () => {\r\n try {\r\n await this.alerta.current!.limparErros();\r\n\r\n await this.form.current!.validar();\r\n\r\n if (this.form.current!.isValido()) {\r\n const dados = await FuncionarioService.Buscar();\r\n const nomeUsuario = dados.DadosPessoais.NOME_ENTID;\r\n\r\n let func = new WebBloqueioFuncEntidade();\r\n func.OID_FUNCIONALIDADE = parseInt(this.state.funcionalidadeSelecionada, 10);\r\n func.CD_FUNDACAO = \"01\";\r\n func.CD_EMPRESA = this.state.empresaSelecionada ? this.state.empresaSelecionada : null;\r\n func.CD_PLANO = this.state.planoSelecionado ? this.state.planoSelecionado : null;\r\n func.NUM_MATRICULA = this.state.matricula ? this.state.matricula : null;\r\n func.DTA_FIM = null\r\n func.TXT_MOTIVO_BLOQUEIO = this.state.motivoBloqueio;\r\n func.NOM_USUARIO = nomeUsuario;\r\n\r\n const msg = await FuncionalidadeService.Bloquear(func);\r\n\r\n alert(msg);\r\n\r\n await this.buscarListaBloqueios();\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n Desbloquear = async (func: WebBloqueioFuncEntidade) => {\r\n try {\r\n await FuncionalidadeService.Desbloquear(func);\r\n\r\n await this.buscarListaBloqueios();\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n renderListaBloqueio = () => {\r\n if (this.state.bloqueios.length === 0) {\r\n return (\r\n <Alerta mensagem={\"Nenhum bloqueio ativo registrado\"} tipo={TipoAlerta.danger} />\r\n );\r\n }\r\n\r\n const linhas = this.state.bloqueios.map((bloqueio: WebBloqueioFuncEntidade, index: number) => {\r\n return (\r\n <tr key={index}>\r\n <td>{bloqueio.DES_FUNCIONALIDADE}</td>\r\n <td>{bloqueio.SIGLA_ENTID}</td>\r\n <td>{bloqueio.DS_PLANO}</td>\r\n <td>{bloqueio.NUM_MATRICULA}</td>\r\n <td>{bloqueio.DTA_INICIO}</td>\r\n <td>\r\n <Botao\r\n titulo={\"Desbloquear\"}\r\n icone={\"fa-unlock\"}\r\n tipo={TipoBotao.success}\r\n onClick={() => this.Desbloquear(bloqueio)}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n });\r\n return (\r\n <Row>\r\n <Col>\r\n <Box titulo={\"Bloqueios Ativos\"}>\r\n <table className={\"table table-striped\"}>\r\n <thead>\r\n <tr>\r\n <th>{\"Funcionalidade\"}</th>\r\n <th>{\"Empresa\"}</th>\r\n <th>{\"Plano\"}</th>\r\n <th>{\"Matrícula\"}</th>\r\n <th>{\"Início\"}</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {linhas}\r\n </tbody>\r\n </table>\r\n </Box>\r\n </Col>\r\n </Row>\r\n );\r\n }\r\n\r\n renderNovoBloqueio = () => {\r\n return (\r\n <Row>\r\n <Col>\r\n <Box titulo={\"Novo Bloqueio\"}>\r\n <Form ref={this.form}>\r\n <Combo\r\n contexto={this}\r\n titulo={\"Funcionalidade\"}\r\n nome={\"funcionalidadeSelecionada\"}\r\n valor={this.state.funcionalidadeSelecionada}\r\n opcoes={this.state.funcionaidades}\r\n nomeMembro={\"DES_FUNCIONALIDADE\"}\r\n valorMembro={\"OID_FUNCIONALIDADE\"}\r\n textoVazio={\"Escolha uma Funcionalidade\"}\r\n obrigatorio\r\n />\r\n\r\n <Combo\r\n contexto={this}\r\n titulo={\"Empresa\"}\r\n nome={\"empresaSelecionada\"}\r\n valor={this.state.empresaSelecionada}\r\n opcoes={this.state.empresas}\r\n nomeMembro={\"SIGLA_ENTID\"}\r\n valorMembro={\"CD_EMPRESA\"}\r\n textoVazio={\"Todas\"}\r\n />\r\n\r\n <Combo\r\n contexto={this}\r\n titulo={\"Plano\"}\r\n nome={\"planoSelecionado\"}\r\n valor={this.state.planoSelecionado}\r\n opcoes={this.state.planos}\r\n nomeMembro={\"DS_PLANO\"}\r\n valorMembro={\"CD_PLANO\"}\r\n textoVazio={\"Todos\"}\r\n />\r\n\r\n <CampoTexto\r\n contexto={this}\r\n nome={\"matricula\"}\r\n valor={this.state.matricula}\r\n titulo={\"Matrícula\"}\r\n max={9}\r\n />\r\n\r\n <CampoTexto\r\n contexto={this}\r\n nome={\"motivoBloqueio\"}\r\n valor={this.state.motivoBloqueio}\r\n titulo={\"Motivo Bloqueio\"}\r\n obrigatorio\r\n textarea\r\n />\r\n\r\n <Alerta tipo={TipoAlerta.danger} ref={this.alerta} padraoFormulario />\r\n\r\n <Botao\r\n titulo={\"Bloquear\"}\r\n icone={\"fa-lock\"}\r\n tipo={TipoBotao.danger}\r\n onClick={this.bloquear}\r\n />\r\n </Form>\r\n </Box>\r\n </Col>\r\n </Row>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <PageAdmin {...this.props} ref={this.page}>\r\n {this.renderListaBloqueio()}\r\n\r\n {this.renderNovoBloqueio()}\r\n </PageAdmin>\r\n );\r\n }\r\n}","import React from 'react';\r\n\r\nimport {\r\n Home,\r\n Documentos,\r\n MensagemNova,\r\n BloquearFuncionalidade\r\n} from \"./\";\r\nimport { RouteProps } from 'react-router';\r\n\r\nfunction GetRotas() {\r\n const rotas = [\r\n {\r\n titulo: \"Home\",\r\n icone: \"fas fa-home\",\r\n caminho: \"/admin\",\r\n componente: (routeProps: RouteProps) => <Home {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"home\"\r\n },\r\n {\r\n titulo: \"Documentos\",\r\n icone: \"fas fa-file\",\r\n caminho: \"/admin/documentos/:pasta?\",\r\n caminhoLink: \"/admin/documentos/\",\r\n componente: (routeProps: RouteProps) => <Documentos {...routeProps} />,\r\n mostrarMenu: true,\r\n id: \"documentos\"\r\n },\r\n {\r\n titulo: \"Nova Mensagem\",\r\n icone: \"fas fa-envelope\",\r\n caminho: \"/mensagem/nova\",\r\n componente: (routeProps: RouteProps) => <MensagemNova {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"novaMensagem\"\r\n },\r\n {\r\n titulo: \"Bloquear Funcionalidades\",\r\n icone: \"fas fa-ban\",\r\n caminho: \"/admin/bloquear\",\r\n componente: (routeProps: RouteProps) => <BloquearFuncionalidade {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"bloquear\"\r\n }\r\n ];\r\n\r\n return rotas;\r\n} \r\n\r\n\r\nexport default GetRotas();","import React, { useCallback, createContext, useState, ReactNode } from \"react\";\r\nimport { PlanoVinculadoEntidade, ProcessoBeneficioEntidade } from \"./../entidades\";\r\n\r\ninterface IHomeContext {\r\n salvarPlano: (parametros: PlanoVinculadoEntidade) => void; // eslint-disable-line no-unused-vars\r\n buscarPlano: () => Promise<PlanoVinculadoEntidade>;\r\n\r\n salvarProcessoBeneficio: (parametros: ProcessoBeneficioEntidade) => void; // eslint-disable-line no-unused-vars\r\n buscarProcessoBeneficio: () => Promise<ProcessoBeneficioEntidade>;\r\n\r\n}\r\nexport const HomeContext = createContext<IHomeContext | null>(null);\r\n\r\nexport const HomeProvider: React.FC = ({ children }) => {\r\n\r\n const [Plano, setPlano] = useState<PlanoVinculadoEntidade>(new PlanoVinculadoEntidade());\r\n const [ProcessoBeneficio, setProcessoBeneficio] = useState<ProcessoBeneficioEntidade>(new ProcessoBeneficioEntidade());\r\n\r\n /* --- Plano --- */\r\n\r\n const salvarPlano = useCallback(async (parametros) => {\r\n setPlano(parametros);\r\n }, []);\r\n\r\n const buscarPlano = useCallback(async () => {\r\n return Plano;\r\n }, [Plano]);\r\n\r\n /* --- ProcessoBeneficio --- */\r\n\r\n const salvarProcessoBeneficio = useCallback(async (parametros) => {\r\n setProcessoBeneficio(parametros);\r\n }, []);\r\n\r\n const buscarProcessoBeneficio = useCallback(async () => {\r\n return ProcessoBeneficio;\r\n }, [ProcessoBeneficio]);\r\n\r\n return (\r\n <HomeContext.Provider value={{\r\n salvarPlano, buscarPlano,\r\n\r\n salvarProcessoBeneficio, buscarProcessoBeneficio,\r\n }}>\r\n {children}\r\n </HomeContext.Provider>\r\n );\r\n}\r\n","import React from 'react';\r\nimport { RouteProps, Route } from 'react-router-dom';\r\n\r\nimport {\r\n Login, EsqueciSenha, Home, DadosPessoais, Relacionamento, TrocarSenha, Planos, ListarParticipantes, InformeRendimentos,\r\n SimuladorBeneficios,\r\n Contracheque, ContrachequeDetalhe, Documentos, Mensagens, Maior8, Menor8, Adesao,\r\n EmprestimoLista, EmprestimoDetalhe, EmprestimoSimulador, EmprestimoSimuladorPrestacoes, EmprestimoSimuladorResumo, EmprestimoSimuladorContratacao\r\n} from \"./pages\";\r\nimport { Termos, TrocarSenhaPrimeiroAcesso } from './pages/Login';\r\n\r\nfunction GetRotas() {\r\n const rotas = [\r\n {\r\n titulo: \"Login\",\r\n caminho: \"/login\",\r\n componente: (routeProps: RouteProps) => <Login {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: false,\r\n id: \"\",\r\n icone: \"\"\r\n },\r\n {\r\n titulo: \"Esqueci Minha Senha\",\r\n caminho: \"/esqueciSenha\",\r\n componente: (routeProps: RouteProps) => <EsqueciSenha {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: false,\r\n id: \"\"\r\n },\r\n {\r\n titulo: \"Termos\",\r\n caminho: \"/termos\",\r\n componente: (routeProps: RouteProps) => <Termos {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: false,\r\n id: \"\"\r\n },\r\n {\r\n titulo: \"Trocar Senha\",\r\n caminho: \"/trocarSenhaPrimeiroAcesso\",\r\n componente: (routeProps: RouteProps) => <TrocarSenhaPrimeiroAcesso {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: false,\r\n id: \"\"\r\n },\r\n {\r\n titulo: \"Home\",\r\n icone: \"fas fa-home\",\r\n caminho: \"/\",\r\n componente: (routeProps: RouteProps) => <Home {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"home\"\r\n },\r\n {\r\n titulo: \"Seus Dados\",\r\n icone: \"fas fa-user\",\r\n caminho: \"/dados\",\r\n componente: (routeProps: RouteProps) => <DadosPessoais {...routeProps} />,\r\n mostrarMenu: true,\r\n id: \"dados\"\r\n },\r\n {\r\n titulo: \"Seus Planos\",\r\n icone: \"fas fa-list\",\r\n caminho: \"/planos\",\r\n componente: (routeProps: RouteProps) => <Planos {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"planos\"\r\n },\r\n {\r\n titulo: \"Empréstimos\",\r\n icone: \"fas fa-handshake\",\r\n caminho: \"/emprestimo\",\r\n componente: (routeProps: RouteProps) => <EmprestimoLista {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"emprestimo\"\r\n },\r\n {\r\n titulo: \"Empréstimos - Detalhe\",\r\n icone: \"fas fa-handshake\",\r\n caminho: \"/emprestimo/detalhe/:numero/:ano\",\r\n caminhoLink: \"/emprestimo/detalhe/\",\r\n componente: (routeProps: RouteProps) => <EmprestimoDetalhe {...routeProps} />,\r\n mostrarMenu: false,\r\n id: \"\",\r\n },\r\n {\r\n titulo: \"Simulação de Empréstimos\",\r\n icone: \"fas fa-handshake\",\r\n caminho: \"/emprestimo/simulador\",\r\n componente: (routeProps: RouteProps) => <EmprestimoSimulador {...routeProps} />,\r\n mostrarMenu: false,\r\n id: \"\",\r\n },\r\n {\r\n titulo: \"Simulação de Empréstimos\",\r\n icone: \"fas fa-handshake\",\r\n caminho: \"/emprestimo/simuladorprestacoes\",\r\n componente: (routeProps: RouteProps) => <EmprestimoSimuladorPrestacoes {...routeProps} />,\r\n mostrarMenu: false,\r\n id: \"\",\r\n },\r\n {\r\n titulo: \"Simulação de Empréstimos\",\r\n icone: \"fas fa-handshake\",\r\n caminho: \"/emprestimo/simuladorresumo\",\r\n componente: (routeProps: RouteProps) => <EmprestimoSimuladorResumo {...routeProps} />,\r\n mostrarMenu: false,\r\n id: \"\",\r\n },\r\n {\r\n titulo: \"Simulação de Empréstimos\",\r\n icone: \"fas fa-handshake\",\r\n caminho: \"/emprestimo/simuladorcontratacao\",\r\n componente: (routeProps: RouteProps) => <EmprestimoSimuladorContratacao {...routeProps} />,\r\n mostrarMenu: false,\r\n id: \"\",\r\n },\r\n {\r\n titulo: \"Simulador\",\r\n icone: \"fas fa-chart-bar\",\r\n caminho: \"/simulador\",\r\n componente: (routeProps: RouteProps) => <SimuladorBeneficios {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"simulador\"\r\n },\r\n {\r\n titulo: \"Simulador de Benefícios - CODEPREV\",\r\n icone: \"fas fa-chart-bar\",\r\n caminho: \"/simulador/menor8\",\r\n componente: (routeProps: RouteProps) => <Menor8 {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: true,\r\n id: \"simuladorMenor8\"\r\n },\r\n {\r\n titulo: \"Simulador de Benefícios - CODEPREV\",\r\n icone: \"fas fa-chart-bar\",\r\n caminho: \"/simulador/maior8\",\r\n componente: (routeProps: RouteProps) => <Maior8 {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: true,\r\n id: \"simuladorMaior8\"\r\n },\r\n // {\r\n // titulo: \"Adesão\",\r\n // icone: \"fas fa-handshake\",\r\n // caminho: \"/Adesao\",\r\n // componente: (routeProps: RouteProps) => <Adesao {...routeProps} />,\r\n // mostrarMenu: true,\r\n // exact: true,\r\n // id: \"adesao\"\r\n // },\r\n {\r\n titulo: \"Contracheque\",\r\n icone: \"fas fa-closed-captioning\",\r\n caminho: \"/contracheque\",\r\n componente: (routeProps: RouteProps) => <Contracheque {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"contracheque\"\r\n },\r\n {\r\n titulo: \"Inf. Rendimentos\",\r\n icone: \"fas fa-chart-pie\",\r\n caminho: \"/infoRend\",\r\n componente: (routeProps: RouteProps) => <InformeRendimentos {...routeProps} />,\r\n mostrarMenu: true,\r\n exact: true,\r\n id: \"informeRendimentos\"\r\n },\r\n {\r\n titulo: \"Contracheque Detalhe\",\r\n icone: \"fas fa-closed-captioning\",\r\n caminho: \"/contracheque/:plano/:data/:cdTipoFolha/:cdEspecie\",\r\n caminhoLink: \"/contracheque/\",\r\n componente: (routeProps: RouteProps) => <ContrachequeDetalhe {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: true\r\n },\r\n {\r\n titulo: \"Documentos\",\r\n icone: \"fas fa-file\",\r\n caminho: \"/documentos/:pasta?\",\r\n caminhoLink: \"/documentos/\",\r\n componente: (routeProps: RouteProps) => <Documentos {...routeProps} />,\r\n mostrarMenu: true,\r\n id: \"documentos\",\r\n exact: true\r\n },\r\n {\r\n titulo: \"Mensagens\",\r\n icone: \"fas fa-envelope\",\r\n caminho: \"/mensagens\",\r\n componente: (routeProps: RouteProps) => <Mensagens {...routeProps} />,\r\n mostrarMenu: true,\r\n id: \"mensagens\"\r\n },\r\n {\r\n titulo: \"Relacionamento\",\r\n icone: \"fas fa-comment-alt\",\r\n caminho: \"/relacionamento\",\r\n componente: (routeProps: RouteProps) => <Relacionamento {...routeProps} />,\r\n mostrarMenu: true,\r\n id: \"relacionamento\"\r\n },\r\n {\r\n titulo: \"Trocar senha\",\r\n icone: \"fas fa-key\",\r\n caminho: \"/trocarSenha\",\r\n componente: (routeProps: RouteProps) => <TrocarSenha {...routeProps} />,\r\n mostrarMenu: true,\r\n id: \"trocarSenha\"\r\n },\r\n {\r\n titulo: \"Listar Participantes\",\r\n caminho: \"/listarParticipantes\",\r\n componente: (routeProps: RouteProps) => <ListarParticipantes {...routeProps} />,\r\n mostrarMenu: false,\r\n exact: false,\r\n id: \"listarParticipantes\"\r\n }\r\n ];\r\n\r\n return rotas;\r\n}\r\n\r\nexport default GetRotas();","import React from \"react\";\r\n\r\nimport { PageClean } from \"..\";\r\n\r\nimport { UsuarioService } from \"./../../services\";\r\nimport { UsuarioService as UsuarioServiceN } from \"./../../services\";\r\nimport { Alerta, TipoAlerta, Form, CampoTexto, Botao, TipoBotao } from \"@intechprev/componentes-web\";\r\nimport { LoginEntidade } from \"../../entidades\";\r\n\r\ninterface Props {\r\n history?: any;\r\n}\r\n\r\ninterface State {\r\n cpf: string;\r\n dataNascimento: string;\r\n loading: boolean;\r\n mensagem: string;\r\n erro: string;\r\n SituacaoParticipante: boolean;\r\n}\r\n\r\nexport default class EsqueciSenha extends React.Component<Props, State> {\r\n\r\n private alert = React.createRef<Alerta>();\r\n private form = React.createRef<Form>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n cpf: \"\",\r\n dataNascimento: \"\",\r\n loading: false,\r\n mensagem: \"\",\r\n erro: \"\",\r\n SituacaoParticipante: false\r\n }\r\n }\r\n\r\n enviarSenha = async () => {\r\n try {\r\n if (!this.state.SituacaoParticipante) {\r\n var situacao = await UsuarioServiceN.BuscarSituacaoParticipante(this.state.cpf);\r\n\r\n if (situacao) {\r\n this.setState({\r\n SituacaoParticipante: situacao\r\n });\r\n return;\r\n }\r\n }\r\n\r\n var alert = this.alert.current;\r\n var form = this.form.current;\r\n\r\n await alert.limparErros();\r\n await form.validar();\r\n\r\n if (this.state.cpf.length < 11) {\r\n await this.alert.current.adicionarErro(\"Campo \\\"CPF\\\" inválido.\");\r\n return;\r\n }\r\n\r\n if (form.isValido()) {\r\n var login = new LoginEntidade;\r\n login.Cpf = this.state.cpf;\r\n login.DataNascimento = this.state.dataNascimento;\r\n var resultado = await UsuarioService.CriarAcesso(login);\r\n window.alert(resultado);\r\n this.props.history.push('/');\r\n }\r\n\r\n } catch (err) {\r\n if (err.response)\r\n this.alert.current.adicionarErro(err.response.data);\r\n else\r\n this.alert.current.adicionarErro(err);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <PageClean {...this.props}>\r\n <h4>Bem vindo ao portal da São Francisco</h4>\r\n\r\n <h5>\r\n <b>Esqueci minha senha / Primeiro Acesso</b><br />\r\n <br />\r\n <small>Preencha as informações para que possamos gerar uma senha que será enviada para seu email cadastrado na fundação São Francisco.</small>\r\n </h5>\r\n\r\n <Form ref={this.form}>\r\n\r\n <CampoTexto contexto={this} nome={\"cpf\"} max={11} valor={this.state.cpf}\r\n placeholder=\"CPF (somente números)\" />\r\n {this.state.SituacaoParticipante &&\r\n <CampoTexto contexto={this} nome={\"dataNascimento\"} valor={this.state.dataNascimento}\r\n placeholder={\"Data de Nascimento\"} mascara={\"99/99/9999\"} />}\r\n\r\n <Botao titulo={this.state.SituacaoParticipante ? \"Enviar Nova Senha\" : \"Conferir CPF\"} tipo={TipoBotao.primary} block submit usaLoading\r\n onClick={this.enviarSenha} />\r\n <br />\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} tamanho={\"12\"} />\r\n\r\n </Form>\r\n </PageClean>\r\n );\r\n }\r\n}","import React from \"react\";\r\n\r\nimport { PageClean } from \"..\";\r\n\r\nimport { UsuarioService, LGPDService } from \"./../../services\";\r\nimport { Alerta, TipoAlerta, Form, CampoTexto, Botao, TipoBotao } from \"@intechprev/componentes-web\";\r\n\r\ninterface Props {\r\n history?: any;\r\n}\r\n\r\ninterface State {\r\n\r\n}\r\n\r\nexport default class Termos extends React.Component<Props, State> {\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n }\r\n\r\n aceitar = async () => {\r\n try {\r\n await LGPDService.Inserir(1);\r\n this.props.history.push('/trocarSenhaPrimeiroAcesso');\r\n } catch (erro) {\r\n if (erro.response) {\r\n //await this.loginForm.current.mostrarErro(erro.response.data);\r\n await this.setState({ erro: erro.response.data });\r\n } else {\r\n //await this.loginForm.current.mostrarErro(erro);\r\n //alert(\"Ocorreu um erro ao processar sua requisição!\");\r\n await this.setState({ erro });\r\n }\r\n }\r\n }\r\n\r\n recusar = async () => {\r\n await alert(\"Sem o consentimento expresso no termo, o acesso ao Portal do Participante e à área restrita do Aplicativo Mobile não será permitido.\");\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"token-admin\");\r\n await this.props.history.push('/login');\r\n }\r\n\r\n render() {\r\n return (\r\n <PageClean tamanho={550} {...this.props}>\r\n <h5><b>TERMO DE CONSENTIMENTO E AUTORIZAÇÃO LIVRE, ESCLARECIDO E INEQUÍVOCO DE UTILIZAÇÃO DE DADOS PESSOAIS</b></h5>\r\n <p style={{ textAlign: \"justify\" }}>\r\n Nos termos do presente termo de consentimento e autorização livre, esclarecido e inequívoco, e de acordo com o artigo 5°, XII,\r\n da Lei 13.709/18 – LEI GERAL DE PROTEÇÃO DE DADOS, manifesto minha livre, informada e inequívoca autorização, pelo qual concordo\r\n com o tratamento de meus dados pessoais, financeiros e cadastrais e, respectivamente, de meus dependentes, para que a\r\n FUNDAÇÃO SÃO FRANCISCO DE SEGURIDADE SOCIAL os utilize para o fim da prestação específica de administração do(s)\r\n meu(s) Plano(s) de Benefícios, dados estes que serão consultados e colhidos via Portal de Serviços contidos no sítio da Entidade,\r\n em área restrita, e/ou no aplicativo mobile disponível para download nas lojas Apple Store e Google Play.\r\n </p>\r\n\r\n <Botao titulo={\"Li e concordo com o termo acima\"} onClick={this.aceitar} block />\r\n <Botao titulo={\"Agora não\"} onClick={this.recusar} tipo={TipoBotao.light} block />\r\n </PageClean>\r\n );\r\n }\r\n}","import React from \"react\";\r\n\r\nimport { PageClean } from \"..\";\r\n\r\nimport { UsuarioService, FuncionarioService } from \"./../../services\";\r\nimport { Alerta, TipoAlerta, Form, CampoTexto, Botao, TipoBotao, Row, Col } from \"@intechprev/componentes-web\";\r\nimport { LoginEntidade } from \"../../entidades\";\r\n\r\ninterface Props {\r\n history?: any;\r\n}\r\n\r\ninterface State {\r\n nomeUsuario: string;\r\n senhaNova: string;\r\n confirmarSenha: string;\r\n}\r\n\r\nexport default class TrocarSenhaPrimeiroAcesso extends React.Component<Props, State> {\r\n\r\n private form = React.createRef<Form>();\r\n private alert = React.createRef<Alerta>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n nomeUsuario: \"\",\r\n senhaNova: \"\",\r\n confirmarSenha: \"\"\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n var dados = await FuncionarioService.Buscar();\r\n var nomeUsuario = dados.DadosPessoais ? dados.DadosPessoais.NOME_ENTID : dados.Funcionario.NOME_ENTID;\r\n\r\n await this.setState({\r\n nomeUsuario\r\n });\r\n }\r\n\r\n trocarSenha = async () => {\r\n // Define os estados iniciais de alertas.\r\n await this.alert.current.limparErros();\r\n await this.form.current.validar();\r\n\r\n // Valida se a nova senha tem 6 ou mais caracteres.\r\n if (this.state.senhaNova.length < 6)\r\n this.alert.current.adicionarErro(\"A nova senha deve possuir no mínimo 6 caracteres.\");\r\n\r\n // Valida se os campos de nova senha e confirmação são iguais.\r\n if (this.state.senhaNova !== this.state.confirmarSenha)\r\n this.alert.current.adicionarErro(\"As senhas não coincidem.\");\r\n\r\n try {\r\n if (this.alert.current.state.mensagem.length === 0 && this.alert.current.props.mensagem.length === 0) {\r\n var login = new LoginEntidade();\r\n login.SenhaNova = this.state.senhaNova;\r\n await UsuarioService.AlterarSenhaPrimeiroAcesso(login);\r\n await alert(\"Senha alterada com sucesso!\");\r\n await this.props.history.push('/');\r\n }\r\n } catch (err) {\r\n if (err.response)\r\n this.alert.current.adicionarErro(err.response.data)\r\n else\r\n console.error(err);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <PageClean tamanho={550} {...this.props}>\r\n Olá, {this.state.nomeUsuario},<br />\r\n <br />\r\n Seja bem-vindo!<br />\r\n <br />\r\n Esse é o seu primeiro acesso ao Portal da Fundação São Francisco! Como você recebeu uma nova senha\r\n gerada automaticamente, será necessário que você crie uma nova senha, com no mínimo 6 caracteres.<br />\r\n <br />\r\n\r\n <Form ref={this.form}>\r\n <Row className={\"form-group\"}>\r\n <label htmlFor=\"senhaNova\" className=\"col-sm-4 col-form-label\"><b>Nova senha</b></label>\r\n <Col tamanho={\"8\"}>\r\n <CampoTexto contexto={this} nome={\"senhaNova\"} obrigatorio tipo={\"password\"} valor={this.state.senhaNova} />\r\n </Col>\r\n </Row>\r\n\r\n <Row className={\"form-group\"}>\r\n <label htmlFor=\"confirmarSenha\" className=\"col-sm-4 col-form-label\"><b>Confirme nova senha</b></label>\r\n <Col tamanho={\"8\"}>\r\n <CampoTexto contexto={this} nome={\"confirmarSenha\"} obrigatorio tipo={\"password\"} valor={this.state.confirmarSenha} />\r\n </Col>\r\n </Row>\r\n\r\n <Alerta ref={this.alert} padraoFormulario tipo={TipoAlerta.danger} />\r\n\r\n <Botao submit titulo={\"Continuar\"} tipo={TipoBotao.primary} block\r\n onClick={() => this.trocarSenha()} usaLoading />\r\n\r\n </Form>\r\n </PageClean>\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport packageJson from '../../../package.json';\r\n\r\nimport { PageClean } from \"../\";\r\n\r\nimport { Alerta, TipoAlerta, Row, Col } from \"@intechprev/componentes-web\";\r\nimport { handleFieldChange } from \"@intechprev/react-lib\";\r\nimport { Session } from \"@intech/react-service\";\r\nimport { FuncionarioService } from \"./../../services\";\r\nimport { UsuarioService } from \"./../../services\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport EsqueciSenha from \"./EsqueciSenha\";\r\nimport Termos from \"./Termos\";\r\nimport TrocarSenhaPrimeiroAcesso from \"./TrocarSenhaPrimeiroAcesso\";\r\n\r\nimport config from \"../../config.json\";\r\nimport { LoginEntidade } from \"../../entidades\";\r\n\r\nexport {\r\n EsqueciSenha,\r\n Termos,\r\n TrocarSenhaPrimeiroAcesso\r\n}\r\n\r\ninterface Props {\r\n history?: any;\r\n}\r\n\r\ninterface State {\r\n cpf: string;\r\n senha: string;\r\n loading: boolean;\r\n mensagem: string;\r\n erro: string;\r\n loginFeito: boolean;\r\n matriculas: Array<string>;\r\n}\r\n\r\nexport default class Login extends React.Component<Props, State> {\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n cpf: \"\",\r\n senha: \"\",\r\n loading: false,\r\n mensagem: \"\",\r\n erro: \"\",\r\n loginFeito: false,\r\n matriculas: []\r\n }\r\n }\r\n\r\n onSubmit = async (e: any) => {\r\n e.preventDefault();\r\n\r\n await this.setState({ erro: \"\", loading: true });\r\n\r\n try {\r\n const usuario: LoginEntidade = {\r\n Cpf: this.state.cpf,\r\n Senha: this.state.senha,\r\n Origem: 1\r\n };\r\n const login = await UsuarioService.Login(usuario);\r\n\r\n await Session.setToken(login.AccessToken);\r\n await localStorage.setItem(\"pensionista\", login.Pensionista.toString());\r\n\r\n const matriculas = await UsuarioService.BuscarMatriculas();\r\n\r\n if (matriculas.length > 1) {\r\n await this.setState({\r\n matriculas,\r\n loginFeito: true\r\n });\r\n } else {\r\n this.selecionar(matriculas[0]);\r\n }\r\n } catch (erro) {\r\n await this.setState({ erro: (erro.response ? erro.response.data : erro) });\r\n } finally {\r\n await this.setState({ loading: false });\r\n }\r\n }\r\n\r\n selecionar = async (matricula: string) => {\r\n try {\r\n // var funcionarioResult = await FuncionarioService.Buscar();\r\n\r\n // if (funcionarioResult.Funcionario) {\r\n // await localStorage.setItem(\"fundacao\", funcionarioResult.Funcionario.CD_FUNDACAO);\r\n // await localStorage.setItem(\"empresa\", funcionarioResult.Funcionario.CD_EMPRESA);\r\n // }\r\n // else {\r\n // await localStorage.setItem(\"fundacao\", funcionarioResult.CD_FUNDACAO);\r\n // await localStorage.setItem(\"empresa\", funcionarioResult.CD_EMPRESA);\r\n // }\r\n\r\n var funcionarioLogin = await UsuarioService.SelecionarMatricula(matricula, 1);\r\n\r\n await Session.setToken(funcionarioLogin.AccessToken);\r\n await localStorage.setItem(\"pensionista\", funcionarioLogin.Pensionista.toString());\r\n\r\n this.props.history.push('/');\r\n } catch (erro) {\r\n await this.setState({ erro: (erro.response ? erro.response.data : erro) });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <PageClean {...this.props}>\r\n <h4>Bem vindo ao portal da São Francisco</h4>\r\n\r\n <h5>\r\n <b>Área de Acesso Restrito</b><br />\r\n <small>Para informações, entre em contato com a <a href=\"http://www.franweb.com.br/contact.html\">São Francisco</a></small><br />\r\n <br />\r\n </h5>\r\n\r\n <form>\r\n {!this.state.loginFeito &&\r\n <div>\r\n <div className=\"form-group\">\r\n <input name=\"cpf\" id=\"cpf\" placeholder=\"CPF (somente números)\" className=\"form-control\" value={this.state.cpf} onChange={(e) => handleFieldChange(this, e)} />\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <input name=\"senha\" id=\"senha\" placeholder=\"Senha\" type=\"password\" className=\"form-control\" value={this.state.senha} onChange={(e) => handleFieldChange(this, e)} />\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <button id=\"entrar\" className=\"btn btn-block btn-primary\" onClick={this.onSubmit} disabled={this.state.loading}>\r\n {!this.state.loading &&\r\n <span>Entrar</span>}\r\n\r\n {this.state.loading &&\r\n <i className=\"fas fa-spinner fa-pulse\"></i>}\r\n </button>\r\n </div>\r\n\r\n {this.state.mensagem !== \"\" && <Alerta tipo={TipoAlerta.info} mensagem={this.state.mensagem} />}\r\n {this.state.erro !== \"\" && <Alerta tipo={TipoAlerta.danger} mensagem={this.state.erro} />}\r\n\r\n <div className=\"form-group\">\r\n <Link className=\"btn btn-link\" id=\"esqueciSenha\" to=\"/esqueciSenha\">Esqueci Minha Senha / Primeiro Acesso</Link>\r\n </div>\r\n </div>\r\n }\r\n\r\n {this.state.loginFeito &&\r\n <div>\r\n <h5><b>Selecione uma matrícula:</b></h5>\r\n\r\n <br />\r\n <br />\r\n\r\n {this.state.matriculas.map((matricula, index) => {\r\n return (\r\n <Row key={index} className={\"mb-3\"}>\r\n <Col>\r\n <div className=\"matricula-card\" onClick={() => this.selecionar(matricula)}>\r\n <Row>\r\n <Col>\r\n <b>Matrícula: </b><label style={{ fontSize: 15 }}>{matricula}</label><br />\r\n </Col>\r\n </Row>\r\n </div>\r\n </Col>\r\n </Row>\r\n )\r\n })}\r\n </div>\r\n }\r\n </form>\r\n\r\n <br />\r\n <br />\r\n <div className=\"text-center\">\r\n Versão {packageJson.version}\r\n </div>\r\n </PageClean>\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\ninterface Props {\r\n mostrarDados: boolean\r\n}\r\n\r\ninterface State {\r\n visible: boolean,\r\n mensagem: any\r\n}\r\n\r\nexport default class Modal extends React.Component<Props, State> {\r\n \r\n static defaultProps = {\r\n mostrarDados: true\r\n };\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n visible: false,\r\n mensagem: {}\r\n };\r\n }\r\n\r\n toggleModal = (mensagem?: string) => {\r\n this.setState({\r\n visible: !this.state.visible,\r\n mensagem: mensagem\r\n });\r\n }\r\n\r\n /**\r\n * @description Renderizar uma badge de acordo com os parâmetros recebidos. A badge informa que a mensagem foi enviada por tal via caso esteja renderizada.\r\n * @param {string} badgeVisivel No banco, o valor que informa que tal mensagem foi enviada por tal via é \"SIM\" ou \"NAO\". A string badgeVisivel informa se a \r\n * mensagem foi enviada por um tipo de meio, por isso, para true (\"SIM\") a badge é renderizada, caso contrário a badge não é renderizada.\r\n * @param {string} tipoBadge String com o valor do tipo (cor) da badge.\r\n * @param {string} nomeBadge String com o valor do texto da badge.\r\n * @returns Div com a badge com cor e nome recebidos.\r\n */\r\n renderBadge(badgeVisivel: string, tipoBadge: string, nomeBadge: string) {\r\n if(badgeVisivel === \"SIM\") {\r\n return (\r\n <div className=\"btn-group mr-2\">\r\n <label id={`badge${nomeBadge}`} className={\"badge badge-\" + tipoBadge}>{nomeBadge}</label>\r\n </div>\r\n )\r\n } else if(badgeVisivel === \"NAO\")\r\n return null\r\n }\r\n\r\n render() {\r\n if(this.state.visible) {\r\n return (\r\n <div className=\"modal\" role=\"dialog\">\r\n <div className=\"modal-dialog modal-lg\" role=\"document\">\r\n <div className=\"modal-content\">\r\n\r\n <div className=\"modal-header\">\r\n <h5 className=\"modal-title\" id=\"tituloModal\">{this.state.mensagem.TXT_TITULO}</h5>\r\n <button type=\"button\" className=\"close\" onClick={() => this.toggleModal()}>\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n\r\n <div className=\"modal-body\">\r\n <p><b>Data de Criação: <label id=\"dataCriacaoModal\">{this.state.mensagem.DTA_MENSAGEM}</label></b></p>\r\n\r\n {this.props.mostrarDados &&\r\n <div>\r\n <p><b>Fundação: <label id=\"fundacaoModal\">{this.state.mensagem.NOM_FUNDACAO}</label></b></p>\r\n <p><b>Empresa: <label id=\"empresaModal\">{this.state.mensagem.NOM_EMPRESA ? this.state.mensagem.NOM_EMPRESA : \"Todas\"}</label></b></p>\r\n <p><b>Plano: <label id=\"planoModal\">{this.state.mensagem.DS_PLANO ? this.state.mensagem.DS_PLANO : \"Todos\"}</label></b></p>\r\n <p><b>Situação Plano: <label id=\"situacaoPlanoModal\">{this.state.mensagem.DS_SIT_PLANO ? this.state.mensagem.DS_SIT_PLANO : \"Todas\"}</label></b></p>\r\n <p><b>Matrícula: <label id=\"matriculaModal\">{this.state.mensagem.NUM_MATRICULA ? this.state.mensagem.NUM_MATRICULA : \"Todas\"}</label></b></p>\r\n\r\n <div className=\"btn-toolbar\">\r\n {/* Badge do Portal */}\r\n {this.renderBadge(this.state.mensagem.IND_PORTAL, \"success\", \"Portal\")}\r\n \r\n {/* Badge de E-mail */}\r\n {this.renderBadge(this.state.mensagem.IND_EMAIL, \"danger\", \"E-mail\")}\r\n </div>\r\n\r\n <br/>\r\n </div>\r\n }\r\n \r\n <p id=\"mensagemModal\">{this.state.mensagem.TXT_CORPO}</p>\r\n </div>\r\n\r\n <div className=\"modal-footer\">\r\n <button id=\"botaoFecharModal\" type=\"button\" className=\"btn btn-default\" onClick={() => this.toggleModal()}>Fechar</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport Modal from \"./Modal\";\r\n\r\ninterface Props {\r\n mostrarDados: boolean,\r\n mensagens: any\r\n}\r\n\r\ninterface State {\r\n mensagens: any\r\n}\r\n\r\nexport default class ListaMensagens extends React.Component<Props, State> {\r\n\r\n static defaultProps = {\r\n mostrarDados: true\r\n };\r\n\r\n private modal = React.createRef<Modal>();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n }\r\n\r\n /**\r\n * @description Renderizar uma badge de acordo com os parâmetros recebidos. A badge informa que a mensagem foi enviada por tal via caso esteja renderizada.\r\n * @param {string} badgeVisivel No banco, o valor que informa que tal mensagem foi enviada por tal via é \"SIM\" ou \"NAO\". A string badgeVisivel informa se a \r\n * mensagem foi enviada por um tipo de meio, por isso, para true (\"SIM\") a badge é renderizada, caso contrário a badge não é renderizada.\r\n * @param {string} tipoBadge String com o valor do tipo (cor) da badge.\r\n * @param {string} nomeBadge String com o valor do texto da badge.\r\n * @returns Div com a badge com cor e nome recebidos.\r\n */\r\n renderBadge(badgeVisivel: string, tipoBadge: string, nomeBadge: string) {\r\n if(badgeVisivel === \"SIM\") {\r\n return (\r\n <div className=\"btn-group mr-2\">\r\n <label className={\"badge badge-\" + tipoBadge}>{nomeBadge}</label>\r\n </div>\r\n )\r\n } else if(badgeVisivel === \"NAO\")\r\n return null\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <Modal ref={this.modal} mostrarDados={this.props.mostrarDados} />\r\n\r\n <table className=\"table table-hover\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>Data de criação</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n this.props.mensagens.map((mensagem: any, index: number) => {\r\n return (\r\n <tr key={index}>\r\n\r\n <td className=\"align-middle\" style={{ width: 50 }}>\r\n <button id={\"mensagem-\" + mensagem.OID_MENSAGEM} className=\"btn btn-link\" onClick={() => this.modal.current.toggleModal(mensagem)}><i className=\"fa fa-search\"></i></button>\r\n </td>\r\n\r\n <td className=\"align-middle\" style={{ width: 120 }}>\r\n {mensagem.DTA_MENSAGEM}\r\n </td>\r\n\r\n <td className=\"align-middle\">\r\n {this.props.mostrarDados &&\r\n <div>\r\n {this.renderBadge(mensagem.IND_PORTAL, \"success\", \"Portal\")}\r\n {this.renderBadge(mensagem.IND_EMAIL, \"danger\", \"E-mail\")}\r\n </div>\r\n }\r\n\r\n {mensagem.TXT_TITULO}\r\n </td>\r\n\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n }\r\n\r\n}","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\n\r\nclass Adesao extends BaseService {\r\n constructor() {\r\n super(\"adesao\");\r\n }\r\n\r\n Download = () =>\r\n this.CreateRequest<any>(RequestType.GET, `download`, null, ResponseType.Blob);\r\n\r\n Upload = (model: FileUploadEntidade) =>\r\n this.CreateRequest(RequestType.POST, `upload`, model);\r\n}\r\n\r\nexport const AdesaoService = new Adesao();\r\n\r\nexport class FileUploadEntidade {\r\n public File: any;\r\n public source: string;\r\n public Size: number;\r\n public Width: number;\r\n public Height: number;\r\n public Extension: string;\r\n}\r\n","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { CalendarioPagamentoEntidade } from \"../entidades\";\r\n\r\nclass Calendario extends BaseService {\r\n\r\n constructor() {\r\n super(\"calendarioPagamento\");\r\n }\r\n\r\n Buscar = () =>\r\n this.CreateRequest<Array<CalendarioPagamentoEntidade>>(RequestType.GET);\r\n\r\n BuscarPorPlano = (cdPlano: string) =>\r\n this.CreateRequest<Array<CalendarioPagamentoEntidade>>(RequestType.GET, `porPlano/${cdPlano}`);\r\n\r\n}\r\n\r\nexport const CalendarioPagamentoService = new Calendario();","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { DependenteEntidade } from \"../entidades/DependenteEntidade\";\r\n\r\nclass Dependente extends BaseService {\r\n\r\n constructor() {\r\n super(\"dependente\");\r\n }\r\n\r\n Buscar = () => this.CreateRequest<Array<DependenteEntidade>>(RequestType.GET);\r\n}\r\n\r\nexport const DependenteService = new Dependente();","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { DadosPessoaisEntidade } from \"../entidades\";\r\n\r\nclass DadosPessoais extends BaseService {\r\n\r\n constructor() {\r\n super(\"dadosPessoais\");\r\n }\r\n\r\n Buscar = () => this.CreateRequest<DadosPessoaisEntidade>(RequestType.GET);\r\n}\r\n\r\nexport const DadosPessoaisService = new DadosPessoais();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\nimport { DocumentoPastaEntidade } from \"../entidades/DocumentoPastaEntidade\";\r\nimport { DocumentoEntidade } from \"../entidades/DocumentoEntidade\";\r\nimport { ArquivoUploadEntidade } from \"../entidades/ArquivoUploadEntidade\";\r\n// import { FileUploadEntidade } from \"../entidades/FileUploadEntidade\";\r\n\r\nclass Documento extends BaseService {\r\n constructor() {\r\n super(\"Documento\");\r\n }\r\n\r\n // AtualizarPasta = (pasta: DocumentoPastaEntidade) =>\r\n // \tthis.CreateRequest<string>(RequestType.POST, `AtualizarPasta`, pasta);\r\n\r\n // AtualizarDocumento = (doc: DocumentoEntidade) =>\r\n // \tthis.CreateRequest<string>(RequestType.POST, `AtualizarDocumento`, doc);\r\n\r\n Buscar = (oidPasta?: number) =>\r\n this.CreateRequest<any>(RequestType.GET, `porPasta/${oidPasta}`);\r\n\r\n BuscarPorPlanoPasta = (cdPlano: string, oidPasta: number, criteria: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `BuscarPorPlanoPasta/${cdPlano}/${oidPasta}/${criteria}`);\r\n\r\n BuscarTodosPorPasta = (oidPasta: number, criteria: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `BuscarTodosPorPasta/${oidPasta}/${criteria}`);\r\n\r\n BuscarPorOidDocumento = (oidDocumento: number) =>\r\n this.CreateRequest<ArquivoUploadEntidade>(RequestType.GET, `BuscarPorOidDocumento/${oidDocumento}`);\r\n\r\n Criar = (documento: DocumentoEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `Criar`, documento);\r\n\r\n Deletar = (doc: DocumentoEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `Deletar`, doc);\r\n\r\n CriarPasta = (pasta: DocumentoPastaEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `CriarPasta`, pasta);\r\n\r\n DeletarPasta = (OID_DOCUMENTO_PASTA: number) =>\r\n this.CreateRequest<string>(RequestType.POST, `DeletarPasta/${OID_DOCUMENTO_PASTA}`);\r\n\r\n Download = (OID_DOCUMENTO: number) =>\r\n this.CreateRequest<any>(RequestType.GET, `Download/${OID_DOCUMENTO}`, null, ResponseType.Blob);\r\n\r\n // EnviarDocumento = (OID_DOCUMENTO: number) =>\r\n // \tthis.CreateRequest<any>(RequestType.GET, `enviarDocumento/${OID_DOCUMENTO}`);\r\n\r\n // UploadFile = (model: FileUploadEntidade) =>\r\n // \tthis.CreateRequest<any>(RequestType.POST, `UploadFile`, model);\r\n\r\n}\r\n\r\nexport const DocumentoService = new Documento();\r\n","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\n\r\nimport { EmpresaEntidade } from \"../entidades/EmpresaEntidade\";\r\n\r\nclass Empresa extends BaseService {\r\n\r\n constructor() {\r\n super(\"Empresa\");\r\n }\r\n\r\n BuscarTodas = () =>\r\n this.CreateRequest<Array<EmpresaEntidade>>(RequestType.GET, `BuscarTodas`);\r\n\r\n}\r\n\r\nexport const EmpresaService = new Empresa();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\nimport { ContratoEntidade } from \"../entidades/ContratoEntidade\";\r\nimport { PrestacaoEntidade } from \"../entidades/PrestacaoEntidade\";\r\nimport { ModalidadeEntidade } from \"../entidades/ModalidadeEntidade\";\r\nimport { ContratoDisponivelEntidade } from \"../entidades/ContratoDisponivelEntidade\";\r\nimport { ParametrosContrato, ParametrosSimulacao } from \"../entidades\";\r\nimport { SitContratoEntidade } from \"../entidades/SitContratoEntidade\";\r\n\r\nclass Emprestimo extends BaseService {\r\n constructor() {\r\n super(\"Emprestimo\");\r\n }\r\n\r\n Buscar = () =>\r\n this.CreateRequest<Array<ContratoEntidade>>(RequestType.GET, `Buscar`);\r\n\r\n BuscarPorSituacao = (situacao: number) =>\r\n this.CreateRequest<Array<ContratoEntidade>>(RequestType.GET, `BuscarPorSituacao/${situacao}`);\r\n\r\n BuscarSituacoes = () =>\r\n this.CreateRequest<Array<SitContratoEntidade>>(RequestType.GET, `BuscarSituacoes`);\r\n\r\n BuscarAtivos = (dataCredito: string) =>\r\n this.CreateRequest<Array<ContratoEntidade>>(RequestType.GET, `BuscarAtivos/${dataCredito}`);\r\n\r\n BuscarDetalhePorNumeroAno = (numero: string, ano: string) =>\r\n this.CreateRequest<ContratoEntidade>(RequestType.GET, `BuscarDetalhePorNumeroAno/${numero}/${ano}`);\r\n\r\n BuscarPrestacoesPorNumeroAno = (numero: string, ano: string) =>\r\n this.CreateRequest<Array<PrestacaoEntidade>>(RequestType.GET, `BuscarPrestacoesPorNumeroAno/${numero}/${ano}`);\r\n\r\n BuscarModalidades = () =>\r\n this.CreateRequest<Array<ModalidadeEntidade>>(RequestType.GET, `BuscarModalidades`);\r\n\r\n BuscarAutorizacaoMargem = (cdPlano: string) =>\r\n this.CreateRequest<boolean>(RequestType.GET, `BuscarAutorizacaoMargem/${cdPlano}`);\r\n\r\n BuscarLimiteUnicoDataCredito = (cdPlano: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `BuscarLimiteUnicoDataCredito/${cdPlano}`);\r\n\r\n BuscarParcelas = (parametros: ParametrosSimulacao) =>\r\n this.CreateRequest<Array<ContratoDisponivelEntidade>>(RequestType.POST, `BuscarParcelas`, parametros);\r\n\r\n Contratar = (dados: ParametrosContrato) =>\r\n this.CreateRequest<string>(RequestType.POST, `Contratar`, dados);\r\n\r\n // Upload = (model: FileUploadEntidade) =>\r\n // \tthis.CreateRequest<any>(RequestType.POST, `Upload`, model);\r\n\r\n GerarToken = () =>\r\n this.CreateRequest<string>(RequestType.GET, `GerarToken`);\r\n\r\n BuscarLinkDocumentosEmprestimo = () =>\r\n this.CreateRequest<string>(RequestType.GET, `BuscarLinkDocumentosEmprestimo`);\r\n\r\n}\r\n\r\nexport const EmprestimoService = new Emprestimo();","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { FichaFechamentoEntidade } from \"../entidades/FichaFechamentoEntidade\";\r\n\r\nclass FichaFechamento extends BaseService {\r\n\r\n constructor() {\r\n super(\"fichaFechamento\");\r\n }\r\n\r\n BuscarSaldoPorPlano = (cdPlano: string) =>\r\n this.CreateRequest<FichaFechamentoEntidade>(RequestType.GET, `porPlano/${cdPlano}`);\r\n\r\n BuscarDatasExtrato = (cdPlano: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `datasExtrato/${cdPlano}`);\r\n}\r\n\r\nexport const FichaFechamentoService = new FichaFechamento();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\n\r\nclass FichaFinanceiraAssistido extends BaseService {\r\n constructor() {\r\n super(\"fichaFinanceiraAssistido\");\r\n }\r\n\r\n Relatorio = (cdPlano: string, referencia: string, tipoFolha: string, especie: string, enviarPorEmail = false) =>\r\n this.CreateRequest<any>(RequestType.GET, `relatorio/${cdPlano}/${referencia}/${tipoFolha}/${especie}/${enviarPorEmail}`, null, ResponseType.Blob);\r\n\r\n BuscarDatas = (cdPlano: string) =>\r\n this.CreateRequest<any[]>(RequestType.GET, `datasPorPlano/${cdPlano}`);\r\n\r\n BuscarPorDataReferencia = (cdPlano: string, referencia: string, tipoFolha: string, especie: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `porPlanoReferenciaTipoFolha/${cdPlano}/${referencia}/${tipoFolha}/${especie}`);\r\n\r\n BuscarUltimaPorPlanoProcesso = (cdPlano: string, cdEspecie: string, ano: string, num: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `ultimaFolhaPorPlanoProcesso/${cdPlano}/${cdEspecie}/${ano}/${num}`);\r\n\r\n}\r\n\r\nexport const FichaFinanceiraAssistidoService = new FichaFinanceiraAssistido();\r\n","import { BaseService, RequestType } from \"@intech/react-service\";\r\n\r\nclass FichaFinanceira extends BaseService {\r\n constructor() {\r\n super(\"fichaFinanceira\");\r\n }\r\n\r\n BuscarUltimaExibicaoPorPlano = (cdPlano: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `BuscarUltimaExibicaoPorPlano/${cdPlano}`);\r\n\r\n SaoFranciscoBuscarSaldoPorPlano = (cdPlano: string) =>\r\n this.CreateRequest<any>(RequestType.GET, `saoFranciscoSaldoPorPlano/${cdPlano}`);\r\n\r\n}\r\n\r\nexport const FichaFinanceiraService = new FichaFinanceira();\r\n","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\n\r\nimport { WebBloqueioFuncEntidade } from \"../entidades/WebBloqueioFuncEntidade\";\r\nimport { FuncionalidadeEntidade } from \"../entidades/FuncionalidadeEntidade\";\r\n\r\nclass Funcionalidade extends BaseService {\r\n\r\n constructor() {\r\n super(\"Funcionalidade\");\r\n }\r\n\r\n Buscar = () =>\r\n this.CreateRequest<Array<WebBloqueioFuncEntidade>>(RequestType.GET, `Buscar`);\r\n\r\n BuscarPorIndAtivo = (IND_ATIVO: string) =>\r\n this.CreateRequest<Array<FuncionalidadeEntidade>>(RequestType.GET, `BuscarPorIndAtivo/${IND_ATIVO}`);\r\n\r\n Bloquear = (func: WebBloqueioFuncEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `Bloquear`, func);\r\n\r\n Desbloquear = (func: WebBloqueioFuncEntidade) =>\r\n this.CreateRequest<any>(RequestType.POST, `Desbloquear`, func);\r\n\r\n BuscarBloqueiosPorNumFuncionalidade = (NUM_FUNCIONALIDADE: number, CD_PLANO: string, CD_PLANO2: string, CD_PLANO3: string) =>\r\n this.CreateRequest<string>(RequestType.GET, `BuscarBloqueiosPorNumFuncionalidade/${NUM_FUNCIONALIDADE}/${CD_PLANO}/${CD_PLANO2}/${CD_PLANO3}`);\r\n\r\n}\r\n\r\nexport const FuncionalidadeService = new Funcionalidade();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\nimport { FuncionarioEntidade, PesquisaDados } from \"../entidades\";\r\n\r\nimport { FuncionarioDados } from \"../entidades/FuncionarioDados\";\r\nimport { FuncionarioNPDados } from \"../entidades/FuncionarioNPDados\";\r\n\r\nclass Funcionario extends BaseService {\r\n\r\n constructor() {\r\n super(\"Funcionario\");\r\n }\r\n\r\n Buscar = () =>\r\n this.CreateRequest<FuncionarioDados>(RequestType.GET, `/`);\r\n\r\n BuscarNP = () =>\r\n this.CreateRequest<FuncionarioNPDados>(RequestType.GET, `/`);\r\n\r\n Pesquisar = (dados: PesquisaDados) =>\r\n this.CreateRequest<Array<FuncionarioEntidade>>(RequestType.POST, \"pesquisar\", dados);\r\n}\r\n\r\nexport const FuncionarioService = new Funcionario();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\nimport { HeaderInfoRendEntidade } from \"../entidades\";\r\n\r\nclass InfoRend extends BaseService {\r\n constructor() {\r\n super(\"infoRend\");\r\n }\r\n\r\n BuscarReferencias = () =>\r\n this.CreateRequest<Array<number>>(RequestType.GET, `BuscarReferencias`);\r\n\r\n BuscarPorReferencia = (referencia: number) =>\r\n this.CreateRequest<HeaderInfoRendEntidade>(RequestType.GET, `BuscarPorReferencia/${referencia}`);\r\n\r\n Relatorio = (referencia: number, enviarPorEmail = false) =>\r\n this.CreateRequest<any>(RequestType.GET, `GerarRelatorio/${referencia}/${enviarPorEmail}`, null, ResponseType.Blob);\r\n\r\n}\r\n\r\nexport const InfoRendService = new InfoRend();\r\n","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { LGPDConsentimentoEntidade } from \"../entidades\";\r\n\r\nclass LGPD extends BaseService {\r\n\r\n constructor() {\r\n super(\"LGPD\");\r\n }\r\n\r\n Buscar = () =>\r\n this.CreateRequest<Array<LGPDConsentimentoEntidade>>(RequestType.GET);\r\n\r\n Inserir = (origem: number) =>\r\n this.CreateRequest<string>(RequestType.POST, `${origem}`);\r\n}\r\n\r\nexport const LGPDService = new LGPD();","import { BaseService, RequestType } from \"@intech/react-service\";\r\n\r\nclass Listas extends BaseService {\r\n\r\n constructor() {\r\n super(\"listas\");\r\n }\r\n\r\n ListarFundacaoEmpresaPlano = () =>\r\n this.CreateRequest<any>(RequestType.GET, \"fundacaoEmpresaPlano\");\r\n}\r\n\r\nexport const ListasService = new Listas();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\n\r\nclass Log extends BaseService {\r\n\r\n constructor() {\r\n super(\"Log\");\r\n }\r\n\r\n CriarLog = (numFuncionalidade: number) =>\r\n this.CreateRequest<string>(RequestType.GET, `CriarLog/${numFuncionalidade}`);\r\n\r\n}\r\n\r\nexport const LogService = new Log();","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { MensagemEntidade } from \"../entidades/MensagemEntidade\";\r\n\r\nclass Mensagem extends BaseService {\r\n\r\n constructor() {\r\n super(\"mensagem\");\r\n }\r\n\r\n BuscarTodas = () =>\r\n this.CreateRequest<Array<MensagemEntidade>>(RequestType.GET);\r\n\r\n BuscarPorFundacaoEmpresaPlano = (fundacao: string, empresa: string, plano: string) =>\r\n this.CreateRequest<Array<MensagemEntidade>>(RequestType.GET, `porFundacaoEmpresaPlano/${fundacao}/${empresa}/${plano}`);\r\n\r\n BuscarPorPlano = (plano: string) =>\r\n this.CreateRequest<Array<MensagemEntidade>>(RequestType.GET, `porPlano/${plano}`);\r\n\r\n EnviarMensagem = (data: any) =>\r\n this.CreateRequest<string>(RequestType.POST, `/`, data);\r\n\r\n}\r\n\r\nexport const MensagemService = new Mensagem();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\n\r\nimport { PlanoVinculadoEntidade } from \"../entidades/PlanoVinculadoEntidade\";\r\nimport { PlanoEntidade } from \"../entidades/PlanoEntidade\";\r\n\r\nclass Plano extends BaseService {\r\n\r\n constructor() {\r\n super(\"Plano\");\r\n }\r\n\r\n Buscar = () =>\r\n this.CreateRequest<Array<PlanoVinculadoEntidade>>(RequestType.GET, `Buscar`);\r\n\r\n BuscarTodos = () =>\r\n this.CreateRequest<Array<PlanoEntidade>>(RequestType.GET, `BuscarTodos`);\r\n\r\n BuscarPorCodigo = (cdPlano: string) =>\r\n this.CreateRequest<Array<PlanoEntidade>>(RequestType.GET, `porCodigo/${cdPlano}`);\r\n\r\n BuscarSaldado = () =>\r\n this.CreateRequest<PlanoVinculadoEntidade>(RequestType.GET, \"saldado\");\r\n\r\n RelatorioExtratoPorPlanoReferencia = (cdPlano: string, dtInicio: string, dtFim: string, enviarPorEmail: boolean) =>\r\n this.CreateRequest<any>(RequestType.GET, `relatorioExtratoPorPlanoReferencia/${cdPlano}/${dtInicio}/${dtFim}/${enviarPorEmail}`, null, ResponseType.Blob);\r\n}\r\n\r\nexport const PlanoService = new Plano();","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { ProcessoBeneficioEntidade } from \"../entidades\";\r\n\r\nclass ProcessoBeneficio extends BaseService {\r\n\r\n constructor() {\r\n super(\"processoBeneficio\");\r\n }\r\n\r\n BuscarPorPlano = (plano: string) =>\r\n this.CreateRequest<Array<ProcessoBeneficioEntidade>>(RequestType.GET, `porPlano/${plano}`);\r\n\r\n}\r\n\r\nexport const ProcessoBeneficioService = new ProcessoBeneficio();","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { RelacionamentoEntidade } from \"../entidades\";\r\n\r\nclass Relacionamento extends BaseService {\r\n constructor() {\r\n super(\"relacionamento\");\r\n }\r\n\r\n Enviar = (relacionamentoEntidade: RelacionamentoEntidade) =>\r\n this.CreateRequest(RequestType.POST, \"Enviar\", relacionamentoEntidade);\r\n\r\n}\r\n\r\nexport const RelacionamentoService = new Relacionamento();\r\n","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { SimuladorBeneficioCodeprevDados } from \"../entidades\";\r\n\r\nclass SimuladorCodeprev extends BaseService {\r\n\r\n constructor() {\r\n super(\"SimuladorCodeprev\");\r\n }\r\n\r\n Simular(dados: SimuladorBeneficioCodeprevDados) {\r\n return this.CreateRequest<any>(RequestType.POST, \"Simular\", dados);\r\n }\r\n}\r\n\r\nexport const SimuladorCodeprevService = new SimuladorCodeprev();","import { BaseService, RequestType, ResponseType } from \"@intech/react-service\";\r\nimport { JsonWebToken } from \"../entidades/JsonWebToken\";\r\nimport { LoginEntidade } from \"../entidades/LoginEntidade\";\r\n\r\nclass Usuario extends BaseService {\r\n constructor() {\r\n super(\"Usuario\");\r\n }\r\n\r\n VerificarAdmin = () =>\r\n this.CreateRequest<boolean>(RequestType.GET, `admin`);\r\n\r\n Menu = () =>\r\n this.CreateRequest<string[]>(RequestType.GET, `Menu`);\r\n\r\n CriarAcesso = (user: LoginEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `criarAcesso`, user);\r\n\r\n AlterarSenha = (user: LoginEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `alterarSenha`, user);\r\n\r\n AlterarSenhaPrimeiroAcesso = (user: LoginEntidade) =>\r\n this.CreateRequest<string>(RequestType.POST, `alterarSenhaPrimeiroAcesso`, user);\r\n\r\n BuscarMatriculas = () =>\r\n this.CreateRequest<string[]>(RequestType.GET, `matriculas`);\r\n\r\n Selecionar = (login: LoginEntidade) =>\r\n this.CreateRequest<JsonWebToken>(RequestType.POST, `selecionar`, login);\r\n\r\n SelecionarMatricula = (matricula: string, origem: number) =>\r\n this.CreateRequest<JsonWebToken>(RequestType.POST, `selecionarMatricula/${matricula}/${origem}`);\r\n\r\n Login = (user: LoginEntidade) =>\r\n this.CreateRequest<any>(RequestType.POST, `login`, user);\r\n\r\n BuscarSituacaoParticipante = (cpf: string) =>\r\n this.CreateRequest<boolean>(RequestType.GET, `BuscarSituacaoParticipante/${cpf}`);\r\n\r\n}\r\n\r\nexport const UsuarioService = new Usuario();\r\n","import { BaseService, RequestType } from \"@intech/react-service\";\r\nimport { SitPlanoEntidade } from \"../entidades\";\r\n\r\nclass SituacaoPlano extends BaseService {\r\n\r\n constructor() {\r\n super(\"sitPlano\");\r\n }\r\n\r\n BuscarTodas = () =>\r\n this.CreateRequest<Array<SitPlanoEntidade>>(RequestType.GET);\r\n\r\n}\r\n\r\nexport const SituacaoPlanoService = new SituacaoPlano();","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { HashRouter, Switch, Route } from \"react-router-dom\";\r\nimport { NotFoundPage } from \"./pages\";\r\nimport 'rc-slider/assets/index.css';\r\nimport { HomeProvider } from \"./contexts\";\r\n\r\nconst Rotas = require(`./Rotas`).default;\r\nconst RotasAdmin = require(`./pages/_admin/Rotas`).default;\r\n\r\nclass MainRender extends React.Component {\r\n render() {\r\n return (\r\n <HomeProvider>\r\n <HashRouter>\r\n <Switch>\r\n {Rotas.map((rota: any, index: number) => <Route key={index} exact={rota.exact} path={rota.caminho} component={rota.componente} />)}\r\n {RotasAdmin.map((rota: any, index: number) => <Route key={index} exact={rota.exact} path={rota.caminho} component={rota.componente} />)}\r\n <Route path=\"*\" component={NotFoundPage} />\r\n </Switch>\r\n </HashRouter>\r\n </HomeProvider>\r\n );\r\n }\r\n}\r\n\r\nReactDOM.render(<MainRender />, document.getElementById('root'));"],"sourceRoot":""}