1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/* Déclaration des variables*/
DECLARE @Courriel nvarchar(60),@NCLIENT nvarchar(8),@NCHANTIER nvarchar(8), /* Déclaration des variables*/
@PRENOMV nvarchar(50), @NOMCLIENT nvarchar(50),@SYSTEM nvarchar(50),@DATEFIN nvarchar(15),
@DDINTERV nvarchar(15),@DMSERVICE nvarchar(15),@avec nvarchar(50),@titre nvarchar(12),
@NOMCONTACT nvarchar(50),@PRENONCONTACT nvarchar(50),@MAILCONTACT nvarchar(200),
@TELCONTACT nvarchar(12),@MOBCONTACT nvarchar(12),@adresse1 nvarchar(40),
@adresse2 nvarchar(40),@ville nvarchar(40),@cp nvarchar(5),@LETEXTE nvarchar(max)
DECLARE Email_Cursor CURSOR FOR -- déclaration du'un curseur --
SELECT FTNCLI ,COM_MAIL , FTCCHA ,
COM_PRENOM , CLNMFA , FTSYST ,
CONVERT(VARCHAR(12),FTDFGA, 106) AS 'D.F.Garantie' ,CONVERT(VARCHAR(12),FTDDIN, 106) AS 'D.D.Interv',
CONVERT(VARCHAR(12),FTDMES, 106) AS 'D.M.Service',dbo.INITCAP(FPLIBEMP)AS avec, -- INITCAP routine 1èr lettre en majuscule --
CNTITR , dbo.INITCAP (CNNOMC) AS NOM , -- fonctionne avec les prénoms composés --
CASE
WHEN dbo.INITCAP (CNPREN) IS NULL THEN ' ' -- si le prénom est null j'ai le corps du message qui se trouve vide --
ELSE dbo.INITCAP (CNPREN) -- d'ou cette astuce pour remplacer les null par un blanc --
END AS PRENOM,
CNMAIL , CNNTELF , CNNTELP ,
CLADF1 , CLADF2 , CLVILFA , CLCPFA
FROM WIPSOS_TFC.W_TO.PFICTEC /* table fiche technique*/
INNER JOIN WIPSOS_TFC.W_TO.PCHANT ON CHCDEV = FTCCHA /* table des installations */
INNER JOIN WIPSOS_TFC.W_TO.PCOMMERC ON CHCREP = COM_CODE /* table des commerciaux*/
INNER JOIN WIPSOS_TFC.W_TO.PFICPER ON FTNEMP = FPEMP /* table des techniciens */
INNER JOIN WIPSOS_TFC.W_TO.PCLIENT ON FTNCLI = CLNCLI /* table des clients */
INNER JOIN WIPSOS_TFC.W_TO.PCNTCCLI ON CLNCLI = CNNCLI AND CNLISA = 1 /* table des contacts clients */
and dateDiff( dd ,getdate(),FTDFGA)> 0 -- supérieur à la date du jour --
and dateDiff( dd ,getdate(),FTDFGA)< 30 -- tous les chantiers en fin de garantie dans les 30 jours à venir --
and FTTYPF NOT IN ('13','18','19','27','28') /* différents critères pour une sélection de données plus fine*/
and FTNCON = 0 and FTDFGA <> FTDMES
ORDER BY COM_MAIL,FTCCHA
OPEN Email_Cursor -- ouverture du curtseur --
FETCH NEXT FROM Email_Cursor -- premier enregistrement
WHILE @@FETCH_STATUS = 0 -- initialisatioon de la boucle --
BEGIN
FETCH NEXT FROM Email_Cursor
INTO @NCLIENT, @Courriel , @NCHANTIER ,@PRENOMV, @NOMCLIENT,@SYSTEM,@DATEFIN,
@DDINTERV, @DMSERVICE , @avec , @titre ,@NOMCONTACT , @PRENONCONTACT , @MAILCONTACT ,
@TELCONTACT , @MOBCONTACT , @adresse1 ,
@adresse2 ,@ville ,@cp -- init des variables car dans l'envoi de mail impossible d'utiliser les champs en direct --
SET @LETEXTE = +'<strong>' + 'Bonjour ' + @PRENOMV + '<br/>' + '</strong>'
+ 'L' +'''installation ' + @SYSTEM + ' de ton Client ' +'<strong>'+ @NOMCLIENT + '</strong>' + '<br/>'
+ ' N° : ' + @NCLIENT
+ ' pour le chantier N° : ' + @NCHANTIER +' arrive en fin de garantie le : ' + @DATEFIN + '<br/>'
+ 'Date de mise en service le : '+ @DMSERVICE + '<br/>'+ '<br/>'
+ ' Cette installation n'+'''ayant pas de contrat d'+'''entretien, tu devrais appeler ton client pour lui faire une proposition.'
+ '<br/>' + ' Ci-dessous les coordonnés du contact principal si renseignées bien sur et l'
+ '''adresse de ton Client.' + '<br/>' + '<br/>'
+ @titre + ' ' + @NOMCONTACT +' ' + @PRENONCONTACT + '<br/>'+ 'Téléphone Fixe : '
+ @TELCONTACT + '<br/>'+ 'Mobile : ' + @MOBCONTACT + '<br/>'+'Courriel : ' + @MAILCONTACT + '<br/>'
+ @adresse1 + '<br/>' + @adresse2 + '<br/>'
+ @cp + ' ' + @ville + '<br/>' + '<br/>'
+ '<strong>' + 'Salutations '+ '<br/>' + 'Le Service Informatique de la TFC' + '</strong>'+ '<br/>'
+ + '<big>' + 'Site : http://www.tfc.fr' + '/<big>'+ '<br/>'
+ 'Extraction automatique à partir de la nouvelle Base WIPSOS SQL' -- mise en forme du corps du message --
EXEC msdb.dbo.sp_send_dbmail -- commande sql 2008 pour envoyer un email depuis la console */
@profile_name = 'JMS', -- profil outlook */
@recipients = @Courriel , -- adresse email du destinataire qui est le commercial du chantier en fin de garantie --
@body_format= 'HTML', -- format HTML afin d'assurer un minimum de mise en forme */
@subject= 'Installations sans contrat et en fin de garantie dans les 30 jours à venir ',
@body = @LETEXTE /* le corps du message */
END;
CLOSE Email_Cursor;
DEALLOCATE Email_Cursor |
Partager