SHARE
TWEET

sp_contratoatendimento

sangueroots Jun 26th, 2019 78 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. USE SQG;
  2. GO
  3. CREATE PROCEDURE uspGetContratoAtendimento
  4.     @idEquipe INT
  5. AS  
  6.     SET NOCOUNT ON;  
  7.     DECLARE @SituacaoesEquipes TABLE(Id INT, IdSituacao INT)
  8.     DECLARE @Contratos TABLE (Numero INT, IdSituacao INT)
  9.     DECLARE @ContratosComEventos TABLE(IdEquipe INT, NumeroContrato INT, IdSituacaoAtendimento INT, Prioridade INT, IdEvento INT, IdTipoEvento INT, DataAgendamento DateTime, DataAteracaoEvento DateTime)
  10.  
  11. --1. Buscar situações de atendimento da equipe
  12.     INSERT INTO @SituacaoesEquipes(Id, IdSituacao) SELECT ROW_NUMBER() OVER(ORDER BY Prioridade) Id, IDSituacaoAtendimento  FROM Atendimento.EquipeSituacao WHERE IdEquipe = @idEquipe ;
  13.  
  14. --2.busca por contrato que contenham alguma idSituacaoAtendimento que pertence a lista de situacaoes ja ordenadas
  15.     INSERT INTO @Contratos(Numero, IdSituacao) SELECT numero, IDSituacaoAtendimento FROM scc.contrato WHERE IDSituacaoAtendimento IN (SELECT IdSituacao FROM @SituacaoesEquipes);
  16.  
  17. --3 Contratos que possui Eventos
  18.     INSERT INTO @ContratosComEventos(IdEquipe, NumeroContrato, IdSituacaoAtendimento, Prioridade, IdEvento, IdTipoEvento, DataAgendamento, DataAteracaoEvento)
  19.     SELECT  b.IDEquipe,d.NumeroContrato, a.IDSituacaoAtendimento, b.Prioridade, a.ID IdEvento, a.IDTipoEvento, a.DataAgendamento, a.DataAlteracao DataAlteracaoEvento
  20.     FROM Atendimento.Evento a
  21.     JOIN Atendimento.EquipeSituacao b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
  22.     JOIN Atendimento.Equipe c ON c.ID = b.IDEquipe
  23.     JOIN Atendimento.EventoContrato d ON a.ID = d.IdEvento
  24.     WHERE c.Ativo = 1 AND b.IDEquipe = @idEquipe
  25.     AND a.IDTipoEvento = 3
  26.     AND DATEPART (dy, a.DataAgendamento) = DATEPART (dy, getdate())
  27.     ORDER BY b.IDEquipe, a.DataAlteracao;
  28.  
  29. --Select * from @EventosContrato;
  30. --Possui eventos? Sim
  31. --3.1 Verificar se o tipo de evento é do tipo 3
  32.     IF (SELECT COUNT(NumeroContrato) FROM @ContratosComEventos) > 0
  33. --possui eventos para hoje
  34.         SELECT  c.*, b.IDEquipe, a.IDSituacaoAtendimento, b.Prioridade, a.ID IdEvento, a.IDTipoEvento, a.DataAgendamento, a.DataAlteracao DataAlteracaoEvento
  35.         FROM Atendimento.Evento a
  36.         JOIN Atendimento.EquipeSituacao b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
  37.         JOIN Atendimento.Equipe c ON c.ID = b.IDEquipe
  38.         JOIN Atendimento.EventoContrato d ON a.ID = d.IdEvento
  39.         JOIN Scc.Contrato e ON e.Numero = d.NumeroContrato
  40.         WHERE c.Ativo = 1
  41.         AND b.IDEquipe = @idEquipe
  42.         AND a.IDTipoEvento = 3
  43.         AND DATEPART (dy, a.DataAgendamento) = DATEPART (dy, getdate())
  44.         ORDER BY b.IDEquipe, a.DataAlteracao;
  45.     ELSE
  46. --não possui eventos para hoje
  47.         SELECT b.*, a.Prioridade  
  48.         FROM Atendimento.EquipeSituacao a
  49.         JOIN SCC.Contrato b ON a.IDSituacaoAtendimento = b.IDSituacaoAtendimento
  50.         WHERE IdEquipe = 13
  51.         AND b.PossuiLock = 0
  52.         AND b.DataAlteracao <> GETDATE()
  53.         ORDER BY b.DataAlteracao DESC;
  54. GO
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top