4 115 bytes adicionados
, 11h07min de 28 de dezembro de 2020
DECLARE @_CODCOLIGADA SMALLINT = :CODCOLIGADA;
DECLARE @_CHAPA VARCHAR(16) = :CHAPA;
DECLARE @TEMPLATE VARCHAR(MAX) = '{' +
' "codcoligada": ${codcoligada},' +
' "codfilial": ${codfilial},' +
' "classificacao": {' +
' "titulo": "${titulo}",' +
' "parametros": {' +
' "Código Coligada": ${codcoligada},' +
' "Código Filial": ${codfilial},' +
' "Cód. Professor": "${codprof}",' +
' "Nome": "${nome}",' +
' "Chapa": "${chapa}",' +
' "Cód. Pessoa": ${codpessoa},' +
' "Tipo": "Termos"' +
' }' +
' },' +
' "assinantes": [${assinantes}],' +
' "destinatarios": [${destinatarios}],' +
' "assunto": "Termo de autorização para uso de imagem pessoal",' +
' "relatorios": [${relatorios}]' +
'}';
DECLARE @FITLRO VARCHAR(MAX) = '{"BandName": "${BandName}", "Filter": "${Filter}", "TableName": "${TableName}"}';
DECLARE @PARAMETRO VARCHAR(MAX) = '{"Description": "${Description}", "ParamName": "${ParamName}", "Type": "${Type}", "Value": "${Value}"}';
DECLARE @RELATORIO VARCHAR(MAX) = '{"id": ${id}, "filters": [${filters}], "parameters": [${parameters}]}';
DECLARE @TXT VARCHAR(MAX) = '"${TXT}"';
WITH FILTROS (IDREL, FILTRO) AS (
SELECT X.IDREL, REPLACE(REPLACE(REPLACE(@FITLRO, '${BandName}', X.BandName), '${Filter}', X.Filter), '${TableName}', X.TableName) FILTRO
FROM (/* COLOCAR UMA LINHA PARA CADA FILTRO DO RELATÓRIO */
SELECT '13894' IDREL, 'RptReport' BandName, 'PFUNC.CODCOLIGADA = ' + CAST(@_CODCOLIGADA AS VARCHAR) + ' AND PFUNC.CHAPA = ''' + @_CHAPA + '''' Filter, 'PFUNC' TableName
) X
),
PARAMETROS (IDREL, PARAMETRO) AS (
SELECT X.IDREL, REPLACE(REPLACE(REPLACE(REPLACE(@PARAMETRO, '${Description}', X.Description), '${ParamName}', X.ParamName), '${Type}', X.Type), '${Value}', X.Value) PARAMETRO
FROM (/* COLOCAR UMA LINHA PARA CADA PARAMETRO DO RELATÓRIO */
SELECT '13894' IDREL, NULL Description, NULL ParamName, NULL Type, NULL Value
) X
),
RELATORIOS (RELATORIO) AS (
SELECT REPLACE(REPLACE(REPLACE(@RELATORIO, '${id}', X.ID),
'${filters}', REPLACE(RTRIM((SELECT FILTRO + ' ' FROM FILTROS FOR XML PATH(''))), ' ', ',')),
'${parameters}', REPLACE(RTRIM((SELECT PARAMETRO + ' ' FROM PARAMETROS FOR XML PATH(''))), ' ', ',')) RELATORIO
FROM (/* COLOCAR UMA LINHA PARA CADA RELATÓRIO A SER GERADO */
SELECT '13894' ID
) X
)
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
@TEMPLATE
, '${codcoligada}', X.CODCOLIGADA)
, '${codfilial}', X.CODFILIAL)
, '${titulo}', X.CLASSIFICACAO)
, '${codprof}', X.CODPROF)
, '${nome}', X.NOME)
, '${chapa}', X.CHAPA)
, '${codpessoa}', X.CODPESSOA)
, '${assinantes}', X.ASSINANTES)
, '${destinatarios}', X.DESTINATARIOS)
, '${relatorios}', X.RELATORIOS) JSON
FROM (
SELECT F.CODCOLIGADA, F.CODFILIAL, 'Dossiê do Colaborador' CLASSIFICACAO, ISNULL(PR.CODPROF, '') CODPROF,
P.NOME, F.CHAPA, F.CODPESSOA, REPLACE(@TXT, '${TXT}', P.EMAIL) ASSINANTES, '' DESTINATARIOS,
REPLACE(RTRIM((SELECT RELATORIO + ' ' FROM RELATORIOS FOR XML PATH(''))), ' ', ',') RELATORIOS
FROM PFUNC F
INNER JOIN PPESSOA P ON (F.CODPESSOA = P.CODIGO)
LEFT OUTER JOIN SPROFESSOR PR ON (F.CODCOLIGADA = PR.CODCOLIGADA
AND F.CHAPA = PR.CHAPA)
WHERE F.CODCOLIGADA = @_CODCOLIGADA
AND F.CHAPA = @_CHAPA
) X