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