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:
  • *Data Final - Para exportação ao Sapes, analisamos a data de encerramento de todas as turmas disciplinas, identificando a última. Turmas disciplinas que não possuem uma data final preenchida não serão consideradas na exportação.
  • 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.


Informações

Para informações sobre Alteração Status Logs com Erro e o processo de Exclusão de Logs no monitor, acesse o Manual Operacional da Customização - LIB DN

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 (SENAI) - Utilizada no desenvolvimento da Integração SGE X SAPESSELECT 

Bloco de código
languagesql
linenumberstrue
SELECT 'SGE' + SALUNO.RA + '-' + CONVERT(VARCHAR, SCURSO.IDFT) AS id,
        SHABILITACAOALUNO

       SHABILITACAOALUNO.RA AS ra,
        SHABILITACAOALUNO

       SHABILITACAOALUNO.IDHABILITACAOFILIAL AS idhabilitacaofilial,
        STURMA

       STURMA.CODTURMA AS cd_turma,
        SALUNO

       SALUNO.RA AS cd_matricula,
        PPESSOA

       PPESSOA.CPF AS cpf,
        PPESSOA

       PPESSOA.NOME AS nome,
        PPESSOA.DTNASCIMENTO AS

       PPESSOA.DTNASCIMENTO AS dt_nascimento,
        PPESSOA

       PPESSOA.SEXO AS sexo,
        ISNULL

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

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

       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',

           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
)
  AND PPESSOA.CPF IS NOT
NULL        AND
 NULL
  AND SCURSO.CODAREA IS NOT
NULL        AND
 NULL
  AND ISNULL(SALUNOCOMPL.MOTIVOCPF, '') NOT IN ('03','04')
        AND

  AND SPLETIVO.CODPERLET NOT LIKE '%FE'
        AND

  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

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