﻿--select [C6MartPeriodico].[CONCATENA] ( 'F', 'BRNLLN36A55L781D', 1503 )
CREATE FUNCTION [C6MartPeriodico].[CONCATENA_20180214_bonifica]
(
		@RETE as varchar(1),
        @CF as  varchar(16),
		@idFkzip as int
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	    --declare @idFkzip int
   -- select @idFkzip=max(id_fk_zip) 
		 --from c6martperiodico.gestione_pdf_ftp
	SET @RESULT =''
	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'
	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)
	SET @CF = REPLACE(@CF,'$$','@')
	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ ISNULL( LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50), '')--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)
-- EN20170406
--		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right (' ' + COALESCE(C6MARTPERIODICO.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ isnull( convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP.DataGenerazione, 112) , '')
        + isnull(CONTRATTOSEI.COD_AGENTE	, '')
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'
		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc
	RETURN @RESULT
END