SELECT *
FROM TMP_importFasi tf
INNER JOIN ETS_ScipHalf.dbo.commesse c ON dbo.f_padLeft(tf.NumComm, 4,'0')=c.NrComme  AND dbo.f_padLeft(tf.anno, 4,'0')=c.Anno 

select * from AnagClienti
select * from AnagProgetti
select * from AnagFasi


SELECT * FROM  ETS_ScipHalf.dbo.commesse

-- step 0: creo clienti!
SELECT DISTINCT Commitente INTO TMP_RawClienti
FROM	ETS_ScipHalf.dbo.commesse

INSERT INTO AnagClienti(RagSociale)
SELECT Commitente from TMP_RawClienti

-- step 1: creo progetti (tutti) INATTIVI
INSERT INTO AnagProgetti(idxCliente, nomeProj, descrProj, attivo, codExt, avvio, chiusura)
SELECT ac.idxCliente, NrComme+'-'+Anno as nomeProj, Descrizione as descrProj, 0, NrProtocollo as codExt, dataApe as avvio, DataSca as chiusura
FROM	ETS_ScipHalf.dbo.commesse c
INNER JOIN AnagClienti ac ON c.Commitente=ac.RagSociale

-- step 2: indico attivi solo i progetti che ho trovato da tam import
UPDATE	ap
SET		Attivo = 1
FROM	AnagProgetti ap INNER JOIN TMP_importFasi tif ON ap.nomeProj = dbo.f_padLeft(tif.NumComm, 4,'0') +'-'+dbo.f_padLeft(tif.anno, 4,'0')


-- step 3: creo fasi MACRO (ancestor) da TUTTI i progetti ATTIVI
INSERT INTO AnagFasi( idxProgetto, codFase, idxFaseAncest, nomeFase, descrizioneFase, enableTime, enableMoney, Attivo, budgetTime, budgetMoney)
SELECT	idxProgetto, '' as codFase, 0 as idxFaseAncest, nomeProj, descrProj, 0 as enabTime, 0 as enabMon, Attivo, 0 as bdgTim, 0 as bdgMon
FROM	AnagProgetti ap
WHERE attivo = 1

-- step 4: creo vere (sotto) fasi
INSERT INTO AnagFasi( idxProgetto, codFase, idxFaseAncest, nomeFase, descrizioneFase, enableTime, enableMoney, Attivo, budgetTime, budgetMoney)
SELECT af.idxProgetto, '' as codFase, af.idxFase AS idxFaseAncest, tif.NomeFase, tif.NomeFase, 1 as enabTime, 0 as enabMon, 1, 0 as bdgTim, 0 as bdgMon
FROM AnagFasi af
INNER JOIN TMP_importFasi tif ON af.nomeFase = dbo.f_padLeft(tif.NumComm, 4,'0') +'-'+dbo.f_padLeft(tif.anno, 4,'0')

-- step 5: sistemo progetti con date apertura/chiusura nulle e oldIdx nulli...
UPDATE AnagProgetti
SET		avvio = '1900-01-01'
where avvio IS NULL

UPDATE	AnagProgetti
SET		chiusura = '2100-12-31'
where	chiusura IS NULL

UPDATE	AnagProgetti 
SET		OldIdx =-1
WHERE	OldIdx is null


--- update finale
-- inserisco commesse mancanti
INSERT INTO AnagFasi( idxProgetto, codFase, idxFaseAncest, nomeFase, descrizioneFase, enableTime, enableMoney, Attivo, budgetTime, budgetMoney)
SELECT	idxProgetto, '' as codFase, 0 as idxFaseAncest, nomeProj, descrProj, 0 as enabTime, 0 as enabMon, Attivo, 0 as bdgTim, 0 as bdgMon
FROM	AnagProgetti ap
WHERE attivo = 0

-- inserisco sottofasi (fasi) mancanti a "generale"
INSERT INTO AnagFasi( idxProgetto, codFase, idxFaseAncest, nomeFase, descrizioneFase, enableTime, enableMoney, Attivo, budgetTime, budgetMoney)
SELECT af.idxProgetto, '' as codFase, af.idxFase AS idxFaseAncest, 'GENERALE', 'GENERALE', 1 as enabTime, 0 as enabMon, 0, 0 as bdgTim, 0 as bdgMon
FROM AnagFasi af
WHERE af.idxFase > 493