﻿CREATE   procedure [C6MartPeriodico].[RP_DM_W6CKADEG]
as 
begin
drop table if exists #tot
exec [dbo].[CreaTabellaBackUp] 'W6CKADEG','C6MartPeriodico','preBonifica'
declare @countAppoLimiter int
select @countAppoLimiter= count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER
if(@countAppoLimiter=0)
begin
truncate table C6MartPeriodico.W6CKADEG
--select	Rete,
--		Chiave_Acn,
--		Codfis,
--		Codman,
--		Dttrim,
--		Adeg_Rischio,
--		Adeg_Riserva,
--		Adeg_Invl_Period,
--		Adeg_Compl,
--		Adeg_Conc_ProdCompl,
--		Adeg_Freq_Oper,
--		Adeg_Conc_Emitt,
--		Adeg_Conc_Valut
--   from #tot
insert into C6MartPeriodico.W6CKADEG
SELECT
    wsei.Rete,
    wsei.Chiave_Acn,
    wsei.Codfis,
    wsei.Codman,
    wsei.Dttrim,
		CASE
        WHEN 'N' IN (Adeg_Rischio, Adeg_Riserva, Adeg_Invl_Period, Adeg_Compl, Adeg_Conc_ProdCompl, Adeg_Freq_Oper, Adeg_Conc_Emitt, Adeg_Conc_Valut) THEN 'N'
        ELSE 'S'
    END AS Adeg_Check,
    wsei.Adeg_Rischio,
    wsei.Adeg_Riserva,
    wsei.Adeg_Invl_Period,
    wsei.Adeg_Compl,
    wsei.Adeg_Conc_ProdCompl,
    wsei.Adeg_Freq_Oper,
    wsei.Adeg_Conc_Emitt,
    wsei.Adeg_Conc_Valut,
	wsei.Rfa_tot,
	wsei.Rfa_sei,
	wsei.Riserva,
	wsei.Profilo,
	wsei.Profilo_EC,
	wsei.Indicatore_ChiamataR4,
	wsei.Flg_Legali_Rappresentanti
	--into C6MartPeriodico.W6CKADEG
FROM C6MartPeriodico.vW6CKADEG wsei
inner join C6StagingPeriodico.appo_contratti appo on appo.rete=wsei.Rete and appo.cod_fiscale=wsei.Chiave_Acn
end 
else
begin
delete from [C6MartPeriodico].[W6CKADEG] where rete+CHIAVE_ACN in (select rete+cod_fiscale from C6StagingPeriodico.APPO_CONTRATTI_LIMITER)
insert into C6MartPeriodico.W6CKADEG
SELECT
    wsei.Rete,
    wsei.Chiave_Acn,
    wsei.Codfis,
    wsei.Codman,
    wsei.Dttrim,
		CASE
        WHEN 'N' IN (Adeg_Rischio, Adeg_Riserva, Adeg_Invl_Period, Adeg_Compl, Adeg_Conc_ProdCompl, Adeg_Freq_Oper, Adeg_Conc_Emitt, Adeg_Conc_Valut) THEN 'N'
        ELSE 'S'
    END AS Adeg_Check,
    wsei.Adeg_Rischio,
    wsei.Adeg_Riserva,
    wsei.Adeg_Invl_Period,
    wsei.Adeg_Compl,
    wsei.Adeg_Conc_ProdCompl,
    wsei.Adeg_Freq_Oper,
    wsei.Adeg_Conc_Emitt,
    wsei.Adeg_Conc_Valut,
	wsei.Rfa_tot,
	wsei.Rfa_sei,
	wsei.Riserva,
	wsei.Profilo,
	wsei.Profilo_EC,
	wsei.Indicatore_ChiamataR4,
	wsei.Flg_Legali_Rappresentanti
	--into C6MartPeriodico.W6CKADEG
FROM C6MartPeriodico.vW6CKADEG wsei
inner join C6StagingPeriodico.APPO_CONTRATTI_LIMITER appo on appo.rete=wsei.Rete and appo.cod_fiscale=wsei.Chiave_Acn
end
--casi particolari
update C6MartPeriodico.W6CKADEG
set Adeg_Check='N'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo=0 -- profilo Scaduto
--and isnull(Rfa_sei,0.00)=0.00 -- Rfa_sei = 0 e >0 adeg_check deve essere comunque = N
update C6MartPeriodico.W6CKADEG
set Adeg_Check='S'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo>0 -- profilo non scaduto 
and isnull(Rfa_tot,0.00)=0.00 --rfa totale =0 
and isnull(Riserva,0.00)=0.00 -- riserva =0
update C6MartPeriodico.W6CKADEG
set Adeg_Check='N'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo>0 -- profilo non scaduto 
and isnull(Rfa_tot,0.00)=0.00 --rfa totale =0 
and isnull(Riserva,0.00)>0.00 -- riserva >0
update C6MartPeriodico.W6CKADEG
set Adeg_Check='S'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo>0 -- profilo non scaduto 
and isnull(Rfa_tot,0.00)<>0.00
----Clienti Solo CC
--drop table if exists #clienti_soloCC
--SELECT DISTINCT RETE, Cod_fiscale
--into #clienti_soloCC
--FROM C6MartPeriodico.PATRIMONIO_BF
--WHERE TIPO_PRODOTTO = 'CC' AND ID_AREA = 'liq'
--AND Cod_fiscale NOT IN (
--    SELECT Cod_fiscale
--    FROM C6MartPeriodico.PATRIMONIO_BF
--    WHERE (TIPO_PRODOTTO <> 'CC' OR ID_AREA <> 'liq')
--)
--update a
--set a.Adeg_Check='S'
--from C6MartPeriodico.W6CKADEG a
--inner join #clienti_soloCC cc
--on a.rete=cc.rete and a.Chiave_Acn=cc.cod_fiscale
--where a.Indicatore_ChiamataR4='Z' --clcompl=Z
--and a.Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale <>0 
---- Clienti prodotti Fuori perimetro 
--	drop table if exists #clienti_prodotti_fuori_adeg
--	drop table if exists #clienti_prodotti_fuori_adeg2
--	select rete,cod_fiscale, count(senza.CodInterno) as Contatore_Prodotti_fuori_Adeguatezza,count(patr.cod_Interno) as contatore_tutti_prodotti
--	into #clienti_prodotti_fuori_adeg
--	from c6martperiodico.patrimonio_bf patr
--	left join  [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
--		on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
--		group by rete,COD_FISCALE
--  select   rete,cod_fiscale,Contatore_Prodotti_fuori_Adeguatezza,contatore_tutti_prodotti
--  into #clienti_prodotti_fuori_adeg2
--  from #clienti_prodotti_fuori_adeg
--  where Contatore_Prodotti_fuori_Adeguatezza=contatore_tutti_prodotti
----  select * from #clienti_prodotti_fuori_adeg2
--  update a
--set a.Adeg_Check='S'
--from C6MartPeriodico.W6CKADEG a
--inner join #clienti_prodotti_fuori_adeg2 cc
--on a.rete=cc.rete and a.Chiave_Acn=cc.cod_fiscale
--where a.Indicatore_ChiamataR4='Z' --clcompl=Z
--and a.Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale <>0
----EC -1
--update C6MartPeriodico.W6CKADEG
--set Adeg_Check='S'
--where Indicatore_ChiamataR4='Z' --clcompl=Z
--and Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale =0
--and Profilo_EC='-1'
----Flag Legali Rappresentanti
--update C6MartPeriodico.W6CKADEG
--set Adeg_Check='S'
--where Indicatore_ChiamataR4='Z' --clcompl=Z
--and Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale =0
--and Flg_Legali_Rappresentanti='S'
--SI
--NO
--NA Non Applicabile
--NR Non restituito, Professionale
END