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