sábado, 1 de febrero de 2020

Store Procedure Enviar Mail Automatico

USE [SIGMAMIRROR]
GO
/****** Object:  StoredProcedure [dbo].[SP_PLUS_MOVIMIENTOS_AJUSTE_INFORMAR]    Script Date: 22/1/2020 08:53:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_PLUS_MOVIMIENTOS_AJUSTE_INFORMAR] --552908
@IDAJUSTE INT
AS
--MAILS_NOTIFICACION_MOVIMIENTOS_AJUSTE_INFORMAR
--DECLARE @IDAJUSTE INT = 502665
--DECLARE @MAIL_ERRORES VARCHAR(500) = ISNULL((SELECT VALOR FROM dbo.SISTEMA_PARAMETROS WHERE Parametro = 'MAILS_NOTIFICACION_MOVIMIENTOS_AJUSTE_INFORMAR'), 'desarrollo@____.com.ar')
DECLARE @MAIL_ERRORES VARCHAR(500) = ISNULL((SELECT VALOR FROM dbo.SISTEMA_PARAMETROS WHERE Parametro = 'MAILS_NOTIFICACION_MOVIMIENTOS_AJUSTE_INFORMAR'), 'amuczak@___.com.ar')
DECLARE @FECHA_PROCESO DATETIME = GETDATE()

 DECLARE @xml NVARCHAR(MAX)
 DECLARE @body NVARCHAR(MAX)
 DECLARE @cliente AS VARCHAR(100) =  ISNULL((SELECT ms.descSubDeposito FROM MOVIMIENTOS_AJUSTES_CABECERA MAC
             INNER JOIN dbo.MAESTRO_UBICACIONES mu ON mu.idUbicacion = MAC.idUbicacion
             INNER JOIN dbo.MAESTRO_SUBDEPOSITOS ms ON ms.idSubDeposito = mu.idSubDeposito
             INNER JOIN dbo.MAESTRO_DEPOSITOS md ON md.idDeposito = ms.idDeposito
             INNER JOIN dbo.MAESTRO_SUBDEPOSITOS_CLIENTES_RELACIONAL mscr ON mscr.idSubDeposito = ms.idSubDeposito
             INNER JOIN maestro_clientes mc ON mc.idcliente = mscr.idCliente
              WHERE MAC.idAjuste = @IDAJUSTE AND
              mc.idcliente IN (771, 477, 484, 599, 473, 493, 482, 491, 569, 492, 468, 743)), 'NO VALIDO')
IF @CLIENTE = 'NO VALIDO' RETURN
 SET @XML = CAST ((SELECT MA.codArt as 'td','', MA.descArt as 'td','',MC.codColor + ' - ' + MC.descColor as 'td','', MT.codTalle as 'td','', MAD.Cantidad AS 'td','',
       CONVERT(VARCHAR(100),MAD.PrecioUnitario) as 'td','', CONVERT(VARCHAR(100),MAD.Total) as 'td'
       FROM dbo.MOVIMIENTOS_AJUSTES_CABECERA MAC
       INNER JOIN dbo.MOVIMIENTOS_AJUSTES_DETALLE MAD ON MAD.idAjuste = MAC.idAjuste
       INNER JOIN MAESTRO_aRTICULOS MA ON MA.idArt = MAD.idArt
       INNER JOIN dbo.MAESTRO_COLORES MC ON MC.idColor = MAD.idColor
       INNER JOIN dbo.MAESTRO_TALLES MT ON MT.idTalle = MAD.idTalle
        WHERE MAC.idAjuste = @IDAJUSTE and MA.codArt like 'A%'
        ORDER BY MA.codArt
 FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
 --SELECT @xml
 --RETURN
if @XML<>''
  begin
 SET @body ='<html><head>
  <!-- CSS goes in the document HEAD or added to your external stylesheet -->
  <style type="text/css">
  table.gridtable {
   font-family: verdana,arial,sans-serif;
   font-size:11px;
   color:#333333;
   border-width: 1px;
   border-color: #666666;
   border-collapse: collapse;
  }
  table.gridtable th {
   border-width: 1px;
   padding: 6px;
   border-style: solid;
   border-color: #666666;
   background-color: #dedede;
  }
  table.gridtable td {
   border-width: 1px;
   padding: 6px;
   border-style: solid;
   border-color: #666666;
   background-color: #ffffff;
  }
  </style>
  <!-- Table goes in the document BODY -->

 </head><body><FONT FACE="VERDANA"><H3>Movimiento de Ajuste para Locales Realizado, numero de Ajuste: ' + CONVERT(varchar(200), @IDAJUSTE) + ' Cliente: ' + @cliente + '</H3>
 <table border = 1 class=gridtable>
 <tr>
 <th> CODIGO </th> <th> DESCRIPCION </th> <th> COLOR </th>  <th> TALLE </th> <th> UNIDADES </th> <th> PRECIO </th> <th>   VALOR  </th> </tr>' 

 SET @body = @body + @xml +'</table></body></html>'
 DECLARE @asunto AS VARCHAR (200) = 'Movimientto de Ajuste para Locales Realizado, numero de Ajuste: ' + CONVERT(varchar(200), @IDAJUSTE) + ' - Cliente: ' + @cliente;
 EXEC msdb.dbo.sp_send_dbmail
  @profile_name = 'Sist-oper',
  --'Sist-oper', se toma esta profile para el productivo
  --'DBA-OPERATOR',se toma esta profile para hacer las diferentes pruebas
  @body = @body,
  @body_format ='HTML',
  @recipients = @MAIL_ERRORES,
  @subject = @asunto
 end

No hay comentarios:

Publicar un comentario

Los mail de oulook no se pueden reenviar.

 cuando en el asunto poseen un caracter especial por ejemplo @#$ los correos no salen y no te muestra ningun correo de rebote, especialmente...