← Detay Sayfası
Nesne Düzenle
|
ISKONTO_ORANLARI
İlgili Uygulama
-- Seçiniz --
SQL Server
Nesne Türü
View
Stored Procedure
Trigger
Job
Nesne Adı
Bu nesne dönem devrinden etkileniyor mu? (Örn: İçinde _01_ gibi sabit dönem kodu var mı?)
Genel Kullanım Amacı ve Notlar
Tam SQL Kodu
CREATE PROC [dbo].[ISKONTO_ORANLARI] AS BEGIN SET NOCOUNT ON; DECLARE @REF INT; DECLARE @SAY INT = 1; DECLARE @TOP INT; DECLARE @TURU VARCHAR(250); DECLARE @FIS DECIMAL(18,2) = 0; DECLARE @PESIN DECIMAL(18,2) = 0; ---------------------------------------------------------------------------- -- 1) Öncelikle, döngüyle [EKISKONTO_ORANINA_GORE_SIRALI_CARI_LISTE] -- tablosundaki kayitlari okuyup LG_XT1015_011'i güncelliyoruz. ---------------------------------------------------------------------------- SELECT @TOP = COUNT(*) FROM dbo.[EKISKONTO_ORANINA_GORE_SIRALI_CARI_LISTE]; WHILE @SAY <= @TOP BEGIN SELECT @REF = LOGICALREF, @TURU = TURU FROM dbo.[EKISKONTO_ORANINA_GORE_SIRALI_CARI_LISTE] WHERE SIRA = @SAY; -- Her kayit için varsayilanlari sifirla SET @FIS = 0; SET @PESIN = 0; -- TURU bos degilse parse et IF (@TURU IS NOT NULL AND LTRIM(RTRIM(@TURU)) <> '') BEGIN -- '+KDV' ifadesini çikar SET @TURU = REPLACE(@TURU, '+KDV', ''); -- FIS:xx => FIS IF CHARINDEX('FIS:', @TURU) > 0 BEGIN SET @FIS = dbo.ufn_GET_NUMERIC_PORTION_AFTER_TAG(@TURU, 'FIS:'); END ELSE IF CHARINDEX('FIS', @TURU) > 0 BEGIN -- 'FIS' var ama sayi yoksa => 0 SET @FIS = 0; END -- PESIN:yy => PESIN IF CHARINDEX('PESIN:', @TURU) > 0 BEGIN SET @PESIN = dbo.ufn_GET_NUMERIC_PORTION_AFTER_TAG(@TURU, 'PESIN:'); END ELSE IF CHARINDEX('PESIN', @TURU) > 0 BEGIN -- 'PESIN' var ama sayi yoksa => 0 SET @PESIN = 0; END -- :X ISKONTO => eger ne FIS ne PESIN bulunmadiysa -> FIS'e yazalim IF (@FIS = 0 AND @PESIN = 0 AND CHARINDEX('ISKONTO', @TURU) > 0) BEGIN SET @FIS = dbo.ufn_GET_NUMERIC_PORTION_BEFORE_TEXT(@TURU, 'ISKONTO'); END END -- Güncelleme: Bu REF (PARLOGREF) kaydi LG_XT1015_011 tablosunda set ediliyor UPDATE dbo.LG_XT1015_011 SET TURU = @TURU, -- Isterseniz burada da TURU'yu saklayabilirsiniz FIS = @FIS, PESIN = @PESIN, FIS2 = 0, PESIN2= 0, TUM = 0, SART = 0 WHERE PARLOGREF = @REF; SET @SAY = @SAY + 1; END ---------------------------------------------------------------------------- -- 2) EKISKONTO_ORANINA_GORE_SIRALI_CARI_LISTE tablosunda OLMAYAN -- (yani PARLOGREF eslesmesi olmayan) LG_XT1015_011 kayitlarini sifirla: -- -- - TURU sütunu bos -- - FIS, PESIN, FIS2, PESIN2, TUM, SART alanlari 0 ---------------------------------------------------------------------------- UPDATE dbo.LG_XT1015_011 SET TURU = '', -- Bos yapiyoruz FIS = 0, PESIN = 0, FIS2 = 0, PESIN2= 0, TUM = 0, SART = 0 WHERE PARLOGREF NOT IN ( SELECT LOGICALREF FROM dbo.[EKISKONTO_ORANINA_GORE_SIRALI_CARI_LISTE] ); END
Oluşturulma: 23.12.2025 07:15
Son Güncelleme: 23.12.2025 17:28
İptal
Nesneyi Sil
Değişiklikleri Kaydet