CREATE procedure [C6Mart].[GETDATATHREADS_LETTERE] (@volThreads int = 9999) AS BEGIN SET NOCOUNT ON; declare @sogliaRfa as decimal (18,0); declare @sogliaRfaDB as decimal (18,0); declare @data_perf as datetime; declare @nomeRep as varchar(32) = (select Reportistica from [C6Mart].[TB_Selettore_GetDataThreads]); set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA'); set @data_perf = '20200401'; set @sogliaRfaDB=0; declare @NotAllocatedResources TABLE (COD_FISCALE varchar(32), RETE varchar(1), CTV decimal); create table #NotAllocatedResources (COD_FISCALE varchar(32), RETE varchar(1), CTV decimal) INSERT INTO #NotAllocatedResources(COD_FISCALE, RETE, CTV) SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END = PIRAMIDE_MOD.ID_AREA WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0 GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE if (@nomeRep='SEI') BEGIN SELECT distinct --top (@volThreads) isnull(patrimonioBF.ctv,0) as Patrimoniobancafideuramctv ,contratti.Rete ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete ,contratti.Cod_Agente Agente ,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'') ELSE '' END) CognomeAgente ,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Nome,'') ELSE '' END) NomeAgente ,isnull(promotori.Indirizzo,'') IndirizzoAgente ,isnull(promotori.Cap,'') CapAgente ,isnull(promotori.Localita,'') CittaAgente ,isnull(promotori.TEL_Recapito,'') TelefonoAgente ,contratti.Cod_Fiscale CodiceFiscale ,clienti.Cognome CognomeCliente ,clienti.nome NomeCliente ,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 THEN 0 ELSE 1 END ProfiloIsAct ,isnull(PatrNonRapprAsset.Controvalore,0) as PatrimonioNonRappresentabile ,isnull(patrimonioBF.PartiteViaggiantiDisInv,0) as PartiteViaggiantiDisInv ,isnull(partiteViaggianti.Importo,0) as PartiteViaggiantiInv ,isnull(patrimonioBF.ContoCorrente,0) as ContoCorrente ,isnull(patrimonioBF.PatrimonioSenzaCC,0) as PatrimonioBancaFideuramCtvAlNettoContoCorrente ,isnull(patrimonioBF.PatrimonioNonAssociato,0) as RisorseNonAssociate ,isnull(patrimonioAltro.Patrimonioaltro,0) as Patrimonioaltroctv ,isnull(patrimonioImmobiliare.PatrimonioImmob,0) as Patrimonioimmobiliarectv ,isnull(patrimonioTerzi.ctv,0) as PatrimonioTerzictv ,isnull(patrimonioTerzi.ControvaloreSenzaCC,0) as PatrimonioTerziCtvAlNettoContoCorrente ,isnull(patrimonioTerzi.ControvaloreCC,0) as PatrimonioTerziContoCorrente ,(isnull(patrimonioBF.ctv,0) + isnull(patrimonioTerzi.ctv,0)) as Patrimoniocomplessivototalectv ,isnull(numIntermediari.NumeroIntermediari,0) as NumeroIntermediari ,contratti.CodiceContratto CodiceContratto ,contratti.tip_contratto ,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker ,1 as idReportDiagnosi ,'Diagnosi' as descrizioneDiagnosi ,-1 as idReportMonitoraggio ,719 as idModellotMonitoraggio ,'Monitoraggio' as descrizioneMonitoraggio ,contratti.AdesioneSuccessivaAvanzato AS AdesioneSuccessivaAvanzato ,CASE WHEN RISCHIO_NA.VAR_PERC_PTF IS NULL THEN -1000 ELSE RISCHIO_NA.VAR_PERC_PTF END AS VaRRisorseNonAssociate ,CASE WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000 ELSE RISCHIO_NA.COPERTURA END AS CoperturaRisorseNonAssociate ,CASE WHEN RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF IS NULL THEN -1000 ELSE RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF END AS VaRTotaleRisorseFinanziarie ,CASE WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000 ELSE RISCHIO_RISORSEFINANZIARIE.COPERTURA END AS CoperturaTotaleRisorseFinanziarie, 0 As NoMonitoraggio, CASE WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 END AS ContrattoOld, 0 AS IdReportPDFDiagnosi, 0 AS IdReportPDFMonitoraggio , CASE WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 END AS ContrattoOld, 0 AS IdReportPDFDiagnosi, 0 AS IdReportPDFMonitoraggio, 0 as flagnqp, 0 as flagprlrde, 0 as flagpg, case contratti.TipoConsulenza when 'P' then 'S' when 'D' then 'N' else 'N' end as Flgprof ,0 as scaduto from C6Mart.RP_vContrattiPerGenerazioneReport contratti left join C6Mart.ANAG_PROMOTORI promotori on contratti.Rete = promotori.Rete and contratti.Cod_Agente = promotori.Id_Promotore left join #NotAllocatedResources as nar --pk on contratti.Rete = nar.Rete --pk and contratti.Cod_Fiscale = nar.Cod_Fiscale --pk left join C6Mart.ANAG_CLIENTI clienti on contratti.Rete = clienti.Rete and contratti.Cod_Fiscale = clienti.Cod_Fiscale INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF on contratti.Rete = patrimonioBF.Rete and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale left outer join C6Mart.vPatrimonioAltroAggregato patrimonioAltro on contratti.Rete = patrimonioAltro.Rete and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale left outer join C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare on contratti.Rete = patrimonioImmobiliare.Rete and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi on contratti.Rete = patrimonioTerzi.Rete and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale left outer join C6Mart.MIFID MIFID on contratti.Rete = MIFID.Rete and contratti.Cod_Fiscale = MIFID.Cod_Fiscale left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset on contratti.Rete = PatrNonRapprAsset.Rete and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale left outer join C6Mart.vNumeroIntermediari numIntermediari on contratti.Rete = numIntermediari.Rete and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale left outer join C6Mart.RISCHIO_AGGREGATO RISCHIO_NA on contratti.Rete = RISCHIO_NA.Rete and contratti.Cod_Fiscale = RISCHIO_NA.Cod_Fiscale and RISCHIO_NA.cod_aggreg = 'COMPLESSIVO|BF|NA' left outer join C6Mart.RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE on contratti.Rete = RISCHIO_RISORSEFINANZIARIE.Rete and contratti.Cod_Fiscale = RISCHIO_RISORSEFINANZIARIE.Cod_Fiscale and RISCHIO_RISORSEFINANZIARIE.cod_aggreg = 'COMPLESSIVO|BF' left outer join C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI on contratti.Rete = PARTITEVIAGGIANTI.RETE and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE where 1=1 and nar.rete is null --pk and contratti.Cod_Fiscale + contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY) and ((patrimonioBF.ctv >= @sogliaRFA))-- or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) --rimossa per Fideuram Direct / Direct Banker and contratti.tip_contratto <> 3 --contratti.Cod_Fiscale not in ('RVIFNC70A52B885O') END if (@nomeRep='DIRECT') BEGIN SELECT distinct --top (@volThreads) isnull(patrimonioBF.ctv,0) as Patrimoniobancafideuramctv ,contratti.Rete ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete ,contratti.Cod_Agente Agente ,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'') ELSE '' END) CognomeAgente ,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Nome,'') ELSE '' END) NomeAgente ,isnull(promotori.Indirizzo,'') IndirizzoAgente ,isnull(promotori.Cap,'') CapAgente ,isnull(promotori.Localita,'') CittaAgente ,isnull(promotori.TEL_Recapito,'') TelefonoAgente ,contratti.Cod_Fiscale CodiceFiscale ,clienti.Cognome CognomeCliente ,clienti.nome NomeCliente ,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 THEN 0 ELSE 1 END ProfiloIsAct ,isnull(PatrNonRapprAsset.Controvalore,0) as PatrimonioNonRappresentabile ,isnull(patrimonioBF.PartiteViaggiantiDisInv,0) as PartiteViaggiantiDisInv ,isnull(partiteViaggianti.Importo,0) as PartiteViaggiantiInv ,isnull(patrimonioBF.ContoCorrente,0) as ContoCorrente ,isnull(patrimonioBF.PatrimonioSenzaCC,0) as PatrimonioBancaFideuramCtvAlNettoContoCorrente ,isnull(patrimonioBF.PatrimonioNonAssociato,0) as RisorseNonAssociate ,isnull(patrimonioAltro.Patrimonioaltro,0) as Patrimonioaltroctv ,isnull(patrimonioImmobiliare.PatrimonioImmob,0) as Patrimonioimmobiliarectv ,isnull(patrimonioTerzi.ctv,0) as PatrimonioTerzictv ,isnull(patrimonioTerzi.ControvaloreSenzaCC,0) as PatrimonioTerziCtvAlNettoContoCorrente ,isnull(patrimonioTerzi.ControvaloreCC,0) as PatrimonioTerziContoCorrente ,(isnull(patrimonioBF.ctv,0) + isnull(patrimonioTerzi.ctv,0)) as Patrimoniocomplessivototalectv ,isnull(numIntermediari.NumeroIntermediari,0) as NumeroIntermediari ,contratti.CodiceContratto CodiceContratto ,contratti.tip_contratto ,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker ,1 as idReportDiagnosi ,'Diagnosi' as descrizioneDiagnosi ,-1 as idReportMonitoraggio ,719 as idModellotMonitoraggio ,'Monitoraggio' as descrizioneMonitoraggio ,contratti.AdesioneSuccessivaAvanzato AS AdesioneSuccessivaAvanzato ,CASE WHEN RISCHIO_NA.VAR_PERC_PTF IS NULL THEN -1000 ELSE RISCHIO_NA.VAR_PERC_PTF END AS VaRRisorseNonAssociate ,CASE WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000 ELSE RISCHIO_NA.COPERTURA END AS CoperturaRisorseNonAssociate ,CASE WHEN RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF IS NULL THEN -1000 ELSE RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF END AS VaRTotaleRisorseFinanziarie ,CASE WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000 ELSE RISCHIO_RISORSEFINANZIARIE.COPERTURA END AS CoperturaTotaleRisorseFinanziarie, 0 As NoMonitoraggio, CASE WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 END AS ContrattoOld, 0 AS IdReportPDFDiagnosi, 0 AS IdReportPDFMonitoraggio, CASE WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 END AS ContrattoOld, 0 AS IdReportPDFDiagnosi, 0 AS IdReportPDFMonitoraggio, 0 as flagnqp, 0 as flagprlrde, 0 as flagpg, case contratti.TipoConsulenza when 'P' then 'S' when 'D' then 'N' else 'N' end as Flgprof ,0 as scaduto from C6Mart.RP_vContrattiPerGenerazioneReport contratti left join C6Mart.ANAG_PROMOTORI promotori on contratti.Rete = promotori.Rete and contratti.Cod_Agente = promotori.Id_Promotore left join @NotAllocatedResources as nar --pk on contratti.Rete = nar.Rete --pk and contratti.Cod_Fiscale = nar.Cod_Fiscale --pk left join C6Mart.ANAG_CLIENTI clienti on contratti.Rete = clienti.Rete and contratti.Cod_Fiscale = clienti.Cod_Fiscale INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF on contratti.Rete = patrimonioBF.Rete and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale left outer join C6Mart.vPatrimonioAltroAggregato patrimonioAltro on contratti.Rete = patrimonioAltro.Rete and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale left outer join C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare on contratti.Rete = patrimonioImmobiliare.Rete and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi on contratti.Rete = patrimonioTerzi.Rete and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale left outer join C6Mart.MIFID MIFID on contratti.Rete = MIFID.Rete and contratti.Cod_Fiscale = MIFID.Cod_Fiscale left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset on contratti.Rete = PatrNonRapprAsset.Rete and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale left outer join C6Mart.vNumeroIntermediari numIntermediari on contratti.Rete = numIntermediari.Rete and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale left outer join C6Mart.RISCHIO_AGGREGATO RISCHIO_NA on contratti.Rete = RISCHIO_NA.Rete and contratti.Cod_Fiscale = RISCHIO_NA.Cod_Fiscale and RISCHIO_NA.cod_aggreg = 'COMPLESSIVO|BF|NA' left outer join C6Mart.RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE on contratti.Rete = RISCHIO_RISORSEFINANZIARIE.Rete and contratti.Cod_Fiscale = RISCHIO_RISORSEFINANZIARIE.Cod_Fiscale and RISCHIO_RISORSEFINANZIARIE.cod_aggreg = 'COMPLESSIVO|BF' left outer join C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI on contratti.Rete = PARTITEVIAGGIANTI.RETE and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE left join c6mart.vcontrattic6 vcontr on vcontr.codicecontratto = contratti.codicecontratto where 1=1 and nar.rete is null --pk and contratti.Cod_Fiscale + contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY) and contratti.tip_contratto = 3 and patrimonioBF.ctv >= @sogliaRFADB and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI) END END