  
  
CREATE or alter PROCEDURE [dbo].[spOdemeYaz]   
 @IslemNo int,@Tarih datetime,@Tutar float,  
 @Aciklama nvarchar(15), @Durum nvarchar(1),  
 @CariNo int,@CariKodu nvarchar(20),  
 @Borc float,@Alacak float,@NoNo int,  
 @KULNO int,@BAAcikla nvarchar (15) ,@Departman nvarchar(8),  
 @KayitDuzeyi int,@SiraNo int,   
 @Modul nvarchar(3)  
AS  
INSERT Odeme (IslemNo, Tarih, Tutar, Aciklama, Durum, CariNo,  
 CariKodu,  Borc, Alacak,  NoNo, KULNO,BAAcikla, Departman,  
 KayitDuzeyi, SiraNo, Modul) 
VALUES (@IslemNo, @Tarih, @Tutar, @Aciklama, @Durum, @CariNo,  
 @CariKodu,  @Borc, @Alacak,  @NoNo, @KULNO,@BAAcikla, @Departman,  
 @KayitDuzeyi, @SiraNo, @Modul)  
  go
  alter table KullaniciVarsayilanRaporlari drop column Yazici
 go
create or alter  view [dbo].[KullanicilarVarsayilan_TipRapor]   
AS  
 select Kul.[No] as [KulNo],  
  Tip.Ad  as [Tip],  
  Rap.RaporIsmi as [Rapor],  
  Rap.Onizleme,Rap.RaporNo as RaporNo,Tip.TipNo as TipNo,  
  convert(bit,(select case COUNT(*) when 0 then 0 else 1 end from dbo.splitstring(Rap.RaporSecimEkraniOnIzleme,',') where Name=Kul.No )) as RaporSecimEkraniOnIzleme,  
  Rap.Yazici  
 from Kullanicilar as Kul  
  cross join RaporTipTanimlari as Tip  
  left outer join KullaniciVarsayilanRaporlari as K on Tip.TipNo=K.TipNo and Kul.[No] = K.KullaniciNo  
  left outer join Rapor as Rap on K.RaporNo = Rap.RaporNo  
go

update KullaniciVarsayilanRaporlari set   RaporSecimOnIzleme='1' 
update KullaniciVarsayilanRaporlari set OnIzleme='1'
update KullaniciVarsayilanRaporlari set OnIzleme=1 , RaporSecimOnIzleme=1
UPDATE Rapor SET Varsayilanmi='Hayır' ,VarsayilanRaporKullNo = null
update RaporTipTanimlari  set  Ad=(select top 1 Ad from Ent_SBSNET18.dbo.RaporTipTanimlari R where R.TipNo=RaporTipTanimlari.TipNo )

go
ALTER TABLE STOKHARDETBAG ADD EF_ISTISNA INT
go

ALTER TABLE Buton ADD StokNo INT
go

alter table ACIKLAMA alter column ACIKLAMA1 nvarchar(200)
alter table ACIKLAMA alter column ACIKLAMA2 nvarchar(200)
alter table ACIKLAMA alter column ACIKLAMA3 nvarchar(200)

alter table ACARI alter column Aciklama2 nvarchar(200)
alter table AcariTakas alter column Aciklama2 nvarchar(200)
 
alter table STOKHARDETBAG alter column Ack1 nvarchar(200)
alter table STOKHARDETBAG alter column Ack2 nvarchar(200)
alter table STOKHARDETBAG alter column Ack3 nvarchar(200)
alter table STOKHARDETBAG alter column Ack4 nvarchar(200)
go

CREATE or alter VIEW [dbo].[VRUT]  
AS  
SELECT        dbo.Rut.NoId, dbo.Rut.CariKodu,dbo.AMUSTERI.MUSNO CariNo ,dbo.AMUSTERI.MUSADI AS CariAdi, dbo.Rut.RutAdi, dbo.GRUP.Deger, dbo.Rut.RutSirasi, dbo.Rut.SaticiKodu, dbo.Rut.SaticiAdi  
FROM            dbo.Rut LEFT OUTER JOIN  
                         dbo.AMUSTERI ON dbo.Rut.CariKodu = dbo.AMUSTERI.MUSKOD LEFT OUTER JOIN  
                         dbo.GRUP ON dbo.Rut.RutAdi = dbo.GRUP.GrupAdi  
WHERE        (dbo.GRUP.Turu = N'R')  
go
update Buton set Buton.StokNo=STOKKARTI.StokNo from   Buton inner join STOKKARTI on STOKKARTI.Barkodu=Buton.ButonDegeri
 AND (Buton.ButonDegeri IS NOT NULL) AND (Buton.ButonDegeri <> '')
go


declare @CNTNAME NVARCHAR(100),@SQL NVARCHAR(MAX)
select @CNTNAME=name from sys.default_constraints where name like 'DF__STOKHARDE__Tevki_%'
SET @SQL='ALTER TABLE [dbo].[STOKHARDETBAG] DROP CONSTRAINT ['+ CONVERT(VARCHAR(100),@CNTNAME)+']'
EXEC(@SQL)
GO
declare @CNTNAME NVARCHAR(100),@SQL NVARCHAR(MAX)
select @CNTNAME=name from sys.default_constraints where name like 'DF__STOKHARDE__Tevki_%'
SET @SQL='ALTER TABLE [dbo].[STOKHARDETBAG] DROP CONSTRAINT ['+ CONVERT(VARCHAR(100),@CNTNAME)+']'
EXEC(@SQL)
GO
CREATE or ALTER  PROCEDURE [dbo].[sp_FaturaIslemleriListesi]                                    
  @tarih1 varchar(20),                                     
  @tarih2 varchar(20),                                    
  @dep varchar(500),                                    
  @orderby int,                                    
  @arama varchar(100),                                    
  @GosterilecekKayit int,                                    
  @IslemTuru varchar(20),                                    
  @Durumu int,                        
  @IslemTipi  varchar(30),            
  @FatSerNo  varchar(3),            
  @eFaturaNo  varchar(30),            
  @FaturaTuru varchar(1),
  @IslemNoLike bit = 0  
AS                                    
        
declare @str varchar(1000)                                    
declare @rc int                                     
declare @tmp table (trc int)                                    
declare @ayrac varchar(2)            
declare @peFaturaNo varchar(50)    
if @eFaturaNo<>''    
select @peFaturaNo=UPPER(@eFaturaNo)    
else set @peFaturaNo=''    
set @ayrac='"';            
      
set @str='select count(*) from (select IslemNo from STOKHARDETBAG where FisTuru = ''F'' 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 @arama <> '' 
begin
if @orderby=0 
begin
 if @IslemNoLike = 0
	set @str=@str+'and CAST(IslemNo as nvarchar(20)) = '''+@arama+''' ' 
 else
	set @str=@str+'and IslemNo like ''%'+@arama+'%'' ' 
end;                                  
if @orderby=1                                     
 set @str=@str+'and upper(FaturaNo) like upper('''+@arama+'%'') '                                     
if @orderby=2                                     
 set @str=@str+'and upper(CariAdi) like upper(''%'+@arama+'%'') '                                    
if @orderby=3                                     
 set @str=@str+'and upper(CariKodu) like upper('''+@arama+'%'') '                                     
if @orderby=4                                    
 set @str=@str+'and upper(KULADI) like upper(''%'+@arama+'%'') '                                    
if @orderby=5                                    
 set @str=@str+'and upper(SaticiAdi) like upper(''%'+@arama+'%'') '                         
 if @orderby=6                                    
 set @str=@str+'and upper(eFaturaDurumu) like upper(''%'+@arama+'%'') '                         
if @orderby=7                                    
 set @str=@str+'and upper(YaziciCount) like upper(''%'+@arama+'%'') '                         
if @orderby=8                                    
 set @str=@str+'and upper(FaturaTarihi) like upper(''%'+@arama+'%'') '                         
end;                                
set @str=@str+')Y';                 
                                    
                        
insert @tmp exec(@str)                                    
select @rc = trc from @tmp;           
            
declare @tstr varchar(100);                                  
                                  
if @orderby=0                                    
  set @tstr='IslemNo'                                    
if @orderby=1                                     
 set @tstr='FaturaNo'                                     
if @orderby=2                                     
 set @tstr='CariAdi'                                    
if @orderby=3                                     
 set @tstr='CariKodu'                                     
if @orderby=4                                    
 set @tstr='KULADI'                                    
if @orderby=5                                    
 set @tstr='SaticiAdi'                          
if @orderby=6                                    
 set @tstr='eFaturaDurumu'             
 if @orderby=7                                    
 set @tstr='YaziciCount'             
 if @orderby=8                                    
 set @tstr='FaturaTarihi'             
             
set @str='select '''' as plaka, *, '+                
   'CASE YazarKasaFisNo when 0 then ''TICARIFATURA'' '+                
   'when 1 then ''TEMELFATURA'' '+                
   'when 2 then ''IHRACAT'' else ''TICARIFATURA'' end + '' / ''+ case FaturaTipi  when 0 then ''SATIS'' when 1 then ''TEVKIFAT'' when 2 then ''IADE'' when 3 then ''IHRACKAYITLI'' when 4 then ''ISTISNA'' '+                 
   'when 5 then ''MOBIL'' else ''SATIS'' end FaturaSenaryoTip '+                
   'from STOKHARDETBAG  '+                                    
   'where IslemNo in (select X.IslemNo '+                                    
   'from (select ROW_NUMBER() over (order by '+@tstr+') as sira, IslemNo '+                                    
   'from STOKHARDETBAG where FisTuru = '''+@FaturaTuru+''' and FaturaTarihi >='''+@Tarih1+''' and FaturaTarihi <= '''+@Tarih2+'''';                                    
if @peFaturaNo<>''            
set @str=@str+'and upper(eFaturaNo) like upper(''%'+@peFaturaNo+'%'') '            
            
if @FatSerNo<>''            
set @str=@str+'and Replace(FatSerNo,'''''''','''+@ayrac+''') = '''+@FatSerNo+''' '            
            
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 @arama <> '' 
begin                 
if @orderby=0 
begin
 if @IslemNoLike = 0
	set @str=@str+'and CAST(IslemNo as nvarchar(20)) = '''+@arama+''' ' 
 else
	set @str=@str+'and IslemNo like ''%'+@arama+'%'' ' 
end;                                    
if @orderby=1                                     
 set @str=@str+'and upper(FaturaNo) like upper('''+@arama+'%'') '                                     
if @orderby=2                                     
 set @str=@str+'and upper(CariAdi) like upper(''%'+@arama+'%'') '                                    
if @orderby=3                                     
 set @str=@str+'and upper(CariKodu) like upper('''+@arama+'%'') '                                     
if @orderby=4                                    
 set @str=@str+'and upper(KULADI) like upper(''%'+@arama+'%'') '                                    
if @orderby=5                                    
 set @str=@str+'and upper(SaticiAdi) like upper(''%'+@arama+'%'') '                         
 if @orderby=6                                    
 set @str=@str+'and upper(eFaturaDurumu) like upper(''%'+@arama+'%'') '                         
if @orderby=7                                    
 set @str=@str+'and upper(YaziciCount) like upper(''%'+@arama+'%'') '                         
if @orderby=8                                    
 set @str=@str+'and upper(FaturaTarihi) like upper(''%'+@arama+'%'') '                  
end;                        
               
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+'FaturaNo'                                     
if @orderby=2                                     
 set @str=@str+'CariAdi'                                    
if @orderby=3                                     
 set @str=@str+'CariKodu'                      
if @orderby=4                                    
 set @str=@str+'KULADI'                                    
if @orderby=5                                    
 set @str=@str+'SaticiAdi'                                    
if @orderby=6                                    
 set @str=@str+'eFaturaDurumu'               
if @orderby=7                                 
 set @str=@str+'YaziciCount'               
if @orderby=8                                    
 set @str=@str+'FaturaTarihi'             
                 
         
exec(@str) 

go

create or alter PROCEDURE [dbo].[sp_KasaIslemleriListesi]    
  @tarih1 varchar(20),     
  @tarih2 varchar(20),    
  @dep varchar(5000),    
  @orderby int,    
  @arama varchar(100),    
  @GosterilecekKayit int,    
  @IslemTuru varchar(15),    
  @KasaTuru varchar(1),    
  @KasaKodu varchar(10),
  @IslemNoLike bit = 0  with encryption   
AS  
declare @str nvarchar(max)    
declare @rc int     
declare @tmp table (trc int)    
    
if @IslemTuru <> 'Tümü'    
begin    
 if @IslemTuru = 'Senet Tah.'    
  set @str='select count(*) from (select ISLEMNO from KASA where TARIH >='''+ @Tarih1+''' and TARIH <= '''+@Tarih2+'''';    
 else    
  set @str='select count(*) from (select ISLEMNO from KASA where TARIH >='''+ @Tarih1+''' and TARIH <= '''+@Tarih2+'''';    
end     
else begin    
 set @str='select count(*) from (select ISLEMNO from KASA where TARIH >='''+ @Tarih1+''' and TARIH <= '''+@Tarih2+'''';    
end    
   
if @KasaTuru = 'N'    
 set @str = @str + 'and NakitVisa = ''N''';    
else if @KasaTuru = 'V'    
 set @str = @str + 'and NakitVisa = ''V''';    
else if @KasaTuru = 'a'    
 set @str = @str + 'and NakitVisa <> ''a''';    
    
if @KasaKodu <> ''    
 set @str = @str + 'AND KASAKODU = '''+@KasaKodu+'''';    
    
if @dep <> ''    
 set @str=@str+' AND Departman in ('+@Dep+')'    
    
if @IslemTuru <> 'Tümü'    
BEGIN    
 IF @IslemTuru = 'Senet Tah.'    
  set @str = @str + ' AND (BAACIKLA = '''+@IslemTuru+''') OR (BAACIKLA = ''Senet Tahsil'')'    
 ELSE    
  set @str = @str + ' AND BAACIKLA = '''+@IslemTuru+'''';    
END    
ELSE    
 set @str = @str + ' AND (BAACIKLA <> ''Açılış'') AND (BAACIKLA <> ''Pos Çıkış'') ';    
    
if @arama <> '' 
begin      
	if @orderby=0 
	begin
		if @IslemNoLike = 0
			set @str=@str+'and CAST(ISLEMNO as nvarchar(20)) = '''+@arama+''' ' 
		else
			set @str=@str+'and ISLEMNO like ''%'+@arama+'%'' ' 
	end;  
	if @orderby=1     
	 set @str=@str+'and upper(MUSADI) like upper(''%'+@arama+'%'') '     
	if @orderby=2     
	 set @str=@str+'and upper(MUSKOD) like upper('''+@arama+'%'') '    
	if @orderby=3     
	 set @str=@str+'and upper(IsIstasyonKodu) like upper(''%'+@arama+'%'') '     
	if @orderby=4    
	 set @str=@str+'and upper(IsIstasyonAdi) like upper(''%'+@arama+'%'') '    
	if @orderby=5    
	 set @str=@str+'and upper(KASAKODU) like upper('''+@arama+'%'') '    
	if @orderby=6    
	 set @str=@str+'and upper(KASAADI) like upper('''+@arama+'%'') '    
	if @orderby=7    
	 set @str=@str+'and upper(BelgeNo) like upper('''+@arama+'%'') '    
 end;
set @str=@str+')Y';    
   
insert @tmp exec(@str)    
select @rc = trc from @tmp;    
  
declare @tstr varchar(100);  
  
if @orderby=0    
  set @tstr='ISLEMNO'    
if @orderby=1     
 set @tstr='MUSADI'     
if @orderby=2     
 set @tstr='MUSKOD'    
if @orderby=3     
 set @tstr='IsIstasyonKodu'     
if @orderby=4    
 set @tstr='IsIstasyonAdi'    
if @orderby=5    
 set @tstr='KASAKODU'    
if @orderby=6    
 set @tstr='KASAADI'    
if @orderby=7    
 set @tstr='BelgeNo'   
  
    
set @str='select * from KASA  '+    
   'where ISLEMNO in (select X.ISLEMNO '+    
   'from (select ROW_NUMBER() over (order by '+@tstr+') as sira, ISLEMNO '+    
   'from KASA where TARIH >='''+@Tarih1+''' and TARIH <= '''+@Tarih2+'''';    
    
if @KasaTuru = 'N'    
 set @str = @str + 'and NakitVisa = ''N''';    
else if @KasaTuru = 'V'    
 set @str = @str + 'and NakitVisa = ''V''';    
else if @KasaTuru = 'a'    
 set @str = @str + 'and NakitVisa <> ''a''';    
    
if @KasaKodu <> ''    
 set @str = @str + 'and KASAKODU = '''+@KasaKodu+'''';    
    
if @dep <> ''    
 set @str=@str+' and Departman in ('+@Dep+')'    
if @IslemTuru <> 'Tümü'    
BEGIN    
 IF @IslemTuru = 'Senet Tah.'    
  set @str = @str + ' AND (BAACIKLA = '''+@IslemTuru+''') OR (BAACIKLA = ''Senet Tahsil'')'    
 ELSE    
  set @str = @str + ' AND BAACIKLA = '''+@IslemTuru+'''';    
END    
ELSE    
 set @str = @str + ' AND ((BAACIKLA <> ''Açılış'') AND (BAACIKLA <> ''Pos Çıkış'')) ';    
if @arama <> '' 
begin      
	if @orderby=0 
	begin
		if @IslemNoLike = 0
			set @str=@str+'and CAST(ISLEMNO as nvarchar(20)) = '''+@arama+''' ' 
		else
			set @str=@str+'and ISLEMNO like ''%'+@arama+'%'' ' 
	end;   
	if @orderby=1     
	 set @str=@str+'and upper(MUSADI) like upper(''%'+@arama+'%'') '     
	if @orderby=2     
	 set @str=@str+'and upper(MUSKOD) like upper('''+@arama+'%'') '    
	if @orderby=3     
	 set @str=@str+'and upper(IsIstasyonKodu) like upper(''%'+@arama+'%'') '     
	if @orderby=4    
	 set @str=@str+'and upper(IsIstasyonAdi) like upper(''%'+@arama+'%'') '    
	if @orderby=5    
	 set @str=@str+'and upper(KASAKODU) like upper('''+@arama+'%'') '    
	if @orderby=6    
	 set @str=@str+'and upper(KASAADI) like upper('''+@arama+'%'') '    
	if @orderby=7    
	 set @str=@str+'and upper(BelgeNo) like upper('''+@arama+'%'') '    
end;    
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+'MUSADI'     
if @orderby=2     
 set @str=@str+'MUSKOD'    
if @orderby=3     
 set @str=@str+'IsIstasyonKodu'     
if @orderby=4    
 set @str=@str+'IsIstasyonAdi'    
if @orderby=5    
 set @str=@str+'KASAKODU'    
if @orderby=6    
 set @str=@str+'KASAADI'    
if @orderby=7    
 set @str=@str+'BelgeNo'    

exec(@str)    
go
   
CREATE or ALTER  proc [dbo].[sp_GELGIDH] 
(@tarih1 varchar(20),
@tarih2 varchar(20), 
@dep varchar(500), 
@orderby int, 
@arama varchar(100),
@GosterilecekKayit int,
@IslemTuru varchar(5),
@KarsiHesap varchar(50),
@IslemNoLike bit = 0
)
as      
begin   
      
declare @str varchar(1000)      
declare @rc int       
declare @tmp table (trc int)      
      
set @str='select count(*) from (select ISLEMNO from GELGID where TARIH >='''+ @Tarih1+''' and TARIH <= '''+@Tarih2+'''';      
      
if @dep <> ''      
 set @str=@str+' and Departman in ('+@Dep+')'      
if @IslemTuru <> 'Tümü'      
 set @str=@str+' and BAACIKLA = '''+@IslemTuru+''''      
if @KarsiHesap <> 'Tümü'      
 set @str=@str+' and KarsiHesp = '''+@KarsiHesap+''''    

if @arama <> '' 
begin      
if @orderby=0 
begin
	 if @IslemNoLike = 0
		set @str=@str+'and CAST(ISLEMNO as nvarchar(20)) = '''+@arama+''' ' 
	 else
		set @str=@str+'and ISLEMNO like ''%'+@arama+'%'' ' 
	end;

	if @orderby=1       
	 set @str=@str+'and upper(GELGIDKODU) like upper('''+@arama+'%'') '       
	if @orderby=2       
	 set @str=@str+'and upper(GELGIDADI) like upper(''%'+@arama+'%'') '      
	if @orderby=3       
	 set @str=@str+'and upper(ACIKLAMA) like upper(''%'+@arama+'%'') '       
  
end;

set @str=@str+')Y';      
      
 
insert @tmp exec(@str)      
select @rc = trc from @tmp;       
    
      
set @str='select * from GELGID '+      
   'where ISLEMNO in (select X.ISLEMNO '+      
   'from (select ROW_NUMBER() over (order by ISLEMNO) as sira, ISLEMNO '+      
   'from GELGID where TARIH >='''+@Tarih1+''' and TARIH <= '''+@Tarih2+'''';      
if @dep <> ''      
 set @str=@str+' and Departman in ('+@Dep+')'            
if @IslemTuru <> 'Tümü'      
 set @str=@str+' and BAACIKLA = '''+@IslemTuru+''''  
if @KarsiHesap <> 'Tümü'      
 set @str=@str+' and KarsiHesp = '''+@KarsiHesap+'''' 
 
if @arama <> '' 
begin      
if @orderby=0 
begin
	 if @IslemNoLike = 0
		set @str=@str+'and CAST(ISLEMNO as nvarchar(20)) = '''+@arama+''' ' 
	 else
		set @str=@str+'and ISLEMNO like ''%'+@arama+'%'' ' 
	end;      
if @orderby=1       
 set @str=@str+'and upper(GELGIDKODU) like upper('''+@arama+'%'') '       
if @orderby=2       
 set @str=@str+'and upper(GELGIDADI) like upper(''%'+@arama+'%'') '      
if @orderby=3       
 set @str=@str+'and upper(ACIKLAMA) like upper(''%'+@arama+'%'') '       
     
end;

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+'GELGIDKODU'      
if @orderby=2      
  set @str=@str+'GELGIDADI'      
if @orderby=3      
  set @str=@str+'ACIKLAMA'      

if @orderby=4      
  set @str=@str+'TARIH'      
      
      
exec(@str)      
end;
go
create or alter PROCEDURE sp_BankaIslemListesi           
 @Tarih1 varchar(30),          
 @Tarih2 varchar(30),          
 @Dep1 varchar(500),          
 @Dep2 varchar(500),          
 @OrderBy int,          
 @Arama varchar(100),          
 @IslemTuru varchar(25),            
 @GosterilecekKayit int,
 @IslemNoLike bit = 0 
AS          
BEGIN          
 DECLARE @SQLSTR VARCHAR(2000)          
 declare @rc int             
 declare @tmp table (trc int)           
          
 SET @SQLSTR = 'SELECT count(*) from (SELECT ISLEMNO FROM BANKA WHERE TARIH >='''+ @Tarih1+''' AND TARIH <= '''+@Tarih2+'''';            
          
       
 SET @SQLSTR = @SQLSTR + ' AND (Departman >= '+@dep1+' AND Departman <= '+@dep2+') ';          
        
 IF @IslemTuru <> 'Tümü'           
  SET @SQLSTR = @SQLSTR + ' AND BAACIKLA = '''+@IslemTuru+'''';          
  
if @arama <> '' 
begin      
	if @orderby=0 
	begin
	 if @IslemNoLike = 0
		set @SQLSTR=@SQLSTR+'and CAST(ISLEMNO as nvarchar(20)) = '''+@arama+''' ' 
	 else
		set @SQLSTR=@SQLSTR+'and ISLEMNO like ''%'+@arama+'%'' ' 
	end;
         
	 IF @orderby = 1          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(BANKADI) LIKE UPPER(''%'+@arama+'%'') ';          
	 IF @orderby = 2          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(HESAPNO) LIKE UPPER(''%'+@arama+'%'') ';          
	 IF @orderby = 3          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(ACIKLAMA) LIKE UPPER(''%'+@arama+'%'') ';          
	 IF @orderby = 4          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(TARIH) LIKE UPPER(''%'+@arama+'%'') ';   
end;
  
 SET @SQLSTR = @SQLSTR + ')Y';           
          
  INSERT @tmp exec(@SQLSTR)            
 select @rc = trc from @tmp;          
          
 SET @SQLSTR = 'SELECT * FROM BANKA' +          
      ' WHERE ISLEMNO IN (SELECT X.ISLEMNO FROM (SELECT ROW_NUMBER() OVER (ORDER BY TARIH) AS SIRA,ISLEMNO '+          
      ' FROM BANKA WHERE TARIH >='''+@Tarih1+''' and TARIH <= '''+@Tarih2+'''';            
          
       
 SET @SQLSTR = @SQLSTR + ' AND (Departman >= '+@dep1+' AND Departman <= '+@dep2+') ';          
          
 IF @IslemTuru <> 'Tümü'           
  SET @SQLSTR = @SQLSTR + ' and BAACIKLA = '''+@IslemTuru+'''';          
          
if @arama <> '' 
begin      
	if @orderby=0 
	begin
	 if @IslemNoLike = 0
		set @SQLSTR=@SQLSTR+'and CAST(ISLEMNO as nvarchar(20)) = '''+@arama+''' ' 
	 else
		set @SQLSTR=@SQLSTR+'and ISLEMNO like ''%'+@arama+'%'' ' 
	end; 
	
	 IF @orderby = 1          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(BANKADI) LIKE UPPER(''%'+@arama+'%'') ';          
	 IF @orderby = 2          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(HESAPNO) LIKE UPPER(''%'+@arama+'%'') ';          
	 IF @orderby = 3          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(ACIKLAMA) LIKE UPPER(''%'+@arama+'%'') ';          
	 IF @orderby = 4          
	  SET @SQLSTR = @SQLSTR + ' AND UPPER(TARIH) LIKE UPPER(''%'+@arama+'%'') ';  
end;  
 SET @SQLSTR = @SQLSTR + ')X WHERE X.SIRA>'+convert(varchar,@rc - @GosterilecekKayit) +') ';            
          
SET @SQLSTR = @SQLSTR + ' and BORC+ALACAK > 0.1 ';      
SET @SQLSTR = @SQLSTR + ' and TARIH >='''+@Tarih1+''' and TARIH <= '''+@Tarih2+'''';     
    
SET @SQLSTR = @SQLSTR + 'ORDER BY ';    
    
    
 IF @orderby = 0          
  SET @SQLSTR = @SQLSTR + ' ISLEMNO';          
 IF @orderby = 1          
  SET @SQLSTR = @SQLSTR + ' BANKADI';          
 IF @orderby = 2          
  SET @SQLSTR = @SQLSTR + ' HESAPNO';          
 IF @orderby = 3          
  SET @SQLSTR = @SQLSTR + ' ACIKLAMA';          
 IF @orderby = 4          
  SET @SQLSTR = @SQLSTR + ' TARIH';          
           
 EXEC(@SQLSTR)          
          
END; 
go


  
CREATE function [dbo].[fnBankaPosBilgisiGetir](@Bankasi varchar(150),  
@HesapNo varchar(50), @Gun Float, @KomisyonTutari Float, @KasaPos varchar(100), @Subesi  varchar(100),  
@IslemTuru int)  
returns varchar(500)  
as begin  
declare @Poslar varchar(500)  
declare @posSecilen varchar(100)  
set @Poslar=''  
declare posliste cursor for SELECT case @IslemTuru when 1 then ( KASAKODU +' '+  KASAADI) when 2 then KASAKODU end  
    FROM KASAT as a where a.KasaPos='V' and  
     ( a.Bankasi= @Bankasi and a.HesapNo= @HesapNo and  a.Gun= @Gun and  a.KomisyonTutari= @KomisyonTutari  
  and a.KasaPos= @KasaPos and a.Subesi= @Subesi)  
open posliste  
fetch next from posliste into @posSecilen  
WHILE @@FETCH_STATUS = 0   
BEGIN  
  if @IslemTuru=1  
   begin  
   if @Poslar=''   
       SET @Poslar = @posSecilen   
   else  
    SET @Poslar = @Poslar+ ',' + @posSecilen   
  end else begin  
   if @Poslar=''   
       SET @Poslar =''''+ @posSecilen+''''   
   else  
    SET @Poslar = @Poslar + ','''+ @posSecilen+''''  
  end  
  
  FETCH NEXT FROM posliste INTO @posSecilen  
END  
  
CLOSE posliste  
  
DEALLOCATE posliste  
   
RETURN @Poslar  
end
GO
 


select IslemNo,IslemTuru,FaturaTarihi,StokKodu,StokNo,TevkifatAdi,TevkifatKod,TevkifatOrani,TevkifatTutari into TevkifatSH from STOKHAR
select IslemNo,IslemTuru,FaturaTarihi,TevkifatAdi,TevkifatKod,TevkifatOrani,TevkifatTutari into TevkifatSHD from STOKHARDETBAG
select * from tblTevkifat
select * from Tevkifat
GO



GO

alter table STOKHAR DROP COLUMN TevkifatAdi
GO
alter table STOKHAR DROP COLUMN TevkifatKod
GO
alter table STOKHAR DROP COLUMN TevkifatOrani
GO
alter table STOKHAR DROP COLUMN TevkifatTutari
GO
alter table STOKHARDETBAG DROP COLUMN TevkifatAdi
GO
alter table STOKHARDETBAG DROP COLUMN TevkifatKod
GO
alter table STOKHARDETBAG DROP COLUMN TevkifatOrani
GO
ALTER TABLE tblTevkifat ADD Oran Float

GO

create Table Tevkifat (
  NoId int identity(1,1),
  IslemNo int not null,
  StokNo int not null,
  Kod nvarchar(50) not null,
  TevkifatOrani decimal(18,2) not null,
  TevkifatTutari float not null,
  constraint PK_Tevkifat primary key (NoId)
)

go
UPDATE STOKHAR SET DovizKuru = (CASE WHEN DovizKodu in ('YP', 'TL') or SonTutar = 0 or SonTutarDov = 0 THEN 1 ELSE SonTutar / SonTutarDov END) 
UPDATE STOKHARDETBAG SET DovizKur = (CASE WHEN DovizKodu in ('YP', 'TL') or Tutar = 0 or DovizTut = 0 THEN 1 ELSE Tutar / DovizTut END)
UPDATE ACARI SET DovizKur = 1 where DOVIZKODU in ('YP', 'TL')
UPDATE KASA SET DovizKur = 1 where DovizKodu in ('YP', 'TL')
UPDATE ACARI SET DovizKur = (CASE WHEN BORC >0 AND DovizBorc > 0   THEN BORC / DovizBorc    WHEN ALACAK > 0 and DovizAlacak > 0 THEN ALACAK / DovizAlacak  ELSE 1 END)
UPDATE TEKLIFHAR SET DovizKur = (CASE WHEN DovizKodu in ('YP', 'TL') or SonTutar = 0 or SonTutarDov = 0 THEN 1 ELSE SonTutar / SonTutarDov END) 
UPDATE TEKLIFHARDETBAG SET DovizKur = (CASE WHEN DovizKodu in ('YP', 'TL') or Tutar = 0 or DovizTut = 0 THEN 1 ELSE Tutar / DovizTut END)
UPDATE SIPARISHAR SET DovizKur = (CASE WHEN DovizKodu in ('YP', 'TL') or SonTutar = 0 or SonTutarDov = 0 THEN 1 ELSE SonTutar / SonTutarDov END) 
UPDATE SIPARISHARDETBAG SET DovizKur = (CASE WHEN DovizKodu in ('YP', 'TL') or Tutar = 0 or DovizTut = 0 THEN 1 ELSE Tutar / DovizTut END)
UPDATE KASA SET DovizKur = (CASE WHEN BORC > 0 and DovizBorc > 0   THEN BORC / DovizBorc    WHEN ALACAK > 0 and DovizAlacak > 0 THEN ALACAK / DovizAlacak  ELSE 1 END)
go


create or alter proc spTahsilVadeRaporu @CariNo int 
as
create table #odeme
(
  RecID integer Identity (1, 1) not null, NoId integer, IslemNo integer, Tarih datetime,
  CariNo integer,  IslemTuru nvarchar(20),  Bakiye float,  Borc_Kullanilan float ,  Devreden float,  Borc float,
  Devir float  PRIMARY KEY CLUSTERED  (RecID)
)


Declare @DagitimTutari float
set @DagitimTutari = (select SUM (BORC-ALACAK) from ACARI WHERE MUSNO=@CariNo)

Declare  @NoId integer,  @IslemNo integer,  @Tarih datetime,  @Borc decimal (28, 14),  
		 @Borc_Kullanilan decimal (28, 14),  @Son_Kalan_Tutar float,  @IslemTuru nvarchar(20), @TmpTutar decimal(28, 14)

set @TmpTutar = @DagitimTutari

declare cr_Prepare cursor FAST_FORWARD READ_ONLY for
select   
  odm.NoId,
  odm.IslemNo,
  odm.Tarih,
  odm.CariNo,
  odm.Borc,
  odm.BAAcikla
from Odeme odm
where
   odm.CariNo = @CariNo and
   IsNull (odm.Borc, 0) > 0
order by
  odm.Tarih desc,NoId desc

open cr_Prepare
fetch next from cr_Prepare
into
  @NoId,
  @IslemNo,
  @Tarih,
  @CariNo,
  @Borc,
  @IslemTuru

while (@@FETCH_STATUS = 0) and (@TmpTutar > 0.0)
begin
  if @Borc >= @TmpTutar 
  begin
    set @Borc_Kullanilan = @TmpTutar
	set @Son_Kalan_Tutar = @TmpTutar - @Borc
	set @TmpTutar = 0.0
  end
  else
  begin
    set @TmpTutar = @TmpTutar - @Borc
	set @Borc_Kullanilan = @Borc
	set @Son_Kalan_Tutar = @TmpTutar
  end

  insert into #odeme 
  (
    NoId,
    IslemNo,
    Tarih,
    CariNo,
    Borc,
	Borc_Kullanilan,
	Devreden,
	Bakiye,
	Devir,
	IslemTuru
  )
  values
  (
	@NoId, 
	@IslemNo,
    @Tarih,
    @CariNo,
    @Borc,
	@Borc_Kullanilan,
	@Son_Kalan_Tutar,
	@DagitimTutari,
	@Son_Kalan_Tutar+@Borc,
	@IslemTuru
  )

  fetch next from cr_Prepare
  into
    @NoId,
    @IslemNo,
    @Tarih,
    @CariNo,
    @Borc,
	@IslemTuru
end
  
close cr_Prepare
deallocate cr_Prepare

 
update AMUSTERI SET Kilitli='Kilitli' WHERE MUSNO IN (
select  distinct o.CariNo  from #odeme o
where o.Devir > (select Deger from Parametre  where Param = 'Vadesi Geçen Toplam')
      and CAST(GETDATE() - o.Tarih as int) > (select Deger from Parametre  where Param = 'Vadesi Geçen Kilitlenecek Gün') 
 ) AND Kilitli='Açık'
 
 update AMUSTERI SET  Kilitli='Açık' WHERE MUSNO NOT IN (
select  distinct o.CariNo  from #odeme o
where o.Devir > (select Deger from Parametre  where Param = 'Vadesi Geçen Toplam')
      and CAST(GETDATE() - o.Tarih as int) > (select Deger from Parametre  where Param = 'Vadesi Geçen Kilitlenecek Gün') 
) AND Kilitli='Kilitli'
	  SELECT DISTINCT Kilitli,MUSNO  FROM AMUSTERI WHERE MUSNO=@CariNo

select  o.*,
		CAST(GETDATE() - o.Tarih as int) GecikenGun,
        a.MUSKOD CariKodu,
		a.MUSADI CariAdi,
		d.FaturaNo
 from #odeme o
 inner join  AMUSTERI a on  o.CariNo = a.MUSNO
 left join   STOKHARDETBAG d on o.IslemNo = d.IslemNo

go
 
  
CREATE or alter VIEW [dbo].[VRUT]  
AS  
SELECT        dbo.Rut.NoId, dbo.Rut.CariKodu,dbo.AMUSTERI.MUSNO CariNo ,dbo.AMUSTERI.MUSADI AS CariAdi, dbo.Rut.RutAdi, dbo.GRUP.Deger, dbo.Rut.RutSirasi, dbo.Rut.SaticiKodu, dbo.Rut.SaticiAdi  
FROM            dbo.Rut LEFT OUTER JOIN  
                         dbo.AMUSTERI ON dbo.Rut.CariKodu = dbo.AMUSTERI.MUSKOD LEFT OUTER JOIN  
                         dbo.GRUP ON dbo.Rut.RutAdi = dbo.GRUP.GrupAdi  
WHERE        (dbo.GRUP.Turu = N'R')  

go
     
create  or alter  proc spTahsilVadeRaporu_Rut (@RutAdi nvarchar(max),@RutGunu nvarchar(max),@RutSatici nvarchar(max))  
as    
create table #odeme    
(    
  RecID integer Identity (1, 1) not null, NoId integer, IslemNo integer, Tarih datetime,    
  CariNo integer,  IslemTuru nvarchar(20) COLLATE DATABASE_DEFAULT,  Bakiye float,  Borc_Kullanilan float ,  Devreden float,  Borc float,    
  Devir float  PRIMARY KEY CLUSTERED  (RecID)    
)    
  
DECLARE @CariNo int  
Declare @DagitimTutari float    
Declare @NoId integer,  @IslemNo integer,  @Tarih datetime,  @Borc decimal (28, 14), @Borc_Kullanilan decimal (28, 14),  @Son_Kalan_Tutar float,  @IslemTuru nvarchar(20), @TmpTutar decimal(28, 14)    
  
declare cr_Rut cursor FAST_FORWARD READ_ONLY for    
select  CariNo from [VRUT] where @RutAdi is not null and RutAdi =@RutAdi and Deger = @RutGunu and SaticiAdi = @RutSatici 
union ALL 
select MUSNO from AMUSTERI where MUSBAKIYE > 0.01 and  @RutAdi is null
open cr_Rut    
fetch next from cr_Rut    
into  @CariNo  
while (@@FETCH_STATUS = 0)  
begin  
  
 set @DagitimTutari = (select SUM (BORC-ALACAK) from ACARI WHERE MUSNO=@CariNo)     
 set @TmpTutar = @DagitimTutari    
    
 declare cr_Prepare cursor FAST_FORWARD READ_ONLY for    
 select       
   odm.NoId,    
   odm.IslemNo,    
   odm.Tarih,    
   odm.CariNo,    
   odm.Borc,    
   odm.BAAcikla    
 from Odeme odm    
 where    
    odm.CariNo = @CariNo and    
    IsNull (odm.Borc, 0) > 0    
 order by    
   odm.Tarih desc,NoId desc    
    
 open cr_Prepare    
 fetch next from cr_Prepare    
 into    
   @NoId,    
   @IslemNo,    
   @Tarih,    
   @CariNo,    
   @Borc,    
   @IslemTuru    
    
 while (@@FETCH_STATUS = 0) and (@TmpTutar > 0.0)    
 begin    
   if @Borc >= @TmpTutar     
   begin    
  set @Borc_Kullanilan = @TmpTutar    
  set @Son_Kalan_Tutar = @TmpTutar - @Borc    
  set @TmpTutar = 0.0    
   end    
   else    
   begin    
  set @TmpTutar = @TmpTutar - @Borc    
  set @Borc_Kullanilan = @Borc    
  set @Son_Kalan_Tutar = @TmpTutar    
   end    
    
   insert into #odeme     
   (    
  NoId,    
  IslemNo,    
  Tarih,    
  CariNo,    
  Borc,    
  Borc_Kullanilan,    
  Devreden,    
  Bakiye,    
  Devir,    
  IslemTuru    
   )    
   values    
   (    
  @NoId,     
  @IslemNo,    
  @Tarih,    
  @CariNo,    
  @Borc,    
  @Borc_Kullanilan,    
  @Son_Kalan_Tutar,    
  @DagitimTutari,    
  @Son_Kalan_Tutar+@Borc,    
  @IslemTuru    
   )    
    
   fetch next from cr_Prepare    
   into    
  @NoId,    
  @IslemNo,    
  @Tarih,    
  @CariNo,    
  @Borc,    
  @IslemTuru    
 end    
      
 close cr_Prepare    
 deallocate cr_Prepare     
  
   FETCH NEXT FROM cr_Rut  INTO @CariNo  
end     
close cr_Rut    
deallocate cr_Rut       
  
select    
  RecID,  
  o.NoId,  
  a.MUSNO  [Cari No],    
  a.MUSKOD [Cari Kodu],    
  a.MUSADI [Cari Adı],    
  o.IslemTuru [İşlem Türü],    
  o.IslemNo [İşlem No],    
  c.ACIKLAMA [Açıklama],    
  CONVERT(nvarchar(10),c.TARIH,104)  [İşlem Tarihi],    
  CONVERT(nvarchar(10),o.Tarih,104)  [Vade Tarihi],    
  CAST(GETDATE() - o.Tarih as int) [Geciken Gün],    
  Devreden,  
  o.Borc [Borç],    
  o.Devir,    
  o.Bakiye,    
  d.FatSerNo [Fatura Seri No],    
  d.FaturaNo [Fatura No]    
 from #odeme o    
 inner join  AMUSTERI a on  o.CariNo = a.MUSNO    
 inner join  ACARI    c on c.ISLEMNO = o.IslemNo and c.BAACIKLA = o.IslemTuru   
 left join   STOKHARDETBAG d on o.IslemNo = d.IslemNo    
 Order by a.MUSNO,o.Tarih desc, o.NoId desc  

go
CREATE  or alter PROCEDURE [dbo].[sp_CARIEKSTRE]             
@MUSNO nvarchar(30), @ILKTARIH nvarchar(10),@SONTARIH nvarchar(10),                 
 @KAPALIHAREKET nvarchar(1),@ORTVADESEC nvarchar(1),@ISLEMTIPINEGORE SMALLINT=0,@ISLEMTIPINEGOREBAKIYEGRUPLA SMALLINT=0             
 as               
BEGIN      
      
declare @pIslemTipi nvarchar(250)      
declare @pBAKIYE1 money      
       
       
DECLARE @ACARI TABLE (ROWNUMBER INT,TARIH DATETIME, TESSIRNO INT, MUSNO INT, BAACIKLA nvarchar(14),ACIKLAMA nvarchar(60),                
  ISLEMNO INT,DOVIZTUT float,DOVIZKODU nvarchar(2),OZELKOD nvarchar(3),ISLEMTIPI nvarchar(30),                
  BELGENO nvarchar(10), ACIKLABAKIYE nvarchar(1), TP nvarchar(2), [Ort Vade] DATETIME,SaticiKodu nvarchar(15),                
  SaticiAdi nvarchar(25), KULNO INT,KULADI nvarchar(20), DovizBorc float,                
  DovizAlacak float,Aciklama2 nvarchar(200),                
  SiraNo INT, CARINO INT, MUSKOD nvarchar(20),MUSADI nvarchar(50), IsIstasyonKodu nvarchar(30),                 
  IsIstasyonAdi nvarchar(30), TESLIM nvarchar(200),BORC money, ALACAK money,  FARK money,                 
  BAKIYE money,eFaturaNo varchar(30),eFaturaDurumu varchar(20),eFaturaGonderimTarihi datetime,OdemeBilgisi nvarchar(100))                
DECLARE @BAKIYE money, @IBKY MONEY,@BAKIYE2 money                
SELECT  @IBKY= SUM(BORC-ALACAK)  FROM ACARI WHERE MUSNO=@MUSNO AND TARIH<=@ILKTARIH                
SET @BAKIYE = 0                
IF @IBKY IS NULL                
     SET @IBKY=0        
        
IF @ISLEMTIPINEGORE=1      
BEGIN      
  INSERT INTO @ACARI (ROWNUMBER,TARIH,MUSNO,FARK,BAKIYE,BAACIKLA,ACIKLAMA,ISLEMNO) VALUES (0,@ILKTARIH,@MUSNO,@IBKY,0,'Devir','Hesap Ekstresi Devir Tutarý',1);      
      
INSERT INTO @ACARI      
SELECT ROW_NUMBER() OVER(ORDER BY ISLEMTIPI ASC,TARIH ASC,CARINO ASC) AS ROWNUMBER1,TARIH,TESSIRNO,MUSNO,BAACIKLA, ISNULL(ACIKLAMA, '''') as ACIKLAMA,      
  ISLEMNO,DOVIZTUT,DOVIZKODU,OZELKOD,ISLEMTIPI,       
  ISNULL(BELGENO, '''') as [BELGENO],ACIKLABAKIYE,TP,VadeTarihi as Ort_Vade,SaticiKodu,      
  SaticiAdi, KULNO, KULADI, DovizBorc,       
  DovizAlacak,Aciklama2,      
  SiraNo, CARINO, MUSKOD, MUSADI, IsIstasyonKodu,       
  IsIstasyonAdi,(select TeslimEden + ' - - ' + TeslimAlan from ACIKLAMA where FATURANO = ISLEMNO) as Teslim,      
  BORC money, ALACAK money,(BORC-ALACAK), NULL,       
  (select top 1 A.eFaturaNo  from STOKHARDETBAG as A where A.IslemNo=ACARI.ISLEMNO) eFaturaNo,           
 (select top 1 A.eFaturaDurumu  from STOKHARDETBAG as A where A.IslemNo=ACARI.ISLEMNO) eFaturaDurumu,       
 (select top 1 A.eFaturaGonderimTarihi from STOKHARDETBAG as A where A.IslemNo=ACARI.ISLEMNO) eFaturaGonderimTarihi,    
 (select top 1 OdemeBilgisi from STOKHARDETBAG where IslemNo=ACARI.ISLEMNO ) as OdemeBilgisi     
 FROM ACARI       
 WHERE MUSNO=@MUSNO AND TARIH >@ILKTARIH AND TARIH<@SONTARIH       
 and 1=         
 case  when @KAPALIHAREKET is not null then  case  when AcikKapali <> @KAPALIHAREKET then 1 else 0 end else 1 end        
 ORDER BY ROWNUMBER1 ASC       
      
       
 END       
 ELSE   
 BEGIN      
INSERT INTO @ACARI (ROWNUMBER,TARIH,MUSNO,FARK,BAKIYE,BAACIKLA,ACIKLAMA,ISLEMNO) VALUES (0,@ILKTARIH,@MUSNO,@IBKY,0,'Devir','Hesap Ekstresi Devir Tutarý',1)      
 INSERT INTO @ACARI       
 SELECT ROW_NUMBER() OVER(ORDER BY  TARIH ASC,CARINO ASC) AS ROWNUMBER,TARIH,TESSIRNO,MUSNO,BAACIKLA, ISNULL(ACIKLAMA, '''') as ACIKLAMA,      
  ISLEMNO,DOVIZTUT,DOVIZKODU,OZELKOD,ISLEMTIPI,       
  ISNULL(BELGENO, '''') as [BELGENO],ACIKLABAKIYE,TP,VadeTarihi as [Ort Vade],SaticiKodu,      
  SaticiAdi, KULNO, KULADI, DovizBorc,       
  DovizAlacak,Aciklama2,      
  SiraNo, CARINO, MUSKOD, MUSADI, IsIstasyonKodu,       
  IsIstasyonAdi,(select TeslimEden + ' - - ' + TeslimAlan from ACIKLAMA where FATURANO = ISLEMNO) as Teslim,      
  BORC money, ALACAK money,(BORC-ALACAK), NULL,       
  (select top 1 A.eFaturaNo  from STOKHARDETBAG as A where A.IslemNo=ACARI.ISLEMNO) eFaturaNo,           
 (select top 1 A.eFaturaDurumu  from STOKHARDETBAG as A where A.IslemNo=ACARI.ISLEMNO) eFaturaDurumu,       
 (select top 1 A.eFaturaGonderimTarihi from STOKHARDETBAG as A where A.IslemNo=ACARI.ISLEMNO) eFaturaGonderimTarihi,    
 (select top 1 OdemeBilgisi from STOKHARDETBAG where IslemNo=ACARI.ISLEMNO ) as OdemeBilgisi     
 FROM ACARI       
 WHERE MUSNO=@MUSNO AND TARIH >@ILKTARIH AND TARIH<@SONTARIH       
 and 1=         
 case  when @KAPALIHAREKET is not null then  case  when AcikKapali <> @KAPALIHAREKET then 1 else 0 end else 1 end        
 ORDER BY ROWNUMBER ASC       
      
 END      
      
END        
  
declare @ROWNUMBER INT      
declare @IslemTipi1 varchar(250)      
      
declare AcariCursor cursor       
for Select ROWNUMBER,ISLEMTIPI FROM  @ACARI ORDER BY ROWNUMBER ASC       
FOR UPDATE OF BAKIYE OPEN AcariCursor      
FETCH NEXT FROM AcariCursor INTO @ROWNUMBER,@IslemTipi1      
WHILE @@FETCH_STATUS=0      
BEGIN       
      
IF @ISLEMTIPINEGORE=0       
BEGIN      
 SET @BAKIYE2=(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER<=@ROWNUMBER )      
 UPDATE TOP(1) @ACARI SET BAKIYE=@BAKIYE2 WHERE ROWNUMBER=@ROWNUMBER      
      
end  else      
begin      
      
if @ROWNUMBER=0      
 set @pIslemTipi=@IslemTipi1;      
      
   if @pIslemTipi=@IslemTipi1      
   begin      
    SET @BAKIYE2=(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER<=@ROWNUMBER and ISLEMTIPI=@pIslemTipi)      
    UPDATE TOP(1) @ACARI SET BAKIYE=@BAKIYE2 WHERE ROWNUMBER=@ROWNUMBER      
   end      
   else       
   begin      
    set @pIslemTipi=@IslemTipi1;      
    SET @BAKIYE2=(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER<=@ROWNUMBER and ISLEMTIPI=@pIslemTipi)      
    UPDATE TOP(1) @ACARI SET BAKIYE=@BAKIYE2 WHERE ROWNUMBER=@ROWNUMBER      
   end      
end      
      
 FETCH NEXT FROM AcariCursor INTO @ROWNUMBER,@IslemTipi1      
END      
CLOSE AcariCursor       
DEALLOCATE AcariCursor      
      
if @ISLEMTIPINEGOREBAKIYEGRUPLA=0      
SELECT  * FROM @ACARI  ORDER BY ROWNUMBER      
else      
SELECT  ISLEMTIPI,sum(BORC) as BORC,sum(ALACAK) as ALACAK,sum(BORC-ALACAK) as BAKIYE FROM @ACARI      
where ISLEMTIPI is not null and MUSNO=@MUSNO  GROUP BY ISLEMTIPI      
      
go
  create or alter PROCEDURE [dbo].[sp_CARIEKSTRE_UST]          
      
@MUSNO int, @ILKTARIH nvarchar(10),@SONTARIH nvarchar(10),                 
 @KAPALIHAREKET nvarchar(1),@ORTVADESEC nvarchar(1),        
 @ISLEMTIPINEGORE SMALLINT=0,@ISLEMTIPINEGOREBAKIYEGRUPLA SMALLINT=0,@P1IslemTipi nvarchar(250)=''         
       
AS             
BEGIN         
 declare @ParamIslemTipi nvarchar(250)      
 declare @pIslemTipi nvarchar(250) declare @pBAKIYE1 money        
 set @ParamIslemTipi= @P1IslemTipi;      
      
      
      
DECLARE @ACARI TABLE (ROWNUMBER INT,          
TARIH DATETIME,           
TESSIRNO INT,           
MUSNO INT,           
BAACIKLA nvarchar(14),          
ACIKLAMA nvarchar(900),                
  ISLEMNO INT,          
  DOVIZTUT float,          
  DOVIZKODU nvarchar(2),          
  OZELKOD nvarchar(5),          
  ISLEMTIPI nvarchar(250),                
  BELGENO nvarchar(10),           
  ACIKLABAKIYE nvarchar(1),          
  TP nvarchar(2),           
  [Ort Vade] DATETIME,          
  SaticiKodu nvarchar(30),             
  SaticiAdi nvarchar(25),           
  KULNO INT,          
  KULADI nvarchar(20),           
  DovizBorc float,                
  DovizAlacak float,          
  Aciklama2 nvarchar(200),                
  SiraNo INT,           
  CARINO INT,           
  MUSKOD nvarchar(20),          
  MUSADI nvarchar(50),           
  IsIstasyonKodu nvarchar(30),                 
  IsIstasyonAdi nvarchar(30),           
  TESLIM nvarchar(90),          
  BORC money,           
  ALACAK money,            
  FARK money,                 
  BAKIYE money ,          
  TTarihi DATETIME,          
  ISLEMNO3 int,          
  NoID int identity(1,1),          
  BA nvarchar(5),                
  AcikKapali nvarchar(20),          
  VardiyaKodu nvarchar(15),         
  Departman nvarchar(15),          
  IslemNo2 int,                
  VadeTarihi datetime,          
  DOVIZCINSI int,NEWROWNUMBER INT)             
               
  declare @Musteri table (MusteriNo decimal,UstMusteriNo decimal)                
  update ACARI SET AcikKapali='A' WHERE AcikKapali <>'K' and MUSNO = @MUSNO  
  insert into @Musteri                
  select distinct MUSNO,UstCariNo from AMUSTERI where UstCariNo=@MUSNO                
                
DECLARE @BAKIYE money, @IBKY MONEY               
                 
SET @BAKIYE = 0                
IF @IBKY IS NULL                
     SET @IBKY=0                
 if isnull(@ParamIslemTipi,'')<>''      
 begin      
       
 INSERT INTO @ACARI (ROWNUMBER,TARIH,MUSNO,FARK,BAKIYE,BAACIKLA,ACIKLAMA,ISLEMNO)                
 select 0,@ILKTARIH,M.UstMusteriNo,SUM(BORC-ALACAK),@BAKIYE,'Devir','Hesap Ekstresi Devir Tutarý',1                
  from @Musteri M                
  left JOIN  ACARI A ON M.MusteriNo=A.MUSNO AND A.TARIH<=@ILKTARIH        
   and A.ISLEMTIPI=@ParamIslemTipi      
    group by M.UstMusteriNo          
 end else      
 begin      
  IF @ISLEMTIPINEGORE=1 BEGIN        
       
 INSERT INTO @ACARI (ROWNUMBER,TARIH,MUSNO,FARK,BAKIYE,BAACIKLA,ACIKLAMA,ISLEMNO,ISLEMTIPI)                
 select 0 as ROWNUMBER,@ILKTARIH,M.UstMusteriNo,SUM(isnull(BORC,0)-isnull(ALACAK,0)),@BAKIYE,'Devir','Hesap Ekstresi Devir Tutarý',1,convert(varchar(250),A.ISLEMTIPI) as ISLEMTIPI                 
  from @Musteri M                
  left JOIN  ACARI A ON M.MusteriNo=A.MUSNO AND A.TARIH<=@ILKTARIH       
    group by M.UstMusteriNo,A.ISLEMTIPI         
      
  end else      
  begin      
  INSERT INTO @ACARI (ROWNUMBER,TARIH,MUSNO,FARK,BAKIYE,BAACIKLA,ACIKLAMA,ISLEMNO)                
 select 0 as ROWNUMBER,@ILKTARIH,M.UstMusteriNo,SUM(BORC-ALACAK),@BAKIYE,'Devir','Hesap Ekstresi Devir Tutarý',1                
  from @Musteri M                
  left JOIN  ACARI A ON M.MusteriNo=A.MUSNO AND A.TARIH<=@ILKTARIH       
    group by M.UstMusteriNo         
end          
end      
                  
     
        
   IF @ISLEMTIPINEGORE=1 BEGIN         if isnull(@ParamIslemTipi,'')<>''      
 begin      
 INSERT INTO @ACARI                
 SELECT ROW_NUMBER() OVER(ORDER BY ISLEMTIPI ASC,TARIH ASC,CARINO ASC) AS ROWNUMBER1,TARIH,TESSIRNO,MUSNO,BAACIKLA, ISNULL(ACIKLAMA, '''') as ACIKLAMA,                
  ISLEMNO,DOVIZTUT,DOVIZKODU,OZELKOD,ISLEMTIPI,             
  ISNULL(BELGENO, '''') as [BELGENO],ACIKLABAKIYE,TP,VadeTarihi as [Ort Vade],SaticiKodu,                
  SaticiAdi, KULNO, KULADI, DovizBorc,                
  DovizAlacak,Aciklama2,                
  SiraNo, CARINO, MUSKOD, MUSADI, IsIstasyonKodu,                 
  IsIstasyonAdi,(select TeslimEden + ' - - ' + TeslimAlan from ACIKLAMA where FATURANO = ISLEMNO) as Teslim,                
  BORC money, ALACAK money,(BORC-ALACAK), @BAKIYE,TARIH TTarihi,ISLEMNO as ISLEMNO3,                
  BA,AcikKapali,VardiyaKodu,Departman,IslemNo2,VadeTarihi,DOVIZCINSI,0                 
 FROM ACARI                 
 WHERE MUSNO in(select MusteriNo from @Musteri)  AND TARIH >@ILKTARIH AND TARIH<=@SONTARIH        
 and ISLEMTIPI=@ParamIslemTipi      
  ORDER BY ROWNUMBER1 ASC         
      
 end else begin      
  INSERT INTO @ACARI        
SELECT ROW_NUMBER() OVER(ORDER BY ISLEMTIPI ASC,TARIH ASC,CARINO ASC) AS ROWNUMBER1,TARIH,TESSIRNO,MUSNO,BAACIKLA, ISNULL(ACIKLAMA, '''') as ACIKLAMA,                
  ISLEMNO,DOVIZTUT,DOVIZKODU,OZELKOD,ISLEMTIPI,                
  ISNULL(BELGENO, '''') as [BELGENO],ACIKLABAKIYE,TP,VadeTarihi as [Ort Vade],SaticiKodu,                
  SaticiAdi, KULNO, KULADI, DovizBorc,                
  DovizAlacak,Aciklama2,                
  SiraNo, CARINO, MUSKOD, MUSADI, IsIstasyonKodu,                 
  IsIstasyonAdi,(select TeslimEden + ' - - ' + TeslimAlan from ACIKLAMA where FATURANO = ISLEMNO) as Teslim,                
  BORC money, ALACAK money,(BORC-ALACAK), @BAKIYE,TARIH TTarihi,ISLEMNO as ISLEMNO3,                
  BA,AcikKapali,VardiyaKodu,Departman,IslemNo2,VadeTarihi,DOVIZCINSI,0                 
 FROM ACARI                 
 WHERE MUSNO in(select MusteriNo from @Musteri)  AND TARIH >@ILKTARIH AND TARIH<=@SONTARIH        
 ORDER BY ROWNUMBER1 ASC      
       
end      
 /*ORDER BY TARIH,ACARI.CARINO*/                
        
end else        
begin        
 if isnull(@ParamIslemTipi,'')<>''      
 begin                
 INSERT INTO @ACARI                
 SELECT ROW_NUMBER() OVER(ORDER BY  TARIH ASC,CARINO ASC) AS ROWNUMBER,TARIH,TESSIRNO,MUSNO,BAACIKLA, ISNULL(ACIKLAMA, '''') as ACIKLAMA,                
  ISLEMNO,DOVIZTUT,DOVIZKODU,OZELKOD,ISLEMTIPI,                
  ISNULL(BELGENO, '''') as [BELGENO],ACIKLABAKIYE,TP,VadeTarihi as [Ort Vade],SaticiKodu,                
  SaticiAdi, KULNO, KULADI, DovizBorc,                
  DovizAlacak,Aciklama2,                
  SiraNo, CARINO, MUSKOD, MUSADI, IsIstasyonKodu,                 
  IsIstasyonAdi,(select TeslimEden + ' - - ' + TeslimAlan from ACIKLAMA where FATURANO = ISLEMNO) as Teslim,                
  BORC money, ALACAK money,(BORC-ALACAK), @BAKIYE,TARIH TTarihi,ISLEMNO as ISLEMNO3,                
  BA,AcikKapali,VardiyaKodu,Departman,IslemNo2,VadeTarihi,DOVIZCINSI,0                 
 FROM ACARI                 
 WHERE MUSNO in(select MusteriNo from @Musteri)  AND TARIH >@ILKTARIH AND TARIH<=@SONTARIH and ISLEMTIPI=@ParamIslemTipi              
 /*ORDER BY TARIH,ACARI.CARINO*/        
  ORDER BY ROWNUMBER ASC         
end else       
begin      
 INSERT INTO @ACARI                
 SELECT ROW_NUMBER() OVER(ORDER BY  TARIH ASC,CARINO ASC) AS ROWNUMBER,TARIH,TESSIRNO,MUSNO,BAACIKLA, ISNULL(ACIKLAMA, '''') as ACIKLAMA,                
  ISLEMNO,DOVIZTUT,DOVIZKODU,OZELKOD,ISLEMTIPI,                
  ISNULL(BELGENO, '''') as [BELGENO],ACIKLABAKIYE,TP,VadeTarihi as [Ort Vade],SaticiKodu,                
  SaticiAdi, KULNO, KULADI, DovizBorc,                
  DovizAlacak,Aciklama2,                
  SiraNo, CARINO, MUSKOD, MUSADI, IsIstasyonKodu,                 
  IsIstasyonAdi,(select TeslimEden + ' - - ' + TeslimAlan from ACIKLAMA where FATURANO = ISLEMNO) as Teslim,                
  BORC money, ALACAK money,(BORC-ALACAK), @BAKIYE,TARIH TTarihi,ISLEMNO as ISLEMNO3,                
  BA,AcikKapali,VardiyaKodu,Departman,IslemNo2,VadeTarihi,DOVIZCINSI,0                 
 FROM ACARI                 
 WHERE MUSNO in(select MusteriNo from @Musteri)  AND TARIH >@ILKTARIH AND TARIH<=@SONTARIH                
 /*ORDER BY TARIH,ACARI.CARINO*/        
  ORDER BY ROWNUMBER ASC        
end      
end        
        
update @ACARI SET IslemNo3 = ISLEMNO where ISLEMNO>0                

declare @ROWNUMBER INT       
declare @NEWROWNUMBER INT       
set @NEWROWNUMBER=0      
declare @IslemTipi1 varchar(250)        
      
IF (@ISLEMTIPINEGORE=1) and (@ParamIslemTipi='')  BEGIN      
       
delete from @ACARI where BAACIKLA='Devir' and ISLEMTIPI not in (select distinct ISLEMTIPI from @ACARI where  BAACIKLA<>'Devir')      
      
 INSERT INTO @ACARI (ROWNUMBER,TARIH,MUSNO,FARK,BAKIYE,BAACIKLA,ACIKLAMA,ISLEMNO,ISLEMTIPI)                
 select 0 as ROWNUMBER,@ILKTARIH,M.UstMusteriNo,0,0,'Devir','Hesap Ekstresi Devir Tutarý',1, A.ISLEMTIPI                   
 from @Musteri M               
 left JOIN  ACARI A ON M.MusteriNo=A.MUSNO AND A.TARIH>@ILKTARIH       
 where (select count(B.ISLEMNO) from ACARI B where M.MusteriNo=B.MUSNO AND B.TARIH<=@ILKTARIH and A.ISLEMTIPI=B.ISLEMTIPI)=0      
 group by M.UstMusteriNo,A.ISLEMTIPI         
        
update @ACARI SET IslemNo3 = ISLEMNO where ISLEMNO>0       
      
declare AcariCursor1 cursor  for Select ROWNUMBER,ISLEMTIPI FROM  @ACARI ORDER BY ISLEMTIPI ASC,ROWNUMBER ASC        
FOR UPDATE OF ROWNUMBER OPEN AcariCursor1 FETCH NEXT FROM AcariCursor1       
INTO @ROWNUMBER,@IslemTipi1        
WHILE @@FETCH_STATUS=0        
BEGIN       
   if @NEWROWNUMBER=0      
   begin      
    set @pIslemTipi=@IslemTipi1;      
    update TOP(1) @ACARI SET NEWROWNUMBER=@NEWROWNUMBER,BAKIYE=(select SUM(BORC-ALACAK) from @Musteri M                
     left JOIN  ACARI A ON M.MusteriNo=A.MUSNO AND A.TARIH<=@ILKTARIH        
     and A.ISLEMTIPI=@pIslemTipi      
      group by M.UstMusteriNo) where ISLEMTIPI=@IslemTipi1 and BAACIKLA='Devir'      
             set @NEWROWNUMBER=@NEWROWNUMBER+1;      
      
   end else if (@pIslemTipi=@IslemTipi1)      
   begin      
    update TOP(1) @ACARI SET NEWROWNUMBER=@NEWROWNUMBER where ISLEMTIPI=@IslemTipi1 and ROWNUMBER=@ROWNUMBER and  BAACIKLA<>'Devir'      
   set @NEWROWNUMBER=@NEWROWNUMBER+1;      
      
   end else      
   begin      
    set @pIslemTipi=@IslemTipi1;      
     update TOP(1) @ACARI SET NEWROWNUMBER=@NEWROWNUMBER,BAKIYE=(select SUM(BORC-ALACAK) from @Musteri M                
     left JOIN  ACARI A ON M.MusteriNo=A.MUSNO AND A.TARIH<=@ILKTARIH        
     and A.ISLEMTIPI=@pIslemTipi      
      group by M.UstMusteriNo) where ISLEMTIPI=@IslemTipi1 and BAACIKLA='Devir'      
    set @NEWROWNUMBER=@NEWROWNUMBER+1;      
      
   end      
      
FETCH NEXT FROM AcariCursor1 INTO @ROWNUMBER,@IslemTipi1        
END  CLOSE AcariCursor1  DEALLOCATE AcariCursor1         
update @ACARI set ROWNUMBER=NEWROWNUMBER      
      
 end      
      
      
        
DECLARE @BAKIYE2 money      
DECLARE @DevirBakiye money      
      
      
declare AcariCursor cursor  for Select ROWNUMBER,ISLEMTIPI FROM  @ACARI ORDER BY ROWNUMBER ASC  FOR UPDATE OF BAKIYE OPEN AcariCursor FETCH NEXT FROM AcariCursor       
INTO @ROWNUMBER,@IslemTipi1        
      
WHILE @@FETCH_STATUS=0        
      
BEGIN           
      
IF @ISLEMTIPINEGORE=0       
BEGIN          
  SET @BAKIYE2=(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER<=@ROWNUMBER )          
  UPDATE TOP(1) @ACARI SET BAKIYE=@BAKIYE2 WHERE ROWNUMBER=@ROWNUMBER      
 end      
  else   begin          
  if @ROWNUMBER=0         
  begin      
   UPDATE TOP(1) @ACARI SET BAKIYE =isnull(FARK,0)  FROM @ACARI where ROWNUMBER =0      
   SET @DevirBakiye=(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER =0)        
  end else      
  begin      
  if @ROWNUMBER=1         
     set @pIslemTipi=@IslemTipi1;      
      
   if @pIslemTipi=@IslemTipi1            
   begin             
  SET @BAKIYE2=@DevirBakiye+(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER<=@ROWNUMBER and ISLEMTIPI=@pIslemTipi)        
         
  UPDATE TOP(1) @ACARI SET BAKIYE=@BAKIYE2 WHERE ROWNUMBER=@ROWNUMBER            
        
      
   end else             
   begin      
   set @pIslemTipi=@IslemTipi1;             
   SET @BAKIYE2=@DevirBakiye+(SELECT SUM(ISNULL(FARK,0)) FROM @ACARI  WHERE ROWNUMBER<=@ROWNUMBER and ISLEMTIPI=@pIslemTipi)       
         
   UPDATE TOP(1) @ACARI SET BAKIYE=@BAKIYE2 WHERE ROWNUMBER=@ROWNUMBER          
   end        
 end        
  end      
  FETCH NEXT FROM AcariCursor INTO @ROWNUMBER,@IslemTipi1        
END        
  CLOSE AcariCursor  DEALLOCATE AcariCursor         
        
        
        
DELETE FROM AcariTakas WHERE MUSNO  in(select MusteriNo from @Musteri)                 
 insert into AcariTakas(          
 TARIH,          
 TESSIRNO,          
 MUSNO,          
 BAACIKLA,          
 ACIKLAMA,          
 ISLEMNO,          
 DOVIZTUT,          
 DOVIZKODU,          
 OZELKOD,ISLEMTIPI,BELGENO,TP,                
VadeTarihi,SaticiKodu,SaticiAdi,          
KULNO,KULADI,DovizBorc,DovizAlacak,Aciklama2,          
SiraNo,MUSKOD,MUSADI,IsIstasyonKodu,IsIstasyonAdi,                
TeslimAlan,TeslimEden,BORC,ALACAK,BAKIYE,TTarihi,IslemNo3,          
BA,AcikKapali,VardiyaKodu,Departman,IslemNo2,DOVIZCINSI)                
select A.TARIH,A.TESSIRNO,A.MUSNO,          
A.BAACIKLA,A.ACIKLAMA,A.ISLEMNO,A.DOVIZTUT,A.DOVIZKODU,          
A.OZELKOD,A.ISLEMTIPI,A.BELGENO,A.TP,                
A.[Ort Vade],A.SaticiKodu,A.SaticiAdi,          
isnull(A.KULNO,0),A.KULADI,isnull(A.DovizBorc,0),          
isnull(A.DovizAlacak,0),A.Aciklama2,A.NoID,          
isnull(A.MUSKOD,''),A.MUSADI,A.IsIstasyonKodu,          
A.IsIstasyonAdi,                
A.TESLIM,A.TESLIM,isnull(A.BORC,0),          
isnull(A.ALACAK,0),isnull(A.BAKIYE,0),A.TTarihi,          
A.ISLEMNO3,A.BA,A.AcikKapali,A.VardiyaKodu,          
isnull(A.Departman,''),isnull(A.IslemNo2,0),isnull(A.DOVIZCINSI,0)                
            
 FROM @ACARI A                
 Left Join STOKHARDETBAG sb on sb.IslemNo=A.ISLEMNO                
 Left Join Adres ad on ad.CariKodu=sb.CariKodu and ad.AdresNo=sb.FaturaAdresNo                
 Left Join AMUSTERI ams on ams.MUSNO=A.MUSNO                
order by  A.ROWNUMBER        
  if @ISLEMTIPINEGOREBAKIYEGRUPLA=0        
  begin        
 select A.*, ams.Tipi As CariTipi, ams.CariGrubu, ad.AdresNo,                
  ad.Adres1, dbo.fn_FaturaSerinolari(A.ISLEMNO) As SeriNolar                 
                
  FROM @ACARI A                
  Left Join STOKHARDETBAG sb on sb.IslemNo=A.ISLEMNO                
  Left Join Adres ad on ad.CariKodu=sb.CariKodu and ad.AdresNo=sb.FaturaAdresNo                
  Left Join AMUSTERI ams on ams.MUSNO=A.MUSNO         
  order by  A.ROWNUMBER        
  /*order by  A.MUSNO,TARIH,CARINO */        
 end  else        
 begin        
   SELECT  ISLEMTIPI,sum(BORC) as BORC,sum(ALACAK) as ALACAK,sum(BORC-ALACAK) as BAKIYE FROM @ACARI    where ISLEMTIPI is not null and MUSNO=@MUSNO  GROUP BY ISLEMTIPI        
        
 end        
        
 end 
 GO

 drop table AcariTakas 
 go
  

CREATE TABLE [dbo].[AcariTakas](
	[NoID] [int] IDENTITY(1,1) NOT NULL,
	[TESSIRNO] [int] NULL,
	[MUSNO] [int] NOT NULL,
	[MUSADI] [nvarchar](50) NULL,
	[TARIH] [smalldatetime] NOT NULL,
	[ACIKLAMA] [nvarchar](60) NULL,
	[BORC] [float] NOT NULL,
	[ALACAK] [float] NOT NULL,
	[BA] [nvarchar](1) NULL,
	[BAACIKLA] [nvarchar](14) NULL,
	[BAKIYE] [float] NOT NULL,
	[ACIKLABAKIYE] [nvarchar](1) NULL,
	[BORDRONO] [int] NOT NULL,
	[LISTNO] [nvarchar](5) NULL,
	[ISLEMNO] [int] NOT NULL,
	[TDATE] [datetime] NULL,
	[DOVIZTUT] [float] NULL,
	[DOVIZCINSI] [smallint] NOT NULL,
	[MUSKOD] [nvarchar](20) NOT NULL,
	[DOVIZKODU] [nvarchar](2) NULL,
	[OZELKOD] [nvarchar](3) NULL,
	[ISLEMTIPI] [nvarchar](30) NULL,
	[BELGENO] [nvarchar](10) NULL,
	[KULNO] [int] NOT NULL,
	[KULADI] [nvarchar](20) NULL,
	[SaticiKodu] [nvarchar](15) NULL,
	[SaticiAdi] [nvarchar](25) NULL,
	[CariOPlanGunu] [int] NOT NULL,
	[GunAy] [nvarchar](3) NULL,
	[OpsiyonGunu] [int] NOT NULL,
	[AcikKapali] [nvarchar](5) NULL,
	[DovizBorc] [float] NOT NULL,
	[DovizAlacak] [float] NOT NULL,
	[TP] [nvarchar](2) NULL,
	[VardiyaKodu] [nvarchar](15) NULL,
	[VardiyaDurumu] [nvarchar](9) NULL,
	[Departman] [nvarchar](8) NOT NULL,
	[IslemNo2] [int] NOT NULL,
	[KayitDuzeyi] [int] NOT NULL,
	[KayitDuzeyiNo] [int] NOT NULL,
	[IslemNo3] [int] NOT NULL,
	[Aciklama2] [nvarchar](30) NULL,
	[OnOdeme] [nvarchar](1) NOT NULL,
	[VadeTarihi] [smalldatetime] NULL,
	[IsIstasyonKodu] [nvarchar](30) NULL,
	[IsIstasyonAdi] [nvarchar](30) NULL,
	[SiraNo] [int] NOT NULL,
	[VardiyaNo] [nvarchar](8) NOT NULL,
	[PosSablonKodu] [nvarchar](15) NULL,
	[Update_Date] [datetime] NULL,
	[StokKodu] [nvarchar](30) NULL,
	[TTarihi] [smalldatetime] NULL,
	[TeslimEden] [nvarchar](80) NULL,
	[TeslimAlan] [nvarchar](60) NULL,
 CONSTRAINT [PK_AcariTakas] PRIMARY KEY CLUSTERED 
(
	[NoID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [BORC]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [ALACAK]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [BAKIYE]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [BORDRONO]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [DOVIZCINSI]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((1)) FOR [KULNO]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [CariOPlanGunu]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [OpsiyonGunu]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [DovizBorc]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [DovizAlacak]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ('01000000') FOR [Departman]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [IslemNo2]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((1)) FOR [KayitDuzeyi]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((1)) FOR [KayitDuzeyiNo]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [IslemNo3]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ('H') FOR [OnOdeme]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ((0)) FOR [SiraNo]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT ('20000000') FOR [VardiyaNo]
GO

ALTER TABLE [dbo].[AcariTakas] ADD  DEFAULT (getdate()) FOR [Update_Date]
GO




 CREATE OR ALTER     procedure [dbo].[sp_STOKHARDETBAG_Update](                  
           @IslemNo int,@IslemTuru nvarchar(10),@CariNo int,@CariKodu nvarchar(20),                  
           @CariAdi nvarchar(50),@Tutar nvarchar(50),@SiparisTarihi smalldatetime,@KdvTutari nvarchar(50),                  
           @FisTuru nvarchar(1),@GC nvarchar(1),@EkIskTut1 nvarchar(50),@EkIskTut2 nvarchar(50),@EkIskTut3 nvarchar(50),                  
           @EkIskTutTop nvarchar(50),@FaturaNo int,@FaturaTarihi smalldatetime,@Satici nvarchar(6),                  
           @DovizTut nvarchar(50),@DovizCinsi smallint,@DovizKodu nvarchar(2),@DovizTutB nvarchar(50),                  
           @BelgeNo nvarchar(10),@OzelKod1 nvarchar(3),@OzelKod2 nvarchar(3),@OzelKod3 nvarchar(3),                  
           @IslemTipi nvarchar(30),@IrsNo nvarchar(13),@Ack1 nvarchar(200),@Ack2 nvarchar(200),                  
           @Ack3 nvarchar(200),@Ack4 nvarchar(200),@KULNO int,@KULADI nvarchar(20),@FatSerNo nvarchar(3),                  
           @SaticiAdi nvarchar(25),@AltIskYuzde1 nvarchar(50),@AltIskYuzde2 nvarchar(50),@AltIskYuzde3 nvarchar(50),                  
           @AK nvarchar(3),@FaturaOPlanGunu int,@Depo nvarchar(30),@GunAy nvarchar(3),@OpsiyonGunu int,                  
           @AcikKapali nvarchar(3),@DovizBorc nvarchar(50),@DovizAlacak nvarchar(50),@FYaz nvarchar(1),                  
           @SecimEH nvarchar(1),@IslemNo3 int,@TP nvarchar(2),@FisNo nvarchar(9),@VardiyaKodu nvarchar(15),                  
           @VardiyaDurumu nvarchar(9),@Departman nvarchar(8),@MasrafToplami nvarchar(50),@KDVHD char(1),                  
           @IslemNo4 int,@KayitDuzeyi int,@YazarKasaNo int,@YazarKasaFisNo nvarchar(10),                  
           @YaziciCount nvarchar(50),@IsIstasyonKodu nvarchar(30),@IsIstasyonAdi nvarchar(30),                  
           @TevkifatTutari nvarchar(50),@VardiyaNo nvarchar(8),@OdemeBilgisi nvarchar(100),@FaturaAdresNo int,                  
           @SevkAdresNo int,@FI nvarchar(1),@EF_ISTISNA int,@FaturaTipi int,@DovizKuru float = 1,@eFaturaNo nvarchar(25) = '')                  
AS                  
           
        
declare @TutarYeni float                
declare @KdvTutariYeni float                
declare @DovizTutYeni float                
declare @MUSNO int                
declare @MUSKOD nvarchar(20)              
declare @MUSADI nvarchar(50)                     
              
declare @DovizBorcYeni float                
declare @DovizAlacakYeni float     
  
declare @YeniTevkifatTut float  
  
SET @YeniTevkifatTut = ISNULL((Select SUM(TevkifatTutari) from Tevkifat t where t.IslemNo = @IslemNo),0)  
              
 print(@FisTuru)              
 if (@FisTuru='I')              
 begin              
 print('Irsaliye')              
 set @TutarYeni=(select sum(SonTutar) - @YeniTevkifatTut from STOKHAR where STOKHAR.IslemNo=@IslemNo  )                
 set @KdvTutariYeni=(select sum(KdvTutari) from STOKHAR where STOKHAR.IslemNo=@IslemNo )                
 set @DovizTutYeni=( @TutarYeni/ convert(float,@DovizKuru) )                
 end         
 else              
 begin              
 print('diğer')              
 set @TutarYeni=(select sum(SonTutar) - @YeniTevkifatTut from STOKHAR where STOKHAR.IslemNo=@IslemNo  or STOKHAR.IslemNo3=@IslemNo)                
 set @KdvTutariYeni=(select sum(KdvTutari) from STOKHAR where STOKHAR.IslemNo=@IslemNo  or STOKHAR.IslemNo3=@IslemNo)                
 set @DovizTutYeni=( @TutarYeni/ convert(float,@DovizKuru) )                
 end                        
        
 if(@IslemTuru='DepoVirman')              
 begin              
 set @TutarYeni =@TutarYeni/2              
 set @KdvTutariYeni=@KdvTutariYeni/2              
 set @DovizTutYeni=@DovizTutYeni/2                    
 end              
            
               
IF (select COUNT(*) from (select Count(CariKodu) c from STOKHAR where STOKHAR.IslemNo=@IslemNo  or STOKHAR.IslemNo3=@IslemNo GROUP BY CariKodu) t) > 1            
BEGIN     
 RAISERROR ('Kayıtlarda cari farkı vardır. Kontrol ediniz..!',10,1)        
 RETURN 0        
END            
        
select @MUSNO=MUSNO,@MUSKOD=MUSKOD,@MUSADI=MUSADI from AMUSTERI where MUSKOD in (select CariKodu from STOKHAR where STOKHAR.IslemNo=@IslemNo  or STOKHAR.IslemNo3=@IslemNo)                  
        
UPDATE    STOKHARDETBAG                  
SET              IslemTuru = @IslemTuru, CariNo = @MUSNO, CariKodu = @MUSKOD, CariAdi = @MUSADI,                   
Tutar =  @TutarYeni , SiparisTarihi = @SiparisTarihi, KdvTutari = @KdvTutariYeni,                   
FisTuru = @FisTuru, GC = @GC, EkIskTut1 = convert(float,@EkIskTut1), EkIskTut2 = convert(float,@EkIskTut2),                   
EkIskTut3 = convert(float,@EkIskTut3),                   
EkIskTutTop = convert(float,@EkIskTutTop),                   
FaturaNo = @FaturaNo, FaturaTarihi = @FaturaTarihi, Satici = @Satici, DovizTut = @DovizTutYeni,                   
DovizCinsi = @DovizCinsi, DovizKodu = @DovizKodu, DovizTutB =@DovizTutYeni/* convert(float,@DovizTutB)*/,                  
BelgeNo = @BelgeNo, OzelKod1 = @OzelKod1, OzelKod2 = @OzelKod2, OzelKod3 = @OzelKod3, IslemTipi = @IslemTipi, IrsNo = @IrsNo,                   
Ack1 = @Ack1, Ack2 = @Ack2, Ack3 = @Ack3, Ack4 = @Ack4,                   
KULNO = @KULNO, KULADI = @KULADI, FatSerNo = @FatSerNo, SaticiAdi = @SaticiAdi,                   
AltIskYuzde1 = convert(float,@AltIskYuzde1), AltIskYuzde2 = convert(float,@AltIskYuzde2), AltIskYuzde3 = convert(float,@AltIskYuzde3),                  
AK = @AK, FaturaOPlanGunu = @FaturaOPlanGunu, Depo = @Depo,                   
GunAy = @GunAy, OpsiyonGunu = @OpsiyonGunu, AcikKapali = @AcikKapali,                   
DovizBorc = convert(float,@DovizBorc), DovizAlacak = convert(float,@DovizAlacak), FYaz = @FYaz, SecimEH = @SecimEH,                   
IslemNo3 = @IslemNo3, TP = @TP, FisNo = @FisNo, VardiyaKodu = @VardiyaKodu, VardiyaDurumu = @VardiyaDurumu,                   
Departman = @Departman,MasrafToplami = convert(float,@MasrafToplami), KDVHD = @KDVHD, IslemNo4 = @IslemNo4, KayitDuzeyi = @KayitDuzeyi, YazarKasaNo = @YazarKasaNo, YazarKasaFisNo = @YazarKasaFisNo, YaziciCount = convert(float,@YaziciCount),               
   
IsIstasyonKodu = @IsIstasyonKodu, IsIstasyonAdi = @IsIstasyonAdi,                  
TevkifatTutari =convert(FLOAT,@TevkifatTutari ),   
VardiyaNo = @VardiyaNo, OdemeBilgisi = @OdemeBilgisi, FaturaAdresNo = @FaturaAdresNo, SevkAdresNo = @SevkAdresNo, FI = @FI,                  
EF_ISTISNA=@EF_IsTISNA,FaturaTipi=@FaturaTipi,Update_Date = GETDATE() ,    
DovizKur = @DovizKuru ,eFaturaNo =  @eFaturaNo          
where IslemNo =@IslemNo         
        
DECLARE @CariSayisi int        
        
SET @CariSayisi = ( SELECT   COUNT(*) FROM STOKHAR S,STOKHARDETBAG B        
      WHERE (S.IslemNo = B.IslemNo or S.IslemNo3 = B.IslemNo)        
        AND B.IslemNo = @IslemNo        
        AND (S.CariNo <> B.CariNo or S.CariKodu <> B.CariKodu))        
        
IF @CariSayisi > 0            
BEGIN        
 RAISERROR ('Cari hatası. Kontrol ediniz..!',10,1)        
 RETURN 0        
END 

GO

create or alter  procedure sp_Prk_Satis_Cevirme(@CariKodu nvarchar(50),@IslemNo int,@YeniIslemNo int,@IslemTuruSatis nvarchar(50),                  
@IslemTuruPrkSatis nvarchar(50),                  
@FaturaTarihi datetime,@FaturaNo integer,@FatSerNo nvarchar(50),@SeciliIslemNolar nvarchar(max),@GeldigiYer nvarchar(50)='')                  
as         
      
      
declare @sqlText nvarchar(max)                  
declare @sqlTextHepsi nvarchar(max)                  
                  
declare @i integer                  
declare @toplam integer;                  
declare @ParamIslemNo integer                               
declare @ExecuteCalistir int;            
 BEGIN TRANSACTION             
  set @ExecuteCalistir=1;            
              
 UPDATE STOKHAR SET AcikKapali='K',IslemNo3= @YeniIslemNo,FisTuru = 'I',IslemTuru= @IslemTuruSatis WHERE IslemNo in (SELECT convert(int,Name) FROM splitstring(@SeciliIslemNolar, ','))  
 UPDATE STOKHARDETBAG SET AcikKapali='K',SecimEH= 'H',FisTuru = 'I',IslemTuru = @IslemTuruSatis,FaturaTarihi = @FaturaTarihi  WHERE IslemNo in (SELECT convert(int,Name) FROM splitstring(@SeciliIslemNolar, ','))  
                          
   print('/*En Büyük İşlem No Parametre - Seçili İşlem Numaraları */'+convert(varchar,@IslemNo)+'-'+@SeciliIslemNolar);  
   
  SET @sqlText=' insert into STOKHARDETBAG (IslemNo, IslemTuru, CariNo, CariKodu, CariAdi, Tutar,  KdvTutari, FisTuru, GC, '+        
  
    ' FaturaNo,  Satici, DovizTut, DovizCinsi, DovizKodu, DovizTutB, '+              
                ' BelgeNo, OzelKod1, OzelKod2, OzelKod3, IslemTipi, IrsNo, Ack1, Ack2, Ack3, Ack4, KULNO, KULADI, FatSerNo, SaticiAdi, AK, FaturaOPlanGunu, Depo, GunAy, OpsiyonGunu, AcikKapali, '+               
                ' DovizBorc, DovizAlacak,  IslemNo3, TP,  VardiyaKodu, VardiyaDurumu, Departman, MasrafToplami, KDVHD, IslemNo4, KayitDuzeyi, YazarKasaNo, YazarKasaFisNo, YaziciCount, IsIstasyonKodu, '+               
                ' IsIstasyonAdi, TevkifatTutari, VardiyaNo, OdemeBilgisi, FaturaAdresNo, SevkAdresNo, FI,  eFaturaNo, UUID, eFaturaGonderimTarihi, eFaturaDurumu, EF_ISTISNA,  FaturaTipi,  '+              
                ' Entegrator,DovizKur)  '+              
    ' select top 1 '+CONVERT(VARCHAR,@YeniIslemNo)+' as IslemNo, IslemTuru, CariNo, CariKodu, CariAdi,'+              
    ' 0 as Tutar, '+            
    ' 0 as KdvTutari, '+              
    ' ''F'' as FisTuru, GC, '+               
    /*' EkIskTut1, EkIskTut2, EkIskTut3, EkIskTutTop, '+*/              
    ' '+convert(varchar,@FaturaNo)+' as FaturaNo, Satici, '+              
    ' 0 as DovizTut, '+              
    ' DovizCinsi, DovizKodu,  0 as DovizTutB, '+              
                ' BelgeNo, OzelKod1, OzelKod2, OzelKod3, IslemTipi, IrsNo, Ack1, Ack2, Ack3, Ack4, KULNO, KULADI, '+@FatSerNo+', SaticiAdi, AK, FaturaOPlanGunu, Depo, GunAy, OpsiyonGunu, AcikKapali, '+               
                ' 0 as DovizBorc, '+              
    ' 0 as DovizAlacak, 0 as IslemNo3, '+         
    ' TP,  VardiyaKodu, VardiyaDurumu, Departman, 0 as MasrafToplami, KDVHD, IslemNo4, KayitDuzeyi, YazarKasaNo, YazarKasaFisNo, YaziciCount, IsIstasyonKodu, '+               
                ' IsIstasyonAdi,0 as TevkifatTutari, VardiyaNo, OdemeBilgisi, FaturaAdresNo, SevkAdresNo, FI, eFaturaNo, UUID, eFaturaGonderimTarihi, eFaturaDurumu, EF_ISTISNA,   FaturaTipi,  '+        
      
                ' Entegrator,DovizKur from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo='+convert(varchar,@IslemNo)+' ';                  
               
   
    
  print('/*2*/'+@sqlText);                  
 if @ExecuteCalistir>0            
  exec(@sqlText)      
    
  UPDATE STOKHARDETBAG SET IslemTuru =@IslemTuruSatis,FaturaTarihi = @FaturaTarihi, SevkTarihi = @FaturaTarihi, SiparisTarihi = @FaturaTarihi WHERE IslemNo = @YeniIslemNo;  
              
  set @sqlText='update STOKHARDETBAG set '+              
   ' Tutar=(select sum(Tutar) from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ), '+              
   ' KdvTutari=(select sum(KdvTutari) from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ), '+              
   ' DovizTut=(select sum(Tutar) from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ), '+              
   ' DovizBorc=(select sum(DovizBorc) from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ), '+              
   ' DovizAlacak=(select sum(DovizAlacak) from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ), '+              
   ' DovizTutB=(select sum(Tutar) from STOKHARDETBAG where CariKodu = '+@CariKodu+' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ) '+              
   ' where CariKodu = '+@CariKodu+' and IslemNo='+convert(varchar,@YeniIslemNo)+' ';                 
              
  print('/*2.1*/'+@sqlText);                  
 if @ExecuteCalistir>0            
  exec(@sqlText)                  
 if @IslemTuruSatis = 'Alış'  
 SET @sqlText=' delete from ACARI where MUSKOD = '+@CariKodu+' and  ISLEMNO in ('+@SeciliIslemNolar+')  and ISLEMNO <> '+convert(varchar,@IslemNo)+'  and BAACIKLA = ''Alış'' '  
 else   
 SET @sqlText=' delete from ACARI where MUSKOD = '+@CariKodu+' and  ISLEMNO in ('+@SeciliIslemNolar+')  and ISLEMNO <> '+convert(varchar,@IslemNo)+'  and BAACIKLA in (''Prk.Satış'',''Satış'') '  

  print('/*3*/'+@sqlText);            
 if @ExecuteCalistir>0            
 exec(@sqlText)   
 if @IslemTuruSatis = 'Alış'  
 SET @sqlText=' update Odeme set IslemNo = '+convert(varchar,@YeniIslemNo)+' where CariKodu = '+@CariKodu+' and IslemNo in ('+@SeciliIslemNolar+')  and BAAcikla = ''Alış'' ';  
 else  
 SET @sqlText=' update Odeme set IslemNo = '+convert(varchar,@YeniIslemNo)+',BAAcikla = ''Satış''  where CariKodu = '+@CariKodu+' and IslemNo in ('+@SeciliIslemNolar+')  and BAAcikla = ''Prk.Satış'',''Satış'' ';  
 if @ExecuteCalistir>0            
 exec(@sqlText)   

if @IslemTuruSatis = 'Satış'   
 set @sqlText='update dbo.ACARI '+                  
                     ' SET ACIKLAMA='''+convert(varchar,@FaturaNo)+' no.lu Fatura'',BAACIKLA = ''Satış'', '+                  
                     ' dbo.ACARI.BORC = (select sum(ISNULL(dbo.STOKHARDETBAG.Tutar,0)) from dbo.STOKHARDETBAG where dbo.STOKHARDETBAG.IslemNo = '+CONVERT(varchar,@YeniIslemNo)+'), '+                  
                     ' dbo.ACARI.DovizBorc = (select sum(ISNULL(dbo.STOKHARDETBAG.DovizBorc,0)) from dbo.STOKHARDETBAG where dbo.STOKHARDETBAG.IslemNo = '+CONVERT(varchar,@YeniIslemNo)+'), '+                  
                     ' dbo.ACARI.DovizAlacak = (select sum(ISNULL(dbo.STOKHARDETBAG.DovizAlacak,0)) from dbo.STOKHARDETBAG where dbo.STOKHARDETBAG.IslemNo = '+CONVERT(varchar,@YeniIslemNo)+'), '+               
      ' dbo.ACARI.ISLEMNO = '+CONVERT(varchar,@YeniIslemNo)+                                
                     ' where dbo.ACARI.ISLEMNO = '+convert(varchar,@IslemNo)+' and BAACIKLA in (''Prk.Satış'',''Satış'') '  
else       
 set @sqlText='update dbo.ACARI '+                  
                     ' SET ACIKLAMA='''+convert(varchar,@FaturaNo)+' no.lu Fatura'', '+                  
                     ' dbo.ACARI.BORC = (select sum(ISNULL(dbo.STOKHARDETBAG.Tutar,0)) from dbo.STOKHARDETBAG where dbo.STOKHARDETBAG.IslemNo = '+CONVERT(varchar,@YeniIslemNo)+'), '+                  
                     ' dbo.ACARI.DovizBorc = (select sum(ISNULL(dbo.STOKHARDETBAG.DovizBorc,0)) from dbo.STOKHARDETBAG where dbo.STOKHARDETBAG.IslemNo = '+CONVERT(varchar,@YeniIslemNo)+'), '+                  
                     ' dbo.ACARI.DovizAlacak = (select sum(ISNULL(dbo.STOKHARDETBAG.DovizAlacak,0)) from dbo.STOKHARDETBAG where dbo.STOKHARDETBAG.IslemNo = '+CONVERT(varchar,@YeniIslemNo)+'), '+               
      ' dbo.ACARI.ISLEMNO = '+CONVERT(varchar,@YeniIslemNo)+                                
                     ' where dbo.ACARI.ISLEMNO = '+convert(varchar,@IslemNo)+' and BAACIKLA ''Alış'' ';        
print('/*4*/'+@sqlText);                  
 if @ExecuteCalistir>0            
 exec(@sqlText)              
  
if @IslemTuruSatis = 'Alış'   
 UPDATE dbo.ACARI SET TARIH = @FaturaTarihi where ISLEMNO = @YeniIslemNo and BAACIKLA = 'Alış'  
else  
 UPDATE dbo.ACARI SET TARIH = @FaturaTarihi where ISLEMNO = @YeniIslemNo and BAACIKLA = 'Satış';    
  
     
 if @geldigiYer <>'cariperakende'     
 begin    
 print('/*5*/'+@sqlText);     
 set @sqlText='Delete from STOKHARDETBAG  where CariKodu = '+@CariKodu+' and FisTuru = ''I'' and IslemNo in (SELECT Name FROM splitstring('''+@SeciliIslemNolar+''', '','')) ';    
 exec(@sqlText)     
 end    
                   
if @@ERROR<>0                  
begin                  
ROLLBACK                   
 if @ExecuteCalistir>0            
Select 'İşlem sırasında bir hata oluştu, işlem tamamlanamadı!'                  
else            
print('İşlem sırasında bir hata oluştu, işlem tamamlanamadı!' )            
end                  
ELSE begin                   
COMMIT             
 if @ExecuteCalistir>0            
Select 'İşlem başarıyla tamamlandı'              
else             
print('İşlem başarıyla tamamlandı')            
end  

GO




create or ALTER     PROCEDURE [dbo].[spStokHarDetBagKaydet]          
@IslemNo int,         
@IslemTuru nvarchar(10),         
@CariNo int,         
@CariKodu nvarchar(20),         
@CariAdi nvarchar(50),         
@Tutar float,         
@SiparisTarihi datetime,         
@KdvTutari float,         
@FisTuru nvarchar(1),         
@GC nvarchar(1),         
@EkIskTut1 float,         
@EkIskTut2 float,         
@EkIskTut3 float,         
@EkIskTutTop float,         
@FaturaNo int,         
@FaturaTarihi datetime,         
@Satici nvarchar(6),         
@DovizTut float,         
@DovizCinsi smallint,         
@DovizKodu nvarchar(2),         
@DovizTutB float,         
@BelgeNo nvarchar(10),         
@OzelKod1 nvarchar(3),         
@OzelKod2 nvarchar(3),         
@OzelKod3 nvarchar(3),         
@IslemTipi nvarchar(30),         
@IrsNo nvarchar(13),         
@Ack1 nvarchar(200),         
@Ack2 nvarchar(200),         
@Ack3 nvarchar(200),         
@Ack4 nvarchar(200),         
@KULNO int,         
@KULADI nvarchar(20),         
@FatSerNo varchar(3),         
@SaticiAdi nvarchar(25),         
@AltIskYuzde1 float,         
@AltIskYuzde2 float,         
@AltIskYuzde3 float,         
@AK nvarchar(3),         
@FaturaOPlanGunu int,         
@Depo nvarchar(30),         
@GunAy nvarchar(3),         
@OpsiyonGunu int,         
@AcikKapali nvarchar(3),         
@DovizBorc float,         
@DovizAlacak float,         
@FYaz nvarchar(1),         
@SecimEH nvarchar(1),         
@IslemNo3 int,         
@TP nvarchar(2),         
@FisNo nvarchar(9),         
@VardiyaKodu nvarchar(15),         
@VardiyaDurumu nvarchar(9),         
@Departman nvarchar(8),         
@MasrafToplami float,         
@KDVDH char,         
@IslemNo4 int,         
@KayitDuzeyi int,         
@YazarKasaNo int,         
@YazarKasaFisNo nvarchar(10),         
@YaziciCount float,         
@IsIstasyonKodu nvarchar(30),         
@IsIstasyonAdi nvarchar(30),              
@TevkifatTutari float,         
@VardiyaNo nvarchar(8),         
@OdemeBilgisi nvarchar(100),         
@FaturaAdresNo int,         
@SevkAdresNo int,         
@FI nvarchar(1),         
@SevkTarihi dateTime,         
@eFaturaNo nvarchar(30),         
@UUID nVarChar(50),         
@eFaturaGonderimTarihi DateTime,         
@eFaturaDurumu nVarChar(20) ,            
@FaturaTipi int,      
@DovizKuru float = 1      
         
 AS         
 begin         
 declare @Istisna int;        
 declare @HesaplananTutar float        
 declare @HesaplananKdvTutari float        
         
          
 if (@FisTuru='I')         
 begin         
 set @HesaplananTutar = (select sum(SonTutar) from STOKHAR where CariNo=@CariNo and (IslemNo=@IslemNo))        
 set @HesaplananKdvTutari = (select sum(KdvTutari) from STOKHAR where CariNo=@CariNo and (IslemNo=@IslemNo) )        
 end else         
 begin         
 set @HesaplananTutar = (select sum(SonTutar) from STOKHAR where CariNo=@CariNo and (IslemNo3=@IslemNo or IslemNo=@IslemNo) )        
 set @HesaplananKdvTutari = (select sum(KdvTutari) from STOKHAR where CariNo=@CariNo and (IslemNo3=@IslemNo or IslemNo=@IslemNo) )        
  
 end         
         
         
 if(@IslemTuru='DepoVirman')         
 begin         
 set @HesaplananTutar =@HesaplananTutar/2         
 set @HesaplananKdvTutari=@HesaplananKdvTutari/2         
         
 end         
 set @Istisna=(select convert(int,(SELECT top 1 v.MuafiyetKodu FROM STOKHAR sh join StokVergiMuafiyetleri v on v.StokKodu=sh.StokKodu WHERE IslemNo=@IslemNo and Kdv=0)))        
         
select @TevkifatTutari =     sum(t.TevkifatTutari) from Tevkifat t where t.IslemNo in(select distinct IslemNo from STOKHAR where  @IslemNo in(IslemNo,IslemNo3)) 
  
if @TevkifatTutari > 0  
begin  

 set @HesaplananTutar = @HesaplananTutar - @TevkifatTutari  
end  
  
 INSERT STOKHARDETBAG (IslemNo, IslemTuru, CariNo, CariKodu, CariAdi, Tutar, SiparisTarihi, KdvTutari, FisTuru, GC, EkIskTut1, EkIskTut2, EkIskTut3, EkIskTutTop, FaturaNo, FaturaTarihi, Satici, DovizTut, DovizCinsi, DovizKodu, DovizTutB, BelgeNo,         
        OzelKod1, OzelKod2, OzelKod3, IslemTipi, IrsNo, Ack1, Ack2, Ack3, Ack4, KULNO, KULADI, FatSerNo, SaticiAdi, AltIskYuzde1, AltIskYuzde2, AltIskYuzde3, AK, FaturaOPlanGunu, Depo, GunAy, OpsiyonGunu, AcikKapali,         
        DovizBorc, DovizAlacak, FYaz, SecimEH, IslemNo3, TP, FisNo, VardiyaKodu, VardiyaDurumu, Departman, MasrafToplami, KDVHD, IslemNo4, KayitDuzeyi, YazarKasaNo, YazarKasaFisNo, YaziciCount, IsIstasyonKodu,         
        IsIstasyonAdi, VardiyaNo, OdemeBilgisi, FaturaAdresNo, SevkAdresNo, FI, SevkTarihi, eFaturaNo, UUID, eFaturaGonderimTarihi,    
  eFaturaDurumu, EF_ISTISNA, FaturaTipi,         
        Entegrator, Update_Date,DovizKur,TevkifatTutari)         
 VALUES     (@IslemNo, @IslemTuru,@CariNo,@CariKodu,@CariAdi,@HesaplananTutar ,         
       @SiparisTarihi,@HesaplananKdvTutari ,@FisTuru, @GC, @EkIskTut1, @EkIskTut2, @EkIskTut3,@EkIskTutTop, @FaturaNo, @FaturaTarihi,  @Satici,  @DovizTut,  @DovizCinsi,  @DovizKodu,  @DovizTutB,  @BelgeNo,    @OzelKod1,          
       @OzelKod2,  @OzelKod3,  @IslemTipi,  @IrsNo,  @Ack1,  @Ack2,  @Ack3,  @Ack4,  @KULNO,  @KULADI,  @FatSerNo,  @SaticiAdi, @AltIskYuzde1,         
       @AltIskYuzde2,  @AltIskYuzde3,  @AK,  @FaturaOPlanGunu,  @Depo, @GunAy,  @OpsiyonGunu,  @AcikKapali,   @DovizBorc,  @DovizAlacak,  @FYaz,         
       @SecimEH,  @IslemNo3,  @TP,  @FisNo,  @VardiyaKodu,  @VardiyaDurumu, @Departman,  @MasrafToplami,  @KDVDH,  @IslemNo4,         
       @KayitDuzeyi,  @YazarKasaNo,  @YazarKasaFisNo,  @YaziciCount, @IsIstasyonKodu,   @IsIstasyonAdi,          
       @VardiyaNo,  @OdemeBilgisi,  @FaturaAdresNo,  @SevkAdresNo,  @FI,  @SevkTarihi,  @eFaturaNo,  @UUID,  @eFaturaGonderimTarihi,          
       @eFaturaDurumu ,  @Istisna,  @FaturaTipi,  0,GETDATE(),@DovizKuru, @TevkifatTutari   
)        
        
END

go

CREATE or ALTER PROC spTevkifat_Aciklama_Sil (@Tip varchar(10),@IslemNo int)  
AS  
BEGIN 
    IF @Tip = 'F'
	BEGIN
		DELETE Tevkifat WHERE IslemNo IN (select IslemNo from STOKHAR where @IslemNo in (IslemNo,IslemNo3));
		DELETE ACIKLAMA WHERE FATURANO IN (select IslemNo from STOKHAR where @IslemNo in (IslemNo,IslemNo3));
		DELETE FatAciklama WHERE IslemNo2  = @IslemNo
    END
	ELSE
	BEGIN
		DELETE Tevkifat WHERE IslemNo IN (select IslemNo from STOKHAR where @IslemNo in (IslemNo,IslemNo3));
		DELETE ACIKLAMA WHERE FATURANO  IN (select IslemNo from STOKHAR where @IslemNo in (IslemNo,IslemNo3));
		DELETE FatAciklama WHERE IslemNo2 IN (select IslemNo2 from STOKHAR where @IslemNo in (IslemNo,IslemNo3));
	END
END

go

create or alter proc spTevkifatSil (@IslemNo int)
AS
BEGIN
	delete Tevkifat WHERE IslemNo IN (select IslemNo from STOKHAR where @IslemNo in (IslemNo,IslemNo3))
END
go


CREATE TABLE [dbo].[YazarKasalar](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[YazarKasaTanimi] [varchar](150) NULL,
	[YazarKasaIp] [varchar](50) NULL,
	[YazarKasaPort] [int] NULL,
	[YazarKasaSeriNo] [varchar](20) NULL,
	[ServerIP] [varchar](50) NULL,
	[ServerPort] [int] NULL,
	[KasiyerNo] [int] NULL,
	[KasiyerSifre] [varchar](50) NULL,
	[KulNo] [int] NULL,
 CONSTRAINT [PK_YazarKasalar] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO



CREATE TABLE [dbo].[YazarKasalarMapKullanicilar](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[YazarKasaID] [int] NOT NULL,
	[YazarKasaKulNo] [int] NOT NULL,
	[KulNo] [int] NULL,
 CONSTRAINT [PK_YazarKasalarMapKullanicilar] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[YazarKasalarMapKullanicilar]  WITH CHECK ADD  CONSTRAINT [FK_YazarKasalarMapKullanicilar_YazarKasalar] FOREIGN KEY([YazarKasaID])
REFERENCES [dbo].[YazarKasalar] ([Id])
GO

ALTER TABLE [dbo].[YazarKasalarMapKullanicilar] CHECK CONSTRAINT [FK_YazarKasalarMapKullanicilar_YazarKasalar]
GO


     
CREATE or alter PROCEDURE [dbo].[sp_ButonResmiGetir] @StokNo nvarchar(10)    
AS    
BEGIN    
select top 1 DBImage from Resimler where ResimTipi=7 and No=@StokNo    
END  

go



CREATE TABLE [dbo].[Resimler](
	[NoId] [int] IDENTITY(1,1) NOT NULL,
	[No] [int] NOT NULL,
	[ResimTipi] [int] NOT NULL,
	[SiraNo] [int] NULL,
	[WebYayini] [nvarchar](1) NULL,
	[DBImage] [image] NOT NULL,
	[KULNO] [int] NOT NULL,
	[Tarih] [datetime] NULL,
	[Varsayilan] [bit] NULL,
	[Aciklama] [nvarchar](200) NULL,
 CONSTRAINT [PK_Resimler] PRIMARY KEY CLUSTERED 
(
	[NoId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[Resimler] ADD  CONSTRAINT [DF__Resimler__WebYay__39444182]  DEFAULT ('E') FOR [WebYayini]
GO

ALTER TABLE [dbo].[Resimler] ADD  DEFAULT (getdate()) FOR [Tarih]
GO

ALTER TABLE [dbo].[Resimler] ADD  DEFAULT ((0)) FOR [Varsayilan]
GO



 
CREATE FUNCTION [dbo].[splitstring] ( @stringToSplit VARCHAR(MAX), @splitdet varchar(1)) 
RETURNS 
 @returnList TABLE ([Name] [nvarchar] (500)) 
AS 
BEGIN 
 
 DECLARE @name NVARCHAR(255) 
 DECLARE @pos INT 
 
 WHILE CHARINDEX(@splitdet, @stringToSplit) > 0 
 BEGIN 
  SELECT @pos  = CHARINDEX(@splitdet, @stringToSplit)   
  SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1) 
 
  INSERT INTO @returnList  
  SELECT @name 
 
  SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos) 
 END 
 
 INSERT INTO @returnList 
 SELECT @stringToSplit 
 
 RETURN 
END 

go


alter table Rapor add YeniRapormu bit
GO
alter table Rapor add VarsayilanRaporKullNo varchar(250)
GO
alter table Rapor add RaporSecimEkraniOnIzleme varchar(250)

go


create or alter  PROCEDURE [dbo].[RaporGetir]         
 @TipNo int,        
 @KulNo int,        
 @CariNo int = 0,        
 @Onizleme bit = 1 OUTPUT,        
 @YeniRapormu bit = 0        
AS        
 DECLARE @CariTipi nvarchar(30),        
  @OzelKod1 nvarchar(40), @OzelKod2 nvarchar(40),         
  @OzelKod3 nvarchar(40), @OzelKod4 nvarchar(40)        
 DECLARE @RaporNo int        
        
 select @CariTipi = ISNULL(Tipi, ''),        
  @OzelKod1 = ISNULL(OZELKOD1, ''),        
  @OzelKod2 = ISNULL(OZELKOD2, ''),        
  @OzelKod3 = ISNULL(OZELKOD3, ''),        
  @OzelKod4 = ISNULL(OZELKOD4, '')        
 from AMUSTERI        
 where MUSNO = @CariNo        
   
   
 select @RaporNo = RaporNo        
 from CariVarsayilanRaporlari --Null ise kriteri dikkate alma(1=1 gibi olacak)        
 where ISNULL(CariTipi, @CariTipi) = @CariTipi AND        
  ISNULL(OzelKod1, @OzelKod1) = @OzelKod1 AND         
  ISNULL(OzelKod2, @OzelKod2) = @OzelKod2 AND         
  ISNULL(OzelKod3, @OzelKod3) = @OzelKod3 AND        
  ISNULL(OzelKod4, @OzelKod4) = @OzelKod4 AND        
  TipNo = @TipNo        
   
   
  
 IF @RaporNo IS NOT NULL BEGIN--Carinin raporu varsa        
  SELECT RaporIsmi, Rapor from Rapor where RaporNo = @RaporNo        
  SELECT @Onizleme = ISNULL(Onizleme, 1) from Rapor where RaporNo = @RaporNo        
  RETURN        
 END        
 ELSE BEGIN--Kullanicinin Varsayılan raporundan yazdır    
  
  SELECT RaporIsmi, Rapor, RaporNo,(select GirisAdi from Kullanicilar where No=@KulNo ) as Kullanici from Rapor where RaporNo = (select RaporNo from KullaniciVarsayilanRaporlari         
         where KullaniciNo=@KulNo and TipNo=@TipNo) and YeniRapormu=@YeniRapormu        
  SELECT @Onizleme = ISNULL(Onizleme, 1) from Rapor where RaporNo = (select RaporNo from KullaniciVarsayilanRaporlari         
         where KullaniciNo=@KulNo and TipNo=@TipNo)     
     
  
  
  RETURN        
 END
 go 

 ALTER TABLE STOKKARTI ADD UlkeKodu nvarchar(24)
 GO


 
CREATE TABLE [dbo].[ILCE](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[IL_ID] [int] NOT NULL,
	[ILCE_ID] [int] NULL,
	[ILCE_ADI] [nvarchar](50) NULL,
	[AKTIF] [nvarchar](1) NULL,
	[ISLEM_YAPAN] [int] NULL,
	[ISLEM_TARIHI] [datetime] NULL,
 CONSTRAINT [PK_ILCE] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


 

CREATE TABLE [dbo].[IL](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[IL_ID] [int] NOT NULL,
	[IL_ADI] [nvarchar](50) NOT NULL,
	[AKTIF] [nvarchar](1) NULL,
	[ISLEM_YAPAN] [int] NULL,
	[ISLEM_TARIHI] [datetime] NULL,
 CONSTRAINT [PK_IL] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


create or alter proc spBakim_Stok_Acari_Kasa @IslemNo  int  
as  
begin  
--FisTurune göre Acari,Ödeme,Kasa yazacak
--stokhardetbag da hareketi olmayan stokhar hareketlerinden stokhardetbag kaydı oluşturulur  
  declare @CariNo int, @CariKodu nvarchar(30),@CariAdi nvarchar(100), @KULNO int, @DovizKodu nvarchar(10),@Depo nvarchar(30),@FaturaNo int,@FisTuru nvarchar(10) 
         ,@Tarih nvarchar(8) ,@Aciklama nvarchar(60) ,@KULADI nvarchar(20),  @IslemTuru nvarchar(20), @Tutar float,   @KdvTutari float 
		 ,@DovTutar float,@DovizKuru float,@DovizCinsi int,@Departman nvarchar(8),@SaticiAdi  nvarchar(100),@Satici nvarchar(100),@GC char(1),@TP nvarchar(2),
		  @CariOPlanGunu int, @GunAy nvarchar(3), @OpsiyonGunu int	 
 
  select top 1 @DovizCinsi = DovizCinsi, @KULNO = KULNO, @DovizKodu = DovizKodu, @FaturaNo=FaturaNo,@FisTuru=FisTuru,
			   @Depo=Depo,@CariNo=CariNo,@CariKodu=CariKodu,@CariAdi=CariAdi,@Tarih=SiparisTarihi,
			   @Departman =  Departman,@Satici = Satici,@SaticiAdi = SaticiAdi , @GC = GC ,@IslemTuru = IslemTuru
  from STOKHAR where IslemNo = @IslemNo  
   
  select @DovTutar = sum(SonTutarDov),@Tutar=sum(SonTutar) ,@KdvTutari = sum(KdvTutari) from STOKHAR where IslemNo = @IslemNo   
 
  SET @DovizKuru = (CASE WHEN @Tutar > 0 and @DovTutar > 0 THEN @Tutar / @DovTutar ELSE 1 END)

 -- Select @DovizKuru=GunFiyati from DOVIZT where DovizKodu=@DovizKodu   
 
  DECLARE @IsIstasyonKodu nvarchar(60)   
  SET @IsIstasyonKodu = (Select top 1 IsIstasyonKodu from Kullanicilar where No=@KULNO)   
  DECLARE @IsIstasyonAdi nvarchar(60)   
  SET @IsIstasyonAdi = (Select top 1 IsIstasyonAdi from Kullanicilar where No=@KULNO)    

  DECLARE @BA VARCHAR   
  SET @BA = CASE WHEN @GC = 'C' then 'B' else 'A' end   

  DECLARE @Alacak float   
  SET @Alacak = CASE WHEN @GC = 'C' THEN 0 WHEN @GC = 'G' THEN @Tutar ELSE @Tutar END; 
  
  DECLARE @Borc float   
  SET @Borc = CASE WHEN @GC = 'G' THEN @Tutar WHEN @GC = 'C'  THEN 0 ELSE 0 END;   

  
  DECLARE @DovizAlacak float   
  SET @DovizAlacak = CASE WHEN @GC = 'C' THEN 0 ELSE @DovTutar END;   

  DECLARE @DovizBorc float   
  SET @DovizBorc = CASE WHEN @GC = 'C' THEN @DovTutar ELSE 0 END;   
    
  declare @sino int  
  set @sino=0  
  select @sino=IslemNo from STOKHARDETBAG where IslemNo=@IslemNo  
  
  if @sino=0  
    INSERT into STOKHARDETBAG  (IslemNo,IslemTuru, CariNo, CariKodu, CariAdi,Tutar, SiparisTarihi, KdvTutari,   
              FisTuru, GC, EkIskTut1, EkIskTut2, EkIskTut3, EkIskTutTop,FaturaNo, FaturaTarihi, Satici, DovizTut, DovizCinsi, DovizKodu, DovizTutB,   
              BelgeNo, OzelKod1, OzelKod2, OzelKod3, IslemTipi, IrsNo, Ack1, Ack2, Ack3, Ack4, KULNO, KULADI, FatSerNo, SaticiAdi,   
              AltIskYuzde1, AltIskYuzde2, AltIskYuzde3, AK, FaturaOPlanGunu, Depo, GunAy, OpsiyonGunu, AcikKapali,   
              DovizBorc, DovizAlacak, FYaz, SecimEH, IslemNo3, TP, FisNo, VardiyaKodu, VardiyaDurumu, Departman, MasrafToplami,   
              KDVHD, IslemNo4, KayitDuzeyi, YazarKasaNo, YazarKasaFisNo, YaziciCount, IsIstasyonKodu, IsIstasyonAdi,
			   VardiyaNo, OdemeBilgisi, FaturaAdresNo, SevkAdresNo, FI, SevkTarihi, 
			  eFaturaNo, UUID, eFaturaGonderimTarihi, eFaturaDurumu, EF_ISTISNA,   FaturaTipi)   
              VALUES (   
			 @IslemNo,@IslemTuru,@CariNo,@CariKodu,  @CariAdi, @Tutar,getdate(), @KdvTutari,   
			 @FisTuru,@GC,   0,   0,   0, 0,  0,  getdate(), @Satici,   @DovTutar,    @DovizCinsi,    @DovizKodu,   0,   
			 0, '','', '', '', '', '', '', '','Bakım', @KULNO, @KULADI, 'A', @SaticiAdi,
			 0, 0,  0,'ATY', 0, @Depo, 'Gün', 0, 'A',   
			 @DovizBorc, 	 @DovizAlacak, 'B', 'H', 0,	 'TF', '',  '99', 'Bekliyor',@Departman,0,   
			'H',  0, 0,  0,'', 0, @IsIstasyonKodu, @IsIstasyonAdi,   
			 '20090101', 'Veresiye',  1,  1,  'E',   getdate(),   
           '',  '', '',  '', '',  ''   )  
  
   declare @aino int  
   set @aino = 0  
   select @aino=ISLEMNO from ACARI A,STOKHAR S where A.ISLEMNO=S.IslemNo and A.BAACIKLA=S.IslemTuru and S.IslemNo=@IslemNo  
   
   if (@aino=0)  and (@FisTuru = 'F')
   begin             
		 if (@IslemTuru ='Borç') or (@IslemTuru ='Ödeme') or(@IslemTuru = 'Satış') or(@IslemTuru = 'Prk.Satış') or (@IslemTuru = 'Alış İade') begin      
		  SET @Borc = @Tutar   
		  SET @Alacak = 0      
		  SET @DovizBorc = @DovTutar   
		  SET @DovizAlacak = 0
		  SET @BA  = 'B'      
		 end 

		 if (@IslemTuru ='Alacak') or (@IslemTuru ='Tahsilat') or(@IslemTuru = 'Alış') or (@IslemTuru = 'Satış İade') begin      
		  SET @Borc = 0      
		  SET @Alacak = @Tutar   
		  SET @DovizBorc =  0 
		  SET @DovizAlacak = @DovTutar		  
		  SET @BA  = 'A'      
		 end  
 
		 SET @TP = ''      
		 if  (@IslemTuru = 'Satış') or(@IslemTuru = 'Prk.Satış') or (@IslemTuru = 'Alış İade') or (@IslemTuru = 'Alış') or (@IslemTuru = 'Satış İade') begin      
		  SET @TP = 'TF'      
		 end    
 
		 if (@IslemTuru = 'Devir') and (@Tutar>0)     
		   begin    
			 Set @Borc = @Tutar    
			 Set @Alacak = 0  
		     SET @DovizBorc =  @DovTutar 
		     SET @DovizAlacak = 0	
			 SET @BA  = 'B'    
		   end      
       
		 select TOP (1) @CariOPlanGunu = FaturaOPlanGunu,@GunAy = GunAy, @OpsiyonGunu = OpsiyonGunu
		 from dbo.AMUSTERI where MUSKOD=@CariKodu  
      
		 INSERT INTO ACARI      
		  (      
		  TESSIRNO, MUSNO, MUSADI, TARIH, ACIKLAMA, BORC, ALACAK, BA, BAACIKLA, ACIKLABAKIYE, BORDRONO, LISTNO, ISLEMNO, TDATE, DOVIZTUT, DOVIZCINSI, MUSKOD, DOVIZKODU, OZELKOD,       
		  ISLEMTIPI, BELGENO, KULNO, KULADI, SaticiKodu, SaticiAdi, CariOPlanGunu, GunAy, OpsiyonGunu, AcikKapali, DovizBorc, DovizAlacak, TP, VardiyaKodu, VardiyaDurumu, Departman,       
		  IslemNo2, KayitDuzeyi, KayitDuzeyiNo, IslemNo3, Aciklama2, OnOdeme, VadeTarihi, IsIstasyonKodu, IsIstasyonAdi, SiraNo, VardiyaNo, PosSablonKodu, Update_Date, StokKodu, FisNo      
		  )      
		 VALUES      
		  (      
		  '', @CariNo, @CariAdi, @Tarih,@Aciklama, @BORC, @ALACAK, @BA, @ISLEMTURU, '', 0, 0, @IslemNo, GETDATE(), @DovTutar, 1, @CariKodu, @DovizKodu, '',      
		  '','',@KulNo, @KULADI, @Satici, @SaticiAdi,@CariOPlanGunu, @GunAy, @OpsiyonGunu, 'A', @DovizBorc, @DovizAlacak,@TP , '99','Bekliyor',       
		  @DEPARTMAN, 0, 0, 0, 0, '', 'H',@Tarih, @IsIstasyonKodu, @IsIstasyonAdi, 1, '20090111','',GETDATE(),'',0      
		  )      
        
		 INSERT INTO Odeme      
		  (      
		  IslemNo, Tarih, Tutar, Aciklama, Durum, CariNo, CariKodu,  Borc, Alacak, NoNo, KULNO, BAAcikla, Departman, KayitDuzeyi, SiraNo, Modul)      
		 VALUES      
		  (      
		  @IslemNo, @Tarih, @Tutar, @Aciklama, @BA, @CariNo, @CariKodu,  @BORC, @ALACAK, 0, @KulNo, @IslemTuru, @Departman, 0, 1, '001'      
		  )      
      
		 if (@IslemTuru ='Ödeme') or (@IslemTuru ='Tahsilat')  begin      
        
		  DECLARE @KASAKODU nvarchar(6)      
		  DECLARE @KASAADI nvarchar(10)      
		  SET @KASAKODU = (select Deger from KullaniciAyarlari where Ayar='Varsayılan Kasa Kodu' and KullaniciNo=@KulNo)      
		  SET @KASAADI  = (select Deger from KullaniciAyarlari where Ayar='Varsayılan Kasa Adi'  and KullaniciNo=@KulNo)      
        
		  INSERT INTO KASA      
								 (BORC, ALACAK, ACIKLAMA, KASAKODU, KASAADI, MUSNO, MUSADI, TARIH, BA, BAACIKLA, ISLEMNO, MUSKOD, DovizTut, DovizCinsi, DovizKodu, AcikKapali, IslemNo2, AktarimTarihi, BelgeNo, KULNO, KULADI,       
								 NakitVisa, SaticiKodu, SaticiAdi, DovizBorc, DovizAlacak, VardiyaKodu, VardiyaDurumu, Departman, KayitDuzeyi, IsIstasyonKodu, IsIstasyonAdi, VardiyaNo, FisNo)      
		  SELECT        ALACAK, BORC, ACIKLAMA, @KASAKODU, @KASAADI, MUSNO, MUSADI, TARIH, BA, BAACIKLA, ISLEMNO, MUSKOD, DOVIZTUT, DOVIZCINSI, DOVIZKODU, AcikKapali, IslemNo2, TARIH, BELGENO, KULNO, KULADI,       
								 'N', SaticiKodu, SaticiAdi, DovizBorc, DovizAlacak, VardiyaKodu, VardiyaDurumu, Departman, KayitDuzeyi, IsIstasyonKodu, IsIstasyonAdi, VardiyaNo, FisNo      
		  FROM            ACARI where ISLEMNO =@IslemNo   
  
		  INSERT INTO Odeme      
							   (IslemNo, Tarih, Tutar, Aciklama, Durum, CariNo, CariKodu, Borc, Alacak, NoNo, KULNO,  BAAcikla, Departman, KayitDuzeyi, SiraNo, Modul)      
		  SELECT        ISLEMNO, TARIH, ALACAK, '', 'A', MUSNO, MUSKOD, 0, ALACAK, 0, KULNO,  'Tahsilat', Departman, KayitDuzeyi, 1, '001'      
		  FROM            ACARI where ISLEMNO = @IslemNo       
      
		 end;
	end;
end;
go
   
create or alter PROCEDURE [dbo].[spStokKartiKaydet]     
 @StokNo int,    
 @Kodu nvarchar(30),    
 @UreticiFirmaKodu nvarchar(30),    
 @StokAdi nvarchar(40),    
 @OzelKod1 nvarchar(8),    
 @OzelKod2 nvarchar(8),    
 @AnaBirim nvarchar(10),    
 @Barkodu nvarchar(16),    
 @IkinciBirim nvarchar(10),    
 @IkinciBirimMiktari float,    
 @IkinciBirimBarkodu nvarchar(16),    
 @UcuncuBirim nvarchar(10),    
 @UcuncuBirimMiktari float,    
 @UcuncuBirimBarkodu nvarchar(16),    
 @DorduncuBirim nvarchar(10),    
 @DorduncuBirimMiktari float,    
 @DorduncuBirimBarkodu nvarchar(16),    
 @AlisKdv smallint,    
 @SatisKdv smallint,    
 @Indirim smallint,    
 @StokAdedi float,    
 @F1Adi nvarchar(10),    
 @F2Adi nvarchar(10),    
 @F3Adi nvarchar(10),    
 @F4Adi nvarchar(10),    
 @F1Fiyat Float,    
 @F2Fiyat Float,    
 @F3Fiyat Float,    
 @F4Fiyat Float,    
 @F1Kdv nvarchar(1),    
 @F2Kdv nvarchar(1),    
 @F3Kdv nvarchar(1),    
 @F4Kdv nvarchar(1),    
 @GrupAdi nvarchar(30),    
 @UrtNo Float,    
 @UrtMiktar Float,    
 @BesinciBirim nvarchar(10),    
 @BesinciBirimMiktari Float,    
 @BesinciBirimBarkodu nvarchar(16),    
 @AltinciBirim nvarchar(10),    
 @AltinciBirimMiktari Float,    
 @AltinciBirimBarkodu nvarchar(16),    
 @AsgariAdet Float,    
 @AzamiAdet Float,    
 @OTVOrani Float,    
 @StokEn Float,    
 @StokBoy Float,    
 @StokYuksekligi Float,    
 @StokKilo Float,    
 @StokRenkKodu nvarchar(15),    
 @KULNO int,    
 @KULADI nvarchar(20),    
 @TP nvarchar(2),    
 @UygFiyat Float,    
 @Aciklama nvarchar(50),    
 @Departman nvarchar(8),    
 @AlisIndirimYuzde Float,    
 @SatisIndirimYuzde Float,    
 @OTVTutari Float,    
 @DepartmanKodu nvarchar(2),    
 @F1DovizKodu nvarchar(2),    
 @F2DovizKodu nvarchar(2),    
 @F3DovizKodu nvarchar(2),    
 @F4DovizKodu nvarchar(2),    
 @Update_Date smalldatetime,    
 @TeraziTusu nvarchar(2),    
 @YKasaTusu nvarchar(2),    
 @Secim nvarchar(10),    
 @AnaStokKodu nvarchar(30),    
 @Ambalaj nvarchar(20),    
 @StokKiloBrut Float,    
 @StokTipi nvarchar(15),    
 @StokOzellikKodu nvarchar(15),    
 @AktifPasif nvarchar(1),    
 @OzelBarkod Float,    
 @Olcu nvarchar(8),    
 @AlisIndirimYuzde2 Float,    
 @AlisIndirimYuzde3 Float,    
 @AlisIndirimYuzde4 Float,    
 @SatisIndirimYuzde2 Float,    
 @SatisIndirimYuzde3 Float,    
 @SatisIndirimYuzde4 Float,    
 @MuadilStokNo int,    
 @BonusPuani Float,    
 @BonusPuaniSatici Float,    
 @OlmasiGerekenAdet float,    
 @PrimYuzde float,    
  @StokBedenNo nvarchar(15),    
 @StokRenkBedenCalisir nvarchar(1),    
 @WASG nvarchar(1),    
 @WebGrupAdi nvarchar(30),    
 @SKFIK int,    
 @GrupOzelKod1 nvarchar(15),    
 @GrupOzelKod2 nvarchar(15),    
 @GrupOzelKod3 nvarchar(15),    
 @GrupOzelKod4 nvarchar(15),    
  @OrjinalKodu nvarchar(30),    
 @StokAdi2 nvarchar(40),    
 @Aciklama2 nvarchar(50),    
 @WebGrupAdi2 nvarchar(30),    
 @StokAgirlik Float,    
 @StokMaxAgirlik Float,    
 @StokMinAgirlik Float,    
   @AltGrupAdi nvarchar(30),    
 @AltGrupAdi2 nvarchar(30),    
 @SeriNoTakibi bit,    
 @IRKI nvarchar(30),    
 @SuniTohum bit,     
 @OzelKod3 nvarchar(8),      
 @OzelKod4 nvarchar(8),    
 @Icmal bit,    
 @SatisFiyatiDegistirilemez bit,    
 @A_Muh_Kodu nvarchar(20),    
 @S_Muh_Kodu nvarchar(20),    
 @FireOrani float,    
 @WebdeGosterilsinmi bit,    
 @TarimElTerminliGosterilsinmi bit,    
 @AltGrupAdi3 nvarchar(30),    
 @AdetTakibi bit,    
 @LotTakibi bit,  
 @UlkeKodu nvarchar(3)
 
AS     
INSERT STOKKARTI  (StokNo,    
  Kodu,    
  UreticiFirmaKodu,    
  StokAdi,    
  OzelKod1,    
  OzelKod2,    
  AnaBirim,    
  Barkodu,    
  IkinciBirim,    
  IkinciBirimMiktari,    
  IkinciBirimBarkodu,    
  UcuncuBirim,    
  UcuncuBirimMiktari,    
  UcuncuBirimBarkodu,    
  DorduncuBirim,    
  DorduncuBirimMiktari,    
  DorduncuBirimBarkodu,    
  AlisKdv,    
  SatisKdv,    
  Indirim,    
  StokAdedi,    
  F1Adi,    
  F2Adi,    
  F3Adi,    
  F4Adi,    
  F1Fiyat,    
  F2Fiyat,    
  F3Fiyat,    
  F4Fiyat,    
  F1Kdv,    
  F2Kdv,    
  F3Kdv,    
  F4Kdv,    
  GrupAdi,    
  UrtNo,    
  UrtMiktar,    
  BesinciBirim,    
  BesinciBirimMiktari,    
  BesinciBirimBarkodu,    
  AltinciBirim,    
  AltinciBirimMiktari,    
  AltinciBirimBarkodu,    
  AsgariAdet,    
  AzamiAdet,    
  OTVOrani,    
  StokEn,    
  StokBoy,    
  StokYuksekligi,    
  StokKilo,    
  StokRenkKodu,    
  KULNO,    
  KULADI,    
  TP,    
  UygFiyat,    
  Aciklama,    
  Departman,    
  AlisIndirimYuzde,    
  SatisIndirimYuzde,    
  OTVTutari,    
  DepartmanKodu,    
  F1DovizKodu,    
  F2DovizKodu,    
  F3DovizKodu,    
  F4DovizKodu,    
  Update_Date,    
  TeraziTusu,    
  YKasaTusu,    
  Secim,    
  AnaStokKodu,    
  Ambalaj,    
  StokKiloBrut,    
  StokTipi,    
  StokOzellikKodu,    
  AktifPasif,    
  OzelBarkod,    
  Olcu,    
  AlisIndirimYuzde2,    
  AlisIndirimYuzde3,    
  AlisIndirimYuzde4,    
  SatisIndirimYuzde2,    
  SatisIndirimYuzde3,    
  SatisIndirimYuzde4,    
  MuadilStokNo,    
  BonusPuani,    
  BonusPuaniSatici,    
  OlmasiGerekenAdet,    
  PrimYuzde,    
   StokBedenNo,    
  StokRenkBedenCalisir,    
  WASG,    
  WebGrupAdi,    
  SKFIK,    
  GrupOzelKod1,    
  GrupOzelKod2,    
  GrupOzelKod3,    
  GrupOzelKod4,    
   OrjinalKodu,    
  StokAdi2,    
  Aciklama2,    
  WebGrupAdi2,    
  StokAgirlik,    
  StokMaxAgirlik,    
  StokMinAgirlik,    
  AltGrupAdi,    
  AltGrupAdi2,    
  SeriNoTakibi,    
  IRKI,    
  SuniTohum,    
  OzelKod3,    
  OzelKod4,    
  Icmal,    
  SatisFiyatiDegistirilemez,    
  A_Muh_Kodu,    
  S_Muh_Kodu,    
  FireOrani,    
  WebdeGosterilsinmi,    
  TarimElTerminliGosterilsinmi,    
  AltGrupAdi3,    
  AdetTakibi,    
 LotTakibi,  
 UlkeKodu )  



VALUES (@StokNo,    
 @Kodu,    
 @UreticiFirmaKodu,    
 @StokAdi,    
 @OzelKod1,    
 @OzelKod2,    
 @AnaBirim,    
 @Barkodu,    
 @IkinciBirim,    
 @IkinciBirimMiktari,    
 @IkinciBirimBarkodu,    
 @UcuncuBirim,    
 @UcuncuBirimMiktari,    
 @UcuncuBirimBarkodu,    
 @DorduncuBirim,    
 @DorduncuBirimMiktari,    
 @DorduncuBirimBarkodu,    
 @AlisKdv,    
 @SatisKdv,    
 @Indirim,    
 @StokAdedi,    
 @F1Adi,    
 @F2Adi,    
 @F3Adi,    
 @F4Adi,    
 @F1Fiyat,    
 @F2Fiyat,    
 @F3Fiyat,    
 @F4Fiyat,    
 @F1Kdv,    
 @F2Kdv,    
 @F3Kdv,    
 @F4Kdv,    
 @GrupAdi,    
 @UrtNo,    
 @UrtMiktar,    
 @BesinciBirim,    
 @BesinciBirimMiktari,    
 @BesinciBirimBarkodu,    
 @AltinciBirim,    
 @AltinciBirimMiktari,    
 @AltinciBirimBarkodu,    
 @AsgariAdet,    
 @AzamiAdet,    
 @OTVOrani,    
 @StokEn,    
 @StokBoy,    
 @StokYuksekligi,    
 @StokKilo,    
 @StokRenkKodu,    
 @KULNO,    
 @KULADI,    
 @TP,    
 @UygFiyat,    
 @Aciklama,    
 @Departman,    
 @AlisIndirimYuzde,    
 @SatisIndirimYuzde,    
 @OTVTutari,    
 @DepartmanKodu,    
 @F1DovizKodu,    
 @F2DovizKodu,    
 @F3DovizKodu,    
 @F4DovizKodu,    
 @Update_Date,    
 @TeraziTusu,    
 @YKasaTusu,    
 @Secim,    
 @AnaStokKodu,    
 @Ambalaj,    
 @StokKiloBrut,    
 @StokTipi,    
 @StokOzellikKodu,    
 @AktifPasif,    
 @OzelBarkod,    
 @Olcu,    
 @AlisIndirimYuzde2,    
 @AlisIndirimYuzde3,    
 @AlisIndirimYuzde4,    
 @SatisIndirimYuzde2,    
 @SatisIndirimYuzde3,    
 @SatisIndirimYuzde4,    
 @MuadilStokNo,    
 @BonusPuani,    
 @BonusPuaniSatici,    
 @OlmasiGerekenAdet,    
 @PrimYuzde,    
  @StokBedenNo,    
 @StokRenkBedenCalisir,    
 @WASG,    
 @WebGrupAdi,    
 @SKFIK,    
 @GrupOzelKod1,    
 @GrupOzelKod2,    
 @GrupOzelKod3,    
 @GrupOzelKod4,    
  @OrjinalKodu,    
 @StokAdi2,    
 @Aciklama2,    
 @WebGrupAdi2,    
 @StokAgirlik,    
 @StokMaxAgirlik,    
 @StokMinAgirlik,    
 @AltGrupAdi,    
 @AltGrupAdi2,    
 @SeriNoTakibi,    
 @IRKI,    
 @SuniTohum,    
 @OzelKod3,    
 @OzelKod4,    
 @Icmal,    
 @SatisFiyatiDegistirilemez,    
 @A_Muh_Kodu,    
 @S_Muh_Kodu,    
 @FireOrani,    
 @WebdeGosterilsinmi,    
 @TarimElTerminliGosterilsinmi,    
 @AltGrupAdi3,    
 @AdetTakibi,    
@LotTakibi,  
@UlkeKodu)
go
CREATE OR ALTER VIEW dbo.VCr_CariHareketlerFisNo   
AS   
SELECT    C.MUSKOD AS CariKodu,C.MUSADI AS CariUnvani,C.BAACIKLA AS IslemTuru,C.TARIH AS Tarih,   
                     C.BORC AS Borc,C.ALACAK AS Alacak,C.IsIstasyonKodu AS IsIstasyonKodu,C.IsIstasyonAdi AS IsIstasyonAdi,   
                     S.FisNo AS FisNo, S.FaturaNo AS FaturaNo, S.FatSerNo AS FatSeriNo,   
                     C.VardiyaKodu AS VardiyaKodu,C.VardiyaNo AS VardiyaNo,C.ACIKLAMA AS Aciklama,C.BELGENO AS BelgeNo,   
                     C.SaticiKodu AS SaticiKodu,C.SaticiAdi AS SaticiAdi,C.VardiyaDurumu AS VardiyaDurumu,   
                     C.Departman AS Departman,C.KULNO AS KulNo,C.KULADI AS KulAdi,C.ISLEMNO AS IslemNo,	
					 M.SaticiKodu CariSaticiKodu,M.SaticiAdi CariSaticiAdi
FROM         dbo.ACARI C
inner join  AMUSTERI M on M.MUSNO = C.MUSNO
LEFT OUTER JOIN  dbo.STOKHARDETBAG S ON C.ISLEMNO = S.IslemNo
go
  
CREATE or alter PROCEDURE [dbo].[spOdemeYaz]   
 @IslemNo int,@Tarih datetime,@Tutar float,  
 @Aciklama nvarchar(15), @Durum nvarchar(1),  
 @CariNo int,@CariKodu nvarchar(20),  
 @Borc float,@Alacak float,@NoNo int,  
 @KULNO int,@BAAcikla nvarchar (15) ,@Departman nvarchar(8),  
 @KayitDuzeyi int,@SiraNo int,   
 @Modul nvarchar(3)  
AS  
INSERT Odeme (IslemNo, Tarih, Tutar, Aciklama, Durum, CariNo,  
 CariKodu,  Borc, Alacak,  NoNo, KULNO,BAAcikla, Departman,  
 KayitDuzeyi, SiraNo, Modul) 
VALUES (@IslemNo, @Tarih, @Tutar, @Aciklama, @Durum, @CariNo,  
 @CariKodu,  @Borc, @Alacak,  @NoNo, @KULNO,@BAAcikla, @Departman,  
 @KayitDuzeyi, @SiraNo, @Modul)  
go
ALTER TABLE STOKKARTI ADD TevkifatKodu nvarchar(5) NULL
  