Aggiunto progetto GPW_Data
This commit is contained in:
@@ -0,0 +1,291 @@
|
||||
create table ElencoReport(
|
||||
IdxRep int not null identity constraint PK_ElencoReport primary key,
|
||||
ReportName nvarchar(50),
|
||||
ReportUrl nvarchar(500),
|
||||
imgUrl nvarchar(50)
|
||||
);
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on
|
||||
go
|
||||
|
||||
begin transaction
|
||||
go
|
||||
|
||||
set identity_insert dbo.ElencoReport on
|
||||
go
|
||||
|
||||
INSERT INTO dbo.ElencoReport
|
||||
(IdxRep, ReportName, ReportUrl, imgUrl)
|
||||
VALUES (1, N'Report Ore: Cliente - Progetto - Utente', N'GPW+-+Report+Presenze%2fGPW+-+Ore+per+Cliente-Progetto-Utente', NULL)
|
||||
INSERT INTO dbo.ElencoReport
|
||||
(IdxRep, ReportName, ReportUrl, imgUrl)
|
||||
VALUES (2, N'Report Completo: Elenco Ore Attivita Progetti', N'GPW+-+Report+Presenze%2fGPW+-+Elenco+Ore+Attivita+Progetti', NULL)
|
||||
go
|
||||
|
||||
set identity_insert dbo.ElencoReport off
|
||||
go
|
||||
|
||||
commit transaction
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/**********************************************************
|
||||
* STORED stp_ReportOreDip
|
||||
*
|
||||
* elenco ore dipendenti
|
||||
*
|
||||
* mod: S.E.L. 2013.02.04
|
||||
*
|
||||
**********************************************************/
|
||||
alter PROCEDURE export.stp_ReportOreDip
|
||||
(
|
||||
@idxDipendente INT = 0, -- 0 = tutti
|
||||
@dataFrom DATETIME,
|
||||
@dataTo DATETIME
|
||||
)
|
||||
AS
|
||||
SET NOCOUNT OFF;
|
||||
DECLARE @minArr INT
|
||||
|
||||
SELECT @minArr = ISNULL(valInt,1) FROM AnagKeyValue WHERE nomeVar = 'minutiRoundDay'
|
||||
|
||||
-- elenco mensile...
|
||||
SELECT dataLav, CognomeNome,
|
||||
entrata_1, uscita_1, entrata_2, uscita_2,
|
||||
entrata_3, uscita_3, entrata_4, uscita_4,
|
||||
FLOOR(CAST(h_lav AS DECIMAL(9,3))*60/@minArr)/(60/@minArr) AS h_lavorate,
|
||||
FLOOR(CAST(minStra AS DECIMAL(9,3))/@minArr)/(60/@minArr) AS h_straordinarie,
|
||||
CEILING(CAST(minPerm AS DECIMAL(9,3))/@minArr)/(60/@minArr) AS h_permessi,
|
||||
CEILING(CAST(minFer AS DECIMAL(9,3))/@minArr)/(60/@minArr) AS h_ferie,
|
||||
CEILING(CAST(minMal AS DECIMAL(9,3))/@minArr)/(60/@minArr) AS h_malattia,
|
||||
CEILING(CAST(minFest AS DECIMAL(9,3))/@minArr)/(60/@minArr) AS h_festivita
|
||||
FROM TimbratureExpl
|
||||
WHERE (idxDipendente = @idxDipendente OR @idxDipendente = 0)
|
||||
AND dataLav >= CAST(@dataFrom AS DATE)
|
||||
AND dataLav <= CAST(@dataTo AS DATE)
|
||||
--AND NOT (entrata_1 IS NULL)
|
||||
ORDER BY CognomeNome, dataLav
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/**********************************************************
|
||||
* STORED stp_AP_Expl_getData
|
||||
*
|
||||
* recupera elenco progetti con filtraggio ore totali per
|
||||
* - dipendente
|
||||
* - periodo
|
||||
*
|
||||
* mod: S.E.L. 2013.01.30
|
||||
*
|
||||
**********************************************************/
|
||||
alter PROCEDURE stp_AP_Expl_getData
|
||||
(
|
||||
@idxDipendente INT = 0, -- 0 = tutti
|
||||
@dataFrom DATETIME = '19000101',
|
||||
@dataTo DATETIME = '99991231',
|
||||
@idxCliente INT = 0, -- 0 = tutti
|
||||
@showPrjArch BIT = 1, -- 1 = mostra tutti, 0 = nasconde archiviati
|
||||
@showPrjZeroH BIT = 1 -- 1 = mostra tutti, 0 = nasconde se zero ore caricate
|
||||
)
|
||||
AS
|
||||
|
||||
-- controllo se date nulle importo a min/max
|
||||
DECLARE @firstDate DATETIME
|
||||
DECLARE @lastDate DATETIME
|
||||
|
||||
SELECT @firstDate = MIN(inizio), @lastDate=DATEADD(DAY,1,MAX(inizio)) FROM RegAttivita
|
||||
SELECT @dataFrom=ISNULL(@dataFrom, @firstDate) , @dataTo=ISNULL(@dataTo, @lastDate)
|
||||
|
||||
|
||||
;WITH cteOreReal AS
|
||||
(
|
||||
SELECT ap.idxProgetto, SUM(ISNULL(ra.oreTot, 0)) AS totOre
|
||||
FROM AnagProgetti AS ap INNER JOIN
|
||||
AnagClienti AS ac ON ac.idxCliente=ap.idxCliente INNER JOIN
|
||||
AnagFasi AS af ON ap.idxProgetto = af.idxProgetto INNER JOIN
|
||||
RegAttivita AS ra ON af.idxFase = ra.idxFase
|
||||
WHERE (ra.idxDipendente = @idxDipendente OR @idxDipendente = 0)
|
||||
AND (ra.inizio >= @dataFrom AND ra.inizio <= @dataTo)
|
||||
AND (ac.idxCliente = @idxCliente OR @idxCliente = 0)
|
||||
AND (ap.Attivo = CASE WHEN @showPrjArch <> 0 THEN ap.Attivo ELSE 1 END)
|
||||
GROUP BY ap.idxProgetto
|
||||
)
|
||||
,cteOreBudget as
|
||||
(
|
||||
SELECT
|
||||
idxProgetto
|
||||
,SUM(ISNULL(budgetTime,0)) as budgetTime
|
||||
,SUM(ISNULL(budgetMoney,0)) as budgetMoney
|
||||
FROM AnagFasi
|
||||
GROUP BY idxProgetto
|
||||
)
|
||||
|
||||
SELECT ac.RagSociale
|
||||
, ap.idxProgetto
|
||||
, ap.idxCliente
|
||||
, ap.nomeProj
|
||||
, ap.descrProj
|
||||
, ISNULL(bdgt.budgetTime,0) AS budgetTime
|
||||
, ISNULL(bdgt.budgetMoney,0) AS budgetMoney
|
||||
, ISNULL(ap.OldIdx,-1) AS OldIdx
|
||||
, ap.Attivo
|
||||
, ISNULL(ap.codExt,'') AS codExt
|
||||
, ISNULL(cte.totOre, 0) AS totOre
|
||||
, ISNULL(ap.avvio,'19000101') AS avvio
|
||||
, ISNULL(ap.chiusura,'99991231') AS chiusura
|
||||
FROM AnagClienti AS ac INNER JOIN
|
||||
AnagProgetti AS ap ON ac.idxCliente = ap.idxCliente LEFT OUTER JOIN
|
||||
cteOreBudget AS bdgt ON ap.idxProgetto = bdgt.idxProgetto LEFT OUTER JOIN
|
||||
cteOreReal AS cte ON cte.idxProgetto = ap.idxProgetto
|
||||
WHERE (ac.idxCliente = @idxCliente OR @idxCliente = 0)
|
||||
AND (ap.Attivo = CASE WHEN @showPrjArch <> 0 THEN ap.Attivo ELSE 1 END)
|
||||
AND (totOre > 0 OR @showPrjZeroH = 1)
|
||||
ORDER BY ac.RagSociale, ap.nomeProj
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/**********************************************************
|
||||
* STORED stp_RA_clonaLastRA_byFaseUtente
|
||||
*
|
||||
* clona un attività utente: ultima di un dato tipo di fase
|
||||
*
|
||||
* mod: S.E.L. 2013.02.20
|
||||
*
|
||||
**********************************************************/
|
||||
alter PROCEDURE stp_RA_clonaLastRA_byFaseUtente
|
||||
(
|
||||
@idxDipendente INT
|
||||
,@dataRif DATETIME -- data x cui creare un record attività
|
||||
,@idxFase INT
|
||||
,@minuti INT = 0 -- se 0 fa last value
|
||||
)
|
||||
AS
|
||||
|
||||
-- variabili
|
||||
DECLARE @idxRA INT
|
||||
DECLARE @inizio DATETIME
|
||||
|
||||
-- calcolo fine ultima attività del giorno x l'utente (se c'è...)
|
||||
SELECT TOP 1 @inizio = ISNULL(fine, @dataRif)
|
||||
FROM RegAttivita
|
||||
WHERE idxDipendente = @idxDipendente
|
||||
AND CONVERT(DATE,fine) = @dataRif
|
||||
ORDER BY fine DESC
|
||||
|
||||
|
||||
DECLARE @round AS INT
|
||||
SET @round = ( SELECT valInt FROM AnagKeyValue WHERE nomeVar = 'minutiRoundDay' )
|
||||
|
||||
-- arrotondo data richiesta...
|
||||
SELECT @dataRif = DATEADD(n, (ROUND(dbo.TimeSpanUnits('m', dbo.TimeOnly(DATEADD(n,-1,@dataRif))) / @round, 2) + 1) * @round , CAST(CAST(@dataRif AS DATE) AS DATETIME))
|
||||
|
||||
-- controlla che x la data richiesta non ci siano già altre attività, in quel caso "accoda"...
|
||||
DECLARE @trovate INT = 0
|
||||
SELECT @trovate = COUNT(idxRA) FROM RegAttivita WHERE idxDipendente = @idxDipendente AND CAST(@dataRif AS DATE) = CAST(inizio AS DATE)
|
||||
|
||||
IF @trovate > 0
|
||||
BEGIN
|
||||
-- imposto @dataRif per iniziare alla fine dell'ultimo record
|
||||
SELECT TOP 1 @dataRif=fine FROM RegAttivita WHERE idxDipendente = @idxDipendente AND CAST(@dataRif AS DATE) = CAST(inizio AS DATE) ORDER BY fine DESC
|
||||
END
|
||||
|
||||
-- cerco ultima reg attività utente x fase indicata...
|
||||
SELECT @idxRA=ISNULL((SELECT TOP 1 idxRA FROM RegAttivita WHERE idxDipendente = @idxDipendente AND idxFase = @idxFase ORDER BY inizio DESC),0)
|
||||
|
||||
-- inserisco su data richeista duplicazione dell'ultima attività utente...
|
||||
INSERT INTO RegAttivita(idxDipendente, idxFase, inizio, fine, descrizione, importo)
|
||||
SELECT idxDipendente, idxFase, @dataRif, DATEADD(minute, CASE WHEN @minuti = 0 THEN DATEDIFF(MINUTE, inizio, fine) ELSE @minuti END, @dataRif), descrizione, importo
|
||||
FROM RegAttivita
|
||||
WHERE (idxRA = @idxRA)
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/**********************************************************
|
||||
* FUNCTION f_dataOraITA
|
||||
*
|
||||
* formatta data ora in modo che sia compatibilit con excel ITA
|
||||
*
|
||||
**********************************************************/
|
||||
create FUNCTION f_dataOraITA
|
||||
(
|
||||
@valore DATETIME
|
||||
)
|
||||
RETURNS NVARCHAR(50)
|
||||
AS
|
||||
BEGIN
|
||||
RETURN CONVERT(NVARCHAR(50), @valore, 120)
|
||||
END
|
||||
go
|
||||
|
||||
/**********************************************************
|
||||
* FUNCTION f_floatITA
|
||||
*
|
||||
* formatta data ora in modo che sia compatibilita con excel ITA
|
||||
*
|
||||
**********************************************************/
|
||||
create FUNCTION f_floatITA
|
||||
(
|
||||
@valore FLOAT
|
||||
)
|
||||
RETURNS NVARCHAR(50)
|
||||
AS
|
||||
BEGIN
|
||||
RETURN REPLACE(CONVERT(NVARCHAR(50), @valore),'.',',')
|
||||
END
|
||||
go
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- registro versione...
|
||||
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(306, GETDATE())
|
||||
GO
|
||||
SELECT * FROM LogUpdateDb ORDER BY Versione DESC
|
||||
Reference in New Issue
Block a user