From a76f29fe36fd3f53681266976cb3a6ce836df98e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?U=C4=9Fur=20=C3=96zp=C4=B1nar?= Date: Fri, 1 Sep 2023 13:44:02 +0300 Subject: [PATCH] =?UTF-8?q?d=C3=B6vizli=20cari=20bakiye=20takibi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dövizli Bakiye Takibi/CLFLINE_trigger.sql | 84 +++++++++++++++++++++++ Dövizli Bakiye Takibi/README.md | 18 +++++ 2 files changed, 102 insertions(+) create mode 100644 Dövizli Bakiye Takibi/CLFLINE_trigger.sql create mode 100644 Dövizli Bakiye Takibi/README.md diff --git a/Dövizli Bakiye Takibi/CLFLINE_trigger.sql b/Dövizli Bakiye Takibi/CLFLINE_trigger.sql new file mode 100644 index 0000000..ab3fad1 --- /dev/null +++ b/Dövizli Bakiye Takibi/CLFLINE_trigger.sql @@ -0,0 +1,84 @@ +CREATE TRIGGER [dbo].[TRG_231_01_CLFLINE_XTS] + ON [dbo].[LG_231_01_CLFLINE] + AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @ClientId INT + DECLARE @Cancelled INT + DECLARE @XTCount INT + + DECLARE cur CURSOR LOCAL FOR + + SELECT DISTINCT CLIENTREF FROM( + SELECT CLIENTREF FROM INSERTED + UNION ALL + SELECT CLIENTREF FROM DELETED + ) AS X + + OPEN cur + FETCH NEXT FROM cur INTO @ClientId + + WHILE @@FETCH_STATUS = 0 + BEGIN + SELECT @XTCount = COUNT(LOGREF) FROM LG_XT1015_231 WHERE PARLOGREF = @ClientId + + DECLARE + @BalanceGBP AS FLOAT = 0, + @BalanceTL AS FLOAT = 0, + @BalanceUSD AS FLOAT = 0, + @BalanceEUR AS FLOAT = 0 + + SELECT + @BalanceGBP = @BalanceGBP + (CASE WHEN TRCURR=17 THEN (CASE WHEN SIGN = 1 THEN -1*SUM(TRNET) ELSE SUM(TRNET) END) ELSE 0 END), + @BalanceTL = @BalanceTL + (CASE WHEN TRCURR IN (0,160) THEN (CASE WHEN SIGN = 1 THEN -1*SUM(CASE WHEN TRRATE=0 THEN AMOUNT ELSE TRNET END) ELSE SUM(CASE WHEN TRRATE=0 THEN AMOUNT ELSE TRNET END) END) ELSE 0 END), + @BalanceUSD = @BalanceUSD + (CASE WHEN TRCURR=1 THEN (CASE WHEN SIGN = 1 THEN -1*SUM(TRNET) ELSE SUM(TRNET) END) ELSE 0 END), + @BalanceEUR = @BalanceEUR + (CASE WHEN TRCURR=20 THEN (CASE WHEN SIGN = 1 THEN -1*SUM(TRNET) ELSE SUM(TRNET) END) ELSE 0 END) + FROM LG_231_01_CLFLINE + WHERE + CLIENTREF = @ClientId AND CANCELLED=0 + GROUP BY + CLIENTREF, + TRCURR, + SIGN + + IF(@XTCount > 0) + BEGIN + + UPDATE LG_XT1015_231 SET + GBPBAKIYE = CAST (@BalanceGBP AS DECIMAL(18,2)), + TLBAKIYE = CAST (@BalanceTL AS DECIMAL(18,2)), + USDBAKIYE = CAST (@BalanceUSD AS DECIMAL(18,2)), + EURBAKIYE = CAST (@BalanceEUR AS DECIMAL(18,2)) + WHERE PARLOGREF = @ClientId + + END + ELSE + BEGIN + + INSERT INTO LG_XT1015_231 (PARLOGREF,GBPBAKIYE,TLBAKIYE,USDBAKIYE,EURBAKIYE) + VALUES + ( + @ClientId, + CAST (@BalanceGBP AS DECIMAL(18,2)), + CAST (@BalanceTL AS DECIMAL(18,2)), + CAST (@BalanceUSD AS DECIMAL(18,2)), + CAST (@BalanceEUR AS DECIMAL(18,2)) + ) + + END + + FETCH NEXT FROM cur INTO @ClientId + END + + CLOSE cur + DEALLOCATE cur +END; + + + + +GO + + diff --git a/Dövizli Bakiye Takibi/README.md b/Dövizli Bakiye Takibi/README.md new file mode 100644 index 0000000..70c6ce0 --- /dev/null +++ b/Dövizli Bakiye Takibi/README.md @@ -0,0 +1,18 @@ +# Logo Dövizli Bakiye Takibi +Logo aslında dövizli bakiye verebiliyorken Cari Hesaplar listesi ekranında bunu göstermiyor. Aşağıdaki değişiklikleri yaparak bunu ekranımıza dahil edebiliriz. + +İşlemler bittiğinde liste ekranında "TL Bakiye" - "USD Bakiye" - "EUR Bakiye" sütunlarında doğru değerleri görebiliriz. Bu işlem raporlama dövizi gibi çalışmıyor; yani TL bakiyeyi günün kurundan ilgili dövize çevirmiyor. Yapılan işlemlerin "işlem dövizi" ne ise ona göre bakiye tutuyor ayrı bir tabloda. +![](https://raw.githubusercontent.com/ugurozpinar/Logo/master/Screenshots/dovizlibakiye0.jpeg) + + +## Arayüz Uyarlama +1. Cari hesaplar ekranında sağ tık arayüz uyarlamayı seçin + +![](https://raw.githubusercontent.com/ugurozpinar/Logo/master/Screenshots/dovizlibakiye1.jpeg) + +2. Ek alanları ekleyin + +![](https://raw.githubusercontent.com/ugurozpinar/Logo/master/Screenshots/dovizlibakiye2.png) + +3. İlk 2 adımı yaptığınızda LG_XT1015_231 adında bir tablo oluşacak. Ek alanlar bu tablodan gösteriliyor. Her cari hareket olduğunda bu tabloyu güncellemek gerekeceği için bir trigger lazım. +[Trigger](CLFLINE_trigger.sql "Trigger") \ No newline at end of file