CREATE PROCEDURE [dbo].[sp_StokIslemleriListesi] @tarih1 varchar(20), @tarih2 varchar(20), @dep varchar(500), @orderby int, @arama varchar(100), @GosterilecekKayit int, @IslemTuru varchar(20), @Durumu int, @IslemTipi varchar(30) AS declare @str varchar(1000) declare @rc int declare @tmp table (trc int) set @str='select count(*) from (select IslemNo from STOKHARDETBAG where FI = ''E'' and TP=''TF'' AND FaturaTarihi >='''+ @Tarih1+ ''' and FaturaTarihi <= '''+@Tarih2+''''; if @dep <> '' set @str=@str+' and Departman in ('+@Dep+')' if @IslemTuru <> 'Tümü' set @str=@str+' and IslemTuru = '''+@IslemTuru+'''' if @IslemTipi <> 'Tümü' and @IslemTipi <> '' set @str=@str+' and IslemTipi like ''%'+@IslemTipi+'%''' if @Durumu = 1 set @str=@str+' and IslemTuru in (''Alış'',''Alış İade'',''Satış'',''Satış İade'') and FisTuru = ''I'' ' --and FaturaNo = 0 Açıklar if @Durumu = 2 set @str=@str+' and not(IslemTuru in (''Alış'',''Alış İade'',''Satış'',''Satış İade'') and FisTuru = ''I'') ' --Kapalılar if @Durumu = 3 set @str=@str+' and FisTuru > ''2''' --Stokİşlemi değilse if @orderby=0 set @str=@str+'and IslemNo like ''%'+@arama+'%'' ' if @orderby=1 set @str=@str+'and upper(CariAdi) like upper(''%'+@arama+'%'') ' if @orderby=2 set @str=@str+'and upper(FaturaNo) like upper(''%'+@arama+'%'') ' if @orderby=3 set @str=@str+'and upper(SiparisTarihi) like upper(''%'+@arama+'%'') ' if @orderby=4 set @str=@str+'and upper(IrsNo) like upper(''%'+@arama+'%'') ' if @orderby=5 set @str=@str+'and upper(IslemNo) like upper(''%'+@arama+'%'') ' set @str=@str+')Y'; --print @str insert @tmp exec(@str) select @rc = trc from @tmp; declare @tstr varchar(100); if @orderby=0 set @tstr='IslemNo' if @orderby=1 set @tstr='CariAdi' if @orderby=2 set @tstr='FaturaNo' if @orderby=3 set @tstr='SiparisTarihi' if @orderby=4 set @tstr='IrsNo' if @orderby=5 set @tstr='IslemNo' set @str='select * from STOKHARDETBAG '+ 'where IslemNo in (select X.IslemNo '+ 'from (select ROW_NUMBER() over (order by '+@tstr+') as sira, IslemNo '+ 'from STOKHARDETBAG where FaturaTarihi >='''+@Tarih1+''' and FaturaTarihi <= '''+@Tarih2+''''; if @dep <> '' set @str=@str+' and Departman in ('+@Dep+')' if @IslemTuru <> 'Tümü' set @str=@str+' and IslemTuru = '''+@IslemTuru+'''' if @IslemTipi <> 'Tümü' and @IslemTipi <> '' set @str=@str+' and IslemTipi = '''+@IslemTipi+'''' if @Durumu = 1 set @str=@str+' and IslemTuru in (''Alış'',''Alış İade'',''Satış'',''Satış İade'') and FisTuru = ''I'' ' --Açıklar if @Durumu = 2 set @str=@str+' and not(IslemTuru in (''Alış'',''Alış İade'',''Satış'',''Satış İade'') and FisTuru = ''I'') ' --Kapalılar if @Durumu = 3 set @str=@str+' and FisTuru > ''2''' --Stokİşlemi değilse if @orderby=0 set @str=@str+'and IslemNo like ''%'+@arama+'%'' ' if @orderby=1 set @str=@str+'and upper(CariAdi) like upper(''%'+@arama+'%'') ' if @orderby=2 set @str=@str+'and upper(FaturaNo) like upper(''%'+@arama+'%'') ' if @orderby=3 set @str=@str+'and upper(SiparisTarihi) like upper(''%'+@arama+'%'') ' if @orderby=4 set @str=@str+'and upper(IrsNo) like upper(''%'+@arama+'%'') ' if @orderby=5 set @str=@str+'and upper(IslemNo) like upper(''%'+@arama+'%'') ' set @str=@str+')X where X.sira >'+convert(varchar,@rc - @GosterilecekKayit) +') order by '; if @orderby=0 set @str=@str+'IslemNo' if @orderby=1 set @str=@str+'CariAdi' if @orderby=2 set @str=@str+'FaturaNo' if @orderby=3 set @str=@str+'SiparisTarihi' if @orderby=4 set @str=@str+'IrsNo' if @orderby=5 set @str=@str+'IslemNo' --print @str exec(@str)