Advertisement
piotrek77

cdn.BstElem_InsertTrigger_SEDKOMP

Aug 28th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.87 KB | None | 0 0
  1.  
  2. /****** Object:  Trigger [CDN].[BstElem_InsertTrigger_SEDKOMP]    Script Date: 09/07/2012 13:29:59 ******/
  3. SET ANSI_NULLS ON
  4. GO
  5. SET QUOTED_IDENTIFIER ON
  6. GO
  7. -- =============================================
  8. -- Author:      Piotr Oslowski (SEDKOMP)
  9. -- Create date: 2012-08-28
  10. -- Description: TESTY
  11. -- =============================================
  12. ALTER TRIGGER [CDN].[BstElem_InsertTrigger_SEDKOMP]
  13.    ON  [CDN].[BstElem]
  14.    AFTER --INSERT,
  15.    UPDATE
  16. AS
  17. BEGIN
  18.     -- SET NOCOUNT ON added to prevent extra result sets from
  19.     -- interfering with SELECT statements.
  20.     SET NOCOUNT ON;
  21.  
  22.     -- Insert statements for trigger here
  23.  
  24.  
  25.     DECLARE @BsnId INT
  26.     DECLARE @TwrId INT
  27.     DECLARE @MagId INT
  28.    
  29.     DECLARE @IloscMin DECIMAL(11,4)
  30.     DECLARE @IloscMax DECIMAL(11,4)
  31.     DECLARE @IloscZam DECIMAL(11,4)
  32.    
  33.     DECLARE @Stan DECIMAL(11,4)
  34.    
  35.     declare @Ilosc decimal(11,4)
  36.     declare @IloscOry decimal(11,4)
  37.  
  38.    
  39.     DECLARE kursor CURSOR FORWARD_ONLY FOR
  40.     SELECT BsE_BsNID, BsE_TwrNumer, BsE_DoZamowienia FROM INSERTED
  41.     WHERE BsESED_triggerFlaga is NULL
  42.    
  43.     OPEN kursor
  44.     FETCH NEXT FROM kursor INTO @BsnId, @TwrId, @IloscOry
  45.     While @@FETCH_STATUS = 0
  46.         Begin
  47.        
  48.         --czytamy magazyn z nagłówka
  49.         --UWAGA!!! bierzemy tylko jeden magazyn!!!
  50.         SELECT TOP 1 @MagId = BsM_MagNumer FROM CDN.BstMagazyny WHERE BsM_BsNID = @BsnId AND BsM_MagTyp = 208 ORDER BY BsM_MagNumer
  51.        
  52.         SET @IloscMax = 0
  53.         SET @IloscMin = 0
  54.         SET @IloscZam = 0
  55.        
  56.         SELECT @IloscMax = Tpm_IloscMax, @IloscMin = Tpm_IloscMin, @IloscZam = Tpm_IloscZam FROM cdn.TwrParMag WHERE @TwrId = Tpm_TwrNumer AND @MagId = Tpm_MagNumer
  57.        
  58.         SET @IloscMax = IsNull(@IloscMax,0)
  59.         SET @IloscMin = IsNUll(@IloscMin,0)
  60.         SET @IloscZam = IsNull(@IloscZam,0)
  61.        
  62.         if @IloscZam = 0 BEGIN SET @IloscZam = 1 END
  63.        
  64.         SET @Stan = @IloscOry --[CDN].[sed_WezStanTowaru3](@MagId, @TwrId)
  65.        
  66.         SET @Stan = IsNull(@Stan,0)
  67.        
  68.         SET @Ilosc = @stan
  69.         -- stan <= iloscmin
  70.        
  71.        
  72.        
  73.         --If (@Ilosc < @Iloscmax) AND (@IloscMax>@IloscMin) AND (@Ilosc>0)
  74.         If (@IloscMax>@IloscMin) AND (@Ilosc>0)
  75.             Begin
  76.            
  77.             --SET @Ilosc = @Stan + @IloscMax - @IloscMin
  78.             --If (@Ilosc % @IloscZam) <> 0
  79.             --  Begin
  80.             --  SET @Ilosc = @Ilosc + (@IloscZam - @Ilosc % @IloscZam)
  81.             --  End
  82.    
  83.    
  84.             --Krok 1
  85.             SET @Ilosc = @Ilosc + @IloscMax - @IloscMin
  86.            
  87.             --Krok 2
  88.            
  89.             if (@Ilosc % @IloscZam <> 0)
  90.             Begin
  91.                 SET @Ilosc = (Floor(@Ilosc / @IloscZam)+1) * @IloscZam
  92.             END
  93.  
  94.            
  95.  
  96.            
  97.             UPDATE CDN.BstElem SET BsE_DoZamowienia = @Ilosc, BsESED_triggerFlaga = 1 WHERE BsE_BsNID = @BsnId AND BsE_TwrNumer = @TwrId
  98.            
  99.            
  100.             End
  101.        
  102.         --If @Stan >= @IloscMin
  103.         --  Begin
  104.         --      SET @Ilosc = @Ilosc --0
  105.         --  End
  106.        
  107.        
  108.        
  109.        
  110.        
  111.         --UPDATE CDN.BstElem SET BsE_DoZamowienia = @Ilosc WHERE BsE_BsNID = @BsnId AND
  112.         --BsE_TwrNumer = @TwrId
  113.  
  114.  
  115.         FETCH NEXT FROM kursor INTO @BsnId, @TwrId, @IloscOry
  116.        
  117.         END
  118.     Close kursor
  119.     DEALLOCATE kursor
  120. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement