Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @idEquipe INT = 15;
- DECLARE @SituacaoesEquipes TABLE(Id INT, IdSituacao INT)
- DECLARE @Contratos TABLE (Numero INT, IdSituacao INT)
- DECLARE @ContratosComEventos TABLE(IdEquipe INT, NumeroContrato INT, IdSituacaoAtendimento INT, Prioridade INT, IdEvento INT, IdTipoEvento INT, DataAgendamento DateTime, DataAteracaoEvento DateTime)
- --1. Buscar situações de atendimento da equipe
- INSERT INTO @SituacaoesEquipes(Id, IdSituacao) SELECT ROW_NUMBER() OVER(ORDER BY Prioridade) Id, IDSituacaoAtendimento FROM Atendimento.EquipeSituacao WHERE IdEquipe = @idEquipe ;
- --2.busca por contrato que contenham alguma idSituacaoAtendimento que pertence a lista de situacaoes ja ordenadas
- INSERT INTO @Contratos(Numero, IdSituacao) SELECT numero, IDSituacaoAtendimento FROM scc.contrato WHERE IDSituacaoAtendimento IN (SELECT IdSituacao FROM @SituacaoesEquipes);
- --3 Contratos que possui Eventos
- INSERT INTO @ContratosComEventos(IdEquipe, NumeroContrato, IdSituacaoAtendimento, Prioridade, IdEvento, IdTipoEvento, DataAgendamento, DataAteracaoEvento)
- SELECT b.IDEquipe,d.NumeroContrato, a.IDSituacaoAtendimento, b.Prioridade, a.ID IdEvento, a.IDTipoEvento, a.DataAgendamento, a.DataAlteracao DataAlteracaoEvento
- FROM Atendimento.Evento a
- JOIN Atendimento.EquipeSituacao b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
- JOIN Atendimento.Equipe c ON c.ID = b.IDEquipe
- JOIN Atendimento.EventoContrato d ON a.ID = d.IdEvento
- WHERE c.Ativo = 1 AND b.IDEquipe = @idEquipe
- AND a.IDTipoEvento = 3
- AND DATEPART (dy, a.DataAgendamento) = DATEPART (dy, getdate())
- ORDER BY b.IDEquipe, a.DataAlteracao;
- --Select * from @EventosContrato;
- --Possui eventos? Sim
- --3.1 Verificar se o tipo de evento é do tipo 3
- IF (SELECT COUNT(NumeroContrato) FROM @ContratosComEventos) > 0
- --possui eventos para hoje
- SELECT c.*, b.IDEquipe, a.IDSituacaoAtendimento, b.Prioridade, a.ID IdEvento, a.IDTipoEvento, a.DataAgendamento, a.DataAlteracao DataAlteracaoEvento
- FROM Atendimento.Evento a
- JOIN Atendimento.EquipeSituacao b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
- JOIN Atendimento.Equipe c ON c.ID = b.IDEquipe
- JOIN Atendimento.EventoContrato d ON a.ID = d.IdEvento
- JOIN Scc.Contrato e ON e.Numero = d.NumeroContrato
- WHERE c.Ativo = 1
- AND b.IDEquipe = @idEquipe
- AND a.IDTipoEvento = 3
- AND DATEPART (dy, a.DataAgendamento) = DATEPART (dy, getdate())
- ORDER BY b.IDEquipe, a.DataAlteracao;
- ELSE
- --não possui eventos para hoje
- SELECT b.*, a.Prioridade
- FROM Atendimento.EquipeSituacao a
- JOIN SCC.Contrato b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
- WHERE IdEquipe = 13
- AND b.PossuiLock = 0
- AND b.DataAlteracao <> GETDATE()
- ORDER BY b.DataAlteracao DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement