1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| ALTER PROCEDURE [dbo].[MajDispoJournees] @DateJourneeDeb nchar(6),
@DateJourneeFin nchar(6),@MajPlanning int,@IdJournee int,@IdPlanning int,@IdEnt int
AS
BEGIN
--SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
BEGIN TRANSACTION
--Verif si on doit mettre a jour toutes la session ou que la journée
IF (@MajPlanning = 1)
BEGIN
--Mise a jour des UV global des journées Test pour la session spécifiée
update Journee set UVGlobalJournee = ( SELECT
CASE WHEN max(E.UVGlobale) IS NULL THEN 0
ELSE max(E.UVGlobale)
END
FROM Examen E inner join
IT_Journee_Examen IT on E.IdExamen = IT.IDEXAMEN
WHERE Journee.IdJournee = IT.IDJOURNEE
)
WHERE Test = '1' and Journee.IdPlanning = @IdPlanning
--Mise a jour des UV unitaires des journées Test pour la session spécifiée
update Journee set UVUnitaireJournee = ( SELECT
CASE WHEN SUM(E.UVUnitaire) IS NULL THEN 0
ELSE SUM(E.UVUnitaire)
END
FROM Examen E inner join IT_Journee_Examen IT on E.IdExamen = IT.IDEXAMEN
WHERE Journee.IdJournee = IT.IDJOURNEE)
WHERE Test = '1' and Journee.IdPlanning =@IdPlanning
--Mise a jour des dipos formateur pour le non A définir on en prend toutes journées du formateur dont le format est yyMMdd
update Journee set UVDispoFormateur = ( select 6 - sum(UVUnitaireJournee) from Journee J where CONVERT(varchar, Journee.DateDebut, 12) = CONVERT(varchar, J.DateDebut, 12) and Journee.Test = '1' and Journee.IdFormateur = J.IdFormateur) WHERE Test = '1' AND IdEntreprise=@IdEnt and IdFormateur <> -1 AND CONVERT(varchar, DateDebut, 12) >= @DateJourneeDeb AND CONVERT(varchar, DateDebut, 12) <= @DateJourneeFin
--Mise a jour des dipos formateur pour le A définir on en prend que la journée
update Journee set UVDispoFormateur = ( select 6 - sum(UVUnitaireJournee) from Journee J where Journee.IdJournee = J.IdJournee) WHERE Test = '1' AND IdEntreprise=@IdEnt and IdFormateur = -1 AND CONVERT(varchar, DateDebut, 12) >= @DateJourneeDeb AND CONVERT(varchar, DateDebut, 12) <= @DateJourneeFin
END
ELSE
BEGIN
--Mise a jour des UV global des journées Test pour la journée spécifiée
update Journee set UVGlobalJournee = ( select
case
WHEN max(E.UVGlobale) IS NULL THEN 0
ELSE
max(E.UVGlobale)
END
from Examen E inner join IT_Journee_Examen IT on E.IdExamen = IT.IDEXAMEN
WHERE Journee.IdJournee = IT.IDJOURNEE)
WHERE Test = '1' and Journee.IdJournee = @IdJournee
--Mise a jour des UV unitaires des journées Test pour la journée spécifiée
update Journee set UVUnitaireJournee = ( select
case
WHEN SUM(E.UVUnitaire) IS NULL THEN 0
ELSE
SUM(E.UVUnitaire)
END
from Examen E inner join IT_Journee_Examen IT on E.IdExamen = IT.IDEXAMEN
WHERE Journee.IdJournee = IT.IDJOURNEE)
WHERE Test = '1' and Journee.IdJournee =@IdJournee
--Mise a jour des dipos formateur pour le non A définir on en prend toutes journées du formateur dont le format est yyMMdd
update Journee set UVDispoFormateur = ( select 6 - sum(UVUnitaireJournee) from Journee J where Journee.DateDebut = J.DateDebut and Journee.Test = '1' and Journee.IdFormateur = J.IdFormateur) WHERE Test = '1' AND IdEntreprise=@IdEnt and IdFormateur <> -1 AND CONVERT(varchar, DateDebut, 12) = @DateJourneeDeb
--Mise a jour des dipos formateur pour le A définir on en prend que la journée
update Journee set UVDispoFormateur = ( select 6 - sum(UVUnitaireJournee) from Journee J where Journee.DateDebut = J.DateDebut and Journee.Test = '1' and Journee.IdJournee = J.IdJournee) WHERE Test = '1' AND IdEntreprise=@IdEnt and IdFormateur = -1 AND CONVERT(varchar, DateDebut, 12) = @DateJourneeDeb
END
COMMIT TRANSACTION
END |
Partager