$1 FUNCTION [dbo].[fn_CharMaxSira] (
@seri nvarchar(10), 
@evraktip tinyint,
@iade tinyint,
@carikodu  nvarchar(50),
@varsayilancarimi bit, 
@tarih DateTime , 
@magaza nvarchar(10) ,
@firmakodu nvarchar(10),
@donemkodu nvarchar(10)
)
RETURNS INT
AS
BEGIN
DECLARE @VAL As INT, 
	@tarihSaatsiz datetime,
	@sth_evraktip tinyint,
	@sth_tip tinyint,
	@sth_cins tinyint ,
	@sth_normal_iade tinyint
	if @evraktip=63
	begin
		set @sth_evraktip =4
		set @sth_tip=1
	end
	if @iade=0
		begin
			set @sth_cins=1
		end
	else
		begin
			set @sth_cins=0
		end

	set @sth_normal_iade=@iade 
	set @tarihSaatsiz=convert(varchar, @tarih, 23)
if @varsayilancarimi =1
begin
   if @evraktip=1 or @evraktip =64 --tahsilat veya tediyeyse 
   begin
    if exists(SELECT  *  FROM CARI_HESAP_HAREKETLERI  WITH(NOLOCK) WHERE (cha_evrakno_seri = @seri) AND (cha_evrak_tip = @evraktip) and cha_belge_tarih=@tarihSaatsiz and cha_kod =@carikodu  )
			begin
				SELECT  top 1    @VAL= cha_evrakno_sira  FROM CARI_HESAP_HAREKETLERI WITH(NOLOCK) WHERE (cha_evrakno_seri = @seri) AND (cha_evrak_tip = @evraktip) and cha_belge_tarih=@tarihSaatsiz and cha_kod =@carikodu 
			end
		else
			begin
				SELECT  @VAL= (isnull(max(cha_evrakno_sira),0)+1)  FROM CARI_HESAP_HAREKETLERI WITH(NOLOCK) WHERE     (cha_evrakno_seri = @seri)AND (cha_evrak_tip = @evraktip) 
			end 
   end
   else
   begin
		if exists(SELECT     sth_evrakno_seri  FROM STOK_HAREKETLERI  WITH(NOLOCK) WHERE     (sth_evrakno_seri = @seri) AND (sth_evraktip = @sth_evraktip) AND (sth_tip=@sth_tip) AND (sth_cins=@sth_cins)and (sth_normal_iade=@sth_normal_iade) and sth_belge_tarih=@tarihSaatsiz and sth_cari_kodu=@carikodu )
			begin
				SELECT  top 1    @VAL= sth_evrakno_sira  FROM STOK_HAREKETLERI WITH(NOLOCK) WHERE     (sth_evrakno_seri = @seri) AND (sth_evraktip = @sth_evraktip) AND (sth_tip=@sth_tip) AND (sth_cins=@sth_cins)and (sth_normal_iade=@sth_normal_iade) and sth_belge_tarih=@tarihSaatsiz and sth_cari_kodu=@carikodu 
			end
		else
			begin
				  SELECT  @VAL= (isnull(max(sth_evrakno_sira),0)+1)  FROM STOK_HAREKETLERI WITH(NOLOCK) WHERE     (sth_evrakno_seri = @seri)AND (sth_evraktip = @sth_evraktip) AND (sth_tip=@sth_tip) AND (sth_cins=@sth_cins)and (sth_normal_iade=@sth_normal_iade) 
			end
	end
end
else
begin
 if @evraktip=1 or @evraktip =64 --tahsilat veya tediyeyse 
   begin
      SELECT  @VAL= (isnull(max(cha_evrakno_sira),0)+1)  FROM CARI_HESAP_HAREKETLERI WITH(NOLOCK) WHERE     (cha_evrakno_seri = @seri)AND (cha_evrak_tip = @evraktip) 
   end
   else
	   begin
   		  SELECT  @VAL= (isnull(max(sth_evrakno_sira),0)+1)  FROM STOK_HAREKETLERI WITH(NOLOCK) WHERE     (sth_evrakno_seri = @seri)AND (sth_evraktip = @sth_evraktip) AND (sth_tip=@sth_tip) AND (sth_cins=@sth_cins)and (sth_normal_iade=@sth_normal_iade) 
	  end
end

RETURN @VAL
END

