[MANUTENÇÃO]
A partir do dia 28/08 após às 20hs, o acesso ao TDN nas páginas logadas será integrado ao Identity Fluig, seguindo o mesmo padrão já adotado em outras ferramentas, como o Jira Produção.
Essa mudança tem como objetivo aprimorar a segurança e a gestão de acessos a ferramenta. Atenciosamente, equipe TOTVS.
O manual a seguir visa detalhar as customizações realizadas neste projeto para realizar a exportação de Alunos para o Sapes.
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.

Sigla 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:


● 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.
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:
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.
Importante:
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:

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.

Importante
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:
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:
Data da última Alteração: Data da última alteração do registro.
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
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;


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))