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