Páginas filhas
  • Manual Operacional da Customização - Integração Sapes

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Manual Operacional da customização - Integração Sapes


O manual a seguir visa detalhar as customizações realizadas neste projeto para realizar a exportação de Alunos para o Sapes.


Expandir
titleParâmetros da Integração

Pré-requisitos

No TOTVS Serviços Globais, por meio do menu Customização | Controle de customizações ativas, verificar se a customização Lib CNI e Integração Sapes estão ativadas.


Deverá ser parametrizado o campo Sigla Estado - DR nos Parâmetros Gerais do Sistema Indústria em TOTVS Educacional| Sistema Industria | Parâmetros Gerais| Sigla Estado - DR.

Sigla Estado - DR: Neste campo será exibida uma lista dos estados do Brasil e a sigla CT (Cetiqt), onde o usuário deverá selecionar a Sigla do DR/Estado das matrículas, para enviar ao Sapes informação de alunos referente ao estado onde estão matriculados.


Aviso
titleSigla Estado - DR

O preenchimento campo Sigla Estado, é obrigatório para a exportação de dados dos alunos para o Sapes. 


Descrição do processo

Tela disponibilizada em TOTVS Educacional | Sistema Indústria | Integração Sapes| Parâmetros para que o usuário defina todos parâmetros necessários para efetuar a integração com o sistema Sapes.

Detalhamento do processo

Foi disponibilizada a seguinte tela para informar os dados da integração:

  • Endereço WebService SAPES: Neste parâmetro o usuário deverá informar o Endereço de acesso ao WebService disponibilizado pelo Sapes. .
  • Token acesso (Integração): O Token será valor fixo de acordo com cada Regional utilizado na autenticação da Integração com WebService do Sapes.

Número tentativas de reenvio: Neste campo o usuário deverá informar o número máximo de tentativas que a customização deverá tentar realizar a integração com Sapes dos registros com status de erro.


Modalidade: Modalidades dos cursos que serão exportados para o Sapes

● Qtde. Dias – Envio Conclusão (Disciplina): campo do tipo texto onde o usuário deverá informar a quantidade de dias anteriores à data final da última matrícula do aluno na última turma/disciplina (STURMADISC.DTFINAL), do último Período do Curso, na Análise Curricular do Curso/Habilitação no SGE, de acordo com a Modalidade do Curso. Esta informação irá definir quantos dias antes da conclusão será enviada a Pesquisa de Egresso para o Sapes, com a lista de dados das matrículas dos alunos.

Expandir
titleProcesso de Exportação de dados para Sapes - Automático

Pré-requisitos

Para envio da pesquisa de Egresso do Senai, serão considerados os dados dos alunos que estão concluindo determinado curso das modalidades parametrizadas.

Descrição do processo

A interface customizada estará disponível em: TOTVS Educacional | Sistema Industria | Integração Sapes| Exportação de Dados. 

O processo poderá ser executado a qualquer momento pelo usuário, na data do processamento ou agendado conforme recurso nativo de agendamento de job. Para isso é necessário que o ambiente esteja configurado em três camadas para ser executado.

Detalhamento do processo

Clique em Exportação de Dados



A Exportação de Dados para o Sapes será realizada apenas para os alunos que estiverem matriculados nas turmas/disciplinas das modalidades parametrizadas na Aba Modalidades de Cursos e quando atingir o número de dias anteriores à data final da turma/disciplina. Esta informação irá definir quantos dias antes do término da turma/disciplina será enviada a Pesquisa de Egresso para o Sapes, com a lista de dados das matrículas dos alunos.

Serão exportados dados dos alunos após atualizar a Análise Curricular, de acordo com as seguintes regras:

  • Alunos com status de matrícula diferente de concluinte e matriculado não integram na primeira carga.
  • Alunos com status de matrícula que indica pendências em pelo menos uma disciplina, não serão integrados. (Exemplo: Evadido, Trancado, Cancelado, Reprovado, etc.)

Para os casos de alunos que tiveram a situação de matrícula alterada após serem integrados na primeira carga, caso tenha apresentado alguma pendência após o envio (foi reprovado, por exemplo), o processo customizado deverá enviar o registro do aluno novamente, com atual situação após alteração do status (para cancelar o envio no SAPES).

Para o envio dos dados ao Sapes, a customização irá consumir o método do Webservice parametrizado, sendo enviadas informações do aluno, da unidade, do curso e da modalidade.

Após processamento, o Sapes retornará à informação se o registro foi processado com sucesso ou erro, informando a mensagem em caso de erro. Ao final do processamento, os registros serão gravados em tabela customizada de log, com dados como: data da criação, usuário responsável, dados enviados, dados recebidos, mensagem de erro e status do registro na integração.


Aviso
titleImportante:
  • As informações serão extraídas de cadastros nativos do SGE, não sendo criado nenhum novo cadastro e/ou campo.
  • Os dados serão exportados do SGE para o Sapes, onde a pesquisa de egresso será realizada.
Expandir
titleProcesso de Exportação de dados para Sapes - Por Turma

Pré-requisitos

Para envio da pesquisa de Egresso do Senai, serão considerados os dados dos alunos que estão concluindo determinado curso das modalidades parametrizadas.

Descrição do processo

O menu utilizado ficará disponível em: TOTVS Educacional| Currículo e Oferta | Turma | Processos| Exportar Dados para o Sapes, para ser executado de forma manual pelo usuário.

Detalhamento do processo

Ao clicar no processo, será exibida tela com a lista de aluno da turma selecionada, para que o usuário selecione todos ou apenas os desejados. O processo enviará ao Sapes uma lista de dados das matrículas dos alunos selecionados que atenderem aos requisitos pré-definidos. Se ocorrer alguma atualização dos dados após o envio, o processo irá identificar a modificação e enviar a atualização para o SAPES. 

Serão exportados dados dos alunos após atualizar a Analise Curricular, de acordo com as seguintes regras:

  • Alunos com status de matrícula diferente de concluinte e matriculado não integram na primeira carga.
  • Aluno com status de matricula que indica pendências em pelo menos 1 disciplina, não será integrado. (Ex: Evadido, Trancado, Cancelado, Reprovado etc..)


Observação: O Processo de Exportação de Dados para o Sapes por Turma, permite selecionar apenas um registro de turma, por processamento. Caso o usuário selecione mais de uma turma, será exibida a seguinte mensagem.

Aviso
titleImportante
  • Após processamento, o Sapes retornará à informação se o registro foi processado com sucesso ou erro, informando a mensagem em caso de erro.


Expandir
titleMonitor de Log

Pré-requisitos

Não se aplica.

Descrição do processo

O objetivo da Interface de Log é armazenar informações e status dos dados que foram exportados do SGE para o Sapes.

Detalhamento do processo

Será possível acompanhar os status dos dados de matrículas dos alunos enviados para o Sapes através do menu TOTVS Educacional | Sistema Indústria | Integração Sapes | Monitor de Log. Não será permitida a inclusão, alteração ou exclusão de registros nesta interface. Os dados exibidos nesta interface ficam armazenados na tabela customizada ZDOCSIGNMONITOR.



Na tela de log estarão disponíveis os seguintes campos: 

  •  Id Log: Identificador sequencial de Log.
  •  Campos Chave: Descrição dos campos utilizados para gerar o registro integrado. 
  •  Valores Chave: Chave primária do registro integrado. 
  •  Status: Situação da Integração (Sucesso ou Erro). 
  •  Funcionalidade: Tipo de Processo que está sendo feito (Por exemplo: Exportação de Dados). 
  •  Módulo: Tipo da integração que está sendo feita.
  •  Data de Criação: Data de Criação do registro. 
  •  Data da última alteração: Data da última alteração do registro.

Ao acessar o anexo de um registro será possível o usuário visualizar todos os registros relacionados ao cadastro integrado selecionando a opção Item de Log. Estarão disponíveis os seguintes campos:

  • Id. Item Log: Identificador sequencial de log; 
  • Id. Log: Identificador sequencial de log;
  • Mensagem: Mensagem com o status da integração do item; 
  • Status: Situação da integração do item selecionado;
  • Dados Enviados: Relação dos dados enviados para integração;
  • Dados Recebidos: Relação dos dados recebidos;
  • Data de Criação: Data de criação do registro;
  • Data da última Alteração: Data da última alteração do registro.


Expandir
titleProcesso para Reenvio de Dados

Pré-requisitos

Possuir registros enviados com erro.

Descrição do processo

O objetivo do processo de reenvio de dados é permitir o envio para o Sapes dos registros que não foram exportados corretamente. Esse processo poderá ser executado manualmente ou poderá ser agendado, por registro (com status de cancelado, erro ou pendente) e a integração efetuará a exportação dos registros novamente.

Detalhamento do processo

O Reenvio de Dados, que ao ser acionado a customização tentará realizar novamente o envio das informações ao Sapes. A funcionalidade estará disponível na tela de Monitor de Logs, menu TOTVS Educacional | Sistema Indústria | Integração Sapes | Monitor de Log | Processos | Reenvio de Log.

Neste exemplo abaixo o envio apresentou o status de erro;

Selecione o registro que deseja reenviar, clica em processos, Reenvio de log;

Expandir
titleConsulta SAPES

CONSULTA BASE ENVIADA PELO SENAI PARA DESENVOLVIMENTO DA INTEGRAÇÃO ENTRE SGE E SAPES. Consulta Base (SENAI) - Utilizada no desenvolvimento da Integração SGE X SAPES

SELECT  'SGE' + SALUNO.RA + '-' + CONVERT(VARCHAR, SCURSO.IDFT) AS id ,

        SHABILITACAOALUNO.RA AS ra ,

        SHABILITACAOALUNO.IDHABILITACAOFILIAL AS idhabilitacaofilial ,

        STURMA.CODTURMA AS cd_turma ,

        SALUNO.RA AS cd_matricula ,

        PPESSOA.CPF AS cpf ,

        PPESSOA.NOME AS nome ,

        PPESSOA.DTNASCIMENTO AS dt_nascimento ,

        PPESSOA.SEXO AS sexo ,

        ISNULL(PPESSOA.CARTIDENTIDADE, '') AS rg_numero ,

        LOWER(ISNULL(SALUNOCOMPL.EMAILLEGADO, PPESSOA.EMAIL)) AS email ,

        CASE WHEN PPESSOA.CORRACA = 2 THEN '1'

             WHEN PPESSOA.CORRACA = 4 THEN '2'

             WHEN PPESSOA.CORRACA = 8 THEN '3'

             WHEN PPESSOA.CORRACA = 6 THEN '4'

             WHEN PPESSOA.CORRACA = 0 THEN '5'

             WHEN PPESSOA.CORRACA = 10 THEN '6'

             ELSE '6'

        END AS cd_raca_cor ,

        CASE WHEN PPESSOA.CORRACA = 2 THEN 'BRANCA'

             WHEN PPESSOA.CORRACA = 4 THEN 'PRETA'

             WHEN PPESSOA.CORRACA = 8 THEN 'PARDA'

             WHEN PPESSOA.CORRACA = 6 THEN 'AMARELA'

             WHEN PPESSOA.CORRACA = 0 THEN 'INDIGENA'

             WHEN PPESSOA.CORRACA = 10 THEN 'NAO DECLARADO'

             ELSE 'NAO DECLARADO'

        END AS ds_raca_cor ,

        CASE WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 13 THEN '5'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) IN ( 14, 17, 18, 19 )

             THEN '7'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 11 THEN '5'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 16 THEN '6'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 1 THEN '11'

             WHEN ISNULL(PPESSOA.DEFICIENTEFISICO, 0) = 1 THEN '4'

             WHEN ISNULL(PPESSOA.DEFICIENTEAUDITIVO, 0) = 2 THEN '3'

             WHEN ISNULL(PPESSOA.DEFICIENTEFALA, 0) = 3

                  AND ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 7 THEN '5'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 7

                  AND ISNULL(PPESSOA.DEFICIENTEFALA, 0) <> 3 THEN '3'

             WHEN ISNULL(PPESSOA.DEFICIENTEFALA, 0) = 3

                  AND ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) <> 7 THEN '8'

             WHEN ISNULL(PPESSOA.DEFICIENTEVISUAL, 0) = 4 THEN '2'

             WHEN ISNULL(PPESSOA.DEFICIENTEMENTAL, 0) = 5 THEN '1'

             WHEN ISNULL(PPESSOA.DEFICIENTEINTELECTUAL, 0) = 6 THEN '1'

             WHEN ISNULL(PPESSOA.BRPDH, 0) = 7 THEN '10'

             ELSE '9'

        END AS cd_necessidade_especial ,

        CASE WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 13

             THEN 'Deficiência Múltipla'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) IN ( 14, 17, 18, 19 )

             THEN 'Transtorno do Espectro Autista'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 11

             THEN 'Deficiência Múltipla'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 16

             THEN 'Altas Habilidades/Superdotação'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 1

             THEN 'Deficiência Psicossocial '

             WHEN ISNULL(PPESSOA.DEFICIENTEFISICO, 0) = 1

             THEN 'Deficiência Física'

             WHEN ISNULL(PPESSOA.DEFICIENTEAUDITIVO, 0) = 2

             THEN 'Deficiência Auditiva'

             WHEN ISNULL(PPESSOA.DEFICIENTEFALA, 0) = 3

                  AND ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 7

             THEN 'Deficiência Múltipla'

             WHEN ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) = 7

                  AND ISNULL(PPESSOA.DEFICIENTEFALA, 0) <> 3

             THEN 'Deficiência Auditiva'

             WHEN ISNULL(PPESSOA.DEFICIENTEFALA, 0) = 3

                  AND ISNULL(TABDEFICIENCIA.CODDEFICIENCIA, 0) <> 7

             THEN 'Outras Deficiências'

             WHEN ISNULL(PPESSOA.DEFICIENTEVISUAL, 0) = 4

             THEN 'Deficiência Visual'

             WHEN ISNULL(PPESSOA.DEFICIENTEMENTAL, 0) = 5

             THEN 'Deficiência Intelectual'

             WHEN ISNULL(PPESSOA.DEFICIENTEINTELECTUAL, 0) = 6

             THEN 'Deficiência Intelectual'

             WHEN ISNULL(PPESSOA.BRPDH, 0) = 7 THEN 'Reabilitados'

             ELSE 'Nenhuma'

        END AS ds_necessidade_especial ,

        ISNULL(PPESSOA.TELEFONE1, '') AS telefone ,

        ISNULL(PPESSOA.TELEFONE2, '') AS celular ,

        GFILIAL.ESTADO AS dr ,

        ISNULL(SGRADECOMPL.CODCURSOSCOP, CONVERT(VARCHAR, SCURSO.IDFT) + CONVERT(VARCHAR, SGRADE.IDFT)) AS cd_curso_dr ,

        SCURSO.NOME AS ds_curso ,

        MONTH(PRIMEIRATURMA.DTINICIAL) AS dt_mes_inicio ,

        YEAR(PRIMEIRATURMA.DTINICIAL) AS dt_ano_inicio ,

        DAY(TURMAS.DTFINAL) AS dt_dia_termino ,

        MONTH(TURMAS.DTFINAL) AS dt_mes_termino ,

        YEAR(TURMAS.DTFINAL) AS dt_ano_termino ,

        CASE WHEN SHABILITACAOALUNO.CODSTATUS IN ( 1, 19, 2, 20, 47 ) THEN 1

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 4, 7, 22, 25 ) THEN 2

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 16, 34 ) THEN 4

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 11, 29 ) THEN 5

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 14, 32 ) THEN 6

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 18, 36 ) THEN 7

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 15, 33 ) THEN 8

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 40, 44 ) THEN 9

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 10, 28 ) THEN 10

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 12, 30 ) THEN 11

        END AS cd_situacao ,

        CASE WHEN SHABILITACAOALUNO.CODSTATUS IN ( 1, 19, 2, 20, 47 )

             THEN 'Em Andamento'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 4, 7, 22, 25 )

             THEN 'Concluída'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 16, 34 ) THEN 'Evadido'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 11, 29 )

             THEN 'Transferida - Interna'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 14, 32 ) THEN 'Trancada'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 18, 36 )

             THEN 'Pendente de Estágio'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 15, 33 )

             THEN 'Aluno Desistente'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 40, 44 )

             THEN 'Aluno Falecido'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 10, 28 )

             THEN 'Aluno Reprovado'

             WHEN SHABILITACAOALUNO.CODSTATUS IN ( 12, 30 )

             THEN 'Transferida - Externa'

        END AS ds_situacao ,

        ISNULL(DFILIAL.CAMPOLIVRE1, GFILIAL.IDINTEGRACAO) AS cd_unidade ,

        NOMEFANTASIA AS ds_unidade ,

        SCURSO.CODMODALIDADECURSO AS cd_modalidade ,

        SMODALIDADECURSO.DESCRICAO AS ds_modalidade ,

        SCURSO.CODAREA AS cd_area_atuacao ,

        SAREA.NOME AS ds_area_atuacao ,

        CASE WHEN SCURSO.CURPRESDIST = 'D' THEN 1

             ELSE 0

        END AS ead ,

        CASE WHEN SMATRICPLCOMPL.TIPOGRAT = '1' THEN 1

             ELSE 0

        END AS gratuidade_regimental ,

        ISNULL(SALUNOCOMPL.TIPOESCOLA, 9) AS cd_escola_orig_aluno_no_curso ,

        ISNULL(GCONSIST.DESCRICAO, 'Não Declarado') AS ds_escola_orig_aluno_no_curso ,

        CASE WHEN LEN(ISNULL(TIPOGRAT, '')) < 3 THEN 1

             ELSE CONVERT(INT, RIGHT(TIPOGRAT, 2))

        END AS cd_pronatec ,

        CASE WHEN LEN(ISNULL(TIPOGRAT, '')) < 3 THEN 'Não'

             ELSE PRONATEC.DESCRICAO

        END AS ds_pronatec ,

        CASE WHEN SMATRICPLCOMPL.ARTICULACAO = 1 THEN 'S'

             ELSE 'N'

        END AS articulacao_sesi_senai ,

        CASE WHEN SCURSO.CODMODALIDADECURSO IN ( '11', '15' )

             THEN CASE WHEN ESTAGIO.CNPJ IS NOT NULL

                            AND ESTAGIO.DTINICIOESTAGIO <= CONVERT(DATETIME, GETDATE())

                       THEN 'Com Contrato'

                       ELSE 'Sem Contrato'

                  END

             ELSE 'Não se Aplica'

        END AS condicao_aluno_aprendizagem ,

        CASE WHEN SCURSO.CODMODALIDADECURSO IN ( '11', '15' )

                  AND ESTAGIO.CNPJ IS NOT NULL

                  AND ESTAGIO.DTINICIOESTAGIO <= CONVERT(DATETIME, GETDATE())

             THEN ESTAGIO.DTINICIOESTAGIO

        END AS dt_inicio_estagio ,

        CASE WHEN SCURSO.CODMODALIDADECURSO IN ( '11', '15' )

                  AND ESTAGIO.CNPJ IS NOT NULL

                  AND ESTAGIO.DTINICIOESTAGIO <= CONVERT(DATETIME, GETDATE())

             THEN ESTAGIO.DTFINALESTAGIO

        END AS dt_fim_estagio ,

        TURMAS.DTFINAL AS dt_final

FROM    SHABILITACAOALUNO (NOLOCK)

        INNER JOIN SHABILITACAOFILIAL (NOLOCK) ON SHABILITACAOFILIAL.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA

                                                  AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SHABILITACAOALUNO.IDHABILITACAOFILIAL

        INNER JOIN SGRADE (NOLOCK) ON SGRADE.CODCURSO = SHABILITACAOFILIAL.CODCURSO

                                      AND SGRADE.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA

                                      AND SGRADE.CODGRADE = SHABILITACAOFILIAL.CODGRADE

                                      AND SGRADE.CODHABILITACAO = SHABILITACAOFILIAL.CODHABILITACAO

        INNER JOIN GFILIAL (NOLOCK) ON GFILIAL.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA

                                       AND GFILIAL.CODFILIAL = SHABILITACAOFILIAL.CODFILIAL

        INNER JOIN SCURSO (NOLOCK) ON SCURSO.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA

                                      AND SCURSO.CODCURSO = SHABILITACAOFILIAL.CODCURSO

        INNER JOIN SMATRICPL (NOLOCK) ON SMATRICPL.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA

                                         AND SMATRICPL.RA = SHABILITACAOALUNO.RA

                                         AND SMATRICPL.IDHABILITACAOFILIAL = SHABILITACAOALUNO.IDHABILITACAOFILIAL

        INNER JOIN SPLETIVO (NOLOCK) ON SPLETIVO.CODCOLIGADA = SMATRICPL.CODCOLIGADA

                                        AND SPLETIVO.IDPERLET = SMATRICPL.IDPERLET

        INNER JOIN SALUNO (NOLOCK) ON SALUNO.RA = SHABILITACAOALUNO.RA

                                      AND SALUNO.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA

        INNER JOIN PPESSOA (NOLOCK) ON PPESSOA.CODIGO = SALUNO.CODPESSOA

        INNER JOIN STURMA (NOLOCK) ON STURMA.CODFILIAL = SMATRICPL.CODFILIAL

                                      AND STURMA.CODCOLIGADA = SMATRICPL.CODCOLIGADA

                                      AND STURMA.IDPERLET = SMATRICPL.IDPERLET

                                      AND STURMA.CODTURMA = SMATRICPL.CODTURMA

        INNER JOIN ( SELECT *

                     FROM   ( SELECT    SHABILITACAOFILIAL.CODCOLIGADA ,

                                        SHABILITACAOFILIAL.CODTIPOCURSO ,

                                        SHABILITACAOFILIAL.CODFILIAL ,

                                        SHABILITACAOFILIAL.CODCURSO ,

                                        SHABILITACAOFILIAL.CODHABILITACAO ,

                                        SHABILITACAOFILIAL.CODGRADE ,

                                        STURMA.CODTURMA ,

                                        STURMA.IDPERLET ,

                                        SPLETIVO.CODPERLET ,

                                        SHABILITACAOFILIAL.IDHABILITACAOFILIAL ,

                                        STURMA.DTINICIAL ,

                                        STURMA.DTFINAL ,

                                        MAX(CODPERIODO) AS PERIODOTURMA ,

                                        ( SELECT    MAX(SPERIODO.CODPERIODO)

                                          FROM      SPERIODO (NOLOCK)

                                          WHERE     SPERIODO.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA

                                                    AND SPERIODO.CODCURSO = SHABILITACAOFILIAL.CODCURSO

                                                    AND SPERIODO.CODHABILITACAO = SHABILITACAOFILIAL.CODHABILITACAO

                                                    AND SPERIODO.CODGRADE = SHABILITACAOFILIAL.CODGRADE

                                                    AND SPERIODO.CODPERIODO <> 0

                                        ) AS PERIODOCURSO

                              FROM      STURMA

                                        INNER JOIN SPLETIVO ON SPLETIVO.IDPERLET = STURMA.IDPERLET

                                                              AND SPLETIVO.CODCOLIGADA = STURMA.CODCOLIGADA

                                        INNER JOIN SHABILITACAOFILIAL ON SHABILITACAOFILIAL.IDHABILITACAOFILIAL = STURMA.IDHABILITACAOFILIAL

                                                              AND SHABILITACAOFILIAL.CODCOLIGADA = STURMA.CODCOLIGADA

                                        INNER JOIN STURMADISC ON STURMADISC.CODFILIAL = STURMA.CODFILIAL

                                                              AND STURMADISC.CODTURMA = STURMA.CODTURMA

                                                              AND STURMADISC.CODCOLIGADA = STURMA.CODCOLIGADA

                                                              AND STURMADISC.IDPERLET = STURMA.IDPERLET

                                        INNER JOIN SDISCGRADE ON SDISCGRADE.CODCOLIGADA = STURMADISC.CODCOLIGADA

                                                              AND SDISCGRADE.CODCURSO = SHABILITACAOFILIAL.CODCURSO

                                                              AND SDISCGRADE.CODHABILITACAO = SHABILITACAOFILIAL.CODHABILITACAO

                                                              AND SDISCGRADE.CODGRADE = SHABILITACAOFILIAL.CODGRADE

                                                              AND SDISCGRADE.CODDISC = STURMADISC.CODDISC

                              GROUP BY  SHABILITACAOFILIAL.CODCOLIGADA ,

                                        SHABILITACAOFILIAL.CODTIPOCURSO ,

                                        SHABILITACAOFILIAL.CODFILIAL ,

                                        SHABILITACAOFILIAL.CODCURSO ,

                                        SHABILITACAOFILIAL.CODHABILITACAO ,

                                        SHABILITACAOFILIAL.CODGRADE ,

                                        STURMA.CODTURMA ,

                                        STURMA.IDPERLET ,

                                        SPLETIVO.CODPERLET ,

                                        SHABILITACAOFILIAL.IDHABILITACAOFILIAL ,

                                        STURMA.DTINICIAL ,

                                        STURMA.DTFINAL

                            ) AS TURMAS

                     WHERE  TURMAS.PERIODOTURMA = TURMAS.PERIODOCURSO

                   ) AS TURMAS ON TURMAS.CODCOLIGADA = SMATRICPL.CODCOLIGADA

                                  AND TURMAS.CODTURMA = SMATRICPL.CODTURMA

                                  AND TURMAS.IDPERLET = SMATRICPL.IDPERLET

                                  AND TURMAS.CODFILIAL = SMATRICPL.CODFILIAL

                                  AND TURMAS.IDHABILITACAOFILIAL = SMATRICPL.IDHABILITACAOFILIAL

        LEFT OUTER JOIN ( SELECT    MAT.CODCOLIGADA ,

                                    MAT.RA ,

                                    MAT.IDHABILITACAOFILIAL ,

                                    MIN(TUR.DTINICIAL) DTINICIAL

                          FROM      SMATRICPL AS MAT ( NOLOCK )

                                    INNER JOIN STURMA AS TUR ( NOLOCK ) ON TUR.CODFILIAL = MAT.CODFILIAL

                                                              AND TUR.CODCOLIGADA = MAT.CODCOLIGADA

                                                              AND TUR.IDPERLET = MAT.IDPERLET

                                                              AND TUR.CODTURMA = MAT.CODTURMA

                          GROUP BY  MAT.CODCOLIGADA ,

                                    MAT.RA ,

                                    MAT.IDHABILITACAOFILIAL

                        ) AS PRIMEIRATURMA ON PRIMEIRATURMA.CODCOLIGADA = SMATRICPL.CODCOLIGADA

                                              AND PRIMEIRATURMA.RA = SMATRICPL.RA

                                              AND PRIMEIRATURMA.IDHABILITACAOFILIAL = SMATRICPL.IDHABILITACAOFILIAL

        LEFT OUTER JOIN SGRADECOMPL (NOLOCK) ON SGRADECOMPL.CODCOLIGADA = SGRADE.CODCOLIGADA

                                                AND SGRADECOMPL.CODGRADE = SGRADE.CODGRADE

                                                AND SGRADECOMPL.CODHABILITACAO = SGRADE.CODHABILITACAO

                                                AND SGRADECOMPL.CODCURSO = SGRADE.CODCURSO

        LEFT OUTER JOIN SMODALIDADECURSO (NOLOCK) ON SMODALIDADECURSO.CODMODALIDADECURSO = SCURSO.CODMODALIDADECURSO

                                                     AND SMODALIDADECURSO.CODCOLIGADA = SCURSO.CODCOLIGADA

        LEFT OUTER JOIN SAREA (NOLOCK) ON SAREA.CODCOLIGADA = SCURSO.CODCOLIGADA

                                          AND SAREA.CODAREA = SCURSO.CODAREA

        LEFT OUTER JOIN SCURSOCOMPL (NOLOCK) ON SCURSOCOMPL.CODCOLIGADA = SCURSO.CODCOLIGADA

                                                AND SCURSOCOMPL.CODCURSO = SCURSO.CODCURSO

        LEFT OUTER JOIN DFILIAL (NOLOCK) ON DFILIAL.CODCOLIGADA = GFILIAL.CODCOLIGADA

                                            AND DFILIAL.CODFILIAL = GFILIAL.CODFILIAL

        LEFT OUTER JOIN SALUNOCOMPL (NOLOCK) ON SALUNOCOMPL.CODCOLIGADA = SALUNO.CODCOLIGADA

                                                AND SALUNOCOMPL.RA = SALUNO.RA

        LEFT OUTER JOIN GCONSIST (NOLOCK) ON GCONSIST.CODCOLIGADA = SALUNOCOMPL.CODCOLIGADA

                                             AND GCONSIST.CODCLIENTE = TIPOESCOLA

                                             AND CODTABELA = 'TIPOESCOLA'

        LEFT OUTER JOIN SMATRICPLCOMPL (NOLOCK) ON SMATRICPLCOMPL.CODCOLIGADA = SMATRICPL.CODCOLIGADA

                                                   AND SMATRICPLCOMPL.RA = SMATRICPL.RA

                                                   AND SMATRICPLCOMPL.IDHABILITACAOFILIAL = SMATRICPL.IDHABILITACAOFILIAL

                                                   AND SMATRICPLCOMPL.IDPERLET = SMATRICPL.IDPERLET

        LEFT OUTER JOIN GCONSIST AS PRONATEC ( NOLOCK ) ON PRONATEC.CODCOLIGADA = SMATRICPLCOMPL.CODCOLIGADA

                                                           AND PRONATEC.CODCLIENTE = SMATRICPLCOMPL.TIPOGRAT

                                                           AND PRONATEC.CODTABELA = 'TIPOGRAT'

        LEFT JOIN ( SELECT  CODPESSOA ,

                            MIN(CODDEFICIENCIA) AS CODDEFICIENCIA

                    FROM    PPESSOADEFICIENCIA (NOLOCK)

                    GROUP BY CODPESSOA

                  ) TABDEFICIENCIA ON PPESSOA.CODIGO = TABDEFICIENCIA.CODPESSOA

        LEFT OUTER JOIN ( SELECT    DISTINCT

                                    MATRICL.CODCOLIGADA ,

                                    MATRICL.IDPERLET ,

                                    MATRICL.IDHABILITACAOFILIAL ,

                                    MATRICL.RA ,

                                    ISNULL(ESTAGIOCONTRATO.DTINICIOESTAGIO,

                                           MATRICPLCOMPL.DATAINICIAL) AS DTINICIOESTAGIO ,

                                    ISNULL(ESTAGIOCONTRATO.DTFINALESTAGIO,

                                           MATRICPLCOMPL.DATAFINAL) AS DTFINALESTAGIO ,

                                    ISNULL(EMPRESA.CNPJ,

                                           HABILITACAOALUNOCOMPL.EMPRESACOMP) AS CNPJ

                          FROM      dbo.SHABILITACAOALUNO AS HABILITACAOALUNO

                                    INNER JOIN dbo.SMATRICPL AS MATRICL ( NOLOCK ) ON MATRICL.CODCOLIGADA = HABILITACAOALUNO.CODCOLIGADA

                                                              AND MATRICL.RA = HABILITACAOALUNO.RA

                                                              AND MATRICL.IDHABILITACAOFILIAL = HABILITACAOALUNO.IDHABILITACAOFILIAL

                                    INNER JOIN dbo.SHABILITACAOFILIAL AS HABILITACAOFILIAL ( NOLOCK ) ON HABILITACAOFILIAL.CODCOLIGADA = MATRICL.CODCOLIGADA

                                                              AND HABILITACAOFILIAL.CODFILIAL = MATRICL.CODFILIAL

                                                              AND HABILITACAOFILIAL.IDHABILITACAOFILIAL = MATRICL.IDHABILITACAOFILIAL

                                    INNER JOIN dbo.SCURSO AS CURSO ( NOLOCK ) ON CURSO.CODCOLIGADA = HABILITACAOFILIAL.CODCOLIGADA

                                                              AND CURSO.CODCURSO = HABILITACAOFILIAL.CODCURSO

                                    INNER JOIN dbo.SPLETIVO AS PLETIVO ( NOLOCK ) ON PLETIVO.CODCOLIGADA = MATRICL.CODCOLIGADA

                                                              AND PLETIVO.IDPERLET = MATRICL.IDPERLET

                                    INNER JOIN dbo.SMATRICULA AS MATRICULA ( NOLOCK ) ON MATRICULA.CODCOLIGADA = MATRICL.CODCOLIGADA

                                                              AND MATRICULA.RA = MATRICL.RA

                                                              AND MATRICULA.IDPERLET = MATRICL.IDPERLET

                                                              AND MATRICULA.IDHABILITACAOFILIAL = MATRICL.IDHABILITACAOFILIAL

                                    INNER JOIN dbo.STURMADISC AS TURMADISC ( NOLOCK ) ON TURMADISC.CODCOLIGADA = MATRICULA.CODCOLIGADA

                                                              AND TURMADISC.IDTURMADISC = MATRICULA.IDTURMADISC

                                    INNER JOIN dbo.SDISCIPLINA AS DISCIPLINA ( NOLOCK ) ON DISCIPLINA.CODDISC = TURMADISC.CODDISC

                                                              AND DISCIPLINA.CODCOLIGADA = TURMADISC.CODCOLIGADA

                                    LEFT OUTER JOIN dbo.SHABILITACAOALUNOCOMPL

                                    AS HABILITACAOALUNOCOMPL ( NOLOCK ) ON HABILITACAOALUNOCOMPL.CODCOLIGADA = HABILITACAOALUNO.CODCOLIGADA

                                                              AND HABILITACAOALUNOCOMPL.RA = HABILITACAOALUNO.RA

                                                              AND HABILITACAOALUNOCOMPL.IDHABILITACAOFILIAL = HABILITACAOALUNO.IDHABILITACAOFILIAL

                                    LEFT OUTER JOIN dbo.SMATRICPLCOMPL AS MATRICPLCOMPL ( NOLOCK ) ON MATRICPLCOMPL.CODCOLIGADA = MATRICL.CODCOLIGADA

                                                              AND MATRICPLCOMPL.RA = MATRICL.RA

                                                              AND MATRICPLCOMPL.IDPERLET = MATRICL.IDPERLET

                                                              AND MATRICPLCOMPL.IDHABILITACAOFILIAL = MATRICL.IDHABILITACAOFILIAL

                                    LEFT OUTER JOIN dbo.SESTAGIOCONTRATO AS ESTAGIOCONTRATO ( NOLOCK ) ON ESTAGIOCONTRATO.CODCOLIGADA = MATRICL.CODCOLIGADA

                                                              AND ESTAGIOCONTRATO.RA = MATRICL.RA

                                                              AND ESTAGIOCONTRATO.IDPERLET = MATRICL.IDPERLET

                                                              AND ESTAGIOCONTRATO.IDHABILITACAOFILIAL = MATRICL.IDHABILITACAOFILIAL

                                    LEFT OUTER JOIN dbo.SEMPRESA AS EMPRESA ON EMPRESA.IDEMPRESA = ESTAGIOCONTRATO.IDEMPRESA

                          WHERE     PLETIVO.CODPERLET LIKE '%FE'

                                    AND DISCIPLINA.ESTAGIO = 'S'

                                    AND CURSO.CODMODALIDADECURSO IN ( '11',

                                                              '15' )

                        ) ESTAGIO ON ESTAGIO.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA

                                     AND ESTAGIO.IDHABILITACAOFILIAL = SHABILITACAOALUNO.IDHABILITACAOFILIAL

                                     AND ESTAGIO.RA = SHABILITACAOALUNO.RA

WHERE   SMATRICPL.CODCOLIGADA = :CODCOLIGADA

        AND SMATRICPL.CODSTATUSRES IS NULL

        AND SCURSO.CODMODALIDADECURSO IN ( '31', '32', '21', '22', '11', '15', '41', '81', '82' )

        AND PPESSOA.CPF IS NOT NULL

        AND SCURSO.CODAREA IS NOT NULL

        AND ISNULL(SALUNOCOMPL.MOTIVOCPF, '') NOT IN ( '03', '04' )

        AND SPLETIVO.CODPERLET NOT LIKE '%FE'

        AND TURMAS.DTFINAL BETWEEN CONVERT(DATE, GETDATE()) AND CONVERT(DATE, DATEADD(MONTH, 1, GETDATE()))

        /*AND TURMAS.DTFINAL BETWEEN '2020-06-01' AND CONVERT(DATE, DATEADD(MONTH, 1, GETDATE()))*/

        AND NOT ( TURMAS.PERIODOCURSO = 1 AND SHABILITACAOALUNO.CODSTATUS IN ( 1, 19 ) )