68 lines
2.9 KiB
SQL
68 lines
2.9 KiB
SQL
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 |