PDC_REPORT_CreazioneDB/sql/storedProduzione/C6MartPeriodico_Popolamento_RP_W6CLIREP.sql
2025-06-06 19:02:52 +02:00

182 lines
6.8 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[Popolamento_RP_W6CLIREP]
AS
BEGIN
SET NOCOUNT ON;
--dichiaro variabile data di trimestrale
DECLARE @dttrim int
--valorizzo la data di trimestrale al giorno del congelamento
set @dttrim = CAST(CONVERT(varchar, CAST(C6MartPeriodico.getDataCongelamento() as DATETIME),112) as int)
--print @dttrim
--Tronchiamo la tabella RP_vTuttiIPortafogli_Aladdin_tab e la ripopoliamo
--a partire dalla vista RP_vTuttiIPortafogli_Aladdin
Truncate table C6StampeCentralizzate.C6MartPeriodico.w6clirep
--
insert into C6StampeCentralizzate.C6MartPeriodico.w6clirep
select
'6' as FLGCLI ,
'M' as FLGBL ,
'A' as TIPOELA,
@dttrim as DTTRIM,
rete,
codfis,
piva,
codman,
'' as CODFID,
'' as CODAGE,
CASE
WHEN cod_interno not in ('SINT3MEUR','SINT6MEUR','09560690') and famprodt = 'DT' THEN isnull(cod_interno,'') --aggiunta SINT6MEUR 10/03/2023
ELSE ''
END as CODABI,
ISNULL(termid,00000000),
cast(annos as int) as anno ,
case when famprodt='GE' then 00000000 --aggiunta con else sotto
else cast(progs as int) end as prog ,
0 as quote,
cast(ctvreale as float) as CTV,
codconf, --17
rubr,
custgar,
ISNULL(cod_interno,''),
'' as codana,
CASE
WHEN cast(annos as int) <> 0 and cast(progs as int) <> 0 then 'S'
ELSE 'N'
END as FLAGPCT,
--CASE
-- WHEN famprodt <> 'DT' and famprodt <> 'CC' THEN isnull(cod_interno,'')
-- ELSE ''
--END
'' as codprod,
ISNULL(cod_sottoprodotto,''),
ISNULL(cod_isin,''),
'' as codlinea,
tipoptf,
area,
progetto,
codprj,
ISNULL(chiave_prodotto_terzi,''),
ISNULL(assetterzi,''),
ISNULL(famprodt,''),
ISNULL(intermediario,''),
ISNULL(codiceadeguatezza,''),
ISNULL(cod_maf,''),
conto,
numpolizza,
position_id,
--aggiunta 08/06/2022
'' as PREFSOST,
'' as FLAGAMB,
'' as FLAGSOC,
'' as FLAGGOV,
Prodotto_id
from [C6StampeCentralizzate].[C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin]
--aggiunta informazioni codabi per i prodotti PCT
SELECT [DTTRIM]
,[DTRIFE]
,ltrim(rtrim([RETE])) as rete
,ltrim(rtrim([CODFIS])) as codfis
,ltrim(rtrim([CODCONF])) as codconf
,[NUMPOL]
,ltrim(rtrim([CONTO])) as conto
,[RUBR]
,[CUSTGAR]
,ltrim(rtrim([TIPPROD])) as tipprod
,ltrim(rtrim([CODINT])) as codint
,[CODPROD]
,[SUBPROD]
,[MAF]
,[CODABI]
,[PCTKEY]
,[DESTIT]
,[CTV]
,[PARTVIA]
,[PARTVIAAL]
,[DTSOTTOS]
,[RENDINIZ]
,[RENDANNO]
,[VALORE]
,[SUBSET]
,[CVN]
,[QUOTE]
,ltrim(rtrim([CODMAN])) as codman
,[SALRISC]
,[ATTIVO]
into #PCT --selezioniamo dalla wseics i soli clienti possessori di un pct in portafoglio
FROM [C6StampeCentralizzate].[C6StagingPeriodico].[wseics] WHERE CODABI <> ''
and pctKey <> ''
and dttrim = (Select Max(dttrim) from [C6StampeCentralizzate].[C6StagingPeriodico].[wseics])
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set codabi = pct.codabi
--select w6.rete,pct.rete,w6.codfis,w6.piva,pct.codfis,w6.codman,pct.codman,w6.conto,pct.conto,w6.codconf,pct.codconf,pct.codabi
--, pct.tipprod,w6.famprodt
from #PCT pct
left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] as w6
on w6.rete=pct.rete and w6.codfis+w6.piva+w6.codman = ltrim(rtrim(pct.codfis))+ltrim(rtrim(pct.codman))
and w6.codconf=ltrim(rtrim(pct.codconf)) and w6.conto=ltrim(rtrim(pct.conto)) and w6.famprodt = ltrim(rtrim(pct.tipprod))
where w6.flagpct = 'S'
-- Aggiungiamo le informazioni mancanti per il codman piva_fiduciaria
select b.cod_mandato,b.rete,b.piva_fiduciaria into
#tab
FROM
[C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] a
inner join (select distinct rete,cod_mandato,piva_fiduciaria from [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI_V] where cod_mandato<>'') b
on a.rete= b.rete and isnull(a.codman,'')=isnull(b.cod_mandato,'')
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set piva = piva_fiduciaria
from #tab tab
inner join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] as a
on a.rete= tab.rete and isnull(a.codman,'')=isnull(tab.cod_mandato,'')
--1 update per CF
update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set codage = appo.cod_agente
from c6stagingperiodico.appo_contratti appo
left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
on w.rete= appo.rete and isnull(w.codfis,'') = isnull(appo.cod_fiscale,'')
--2 update per Piva
update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set codage = appo.cod_agente
from c6stagingperiodico.appo_contratti appo
left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
on w.rete= appo.rete and isnull(w.piva,'') = isnull(appo.cod_fiscale,'')
where w.piva <> ''
--3 update per Fiduciaria
update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set codage = appo.cod_agente
from c6stagingperiodico.appo_contratti appo
left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
on w.rete= appo.rete and 'FF@'+(isnull(w.codman,'')) = isnull(appo.cod_fiscale,'')
where w.codman <> ''
--update per inserire le informazioni del codana del cliente
update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set codana = wp.codana
FROM [C6StagingPeriodico].[WANVIPS] wp
left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
on w.rete = wp.rete and w.codfis+w.piva+w.codman = ltrim(rtrim(wp.codfis))+ltrim(rtrim(wp.codman))
update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
set cod_isin=''
where cod_interno in ('KB', 'KC', 'KG', 'KJ', 'KI', 'KD', 'KF', 'KL', 'KN', 'KO', 'KE', 'KS') and len(cod_isin)<12
--eliminazione righe duplicate per API ma le teniamo in una tb di Recupero per eventuali analisi
truncate table [C6MartPeriodico].[W6CLI_REK]
insert into [C6MartPeriodico].[W6CLI_REK]
select *
from [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] where tipoptf = 'TIPOPRODTERZI|TERZI'
delete from
[C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] where tipoptf = 'TIPOPRODTERZI|TERZI'
update C6MartPeriodico.W6CLIREP
set PREFSOST= case when an.prefsost='S' then 1 else 0 end,FLAGAMB=case when an.flagamb='S' then 'Y' else 'N' end ,
FLAGSOC=case when an.flagsoc='S' then 'Y' else 'N' end, FLAGGOV=case when an.flaggov='S' then 'Y' else 'N' end
from C6stagingPeriodico.wseian2 an left join C6MartPeriodico.W6CLIREP w
on w.rete = an.rete and w.codfis+w.piva+w.codman = ltrim(rtrim(an.codfis))+ltrim(rtrim(an.codman))
where an.DTTRIM=@dttrim
update C6MartPeriodico.W6CLIREP
set cod_interno=cod_isin
where termid in ('BDR20000','TDV20000')
update C6MartPeriodico.W6CLIREP
set PRODOTTO_ID='$'
where Prodotto_ID='PRODOTTO NON IN CATALOGO'
END