A empresa Apoio Estratégico faz parcerias com várias escolas, nas quais algumas são nossos clientes também.

Quando eles fecham a parceria com um cliente em comum, o André entra em contato conosco para criarmos as views que ele precisa em no banco de dados do cliente.


Segue abaixo as views a serem criadas:


1 - vAlunos_ApoioEstrategico


CREATE view [dbo].[vAlunos_ApoioEstrategico]  as


select vlc.ano_letivo, al.nome_alunoa, al.ra, al.cep_aluno, vlc.data_matricula as datamatricula , vlc.data_saida as datasaida, vlc.num_online, af.mensalidade, round(case when af.bolsa = 0 and af.abatimento <> 0 then (af.Abatimento * 100) / af.Mensalidade else af.Bolsa end,2) as bolsa, 


case when af.bolsa = 0 and af.abatimento <> 0 then 'Sem motivo' else (select mtv = stuff((select ', ' + md2.MotivoDesconto from DESCONTOALUNOFIN as daf2 inner join MOTIVODESCONTO as md2 on daf2.cod_motivodesconto = md2.cod_motivodesconto where daf2.numcontrato = af.numcontrato and daf2.nbol = af.nbol and daf2.numcontrato = daf.numcontrato and daf2.nbol = daf.nbol for xml path ('')), 1, 1, '' ) 

from DESCONTOALUNOFIN as daf 

inner join motivodesconto as md on daf.cod_motivodesconto = md.cod_motivodesconto 

where daf.numcontrato = af.numcontrato and daf.nbol = af.nbol group by daf.numcontrato, daf.nbol) end as motivodesconto, 


al.rua_aluno, al.bairro_aluno, al.cidade_aluno, al.UF_aluno , case when vlc.situacao = 'OE' then vlc.data_saida else null end as data_cancelamento


from vListaChamada as vlc

inner join aluno as al on vlc.rm = al.rm

inner join alunofin as af on al.rm = af.rm and vlc.ano_letivo = af.ano_letivo 

where vlc.situacao in ('M', 'OE')

and vlc.bim = 0

and af.nbol = 0


GO




2 - vColaboradoresArea_ApoioEstrategico


create view [dbo].[vColaboradoresArea_ApoioEstrategico] as 


select 'Pedagógica' as area, count(*) as total, ano_letivo from ( 

select distinct ch.cod_professor, cl.Ano_letivo 

from carga_hora as ch

inner join classe as cl on ch.id_classe = cl.id_classe

where isnull(ch.cod_professor,0) <> 0 

union 

select distinct cod_professor, Ano_letivo 

from classe  

where excluido = 0 and inativo = 0 

and isnull(cod_professor,0) <> 0) as dados inner join PROFESSOR as p on dados.cod_Professor = p.cod_professor and p.Excluido = 0 and p.Inativo = 0 

group by Ano_letivo

union all

select 'Administrativa' as area, count(*) as total, cf.ano_letivo from PROFESSOR p inner join CONFESCOLA as cf on 1=1 where p.Excluido = 0 and p.Inativo = 0 and p.cod_cargo not in (1,2) group by cf.ano_letivo


GO




3 - vEntradas_Saidas_ApoioEstrategico


create view [dbo].[vEntradas_Saidas_ApoioEstrategico] as


select 'Entrada' as movimento, al.nome_aluno as fornecedor_ou_aluno, cl.num_online as turma, ae.nome as descricao, m.mes + '/' + cast(ac.ano_letivo as varchar) as referencia, ac.datavencimento as vencimento, isnull(ac.valor,0) - isnull(ac.abatimento,0) as valor_bruto, ISNULL(ac.desconto,0) as desconto_pontualidade, (isnull(ac.valor,0) - isnull(ac.abatimento,0)) - ISNULL(ac.desconto,0) as valor_liquido, (select sum(VTotalPago) from ALUNOPAGAMENTOS as aps where ac.rm = aps.rm and ac.NumContrato = aps.numcontrato and ac.Ano_letivo = aps.ano_letivo and ac.MesRef = aps.mesref and ac.NBol = aps.nbol and ac.TipoParcela = aps.tipoparcela and aps.beneficio = 0 group by aps.rm, aps.numcontrato, aps.ano_letivo, aps.mesref, aps.nbol, aps.tipoparcela) as valor_total_pago

from alunocob as ac

inner join alunofin as af on ac.rm = af.rm and ac.numcontrato = af.numcontrato and ac.nbol = af.nbol

inner join meses as m on ac.mesref = m.ordem

inner join extra_descricao as ed on ac.nbol = ed.nbol

inner join ativextra as ae on ac.tipoparcela = ae.cod_extra

inner join aluno as al on ac.rm = al.rm

inner join classe as cl on ac.id_classe = cl.id_classe


union all


select 'Entrada' as movimento, f.Fornecedor, '' as num_online, t.descricao, m.mes + '/' + cast(year(t.DataVencimento) as varchar)  as referencia, t.datavencimento as vencimento, t.ValorAPagar, 0 as desconto_pontualidade, t.ValorAPagar as valor_liquido, (select sum(pt.ValorPago) from PAGAMENTOTITULO as pt where pt.cod_titulo = t.cod_titulo group by pt.cod_titulo) as valor_total_pago

from TITULO as t

left join FORNECEDOR as f on t.cod_fornecedor = f.cod_fornecedor

inner join meses as m on month(t.DataVencimento) = m.ordem 

where t.Entrada <> 0


union all


select 'Saída' as movimento, f.Fornecedor, '' as num_online, t.descricao, m.mes + '/' + cast(year(t.DataVencimento) as varchar)  as referencia, t.datavencimento as vencimento, t.ValorAPagar, 0 as desconto_pontualidade, t.ValorAPagar as valor_liquido, (select sum(pt.ValorPago) from PAGAMENTOTITULO as pt where pt.cod_titulo = t.cod_titulo group by pt.cod_titulo) as valor_total_pago

from TITULO as t

left join FORNECEDOR as f on t.cod_fornecedor = f.cod_fornecedor

inner join meses as m on month(t.DataVencimento) = m.ordem 

where t.Entrada = 0

GO




4 - vInadimplentes_ApoioEstrategico


CREATE view [dbo].[vInadimplentes_ApoioEstrategico] as 


select ed.descricao + ' - ' + al.nome_aluno + ' (' + cl.num_online  + ')' + ' - ' + cast(ap.mesref as varchar)  + '/' +  cast(ap.ano_letivo as varchar) as boleto, ap.DataVencimento as vencimento, ap.datapago as datapago, ap.ValorBruto, case when ap.CodDesconto = 1 then ap.desconto else (ap.Desconto * ap.ValorBruto)/100 end as desconto, ap.valorbruto - case when ap.CodDesconto = 1 then ap.desconto else (ap.Desconto * ap.ValorBruto)/100 end as valorliquido

from alunopag as ap 

left join aluno as al on ap.rm = al.rm 

left join alunofin as af on ap.rm = af.rm and ap.numcontrato = af.numcontrato and ap.nbol = af.nbol 

left join EXTRA_DESCRICAO as ed on ap.nbol = ed.nbol 

left join classe as cl on ap.id_classe = cl.id_classe 

where af.nbol = 0 

and ap.StatusPago not in (7, 11, 12, 14) 

and ap.bolsa <> 100 


GO




5 - vRematriculaWeb_ApoioEstrategico


 CREATE view [dbo].[vRematriculaWeb_ApoioEstrategico] as

select distinct ca.rm, al.nome_aluno , cl.Ano_letivo, cl.num_online, r.nome ,  

 (Case When cat.rematricula_concluida=1 or ca.presencial =1  Then 'Sim' Else 'Não' End )  as rematricula_finalizada ,  

 (Case When  isnull(cat.rematricula_concluida,0)   <> 0  Then cat.data_matricula Else ca.data_matricula End ) as datafim ,   

 (Case When cat.rematricula_concluida is null and ca.presencial = 0 and ca.revisada = 0  Then  (Case When  pm.vpagomatricula <> 0  Then  vpvm.privencimento Else  null  End )  Else  vpvm.privencimento End )  as privencimento ,  

 (Case When pm.vpagomatricula is not null Then 'Sim' Else 'Não' End ) as matriculapaga,  

 (case when ~ca.rematricula = 1 then 1 else 0 end) as novo, (case when ~ca.presencial = 1 then 1 else 0 end) as web , case when ca.Revisada = 1 then 1 else 0 end as revisada, cl.ordem  

 from (((((((((( classe_aluno ca 

 inner join aluno al on ca.rm = al.rm )  

 left join responsavel r on r.cod_responsavel = al.cod_responsavelfinanceiro   )  

 left join classe cl on cl.id_classe = ca.id_classe )  

 left join ( select cati.* from classe_alunotemp cati 

 inner join classe ci on cati.id_classe = ci.id_classe 

 where ci.ano_letivo = 2024 ) cat on cat.rm = ca.rm )  

 left join ( select * from classe where excluido = 0 ) clt  on cl.ano_letivo = clt.ano_letivo and cl.termo = clt.termo and cl.cod_curso = clt.cod_curso and cat.id_classe = clt.id_classe )   

 left join (select * from alunofin where nbol = 0 ) af on af.ano_letivo = cl.ano_letivo and af.termo = cl.termo and af.cod_curso = cl.cod_curso and af.rm = ca.rm ) 

 left join (select * from alunofin where nbol = 0 ) afm on afm.ano_letivo = cl.ano_letivo and afm.termo = cl.termo and afm.cod_curso = cl.cod_curso and afm.rm = ca.rm ) 

 left join vpagamentosmatricula pm on pm.numcontrato = af.numcontrato )  

 left join vPriVencimentoMatricula vpvm on af.numcontrato = vpvm.numcontrato )  

 left join ( select * from vListaChamada where bim = 0 and situacao = 'M' ) as vlc on vlc.rm = ca.rm and vlc.ano_letivo = cl.ano_letivo - 1 and vlc.cod_curso = cl.cod_curso )  

 where cl.id_classe in (  

 select mpc.id_classe from MATRICULA_PROCESSO mp 

 inner join MATRICULA_PROCESSO_CLASSE mpc  on mp.cod_processo_matricula = mpc.cod_processo_matricula 

 Where mp.inativo = 0  and Isnull(mpc.excluido,0) = 0 and Isnull(mp.excluido,0) =  0 )  

 

GO



Após criar as views, precisa criar o usuário que o Apoio Estratégico irá utilizar para acessar o SQL Server:


1 - Abra o banco de dados, vá até "Security" e clique com o botão direito em "Users", depois clique em "New User":



2 - Definindo nome de usuário, senha e acesso desse usuário:


Usuário: Apoio_estrategico

Senha: apoio2023