-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [C6MartPeriodico].[DM_POPOLAMENTO_AM_OperazioniUltimoTrimestre_old]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
-- settaggio variabili del trimestre
declare @datacongelamento as datetime
declare @dataInizioTrimestre as datetime
set @datacongelamento = C6MartPeriodico.getDataCongelamento()
set @dataInizioTrimestre = DATEADD(m,-3,DATEADD(mm, DATEDIFF(m,0,@datacongelamento), 0))
--print @datacongelamento
--print @dataInizioTrimestre
-- storicizzare le operazione dell'ultimo trimestre prima di troncare la tabella
 --troncare la tabella esistente 
truncate table [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre
-- step propedeutici al popolamento della tabella svuotata
select a.NumeroContratto, a.chiaveclientepb, a.Contratto, a.ImportoOperazione, a.Operazione, a.DataOperazione, a.FirmaDigitale
into #propedeutica
from 
(
SELECT 
	distinct pospro.codConf as NumeroContratto
	,pos.chiaveclientepb
	,pn.descrizione as Contratto
	--,dop.investi
	--,dop.disinvesti
	,isnull(dop.investi, (dop.disinvesti * - 1)) as ImportoOperazione
	,dto.descrizione as Operazione
	,Convert(VARCHAR, dop.dtAggiornamento, 103) AS DataOperazione
	--, null as Firma
	,CASE
	WHEN sca.WSMOV_FIRMA_DIGITALE = 'G' then 'Grafometrica'
    WHEN sca.WSMOV_FIRMA_DIGITALE = 'N' then 'Olografa'
       WHEN sca.WSMOV_FIRMA_DIGITALE = 'S' then 'Elettronica'
       ELSE 'Olografa'
	END AS FirmaDigitale
FROM Consuni_Periodico.ConsulenzaUnica.dbo.ST_DettaglioOperazione dop
LEFT JOIN Consuni.ConsulenzaUnica.dbo.PosizioniProposta pospro ON dop.chiavePosizionePro = pospro.chiavePosizionePro
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.DTipoOperazione dto ON  dto.codTipoOperazione = dop.codTipoOperazione
LEFT JOIN Consuni.CatalogoProdotti.dbo.ProdottiNucleo pn ON pn.codinterno = substring(pospro.codConf, 7, 2)
LEFT JOIN Consuni.CatalogoProdotti.dbo.CatalogoProdotti cat ON --posport.chiaveProdotto = cat.ChiaveProdotto AND
CAT.CODINTERNO = PN.codinterno AND pn.tipoprodotto = cat.tipoprodotto
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.Proposta pos ON pos.chiaveProposta = dop.chiaveProposta
--LEFT JOIN (SELECT cod_fiscale+rete from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]) rp ON rp.chiaveclientePB = pos.chiaveclientePB
--LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.vInfoCliente vi ON vi.chiavePB = pos.chiaveClientePB
--LEFT JOIN WSMOV_CONTRATTO_scarico sca ON sca.WSMOV_CONTRATTO = posport.codConf
LEFT JOIN (select wsmov_data_eseguito,WSMOV_FIRMA_DIGITALE,wsmov_contratto, wsmov_operazione from [C6StagingPeriodico].WSMOV_CONTRATTO_SCARICO 
	where CONVERT(DATETIME, CONVERT(VARCHAR, wsmov_data_eseguito, 103),103) --between 
>= @dataInizioTrimestre 
--AND @datacongelamento
) sca 
	ON sca.wsmov_contratto = pospro.codConf 
	AND substring(dop.codTipoOperazione, 1, 1) = sca.wsmov_operazione
WHERE dop.chiaveProposta-- = '32255229'
IN (select chiaveProposta from Consuni_Periodico.ConsulenzaUnica.dbo.Proposta where chiaveclientepb in (select distinct chiaveclientepb from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport])
AND status not in ('VA', 'EX', 'BO'))
AND pospro.chiavePosizionePro <> '0'
AND dop.dtAggiornamento between @dataInizioTrimestre AND @datacongelamento
	 union all
SELECT 
	distinct posport.codConf as NumeroContratto
	,pos.chiaveclientepb
	,pn.descrizione as Contratto
	--,dop.investi
	--,dop.disinvesti
	,isnull(dop.investi, (dop.disinvesti * - 1)) as ImportoOperazione
	,dto.descrizione as Operazione
	,Convert(VARCHAR, dop.dtAggiornamento, 103) AS DataOperazione
	--, null as Firma
	,CASE
	WHEN sca.WSMOV_FIRMA_DIGITALE = 'G' then 'Grafometrica'
    WHEN sca.WSMOV_FIRMA_DIGITALE = 'N' then 'Olografa'
       WHEN sca.WSMOV_FIRMA_DIGITALE = 'S' then 'Elettronica'
       ELSE 'Olografa'
	END AS FirmaDigitale
FROM Consuni_Periodico.ConsulenzaUnica.dbo.ST_DettaglioOperazione dop
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.PosizioniPortafoglio posport ON dop.chiavePosizionePtf = posport.chiavePosizionePtf
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.DTipoOperazione dto ON  dto.codTipoOperazione = dop.codTipoOperazione
LEFT JOIN Consuni.CatalogoProdotti.dbo.ProdottiNucleo pn ON pn.codinterno = substring(posport.codConf, 7, 2)
LEFT JOIN Consuni.CatalogoProdotti.dbo.CatalogoProdotti cat ON --posport.chiaveProdotto = cat.ChiaveProdotto AND
CAT.CODINTERNO = PN.codinterno AND pn.tipoprodotto = cat.tipoprodotto
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.Proposta pos ON pos.chiaveProposta = dop.chiaveProposta
--LEFT JOIN (SELECT cod_fiscale+rete from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]) rp ON rp.chiaveclientePB = pos.chiaveclientePB
--LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.vInfoCliente vi ON vi.chiavePB = pos.chiaveClientePB
--LEFT JOIN WSMOV_CONTRATTO_scarico sca ON sca.WSMOV_CONTRATTO = posport.codConf
LEFT JOIN (select wsmov_data_eseguito,WSMOV_FIRMA_DIGITALE,wsmov_contratto, wsmov_operazione from [C6StagingPeriodico].WSMOV_CONTRATTO_SCARICO 
	where CONVERT(DATETIME, CONVERT(VARCHAR, wsmov_data_eseguito, 103),103) --between 
>= @dataInizioTrimestre --AND @datacongelamento
) sca 
	ON sca.wsmov_contratto = posport.codConf 
	AND substring(dop.codTipoOperazione, 1, 1) = sca.wsmov_operazione
WHERE dop.chiaveProposta-- = '32255229'
in (select chiaveProposta from Consuni_Periodico.ConsulenzaUnica.dbo.Proposta where chiaveclientepb in (select distinct chiaveclientepb from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport])
AND status not in ('VA', 'EX', 'BO'))
and posport.chiavePosizionePtf <> '0'
AND dop.dtAggiornamento between @dataInizioTrimestre AND @datacongelamento
--AND CODCONF = '29838895201'
) a
-- appiattire e raggruppare per la somma delle operazioni
SELECT ChiaveclientePB
	,DataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,SUM(ImportoOperazione) as ImportoOperazione
	,FirmaDigitale
into #propedeutica_raggruppata
FROM #propedeutica
GROUP BY ChiaveclientePB 
	,dataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,FirmaDigitale
ORDER BY CONVERT(DATETIME, DataOperazione, 103)
--- aggiunta del CF e rete per entrare nella SP successiva
insert into [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre
SELECT RP.RETE, 
	RP.cod_fiscale AS CodiceFiscale
	,DataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,ImportoOperazione
	,FirmaDigitale
FROM #propedeutica_raggruppata TEMP 
INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] RP
ON RP.CHIAVECLIENTEPB = TEMP.CHIAVECLIENTEPB
order by rete, codicefiscale, CONVERT(DATETIME, DataOperazione, 103)
END