Files
2021-03-26 17:17:28 +01:00

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