-- ============================================= -- Author: -- Create date: -- 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