Advertisement
piotrek77

PROCEDURE [CDN].[SED_Multiwydruk_ztypem]

Sep 14th, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.40 KB | None | 0 0
  1. /****** Object:  StoredProcedure [CDN].[SED_Multiwydruk_ztypem]    Script Date: 09/14/2012 11:29:17 ******/
  2. SET ANSI_NULLS ON
  3. GO
  4. SET QUOTED_IDENTIFIER ON
  5. GO
  6.  
  7. CREATE  PROCEDURE [CDN].[SED_Multiwydruk_ztypem]  @Filtr varchar(255), @operator varchar(50), @typ integer, @ilosc_dozwolona integer, @tylko_otrzezenie INteger = 0
  8. AS
  9.  
  10. --------------------------------------------------------------------------------------- wyciaganie gidow z filtra
  11. declare @pos1     INT;
  12. declare @pos2     INT;
  13. declare @GIDTyp   SMALLINT ;
  14. declare @GIDNumer INT ;
  15. declare @stop INT;
  16. Set @stop = 0;
  17. SET NOCOUNT ON
  18. SET @pos1 = Patindex('%TrN_GIDTyp=%', @Filtr)+11
  19. SET @pos2 = Patindex('%AND TrN_GIDNumer%', @Filtr)-2
  20. SELECT @GIDTyp = convert(smallint,substring(@filtr,@pos1,@pos2-@pos1+1))
  21.  
  22. Set @pos1 = Patindex('%TrN_GIDNumer=%', @Filtr)+13
  23. Set @pos2 = Patindex('%)%', @Filtr)-1
  24. if @pos2<0 SET @pos2=len(@Filtr)
  25. select @GIDNumer = convert(int,substring(@filtr,@pos1,@pos2-@pos1+1))
  26.  
  27. ---------------------------------------------------------------------------------------- wyciaganie gida opera
  28. declare @OpeNumer INT
  29. SELECT @OpeNumer = Ope_GIDNumer FROM CDN.OpeKarty
  30. WHERE Ope_Nazwisko = @Operator;
  31.  
  32. -------------- czy Oper ma multiwydruk='tak'
  33. declare  @multiwydruk INT
  34. SELECT @multiwydruk = COUNT(*)
  35. FROM CDN.OpeKarty JOIN
  36. CDN.Atrybuty
  37. ON Ope_GIDNumer=Atr_ObiNumer AND Atr_OBITyp=128
  38. --JOIN CDN.AtrybutyKlasy ON AtK_ID=Atr_AtkId
  39. WHERE ATr_atkId = 20  AND Atr_Wartosc='TAK'
  40. AND Ope_GIDNumer = @OpeNumer
  41.  
  42. --sprawdzenie ile //dany oper// juz wydrukowal egzeplarzy tego dokumentu
  43. If (@multiwydruk=0) AND (@ilosc_dozwolona>-1)
  44. BEGIN
  45. declare @ilosc INT
  46. SELECT @ilosc = COunt(*) FROM CDN.SED_TraNag_Multiwydruk
  47. WHERE
  48. SEDTmw_TrNTyp = @GIDTyp AND SEDTmw_TrNNumer = @GIDNumer AND SEDTMW_Typ = @typ
  49. -- AND SEDTmw_OperNumer = @OpeNumer;
  50. IF (@Ilosc >= @ilosc_dozwolona )
  51.     Begin
  52.        
  53.         If @tylko_otrzezenie = 0
  54.         Begin
  55.         Set @Stop = 1
  56.         RAISERROR('#CDN_INFO/#
  57. #CDN_1=Ten dokument już raz drukowałeś!!!/#
  58. #CDN_2=/#
  59. #CDN_3=/#', 16, 1)
  60.         --RAISERROR ('Ten dokument już raz drukowałeś!!!', 16, 1)
  61.         ROLLBACK TRANSACTION
  62.         END
  63.         --ELSE PRINT N'dfrtg'
  64.  
  65.     End
  66. END
  67.  
  68. IF (@multiwydruk>0) OR (@Ilosc=0) or (1=1) AND (@Stop = 0)
  69. BEGIN
  70. INSERT INTO CDN.SED_TraNag_Multiwydruk (SedTMW_TrNTyp,SedTMW_TrNNumer,SedTMW_Data, SedTMW_Oper, SedTMW_OperNumer, SedTMW_Typ)
  71. VALUES ( @GIDTyp, @GIDNumer, getdate(), @operator, @OpeNumer, @Typ )
  72. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement