---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------  
create or alter proc spMalSayimiDuzenle   
as  
---Malsayım detbag kaydı olmayanları düzenler  
declare @IslemNo int declare @GC nvarchar(1) declare @KullaniciAdi nvarchar(20) declare @ParamKullaniciNo int  
declare @DovizKodu nvarchar(2) declare @DovizId smallint declare @Depo nvarchar(30) declare @KullaniciDepartmani nvarchar(8)  
declare @Tutar money declare @KdvTutari money declare @DovizliTutar money declare @SevkTarihi datetime declare @DovizKuru money=1  
  
declare @FaturaTarihi datetime   
  
declare StoklarCursor cursor              
for              
 Select IslemNo,SUM(Tutar) Tutar,SUM(KdvTutari)KdvTutari,SUM(DovizliTutar) DovizliTutar,SevkTarihi  
 from (  
  select IslemNo,  
    CASE WHEN GC = 'G' THEN SonTutar ELSE SonTutar * (-1) end Tutar,   
    CASE WHEN GC = 'G' THEN KdvTutari ELSE KdvTutari * (-1) end KdvTutari,   
    CASE WHEN GC = 'G' THEN DovizTut ELSE DovizTut * (-1) end DovizliTutar,   
      SiparisTarihi as SevkTarihi    
  from STOKHAR where IslemTuru='Mal Sayımı' and not exists (select * from STOKHARDETBAG where IslemNo=STOKHAR.IslemNo and IslemTuru=STOKHAR.IslemTuru)    
 ) tbl  
 GROUP BY IslemNo,SevkTarihi  
  
           
 open StoklarCursor              
 fetch next from StoklarCursor into @IslemNo,@Tutar,@KdvTutari,@DovizliTutar,@SevkTarihi             
              
while @@FETCH_STATUS =0               
begin  
  
select top 1 @FaturaTarihi=FaturaTarihi,@KullaniciAdi=KULADI,@ParamKullaniciNo=KULNO,  
@DovizKodu=DovizKodu,@DovizId=DovizCinsi,@Depo=Depo,@KullaniciDepartmani=Departman,@DovizKuru=DovizKuru from STOKHAR where IslemNo=@IslemNo and IslemTuru='Mal Sayımı'   
  
  
IF @Tutar >= 0  
 SET @GC = 'G'  
ELSE  
 SET @GC = 'C';  
  
exec spStokHarDetBagKaydet /*@IslemNo*/ @IslemNo, /*@IslemTuru*/ 'Mal Sayımı',/*:CariNo*/0,/*:CariKodu*/'Mal Sayımı',/*:CariAdi*/'Mal Sayımı',/*@Tutar*/ @Tutar,                         
   /*@SiparisTarihi*/ @FaturaTarihi,/*@KdvTutari*/ @KdvTutari, /*@FisTuru*/'M',/*:GC*/@GC,/*:EkIskTut1*/0 ,/*:EkIskTut2*/0 ,/*:EkIskTut3*/0 ,/*:EkIskTutTop*/0 ,                      
   /*:FaturaNo*/0,/*:FaturaTarihi*/ @FaturaTarihi, /*:Satici*/'',/*:DovizTut*/@DovizliTutar ,/*:DovizCinsi*/@DovizId ,/*:DovizKodu*/@DovizKodu ,/*  @DovizTutB*/@DovizliTutar,                      
   /*@BelgeNo*/'', /*@OzelKod1*/'',/*@OzelKod2*/'',/*@OzelKod3*/'',/*@IslemTipi*/'',/*@IrsNo*/'',/*@Ack1*/'Mal Sayımı (Seçilecek depodaki stokları sıfırlama)',/*@Ack2*/'',/*@Ack3*/'',/*@Ack4*/'',/*:KULNO*/@ParamKullaniciNo ,  
   /*:KULADI*/@KullaniciAdi ,                      
   /*@FatSerNo*/'',/*@SaticiAdi*/'',/*@AltIskYuzde1*/0,/*@AltIskYuzde2*/0,/*@AltIskYuzde3*/0,/*@AK*/'',/*@FaturaOPlanGunu*/0,/*@Depo*/@Depo,/*@GunAy*/0,/*@OpsiyonGunu*/0,                      
   /*@AcikKapali*/'A',/*@DovizBorc*/0,/*@DovizAlacak*/0,/*@FYaz*/'',/*@SecimEH*/'',/*@IslemNo3*/0,/*@TP*/'TF',/*@FisNo*/'',/*@VardiyaKodu*/'',/*@VardiyaDurumu*/'',/*@Departman*/@KullaniciDepartmani,                      
   /*@MasrafToplami*/0,/*@KDVDH*/'H',/*@IslemNo4*/0,/*@KayitDuzeyi*/0,/*@YazarKasaNo*/0,/*@YazarKasaFisNo*/'',/*@YaziciCount*/0,/*@IsIstasyonKodu*/'',/*@IsIstasyonAdi*/'',                      
   /*@TevkifatTutari*/0,/*@VardiyaNo*/'',/*@OdemeBilgisi*/'',/*@FaturaAdresNo*/ 0,/*@SevkAdresNo*/ 0,/*@FI*/ 'E',/*@SevkTarihi*/@SevkTarihi,/*@eFaturaNo*/'',                      
   /*@UUID*/ '',/*@eFaturaGonderimTarihi*/ null,/*@eFaturaDurumu*/'',/*@FaturaTipi*/0,@DovizKuru  
  
  fetch next from StoklarCursor into @IslemNo,@Tutar,@KdvTutari,@DovizliTutar,@SevkTarihi                
end              
              
close StoklarCursor              
deallocate StoklarCursor   