----INSERT TABLE----------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN SET IDENTITY_INSERT TBL_ÖDEME_TALEP_MAİL ON; INSERT INTO TBL_ÖDEME_TALEP_MAİL --SELECT * INTO TBL_ÖDEME_TALEP_MAİL FROM ( ( G.TARİH, G.[CLCARD LOGREF], G.[FİRMA KODU], G.[FİRMA ADI], G.MAIL, G.BCC, G.[firmamiz YETKİLİ], G.[firmamiz POZİSYON], G.[firmamiz İLETİŞİM TELEFONU], G.[firmamiz EPOSTA ADRESİ], G.[ORT. VADE], G.[ORT. GECİKME GÜNÜ], G.[VADESİ GEÇEN ÖDEME TUTARI], G.[VADESİ GELMEMİŞ BORÇ BAKİYENİZ], G.[TOPLAM BORÇ BAKİYENİZ] ) SELECT TOP 50 G.TARİH, G.[CLCARD LOGREF], G.[FİRMA KODU], G.[FİRMA ADI], G.MAIL, G.BCC, G.[firmamiz YETKİLİ], G.[firmamiz POZİSYON], G.[firmamiz İLETİŞİM TELEFONU], G.[firmamiz EPOSTA ADRESİ], G.[ORT. VADE], G.[ORT. GECİKME GÜNÜ], G.[VADESİ GEÇEN ÖDEME TUTARI], G.[VADESİ GELMEMİŞ BORÇ BAKİYENİZ], G.[TOPLAM BORÇ BAKİYENİZ] FROM ( SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) AS 'TARİH', CLCARD.LOGICALREF AS 'CLCARD LOGREF', CLCARD.CODE AS 'FİRMA KODU', CLCARD.DEFINITION_ AS 'FİRMA ADI', --CASE --WHEN dbo.EmailKontrolEdenFonksiyon (CLCARD.EMAILADDR) <> 'DOĞRU' THEN 'gokhanerdogdu@firmamiz-.com' --ELSE CLCARD.EMAILADDR END AS 'MAIL', 'gokhanerdogdu@firmamiz-.com' AS 'MAIL', 'noreply@firmamiz-.com' AS 'BCC', CASE WHEN LEFT (CLCARD.CODE,2) = '01' THEN '111' WHEN LEFT (CLCARD.CODE,2) = '02' THEN '222' WHEN LEFT (CLCARD.CODE,2) = '03' THEN '333' WHEN LEFT (CLCARD.CODE,2) = '04' THEN '444' WHEN LEFT (CLCARD.CODE,2) = '06' THEN '555' WHEN LEFT (CLCARD.CODE,2) = '07' THEN '666' WHEN LEFT (CLCARD.CODE,2) = '08' THEN '777' WHEN LEFT (CLCARD.CODE,2) = '09' THEN '888' END AS 'firmamiz YETKİLİ', CASE WHEN LEFT (CLCARD.CODE,2) = '01' THEN 'İç Satış Sorumlusu' WHEN LEFT (CLCARD.CODE,2) = '02' THEN 'İç Satış Sorumlusu' WHEN LEFT (CLCARD.CODE,2) = '03' THEN 'Satış Mühendisi' WHEN LEFT (CLCARD.CODE,2) = '04' THEN 'İç Satış Sorumlusu' WHEN LEFT (CLCARD.CODE,2) = '06' THEN 'Satış Mühendisi' WHEN LEFT (CLCARD.CODE,2) = '07' THEN 'İç Satış Sorumlusu' WHEN LEFT (CLCARD.CODE,2) = '08' THEN 'İç Satış Sorumlusu' WHEN LEFT (CLCARD.CODE,2) = '09' THEN 'İç Satış Mühendisi' END AS 'firmamiz POZİSYON', CASE WHEN LEFT (CLCARD.CODE,2) = '01' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '02' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '03' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '04' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '06' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '07' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '08' THEN '+90 222 333 44 55' WHEN LEFT (CLCARD.CODE,2) = '09' THEN '+90 222 333 44 55' END AS 'firmamiz İLETİŞİM TELEFONU', 'noreply@firmamiz-.com' AS 'firmamiz EPOSTA ADRESİ', --ORT.VADE--------------------------------------------------------------------------------------------------------------------------------------- ( SELECT DATEADD (D, (SUM ((DATEDIFF (DD, GETDATE(), PAYTRANS.DATE_)) * PAYTRANS.TOTAL) / SUM (PAYTRANS.TOTAL) ), GETDATE()) FROM LG_215_01_PAYTRANS AS PAYTRANS WITH (NOLOCK) WHERE PAYTRANS.PAID = '0' AND PAYTRANS.CANCELLED = '0' AND PAYTRANS.CARDREF = CLCARD.LOGICALREF ) AS 'ORT. VADE', --ORT. GECİKME GÜNÜ--------------------------------------------------------------------------------------------------------------------------------------- ISNULL (( SELECT ROUND (SUM (ISNULL ((DATEDIFF (DD, GETDATE(), PAYTRANS.DATE_)) * ISNULL (PAYTRANS.TOTAL,0),0)) / SUM (PAYTRANS.TOTAL),0) FROM LG_215_01_PAYTRANS AS PAYTRANS WITH (NOLOCK) WHERE PAYTRANS.PAID = '0' AND PAYTRANS.CANCELLED = '0' AND PAYTRANS.DATE_ < GETDATE() AND PAYTRANS.CARDREF = CLCARD.LOGICALREF ),0) AS 'ORT. GECİKME GÜNÜ', --VADESİ GEÇEN ÖDEME TUTARI--------------------------------------------------------------------------------------------------------------------------------------- ISNULL (( SELECT SUM (ISNULL (CASE WHEN PAYTRANS.DATE_ < GETDATE() THEN (CASE WHEN PAYTRANS.SIGN = '0' THEN PAYTRANS.TOTAL ELSE PAYTRANS.TOTAL*-1 END) ELSE '0' END,0)) --SUM (ISNULL (CASE WHEN PAYTRANS.DATE_ < GETDATE() THEN PAYTRANS.TOTAL ELSE 0 END,0)) FROM LG_215_01_PAYTRANS AS PAYTRANS WITH (NOLOCK) WHERE PAYTRANS.CARDREF = CLCARD.LOGICALREF AND PAYTRANS.PAID = '0' AND PAYTRANS.CANCELLED = '0' ),0) AS 'VADESİ GEÇEN ÖDEME TUTARI', --VADESİ GELMEMİŞ BORÇ BAKİYENİZ-------------------------------------------------------------------------------------------------------------------------- ISNULL (( SELECT SUM (ISNULL (CASE WHEN PAYTRANS.DATE_ > GETDATE() THEN (CASE WHEN PAYTRANS.SIGN = '0' THEN PAYTRANS.TOTAL ELSE PAYTRANS.TOTAL*-1 END) ELSE '0' END,0)) FROM LG_215_01_PAYTRANS AS PAYTRANS WITH (NOLOCK) WHERE PAYTRANS.CARDREF = CLCARD.LOGICALREF AND PAYTRANS.PAID = '0' AND PAYTRANS.CANCELLED = '0' ),0) AS 'VADESİ GELMEMİŞ BORÇ BAKİYENİZ', ---------------------------------------------------- ISNULL (( SELECT SUM (ISNULL (CASE WHEN PAYTRANS.SIGN = '0' THEN PAYTRANS.TOTAL ELSE PAYTRANS.TOTAL*-1 END,0)) FROM LG_215_01_PAYTRANS AS PAYTRANS WITH (NOLOCK) WHERE PAYTRANS.CARDREF = CLCARD.LOGICALREF AND PAYTRANS.PAID = '0' AND PAYTRANS.CANCELLED = '0' ),0) AS 'TOPLAM BORÇ BAKİYENİZ' FROM LG_215_CLCARD AS CLCARD WITH (NOLOCK) WHERE LEFT (CLCARD.CODE,2) IN ('01', '02', '03', '04', '06', '07', '08', '09', '10') --LEFT (CLCARD.CODE,2) IN ('07') AND CLCARD.LOGICALREF NOT IN ( '19732', '7056', '26692', '29604', '24228', '24887', '28022', '25826' ) ) AS G WHERE G.[VADESİ GEÇEN ÖDEME TUTARI] > 1000 ORDER BY G.[FİRMA ADI] --) AS GG SET IDENTITY_INSERT TBL_ÖDEME_TALEP_MAİL OFF; END --INSERT TABLE TO MAIL BEGIN DECLARE @ODEME_TALEP_INSERT NVARCHAR(MAX); DECLARE @TOPLAM_SAYI NVARCHAR(MAX); DECLARE @BODY_INSERT NVARCHAR(MAX); DECLARE @KONU_INSERT NVARCHAR(MAX); SET ANSI_WARNINGS OFF SET @TOPLAM_SAYI = (SELECT COUNT (*) FROM TBL_ÖDEME_TALEP_MAİL WITH (NOLOCK) WHERE[TARİH] = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))) SET @TOPLAM_SAYI = '

'+ CONVERT (NVARCHAR, @TOPLAM_SAYI) + ' adet mail.

' --ODEME TALEP--------------------------------------------------------------------------------------------------------------- SET @ODEME_TALEP_INSERT = N'

ÖDEME TALEP

' + CAST ( ( SELECT td = CONVERT (VARCHAR(10),[TARİH],104), '', td = ISNULL ([CLCARD LOGREF],'-'), '', td = ISNULL ([FİRMA KODU],'-'), '', td = ISNULL ([FİRMA ADI],'-'), '', td = ISNULL ([MAIL],'-'), '', td = ISNULL ([BCC],'-'), '', td = ISNULL ([firmamiz YETKİLİ],'-'), '', td = ISNULL ([firmamiz POZİSYON],'-'), '', td = ISNULL ([firmamiz İLETİŞİM TELEFONU],'-'), '', td = ISNULL ([firmamiz EPOSTA ADRESİ],'-'), '', td = CONVERT (VARCHAR(10),[ORT. VADE],104), '', td = CONVERT (NVARCHAR,[ORT. GECİKME GÜNÜ]), '', td = FORMAT (ROUND ([VADESİ GEÇEN ÖDEME TUTARI],2), 'N' , 'de-DE'), '', td = FORMAT (ROUND ([VADESİ GELMEMİŞ BORÇ BAKİYENİZ],2), 'N' , 'de-DE'), '', td = FORMAT (ROUND ([TOPLAM BORÇ BAKİYENİZ],2), 'N' , 'de-DE'), '' FROM TBL_ÖDEME_TALEP_MAİL WITH (NOLOCK) WHERE [TARİH] = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) FOR XML PATH ('tr'), TYPE ) as NVARCHAR(MAX) ) + N'
TARİH CLCARD LOGREF FİRMA KODU FİRMA ADI MAIL BCC firmamiz YETKİLİ firmamiz POZİSYON firmamiz İLETİŞİM TELEFONU firmamiz EPOSTA ADRESİ ORT. VADE ORT. GECİKME GÜNÜ VADESİ GEÇEN ÖDEME TUTARI VADESİ GELMEMİŞ BORÇ BAKİYENİZ TOPLAM BORÇ BAKİYENİZ
'; ------------------------------------------------------------------------------------------------------------------------------ SET @BODY_INSERT = @TOPLAM_SAYI + '
' + @ODEME_TALEP_INSERT + '
' + '' ; -- Line Break SET @KONU_INSERT = CONVERT (NVARCHAR (MAX), GETDATE(),104) + ' TARİHLİ ÖDEME TALEP MAİL' EXEC msdb.dbo.sp_send_dbmail @profile_name = 'AutoMail', @recipients = 'gokhanerdogdu@firmamiz-.com', --@recipients = '', --@copy_recipients = '', @subject = @KONU_INSERT, @body = @BODY_INSERT, @body_format = 'HTML' END --WAITFOR DELAY '000:00:20' --CURSOR--------------------------------------------------------------------------------------------------------------------------------------- DECLARE @CRSR_TARİH DATETIME, @CRSR_CLCARD_LOGREF INT, @CRSR_FİRMA_KODU NVARCHAR(MAX), @CRSR_FİRMA_ADI NVARCHAR(MAX), @CRSR_MAIL NVARCHAR(MAX), @CRSR_BCC NVARCHAR(MAX), @CRSR_firmamiz_YETKİLİ NVARCHAR(MAX), @CRSR_firmamiz_POZİSYON NVARCHAR(MAX), @CRSR_firmamiz_İLETİŞİM_TELEFONU NVARCHAR(MAX), @CRSR_firmamiz_EPOSTA_ADRESİ NVARCHAR(MAX), @CRSR_ORT_VADE DATE, @CRSR_ORT_GECİKME_GÜNÜ INT, @CRSR_VADESİ_GEÇEN_ÖDEME_TUTARI NVARCHAR(MAX), @CRSR_VADESİ_GELMEMİŞ_BORÇ_BAKİYENİZ NVARCHAR(MAX), @CRSR_TOPLAM_BORÇ_BAKİYENİZ NVARCHAR(MAX) --// Cursor oluşturuluyor. DECLARE PersonelCursor CURSOR LOCAL FOR --// Cursor'un temsil edeceği veri kümesini getirecek olan sorguyu belirtiliyoruz. --QUERY---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SELECT [TARİH], [CLCARD LOGREF], [FİRMA KODU], [FİRMA ADI], [MAIL], [BCC], [firmamiz YETKİLİ], [firmamiz POZİSYON], [firmamiz İLETİŞİM TELEFONU], [firmamiz EPOSTA ADRESİ], [ORT. VADE], [ORT. GECİKME GÜNÜ], [VADESİ GEÇEN ÖDEME TUTARI], [VADESİ GELMEMİŞ BORÇ BAKİYENİZ], [TOPLAM BORÇ BAKİYENİZ] FROM [TBL_ÖDEME_TALEP_MAİL] WITH (NOLOCK) WHERE [TARİH] = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) --QUERY SON-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --// Cursor açılarak kaynak tüketimi başlatılıyor. OPEN PersonelCursor --// Sıradaki veri yakalanıyor ve hafızaya alınıyor. O anki veri 'PersonelCursor' tarafından temsil ediliyor ve kolon değerleri ilgili değişkenlere sıralı bir şekilde atanıyor. FETCH NEXT FROM PersonelCursor INTO @CRSR_TARİH, @CRSR_CLCARD_LOGREF, @CRSR_FİRMA_KODU, @CRSR_FİRMA_ADI, @CRSR_MAIL, @CRSR_BCC, @CRSR_firmamiz_YETKİLİ, @CRSR_firmamiz_POZİSYON, @CRSR_firmamiz_İLETİŞİM_TELEFONU, @CRSR_firmamiz_EPOSTA_ADRESİ, @CRSR_ORT_VADE, @CRSR_ORT_GECİKME_GÜNÜ, @CRSR_VADESİ_GEÇEN_ÖDEME_TUTARI, @CRSR_VADESİ_GELMEMİŞ_BORÇ_BAKİYENİZ, @CRSR_TOPLAM_BORÇ_BAKİYENİZ --// İşlem başarılı ise @@FETCH_STATUS değişken değeri '0' ise işlem başarılıdır ve bir sonraki kayıt var demektir. WHILE @@FETCH_STATUS = 0 BEGIN --WAITFOR DELAY '000:00:20' DECLARE @ErrorMsg nvarchar(400) IF (SELECT count(*) FROM [TBL_ÖDEME_TALEP_MAİL]) = 0 BEGIN SET @ErrorMsg = 'BOŞ' SELECT @ErrorMsg Err RETURN END BEGIN DECLARE @tarih DATETIME; DECLARE @firma_adi NVARCHAR(MAX); DECLARE @ort_vade DATE; DECLARE @ort_gecikme_gunu INT; DECLARE @vadesi_gecen_odeme_tutari float; DECLARE @vadesi_gelmemis_borc_bakiyeniz float; DECLARE @toplam_borc_bakiyeniz float; DECLARE @firmamiz_yetkili NVARCHAR(MAX) ; DECLARE @firmamiz_pozisyon NVARCHAR(MAX) ; DECLARE @firmamiz_iletisim_telefonu NVARCHAR(MAX) ; DECLARE @firmamiz_eposta_adresi NVARCHAR(MAX) ; DECLARE @BODY NVARCHAR(MAX); DECLARE @İŞ_ORTAKLARI NVARCHAR(MAX); DECLARE @BODY_İŞ_ORTAKLARI NVARCHAR(MAX); SET ANSI_WARNINGS OFF SET @tarih = @CRSR_TARİH SET @firma_adi = ISNULL (@CRSR_FİRMA_ADI,'-') SET @ort_vade = ISNULL (@CRSR_ORT_VADE,'-') SET @ort_gecikme_gunu = ISNULL (@CRSR_ORT_GECİKME_GÜNÜ,'-') SET @vadesi_gecen_odeme_tutari = ISNULL (@CRSR_VADESİ_GEÇEN_ÖDEME_TUTARI,'-') SET @vadesi_gelmemis_borc_bakiyeniz = ISNULL (@CRSR_VADESİ_GELMEMİŞ_BORÇ_BAKİYENİZ,'-') SET @toplam_borc_bakiyeniz = ISNULL (@CRSR_TOPLAM_BORÇ_BAKİYENİZ,'-') SET @firmamiz_yetkili = ISNULL (@CRSR_firmamiz_YETKİLİ,'-') SET @firmamiz_pozisyon = ISNULL (@CRSR_firmamiz_POZİSYON,'-') SET @firmamiz_iletisim_telefonu = ISNULL (@CRSR_firmamiz_İLETİŞİM_TELEFONU,'-') SET @firmamiz_eposta_adresi = ISNULL (@CRSR_firmamiz_EPOSTA_ADRESİ,'-') SET @BODY = '

firmamiz - Bilgilendirme Servisi

 E-Ticaret

'+@firma_adi+'

'+FORMAT (@tarih, 'dd.MM.yyyy')+' tarihi itibari ile vadesi geçen '+FORMAT(ROUND (@vadesi_gecen_odeme_tutari,2), 'N' , 'de-DE')+' TL ödenmemiş borcunuz bulunmaktadır.
Vadesi geçen borcunuzu en kısa sürede ödemenizi rica eder iyi çalışmalar dileriz.

'+@firmamiz_yetkili+'    
Pozisyon : '+@firmamiz_pozisyon+'
İletişim Telefonu : '+@firmamiz_iletisim_telefonu+'
E-posta Adresi : '+@firmamiz_eposta_adresi+'

 

* Ödeme yaptıysanız ya da tarafınıza bildirilen bakiye bilgileri ile hesaplarınız arasında tutarsızlık var ise tarafımıza bilgi vermenizi rica ederiz.

'+FORMAT (@tarih, 'dd.MM.yyyy')+' Tarihi itibariyle

Ort. Vade '+FORMAT (@ort_vade, 'dd.MM.yyyy')+'
Ort. Gecikme Günü '+CONVERT (NVARCHAR,@ort_gecikme_gunu)+' GÜN
Vadesi Geçen Ödeme Tutarı '+FORMAT(ROUND (@vadesi_gecen_odeme_tutari,2), 'N' , 'de-DE')+' TL
Vadesi Gelmemiş Borç Bakiyeniz '+FORMAT(ROUND (@vadesi_gelmemis_borc_bakiyeniz,2), 'N' , 'de-DE')+' TL
TOPLAM BORÇ BAKİYENİZ '+FORMAT(ROUND (@toplam_borc_bakiyeniz,2), 'N' , 'de-DE')+' TL

Ödeme yapabileceğiniz iban bilgilerimiz;

Banka Adı Banka Şubesi  Şube Kodu  Hesap No  IBAN  Döviz Türü 
GARANTİ  İMES TİCARİ  1616 6298921 TR69 0006 2001 6160 0006 2989 21 TL 
AKBANK  İMES SANAYİ  546 81486 TR32 0004 6005 4688 8000 0814 86  TL 
İŞBANK  İMES SANAYİ  1381 13083 TR90 0006 4000 0011 3810 0130 83  TL 
'; SET @İŞ_ORTAKLARI = '

İş Ortaklarımız;

' SET @BODY_İŞ_ORTAKLARI = @BODY + '
' + @İŞ_ORTAKLARI + '
' + '' ; -- Line Break EXEC msdb.dbo.sp_send_dbmail @profile_name = 'AutoMail', @recipients = @CRSR_MAIL, --@recipients = 'gokhanerdogdu@firmamiz-.com', @copy_recipients = @CRSR_firmamiz_EPOSTA_ADRESİ, @blind_copy_recipients = @CRSR_BCC, @subject = @firma_adi, @body = @BODY_İŞ_ORTAKLARI, @body_format = 'HTML' END --WAITFOR DELAY '000:00:20' -- Sıradaki veriye geçilir ve tekrardan cursor üzerinden kolon değerleri ilgili değişkenlere atanır. FETCH NEXT FROM PersonelCursor INTO @CRSR_TARİH, @CRSR_CLCARD_LOGREF, @CRSR_FİRMA_KODU, @CRSR_FİRMA_ADI, @CRSR_MAIL, @CRSR_BCC, @CRSR_firmamiz_YETKİLİ, @CRSR_firmamiz_POZİSYON, @CRSR_firmamiz_İLETİŞİM_TELEFONU, @CRSR_firmamiz_EPOSTA_ADRESİ, @CRSR_ORT_VADE, @CRSR_ORT_GECİKME_GÜNÜ, @CRSR_VADESİ_GEÇEN_ÖDEME_TUTARI, @CRSR_VADESİ_GELMEMİŞ_BORÇ_BAKİYENİZ, @CRSR_TOPLAM_BORÇ_BAKİYENİZ END --WAITFOR DELAY '000:00:20' --// Cursor kapatılıyor. CLOSE PersonelCursor --// Tarafımıza ayrılan hafızayı boşaltıyoruz. DEALLOCATE PersonelCursor