KAR ZARAR RAPORU

==========================================

SELECT CONVERT(NVARCHAR,SH.TARIH,104) AS TARIH,S.STOKKODU,S.STOKADI,SUM(SH.MIKTAR) AS MIKTAR,ROUND(SUM(SH.ARATOPLAM),2) AS ARATOPLAM,ROUND(SUM(SH.KDVTOPLAMI),2) AS KDVTOPLAMI,ROUND(SUM(SH.GENELTOPLAM),2) AS GENELTOPLAM
,ROUND(((SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)/(1+(SH.KDVORANI/100))),2) AS ALISFIYATI
,((SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)) AS KDVDAHILALISFIYATI
,ROUND(SUM(SH.ARATOPLAM)/SUM(SH.MIKTAR),2) AS ORTALAMASATISFIYATI
,ROUND((SUM(SH.MIKTAR)*((SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)/(1+(SH.KDVORANI/100)))),2) AS ALISFIYATLARITOPLAMI
,ROUND((SUM(SH.ARATOPLAM) - (SUM(SH.MIKTAR)*((SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)/(1+(SH.KDVORANI/100))))),2) AS ARATOPLAMDANKAR
,ROUND((SUM(SH.GENELTOPLAM) - ((SUM(SH.MIKTAR)*((SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)/(1+(SH.KDVORANI/100)))))*(1+(SH.KDVORANI/100))),2) AS GENELTOPLAMDANKAR
 FROM STOKHAR SH,STOK S WHERE SH.STOKKODU=S.STOKKODU AND SH.EVRAKTIPI='FATURA' AND SH.TIPI='SATIS'
 GROUP BY SH.TARIH,S.STOKKODU,S.STOKADI,SH.KDVORANI ORDER BY CONVERT(NVARCHAR,SH.TARIH,104) ASC

 

===========================================================
GÜNLÜK ENVANTER RAPORU
============================================================
SELECT
S.STOKKODU,S.STOKADI,
dbo.DepodakiMiktar(S.STOKKODU,0,GETDATE()+1) AS MIKTAR,
S.STOKSEVIYESIBIRIMI,
(SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC) AS ALISFIYATI,
(dbo.DepodakiMiktar(S.STOKKODU,0,GETDATE()+1)*(SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=0 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)) AS TOPLAM,
(dbo.DepodakiMiktar(S.STOKKODU,0,GETDATE()+1)*(SELECT TOP 1 SFL.FIYAT FROM STOK_FIYAT_LISTELERI SFL WHERE SFL.TIPI=1 AND SFL.STOKKODU=S.STOKKODU ORDER BY SFL.ID DESC)) AS SATISTOPLAM
FROM STOK S ORDER BY S.STOKKODU ASC

 

==========================================================
Perakende İşlem Yapan Kasalarda Verilerin Temizlenmesi
1. OLARAK BU İŞLEMLER YAPILIR
DELETE FROM STOKHAR
DELETE FROM STOKHAR2
DELETE FROM FATURAMASTER
DELETE FROM FATURAMASTER2
DELETE FROM IRSALIYEMASTER
DELETE FROM IRSALIYEMASTER2
DELETE FROM CARIHAREKETLER
DELETE FROM CARIHAREKETLER2
DELETE FROM KAYITLAR
DELETE FROM EVRAKBAGLAMA
DELETE FROM STOKHAR2_BEDEN_HAREKETLERI
DELETE FROM STOKHAR_BEDEN_HAREKETLERI
DELETE FROM LOGS
DELETE FROM FIYATDEGISIKLIKLERI
DELETE FROM SISTEMLOGLARI
DELETE FROM XZ_RAPORLARI

 

2. OLARAK SHRINK YAPILIR
Shrinkleme nasıl Yapılır sayfamızdan bakabilirsiniz.
/****** Object:  Trigger [dbo].[MBTMIKRO_STOK_HAREKETLERI]    Script Date: 16.12.2020 15:04:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[MBTMIKRO_STOK_HAREKETLERI] ON [dbo].[STOK_HAREKETLERI] 
FOR INSERT,UPDATE,DELETE
AS
BEGIN
   DECLARE @satirNumarasi NVARCHAR(50)
   DECLARE @silinenSatirNumarasi nvarchar(50)
   DECLARE @sth_tip int
   DECLARE @sth_cins int
   DECLARE @sth_normal_iade int
   DECLARE @sth_evrak_tip int
   DECLARE @sth_satirno int
   DECLARE @sth_stok_kod nvarchar (50)
   DECLARE @sth_cari_kodu nvarchar (50)
   DECLARE @sth_parti_kodu nvarchar (50)
   DECLARE @sth_lot_no int
   DECLARE @sth_giris_depo_no int
   DECLARE @sth_cikis_depo_no int
   DECLARE @sth_evrakno_seri nvarchar (50)
   DECLARE @sth_evrakno_sira int
   DECLARE @sth_belge_no nvarchar (50)
   DECLARE @sth_tarih datetime 
   DECLARE @sto_birim1_ad nvarchar (50)
   DECLARE @sth_miktar float

   DECLARE @girisCikisTipi nvarchar (50)
   DECLARE @evrakTipi nvarchar (50)
   DECLARE @mbtTakipNo nvarchar (50)
   DECLARE @mbtTakipNoAna nvarchar (50)
   DECLARE @Action as char(1)
   DECLARE @ADRESKODU nvarchar (50)
   DECLARE @DEPOKODU int
   DECLARE @EVRAKSERI nvarchar (50)
   DECLARE @EVRAKSIRA int
   --SIPARISE BAGLI ıse
   DECLARE @sip_RECno Nvarchar(50)
   DECLARE @sip_evrakno_seri nvarchar (50)
   DECLARE @sip_evrakno_sira int
   DECLARE @sth_sip_recid_recno nvarchar(50)
   --
   SET NOCOUNT ON;
   SET @Action = (CASE WHEN EXISTS(SELECT * FROM INSERTED)
                         AND EXISTS(SELECT * FROM DELETED)
                        THEN 'U'  -- Set Action to Updated.
                        WHEN EXISTS(SELECT * FROM INSERTED)
                        THEN 'I'  -- Set Action to Insert.
                        WHEN EXISTS(SELECT * FROM DELETED)
                        THEN 'D'  -- Set Action to Deleted.
                        ELSE NULL -- Skip. It may have been a failed delete  
                    END)
                    -------
                    if @Action!='D'
                    BEGIN
                    SELECT 
                           @satirNumarasi=i.sth_Guid,
                           @sth_tip=i.sth_tip,
                           @sth_normal_iade=i.sth_normal_iade,
                           @sth_evrak_tip=i.sth_evraktip,
                           @sth_satirno=i.sth_satirno,
                           @sth_stok_kod=i.sth_stok_kod,
                           @sth_cari_kodu=i.sth_cari_kodu,
                           @sth_parti_kodu=i.sth_parti_kodu,
                           @sth_lot_no=i.sth_lot_no,
                           @sth_giris_depo_no=i.sth_giris_depo_no,
                           @sth_cikis_depo_no=i.sth_cikis_depo_no,
                           @sth_evrakno_seri=i.sth_evrakno_seri,
                           @sth_evrakno_sira=i.sth_evrakno_sira,
                           @EVRAKSERI=i.sth_evrakno_seri,
                           @EVRAKSIRA=i.sth_evrakno_sira,
                           @sth_belge_no=i.sth_belge_no,
                           @sth_tarih=i.sth_tarih,
                           @sth_miktar=i.sth_miktar,
                           @sip_RECno=i.sth_sip_uid,
                           @sth_sip_recid_recno=i.sth_sip_uid
                    FROM inserted i WHERE (i.sth_special1='' and i.sth_special2='' and i.sth_special3='' and i.sth_evraktip<>4 AND i.sth_cins<>9)
                    END 
   	   else 
            if @Action='D'
            BEGIN
                    SELECT 
                           @satirNumarasi=d.sth_Guid,
                           @silinenSatirNumarasi=d.sth_Guid,
                           @sth_tip=d.sth_tip,
                           @sth_normal_iade=d.sth_normal_iade,
                           @sth_evrak_tip=d.sth_evraktip,
                           @sth_satirno=d.sth_satirno,
                           @sth_stok_kod=d.sth_stok_kod,
                           @sth_cari_kodu=d.sth_cari_kodu,
                           @sth_parti_kodu=d.sth_parti_kodu,
                           @sth_lot_no=d.sth_lot_no,
                           @sth_giris_depo_no=d.sth_giris_depo_no,
                           @sth_cikis_depo_no=d.sth_cikis_depo_no,
                           @sth_evrakno_seri=d.sth_evrakno_seri,
                           @sth_evrakno_sira=d.sth_evrakno_sira,
                           @sth_belge_no=d.sth_belge_no,
                           @sth_tarih=d.sth_tarih,
                           @sth_miktar=d.sth_miktar
                    FROM deleted d WHERE (d.sth_special1='' and d.sth_special2='' and d.sth_special3='' and d.sth_evraktip<>4 AND d.sth_cins<>9)
            END 

      SELECT @sto_birim1_ad=s.sto_birim1_ad FROM STOKLAR s where s.sto_kod=@sth_stok_kod
       
      declare @AlLChars varchar(50) = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvyzx0123456789'

      SELECT @mbtTakipNo=(
      (RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1))
       +'-' +
       (RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1))
       +'-' +
       (RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1))
       +'-'+
       (RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1))
       +'-'+
       (RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) +
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1) + 
       RIGHT( LEFT(@AlLChars,ABS(BINARY_CHECKSUM(NEWID())%35) + 1 ),1))
       )
       	   
       set @mbtTakipNoAna=@mbtTakipNo

       set @girisCikisTipi=(CASE WHEN @sth_tip=1 THEN 'C' WHEN @sth_tip=0 THEN 'G' ELSE NULL END)
       
       SET @evrakTipi=(CASE
                            WHEN @sth_evrak_tip=0 THEN 'DEPOCIKIS'
                            WHEN @sth_evrak_tip=2 THEN 'DAT'
                            WHEN @sth_evrak_tip=1 THEN 'IRSALIYE'
                            WHEN @sth_evrak_tip=3 THEN 'FATURA'
                            WHEN @sth_evrak_tip=4 THEN 'FATURA'
                            WHEN @sth_evrak_tip=6 THEN 'VIRMAN'
                            WHEN @sth_evrak_tip=7 THEN 'URETIM'
                            WHEN @sth_evrak_tip=12 THEN 'DEPOGIRIS'
                            WHEN @sth_evrak_tip=13 THEN 'IRSALIYE'
                            ELSE NULL 
                            END
                            )
      
                    -------
       SET @DEPOKODU=(CASE WHEN @sth_tip=0 THEN @sth_giris_depo_no WHEN @sth_tip=1 THEN @sth_cikis_depo_no ELSE @sth_giris_depo_no END)
       SET @ADRESKODU=@DEPOKODU

       if @Action='I'
           BEGIN	
            --şimdi DINAMIKDEPOYA INSERT EDELIM				
            if @sth_evrak_tip=1 AND @sth_tip=1 
            BEGIN
                SET @ADRESKODU='SHA'
                SELECT TOP 1 @EVRAKSERI=sip_evrakno_seri,@EVRAKSIRA=@sip_evrakno_sira FROM SIPARISLER WHERE @sip_RECno=@sth_sip_recid_recno
            END

            if @evrakTipi='IRSALIYE' OR @evrakTipi='FATURA' OR @evrakTipi='DEPOCIKIS' OR @evrakTipi='DEPOGIRIS' OR @evrakTipi='URETIM'

            BEGIN
                
                    INSERT INTO MBTADRESYERLESIM (TERMINALNO,KULLANICIADI,EVRAKSERI,EVRAKSIRA,TARIH,KAYITZAMANI,GUNCELLEMEZAMANI,DEPONO,STOKKODU,PARTIKODU,LOTNO,SERINUMARASI,MIKTAR,SIRANO,BAGLISATIRID,ADRESKODU,OKUTULANBARKOD,TAKIPNOANA,TAKIPNO,EVRAKTIPI,GIRISCIKISTIPI,NORMALIADE,KOLINO,AKTIF)
                                          VALUES ('0','TRIGGER',@EVRAKSERI,@EVRAKSIRA,@sth_tarih,GETDATE(),GETDATE(),@sth_cikis_depo_no,@sth_stok_kod,@sth_parti_kodu,@sth_lot_no,'',@sth_miktar,@sth_satirno,@satirNumarasi,@ADRESKODU,'',@mbtTakipNoAna,@mbtTakipNo,@evrakTipi,@girisCikisTipi,'NORMAL','1',1)
                    
            END

            if @evrakTipi='DAT'
            BEGIN
            --ONCE CIKIS HAREKETI
            INSERT INTO MBTADRESYERLESIM (TERMINALNO,KULLANICIADI,EVRAKSERI,EVRAKSIRA,TARIH,KAYITZAMANI,GUNCELLEMEZAMANI,DEPONO,STOKKODU,PARTIKODU,LOTNO,SERINUMARASI,MIKTAR,SIRANO,BAGLISATIRID,ADRESKODU,OKUTULANBARKOD,TAKIPNOANA,TAKIPNO,EVRAKTIPI,GIRISCIKISTIPI,NORMALIADE,KOLINO,AKTIF)
                                          VALUES ('0','TRIGGER',@EVRAKSERI,@EVRAKSIRA,@sth_tarih,GETDATE(),GETDATE(),@sth_cikis_depo_no,@sth_stok_kod,@sth_parti_kodu,@sth_lot_no,'',@sth_miktar,@sth_satirno,@satirNumarasi,@ADRESKODU,'',@mbtTakipNoAna,@mbtTakipNo,@evrakTipi,'C','NORMAL','1',1)
                     
                     

            --SONRA GIRIS HAREKETI
            INSERT INTO MBTADRESYERLESIM (TERMINALNO,KULLANICIADI,EVRAKSERI,EVRAKSIRA,TARIH,KAYITZAMANI,GUNCELLEMEZAMANI,DEPONO,STOKKODU,PARTIKODU,LOTNO,SERINUMARASI,MIKTAR,SIRANO,BAGLISATIRID,ADRESKODU,OKUTULANBARKOD,TAKIPNOANA,TAKIPNO,EVRAKTIPI,GIRISCIKISTIPI,NORMALIADE,KOLINO,AKTIF)
                                          VALUES ('0','TRIGGER',@EVRAKSERI,@EVRAKSIRA,@sth_tarih,GETDATE(),GETDATE(),@sth_giris_depo_no,@sth_stok_kod,@sth_parti_kodu,@sth_lot_no,'',@sth_miktar,@sth_satirno,@satirNumarasi,@ADRESKODU,'',@mbtTakipNoAna,@mbtTakipNo,@evrakTipi,'G','NORMAL','1',1)
                     
                    

            
            END
            if @evrakTipi='VIRMAN' 
            BEGIN
                    if(@sth_tip=1) 
                    set @girisCikisTipi='C'
                    else
                    set @girisCikisTipi='G'

                        INSERT INTO MBTADRESYERLESIM (TERMINALNO,KULLANICIADI,EVRAKSERI,EVRAKSIRA,TARIH,KAYITZAMANI,GUNCELLEMEZAMANI,DEPONO,STOKKODU,PARTIKODU,LOTNO,SERINUMARASI,MIKTAR,SIRANO,BAGLISATIRID,ADRESKODU,OKUTULANBARKOD,TAKIPNOANA,TAKIPNO,EVRAKTIPI,GIRISCIKISTIPI,NORMALIADE,KOLINO,AKTIF)
                                          VALUES ('0','TRIGGER',@EVRAKSERI,@EVRAKSIRA,@sth_tarih,GETDATE(),GETDATE(),@sth_giris_depo_no,@sth_stok_kod,@sth_parti_kodu,@sth_lot_no,'',@sth_miktar,@sth_satirno,@satirNumarasi,@ADRESKODU,'',@mbtTakipNoAna,@mbtTakipNo,@evrakTipi,@girisCikisTipi,'NORMAL','1',1)
                    
            END
        END	

    ELSE 
        if @Action='U'
            if @evrakTipi='IRSALIYE' OR @evrakTipi='FATURA' OR @evrakTipi='DEPOCIKIS' OR @evrakTipi='DEPOGIRIS' OR @evrakTipi='URETIM'
                BEGIN
                    --YANI IRSALIYE VEYA FATURA ISE			
                    
                    UPDATE MBTADRESYERLESIM SET MIKTAR=@sth_miktar,PARTIKODU=@sth_parti_kodu,LOTNO=@sth_lot_no,ADRESKODU=@ADRESKODU,DEPONO=@DEPOKODU,STOKKODU=@sth_stok_kod WHERE EVRAKSERI=@sth_evrakno_seri and EVRAKSIRA=@sth_evrakno_sira AND BAGLISATIRID=@satirNumarasi
                END 
            if @evrakTipi='VIRMAN'
                BEGIN
                    
                if(@sth_tip=1) 
                set @girisCikisTipi='C'
                else
                set @girisCikisTipi='G'		
                    
                    UPDATE MBTADRESYERLESIM SET MIKTAR=@sth_miktar,PARTIKODU=@sth_parti_kodu,LOTNO=@sth_lot_no,ADRESKODU=@sth_giris_depo_no,DEPONO=@sth_giris_depo_no,GIRISCIKISTIPI=@girisCikisTipi,STOKKODU=@sth_stok_kod WHERE EVRAKSERI=@sth_evrakno_seri and EVRAKSIRA=@sth_evrakno_sira AND BAGLISATIRID=@satirNumarasi	
                END
            if @evrakTipi='DAT'
                BEGIN
                    
                    UPDATE MBTADRESYERLESIM SET MIKTAR=@sth_miktar,PARTIKODU=@sth_parti_kodu,LOTNO=@sth_lot_no,ADRESKODU=@sth_cikis_depo_no,DEPONO=@sth_cikis_depo_no,STOKKODU=@sth_stok_kod WHERE EVRAKSERI=@sth_evrakno_seri and EVRAKSIRA=@sth_evrakno_sira AND BAGLISATIRID=@satirNumarasi AND GIRISCIKISTIPI='C'
                    --
                    
                    UPDATE MBTADRESYERLESIM SET MIKTAR=@sth_miktar,PARTIKODU=@sth_parti_kodu,LOTNO=@sth_lot_no,ADRESKODU=@sth_giris_depo_no,DEPONO=@sth_giris_depo_no,STOKKODU=@sth_stok_kod WHERE EVRAKSERI=@sth_evrakno_seri and EVRAKSIRA=@sth_evrakno_sira AND BAGLISATIRID=@satirNumarasi AND GIRISCIKISTIPI='G'
                END
        ELSE
            if @Action='D'
            --ADRESYERLESIMDEN SILINDIMI=1 YAPILACAK
                BEGIN
                --PRINT 'SILME ISLEMI YAPIYORUZ'
                    --YANI IRSALIYE VEYA FATURA ISE			
                    --SELECT TOP 1 @mbtTakipNo=MBTTAKIPNO FROM ZZZ_EVRAKTAKIP WHERE IDTAKIPNO=@silinenSatirNumarasi
                    --PRINT 'SILME ISLEMI YAPIYORUZ 2' + @mbtTakipNo
                    --UPDATE ADRESYERLESIM SET SILINDIMI=1 WHERE MBTTAKIPNO=@mbtTakipNo
                    DELETE FROM MBTADRESYERLESIM WHERE BAGLISATIRID=@silinenSatirNumarasi
                    --DECLARE @STRSQL NVARCHAR(MAX)
                    --SET @STRSQL=('UPDATE ADRESYERLESIM SET SILINDIMI=1 WHERE MBTTAKIPNO=' + @mbtTakipNo)
                    --PRINT @mbtTakipNo
                END 
            
END
--Hızlı Depo Stok Raporu Parti ve Lot bazında almak için ilgili kolonlar eklenebilir.
declare @depo int 
declare @tarih datetime
set @depo=1
set @tarih=getdate()
select * from (
SELECT sto_kod,sto_isim,sth_giris_depo_no,round(SUM(CASE
WHEN (sth_tip=0) OR ((sth_tip=2) AND (sth_giris_depo_no=@depo)) THEN sth_miktar
WHEN (sth_tip=1) OR ((sth_tip=2) AND (sth_cikis_depo_no=@depo)) THEN (-1) * sth_miktar
ELSE 0
END),2) as EldekiMiktar
FROM   dbo.STOK_HAREKETLERI WITH (NOLOCK),STOKLAR WITH (NOLOCK)
WHERE  (sth_stok_kod=sto_kod) AND
((sth_tarih<=@tarih) OR (@tarih<='1900-1-1') OR (@tarih is NULL)) AND
(
((sth_tip=0) and ((sth_giris_depo_no=@depo) OR (@depo=0))) OR
((sth_tip=1) and ((sth_cikis_depo_no=@depo) OR (@depo=0))) OR
((sth_tip=2) AND
(sth_giris_depo_no<>sth_cikis_depo_no) AND
((sth_giris_depo_no=@depo) OR (sth_cikis_depo_no=@depo))
)
) AND
(NOT (sth_cins in (9,15)))

group by sto_kod,sto_isim,sth_giris_depo_no
) t1 where t1.EldekiMiktar<>0