Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- =============================================
- -- Author: Mariusz Jarosz
- -- Create date: 2019-02-06
- -- Description: Usuwanie kandydatów z danego szkolenia
- -- WorkItems: #20434
- -- =============================================
- CREATE PROCEDURE [egzaminator].[proc_OKESzkolenieKandydataDelete]
- @IDs IdList READONLY,
- @OkeID INT,
- @SzkolenieID INT,
- @UzytkownikModyfikacjiID INT
- AS
- BEGIN
- SET NOCOUNT ON;
- SET XACT_ABORT ON;
- IF NOT EXISTS
- (
- SELECT *
- FROM egzaminator.Szkolenie
- WHERE ID = @SzkolenieID
- AND IdOkregowaKomisjaEgzaminacyjna = @OkeID
- AND CzyUsuniety = 0
- )
- RETURN - 1 --Szkolenie nie należy do danej OKE
- IF EXISTS
- (
- SELECT
- TOP 1 1
- FROM
- @IDs AS ids
- INNER JOIN egzaminator.SzkolenieKandydata AS szkk ON szkk.ID = ids.ID
- INNER JOIN egzaminator.Szkolenie AS sz ON sz.ID = szkk.IdSzkolenie
- WHERE
- sz.IdOkregowaKomisjaEgzaminacyjna != @OkeID
- AND sz.CzyUsuniety = 0
- AND szkk.CzyUsuniety = 0
- )
- RETURN -2 -- Conajmniej jeden uczestnik szkolenia nie należy do danej OKE
- IF EXISTS
- (
- SELECT
- TOP 1 1
- FROM
- @IDs AS ids
- INNER JOIN egzaminator.SzkolenieKandydata AS szkk ON szkk.ID = ids.ID
- INNER JOIN egzaminator.Uprawnienie AS u ON u.IdSzkolenieKandydata = szkk.ID
- WHERE
- u.IdPowodAnulowaniaDecyzji IS NULL -- uprawnienie nie zostało wycofane
- AND szkk.CzyUsuniety = 0
- AND szkk.IdSzkolenie = @SzkolenieID
- )
- RETURN -3 -- Conajmniej jeden uczestnik szkolenia posiada wpis do ewidencji egzaminatorów
- -- ustaw flage CzyUsuniety = 1
- UPDATE szk SET CzyUsuniety = 1, IdUzytkownikModyfikacji = @UzytkownikModyfikacjiID
- FROM egzaminator.SzkolenieKandydata AS szk
- INNER JOIN @IDs AS ids ON ids.ID = szk.ID
- WHERE szk.IdSzkolenie = @SzkolenieID
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement