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(10),             
@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,  @HesaplananTutar / @DovizKuru,  @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  