Rematrícula automática fica parado em Aguarde carregando na escolha da série

Boa tarde.
Procurei nas dúvidas do forum e não encontrei problema igual ao meu. Preciso ajuda urgente.


Ao fazer a rematrícula automática, seguindo os passos:
Escolho a Instituição
Escolho a Escola
Escolho o Curso
Após escolher o curso, a Série(próximo campo) fica só em Aguarde carregando.
Os erros reportados no console estão abaixo:
app.js?v=0.0.92:1 GET http://ieducar.prefa.br/socket.io/?EIO=3&transport=polling&t=NphlrB5 404 (Not Found)
jquery-1.8.3.min.js?v=0.0.92:2 Uncaught TypeError: Cannot read properties of undefined (reading ‘length’)
at Function.each (jquery-1.8.3.min.js?v=0.0.92:2)
at jsonResourcesToSelectOptions (DynamicInput.js?v=0.0.92:67)
at Object.handleGetSeries [as success] (Serie.js?v=0.0.92:14)
at l (jquery-1.8.3.min.js?v=0.0.92:2)
at Object.fireWith [as resolveWith] (jquery-1.8.3.min.js?v=0.0.92:2)
at T (jquery-1.8.3.min.js?v=0.0.92:2)
at XMLHttpRequest.r (jquery-1.8.3.min.js?v=0.0.92:2)

Aguardo ajuda.

Descobri o problema. Pode ser que outros tenham…Então vai aí a solução:
No Serie.Js na função var updateSeries = function(){
espera o ano vindo do formulário, como no formulário da Rematrícula Automática não tem o ano, o mesmo chega com NaN.
Foi inserido um teste se ano vem NaN na função:

  if ($instituicaoField.val() && $escolaField.val() && $cursoField.val() && $cursoField.is(':enabled')) {
    $serieField.children().first().html('Selecione uma série1...');
	*/* bug corrigido - 04/11/2021 - Luís / Roberto */*
  •   if (isNaN($ano)) {*
    
  •   	$ano.val(new Date().getFullYear());*
    
  •   }*
    
  •   /* bug corrigido - 04/11/2021 - Luís / Roberto */*
    
      var urlForGetSeries = getResourceUrlBuilder.buildUrl('/module/DynamicInput/serie', 'series', {
        instituicao_id: $instituicaoField.val(),
        escola_id: $escolaField.val(),
        curso_id: $cursoField.val(),
        ano: $ano.val()
      });
1 curtida

Eu já tive o mesmo problema em outras partes do iEducar. Acredito que a informação do ano venha do campo “ano letivo” de “série na escola”. Não sei se a mudança no código é a forma mais apropriada, pois pode gerar um falso positivo onde o ano considerado seja errado pela falta do mesmo nesse campo. Afinal, nem sempre o ano correto na operação será o atual. Lembrando que a mudança no código afetará todas as implementações do input da série no iEducar.

Dito isso, de fato, existem inputs que só funcionam com o ano vindo do formulário como o do componente curricular por turma, então essa solução seria ideal.

Resumindo, vale a análise para não ter dor de cabeça futura.

Fiz alguns testes aqui e percebi que o problema que tive e o que foi informado aqui são levemente diferentes.

No meu caso, ao colocar o curso, o input da série emitia a mensagem “Sem opções”, e tenho quase certeza que isso se dá por não ter séries com o campo “ano letivo” preenchido naquele curso.

Mas caso eu remova a informação do ano do formulário ele vai apresentar o erro desse tópico, “Aguarde carregando…”.

Então, acredito que você está corretíssimo em sua análise, @paglioza, mas eu prefiro resolver o problema localmente, ou seja, colocando um campo oculto com a informação do ano no formulário do que mexendo no input diretamente e correndo o risco de gerar mais problemas visto que o sistema é grande e não tem muitos testes.

Bom dia @Booul
Sim, sua sugestão é muito boa, vou analisar melhor hoje a tarde.
Mas de qualquer forma vai ser atribuído ao campo hidden um valor default de ano, como foi feito na alteração que realizamos.
Uma coisa é certa onde alterei. Se chega sem o ano, não vai adiante, especificamente naquele formulário, como disse, o ano chega NaN.
Mas vou analisar e ver se causa impacto em outros processos. (Creio que não)

1 curtida