271 lines
13 KiB
Transact-SQL
271 lines
13 KiB
Transact-SQL
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 |