Advertisement
sangueroots

contratoatendimento

Jun 26th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.68 KB | None | 0 0
  1. DECLARE @idEquipe INT = 15;
  2. DECLARE @SituacaoesEquipes TABLE(Id INT, IdSituacao INT)
  3. DECLARE @Contratos TABLE (Numero INT, IdSituacao INT)
  4. DECLARE @ContratosComEventos TABLE(IdEquipe INT, NumeroContrato INT, IdSituacaoAtendimento INT, Prioridade INT, IdEvento INT, IdTipoEvento INT, DataAgendamento DateTime, DataAteracaoEvento DateTime)
  5.  
  6. --1. Buscar situações de atendimento da equipe
  7. INSERT INTO @SituacaoesEquipes(Id, IdSituacao) SELECT ROW_NUMBER() OVER(ORDER BY Prioridade) Id, IDSituacaoAtendimento  FROM Atendimento.EquipeSituacao WHERE IdEquipe = @idEquipe ;
  8.  
  9. --2.busca por contrato que contenham alguma idSituacaoAtendimento que pertence a lista de situacaoes ja ordenadas
  10. INSERT INTO @Contratos(Numero, IdSituacao) SELECT numero, IDSituacaoAtendimento FROM scc.contrato WHERE IDSituacaoAtendimento IN (SELECT IdSituacao FROM @SituacaoesEquipes);
  11.  
  12. --3 Contratos que possui Eventos
  13. INSERT INTO @ContratosComEventos(IdEquipe, NumeroContrato, IdSituacaoAtendimento, Prioridade, IdEvento, IdTipoEvento, DataAgendamento, DataAteracaoEvento)
  14. SELECT  b.IDEquipe,d.NumeroContrato, a.IDSituacaoAtendimento, b.Prioridade, a.ID IdEvento, a.IDTipoEvento, a.DataAgendamento, a.DataAlteracao DataAlteracaoEvento
  15. FROM Atendimento.Evento a
  16. JOIN Atendimento.EquipeSituacao b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
  17. JOIN Atendimento.Equipe c ON c.ID = b.IDEquipe
  18. JOIN Atendimento.EventoContrato d ON a.ID = d.IdEvento
  19. WHERE c.Ativo = 1 AND b.IDEquipe = @idEquipe
  20. AND a.IDTipoEvento = 3
  21. AND DATEPART (dy, a.DataAgendamento) = DATEPART (dy, getdate())
  22. ORDER BY b.IDEquipe, a.DataAlteracao;
  23.  
  24. --Select * from @EventosContrato;
  25. --Possui eventos? Sim
  26. --3.1 Verificar se o tipo de evento é do tipo 3
  27. IF (SELECT COUNT(NumeroContrato) FROM @ContratosComEventos) > 0
  28. --possui eventos para hoje
  29.         SELECT  c.*, b.IDEquipe, a.IDSituacaoAtendimento, b.Prioridade, a.ID IdEvento, a.IDTipoEvento, a.DataAgendamento, a.DataAlteracao DataAlteracaoEvento
  30.         FROM Atendimento.Evento a
  31.         JOIN Atendimento.EquipeSituacao b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
  32.         JOIN Atendimento.Equipe c ON c.ID = b.IDEquipe
  33.         JOIN Atendimento.EventoContrato d ON a.ID = d.IdEvento
  34.         JOIN Scc.Contrato e ON e.Numero = d.NumeroContrato
  35.         WHERE c.Ativo = 1
  36.         AND b.IDEquipe = @idEquipe
  37.         AND a.IDTipoEvento = 3
  38.         AND DATEPART (dy, a.DataAgendamento) = DATEPART (dy, getdate())
  39.         ORDER BY b.IDEquipe, a.DataAlteracao;
  40. ELSE
  41. --não possui eventos para hoje
  42.     SELECT b.*, a.Prioridade  
  43.     FROM Atendimento.EquipeSituacao a
  44.     JOIN SCC.Contrato b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
  45.     WHERE IdEquipe = 13
  46.     AND b.PossuiLock = 0
  47.     AND b.DataAlteracao <> GETDATE()
  48.     ORDER BY b.DataAlteracao DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement