EnVisageOnline/Main/Database/Scripts/20160216/08_VW_HolidayAllocation.sql

34 lines
1.7 KiB
Transact-SQL

USE [EnVisage]
GO
/****** Object: View [dbo].[VW_HolidayAllocation] Script Date: 2/16/2016 11:18:29 AM ******/
if exists (select 1 from sys.views where name like 'VW_HolidayAllocation')
begin
DROP VIEW [dbo].[VW_HolidayAllocation]
END
GO
/****** Object: View [dbo].[VW_HolidayAllocation] Script Date: 2/16/2016 11:18:29 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* Update Dependent views and procs */
CREATE VIEW [dbo].[VW_HolidayAllocation]
AS
SELECT H.Name as HolidayName, PR.Id as PeopleResourceId, HA.*
FROM HolidayAllocation AS HA
inner join Holiday H on HA.HolidayId = H.Id
left join Holiday2Team H2T on H.CompanyImpact = 0 and H.Id = H2T.HolidayId
left join Holiday2PeopleResource H2PR on H.CompanyImpact = 0 and H.Id = H2PR.HolidayId
left join Holiday2ExpenditureCategory H2E on H.CompanyImpact = 0 and H.Id = H2E.HolidayId
left join PeopleResource PR on
(H.CompanyImpact = 1) -- all resources in case Company Impact is set to 'All Resources'
OR (H.CompanyImpact = 0 AND H.IsInclude = 1 AND (PR.Id = H2PR.ResourceId OR PR.TeamId = H2T.TeamId OR PR.ExpenditureCategoryId = H2E.ExpenditureCategoryId)) -- resources from 'Resources' dropdown and resources of teams from 'Teams' dropdown and resources of expenditures from 'Expenditures' dropdown if company impact is 'Some Resources' and Include mode
OR (H.CompanyImpact = 0 AND H.IsInclude = 0 AND PR.Id <> H2PR.ResourceId AND PR.TeamId <> H2T.TeamId AND PR.ExpenditureCategoryId <> H2E.ExpenditureCategoryId) -- resources from 'Resources' dropdown and resources of teams from 'Teams' dropdown and resources of expenditures from 'Expenditures' dropdown if company impact is 'Some Resources' and Exclude mode
where H.WorkingDays = 0
GO