Advertisement
Guest User

Untitled

a guest
Apr 6th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.76 KB | None | 0 0
  1. -- =============================================
  2. -- Author: Mariusz Jarosz
  3. -- Create date: 2019-02-06
  4. -- Description: Usuwanie kandydatów z danego szkolenia
  5. -- WorkItems: #20434
  6. -- =============================================
  7. CREATE PROCEDURE [egzaminator].[proc_OKESzkolenieKandydataDelete]
  8.     @IDs IdList READONLY,
  9.     @OkeID INT,
  10.     @SzkolenieID INT,
  11.     @UzytkownikModyfikacjiID INT
  12. AS
  13. BEGIN
  14.     SET NOCOUNT ON;
  15.     SET XACT_ABORT ON;
  16.  
  17.     IF NOT EXISTS
  18.     (
  19.         SELECT *
  20.         FROM egzaminator.Szkolenie
  21.         WHERE ID = @SzkolenieID
  22.             AND IdOkregowaKomisjaEgzaminacyjna = @OkeID
  23.             AND CzyUsuniety = 0
  24.     )
  25.         RETURN - 1 --Szkolenie nie należy do danej OKE
  26.  
  27.     IF EXISTS
  28.     (
  29.         SELECT
  30.             TOP 1 1
  31.         FROM
  32.             @IDs AS ids
  33.             INNER JOIN egzaminator.SzkolenieKandydata AS szkk ON szkk.ID = ids.ID
  34.             INNER JOIN egzaminator.Szkolenie AS sz ON sz.ID = szkk.IdSzkolenie
  35.         WHERE
  36.             sz.IdOkregowaKomisjaEgzaminacyjna != @OkeID
  37.             AND sz.CzyUsuniety = 0
  38.             AND szkk.CzyUsuniety = 0
  39.     )
  40.         RETURN -2 -- Conajmniej jeden uczestnik szkolenia nie należy do danej OKE
  41.  
  42.     IF EXISTS
  43.     (
  44.         SELECT
  45.             TOP 1 1
  46.         FROM
  47.             @IDs AS ids
  48.             INNER JOIN egzaminator.SzkolenieKandydata AS szkk ON szkk.ID = ids.ID
  49.             INNER JOIN egzaminator.Uprawnienie AS u ON u.IdSzkolenieKandydata = szkk.ID
  50.         WHERE
  51.             u.IdPowodAnulowaniaDecyzji IS NULL -- uprawnienie nie zostało wycofane
  52.             AND szkk.CzyUsuniety = 0
  53.             AND szkk.IdSzkolenie = @SzkolenieID
  54.     )
  55.         RETURN -3 -- Conajmniej jeden uczestnik szkolenia posiada wpis do ewidencji egzaminatorów
  56.  
  57.     -- ustaw flage CzyUsuniety = 1
  58.     UPDATE szk SET CzyUsuniety = 1, IdUzytkownikModyfikacji = @UzytkownikModyfikacjiID
  59.     FROM egzaminator.SzkolenieKandydata AS szk
  60.         INNER JOIN @IDs AS ids ON ids.ID = szk.ID
  61.     WHERE szk.IdSzkolenie = @SzkolenieID
  62.  
  63.  
  64. END
  65. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement