-- TABELLE!
set xact_abort on;
go

begin transaction;
go

create table BazaarRisorse(
  Anno          int          not null,
  Sett          int          not null,
  idxDipendente int          not null,
  idxFase       int          not null,
  Allocazione   int,
  SchemaWeek     as ([dbo].[f_padLeft]([Allocazione],(5),(0))),
  OreTot         as ([dbo].[f_sumAllocSett]([Allocazione])),

  constraint PK_BazaarRisorse primary key(Anno,Sett,idxDipendente,idxFase)
);
go

exec sp_addextendedproperty 'MS_Description', 'allocazione oraria prevista, numerica, nel formato 00000-88888 (numero di ore x ogni gg della settimana indicata)', 'SCHEMA', 'dbo', 'TABLE', 'BazaarRisorse', 'COLUMN', 'Allocazione';
go

exec sp_addextendedproperty 'MS_Description', 'calcola totale settimanale sommando i valori delel singole giornate (max 7...) - ([dbo].[f_sumSingleChar]([Allocazione]))', 'SCHEMA', 'dbo', 'TABLE', 'BazaarRisorse', 'COLUMN', 'OreTot';
go

create table ImpiegoRisorse(
  Anno          int not null,
  Sett          int not null,
  idxDipendente int not null,
  idxFase       int not null,
  OreTot        int,

  constraint PK_ImpiegoRisorse primary key(Anno,Sett,idxDipendente,idxFase)
);
go

exec sp_addextendedproperty 'MS_Description', 'allocazione oraria prevista, numerica, nel formato 00000-88888 (numero di ore x ogni gg della settimana indicata)', 'SCHEMA', 'dbo', 'TABLE', 'ImpiegoRisorse', 'COLUMN', 'OreTot';
go

create table TallyTable(
  n int not null identity
);
go

create unique clustered index idx_1 on TallyTable(n);
go

commit;
go


alter table TallyTable add
  constraint PK_TallyTable primary key nonclustered(n);
go


-- x aggiungere condizioone su tab DatiComemssa (campo nickname NOT NULL) PRIMA imposto a ''
UPDATE DatiCommessa
SET nickname = ''
WHERE ISNULL(nickname,'') = ''
GO

set xact_abort on;
go

begin transaction;
go

update DatiCommessa set nickname = '' where nickname is null;
go

alter table DatiCommessa alter column
  nickname nvarchar(50) not null;
go

alter table DatiCommessa add
  constraint DF_DatiCommessa_nickname default ('') for nickname;
go

set ANSI_NULLS on;
go

alter VIEW v_selCommesse
AS
SELECT        dbo.DatiCommessa.idxFase AS value, dbo.f_padLeft(dbo.DatiCommessa.NumeroCommessa, 4, '0') + '-' + dbo.f_padLeft(dbo.DatiCommessa.AnnoCommessa, 
                         4, '0') + ' | ' + dbo.DatiCommessa.nickname + ' (' + dbo.DatiCommessa.NomeComm + ') [' + dbo.f_shortFormComm(dbo.DatiCommessa.NumeroCommessa, 
                         dbo.DatiCommessa.AnnoCommessa) + ']' AS label, dbo.AnagFasi.idxProgetto AS conditio
FROM            dbo.DatiCommessa INNER JOIN
                         dbo.AnagFasi ON dbo.DatiCommessa.idxFase = dbo.AnagFasi.idxFase
go

create VIEW v_selCommesseAttive
AS
SELECT        dbo.DatiCommessa.idxFase AS value, dbo.f_padLeft(dbo.DatiCommessa.NumeroCommessa, 4, '0') + '-' + dbo.f_padLeft(dbo.DatiCommessa.AnnoCommessa, 
                         4, '0') + ' | ' + dbo.DatiCommessa.nickname + ' (' + dbo.DatiCommessa.NomeComm + ') [' + dbo.f_shortFormComm(dbo.DatiCommessa.NumeroCommessa, 
                         dbo.DatiCommessa.AnnoCommessa) + ']' AS label, dbo.AnagFasi.idxProgetto AS conditio
FROM            dbo.DatiCommessa INNER JOIN
                         dbo.AnagFasi ON dbo.DatiCommessa.idxFase = dbo.AnagFasi.idxFase
WHERE        (dbo.AnagFasi.Attivo = 1)
go

exec sp_addextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "AnagFasi"
            Begin Extent = 
               Top = 6
               Left = 268
               Bottom = 216
               Right = 439
            End
            DisplayFlags = 280
            TopColumn = 1
         End
         Begin Table = "DatiCommessa"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 136
               Right = 230
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 13140
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
', 'SCHEMA', 'dbo', 'VIEW', 'v_selCommesseAttive';
go

exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selCommesseAttive';
go

commit;
go


set xact_abort on;
go

begin transaction;
go

alter table Dip2ATR add
  Gruppo nvarchar(50);
go

exec sp_addextendedproperty 'MS_Description', 'raggruppamento (funzionale) del dipendente', 'SCHEMA', 'dbo', 'TABLE', 'Dip2ATR', 'COLUMN', 'Gruppo';
go

set ANSI_NULLS on;
go

/**********************************************************
* STORED stp_D2ATR_getBazOrd
*
* recupera elenco dipendenti abilitati a bazaar ordinati x i gruppi validi
*
* mod: S.E.L. 2013.09.04
*
**********************************************************/
create PROCEDURE stp_D2ATR_getBazOrd

AS

SELECT      *
FROM        Dip2ATR
WHERE       ISNULL(Gruppo,'') <>''
ORDER BY    Gruppo

RETURN
go

/**********************************************************
* STORED stp_baz_creaBulkByIdxFase
*
* crea in blocco tanti record di Bazaar Risorse quante le risorse disponibili per la fase, anno e settimana selezionate
*
* mod: S.E.L. 2013.09.04
*
**********************************************************/
create PROCEDURE stp_BAZ_creaBulkByIdxFase
(
    @Anno           INT = 0,
    @Sett           INT = 0,
    @idxFase        INT = 0
)
AS

-- creo 1 record x ogni dip in Dip2ATR con un gruppo valido (non nullo/vuoto) x il set Anno/Sett/Fase
INSERT INTO BazaarRisorse(Anno,Sett,idxDipendente,idxFase,Allocazione) 
SELECT	    @Anno, @Sett, idxDipendente, @idxFase, 0
FROM	    Dip2ATR 
WHERE	    ISNULL(Gruppo,'') <>''

RETURN
go

commit;
go





-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(191, GETDATE())
GO
SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC
GO
