IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_SCHEMA = N'dbo'
AND SPECIFIC_NAME = N'Cireson_AssetManagement_GetContractList'
)
DROP PROCEDURE dbo.Cireson_AssetManagement_GetContractList
GO
CREATE PROCEDURE [dbo].[Cireson_AssetManagement_GetContractList]
@Name nvarchar(100),
@LanguageCode nvarchar(5),
@CostCenter nvarchar(max),
@Vendor nvarchar(max),
@ContractStatus nvarchar(max)
AS
BEGIN
-- V3
SET NOCOUNT ON;
IF(@Name Is Null) BEGIN SET @Name = '' END
IF(@CostCenter = '-1') BEGIN SET @CostCenter = '' END
IF(@CostCenter Is Null) BEGIN SET @CostCenter = '' END
IF (@Vendor Is Null) BEGIN SET @Vendor = '' END
IF (@Vendor = '-1') BEGIN SET @Vendor = '' END
IF (@ContractStatus Is Null) BEGIN SET @ContractStatus = '' END
IF (@ContractStatus = '-1') BEGIN SET @ContractStatus = '' END
INNER JOIN
dbo.ConfigItemDimvw CI
ON W.EntityDimKey = CI.EntityDimKey
LEFT OUTER JOIN
dbo.ConfigItemOwnedByUserFactvw
ON dbo.ConfigItemOwnedByUserFactvw.ConfigItemDimKey = CI.ConfigItemDimKey
AND ConfigItemOwnedByUserFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.UserDimvw AS Custodian
ON dbo.ConfigItemOwnedByUserFactvw.ConfigItemOwnedByUser_UserDimKey = Custodian.UserDimKey
LEFT OUTER JOIN
dbo.CiresonWarrantyRelatesToCostCenterFactvw
ON dbo.CiresonWarrantyRelatesToCostCenterFactvw.CiresonWarrantyDimKey = W.CiresonWarrantyDimKey
AND CiresonWarrantyRelatesToCostCenterFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.CiresonCostCenterDimVw AS CostCenter
ON dbo.CiresonWarrantyRelatesToCostCenterFactvw.WarrantyHasCostCenter_CiresonCostCenterDimKey = CostCenter.CiresonCostCenterDimKey
LEFT OUTER JOIN
dbo.CiresonWarrantyRelatesToVendorFactvw
ON dbo.CiresonWarrantyRelatesToVendorFactvw.CiresonWarrantyDimKey = W.CiresonWarrantyDimKey
AND CiresonWarrantyRelatesToVendorFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.CiresonVendorDimvw AS Vendor
ON dbo.CiresonWarrantyRelatesToVendorFactvw.WarrantyHasVendor_CiresonVendorDimKey = Vendor.CiresonVendorDimKey
LEFT OUTER JOIN
dbo.CiresonWarrantyContractStatusvw AS StatusEnum
ON StatusEnum.CiresonWarrantyContractStatusId = W.ContractStatus_CiresonSupportContractContractStatusId
LEFT OUTER JOIN
dbo.DisplayStringDimvw StatusDS
ON StatusEnum.EnumTypeId = StatusDS.BaseManagedEntityId
AND ((StatusDS.LanguageCode = @LanguageCode AND StatusDS.DisplayName != null) OR StatusDS.LanguageCode = 'ENU')
LEFT OUTER JOIN
dbo.CiresonContractUnit AS UnitEnum
ON UnitEnum.CiresonContractUnitId = W.Unit_CiresonContractUnitId
LEFT OUTER JOIN
dbo.DisplayStringDimvw UnitDS
ON UnitEnum.EnumTypeId = UnitDS.BaseManagedEntityId
AND ((UnitDS.LanguageCode = @LanguageCode AND UnitDS.DisplayName != null) OR UnitDS.LanguageCode = 'ENU')
WHERE
((@Name = '') OR W.Name LIKE '%' + @Name + '%') AND
((0 IN (SELECT value FROM @tableCostCenter)) OR (CostCenter.CiresonCostCenterDimKey IN (SELECT value FROM @tableCostCenter))) AND
((0 IN (SELECT value FROM @tableVendor)) OR (Vendor.CiresonVendorDimKey IN (SELECT value FROM @tableVendor))) AND
((@ContractStatus = '' ) OR (W.ContractStatus_CiresonSupportContractContractStatusId In (Select value from @tableContractStatus)))
INNER JOIN
dbo.ConfigItemDimvw CI
ON L.EntityDimKey = CI.EntityDimKey
LEFT OUTER JOIN
dbo.ConfigItemOwnedByUserFactvw
ON dbo.ConfigItemOwnedByUserFactvw.ConfigItemDimKey = CI.ConfigItemDimKey
AND ConfigItemOwnedByUserFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.UserDimvw AS Custodian
ON dbo.ConfigItemOwnedByUserFactvw.ConfigItemOwnedByUser_UserDimKey = Custodian.UserDimKey
LEFT OUTER JOIN
dbo.CiresonLeaseRelatesToCostCenterFactvw
ON dbo.CiresonLeaseRelatesToCostCenterFactvw.CiresonLeaseDimKey = L.CiresonLeaseDimKey
AND CiresonLeaseRelatesToCostCenterFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.CiresonCostCenterDimVw AS CostCenter
ON dbo.CiresonLeaseRelatesToCostCenterFactvw.LeaseHasCostCenter_CiresonCostCenterDimKey = CostCenter.CiresonCostCenterDimKey
LEFT OUTER JOIN
dbo.CiresonLeaseRelatesToVendorFactvw
ON dbo.CiresonLeaseRelatesToVendorFactvw.CiresonLeaseDimKey = L.CiresonLeaseDimKey
AND CiresonLeaseRelatesToVendorFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.CiresonVendorDimvw AS Vendor
ON dbo.CiresonLeaseRelatesToVendorFactvw.LeaseHasVendor_CiresonVendorDimKey = Vendor.CiresonVendorDimKey
LEFT OUTER JOIN
dbo.CiresonLeaseContractStatusvw AS StatusEnum
ON StatusEnum.CiresonLeaseContractStatusId = L.ContractStatus_CiresonSupportContractContractStatusId
LEFT OUTER JOIN
dbo.DisplayStringDimvw StatusDS
ON StatusEnum.EnumTypeId = StatusDS.BaseManagedEntityId
AND ((StatusDS.LanguageCode = @LanguageCode AND StatusDS.DisplayName != null) OR StatusDS.LanguageCode = 'ENU')
LEFT OUTER JOIN
dbo.CiresonContractUnit AS UnitEnum
ON UnitEnum.CiresonContractUnitId = L.Unit_CiresonContractUnitId
LEFT OUTER JOIN
dbo.DisplayStringDimvw UnitDS
ON UnitEnum.EnumTypeId = UnitDS.BaseManagedEntityId
AND ((UnitDS.LanguageCode = @LanguageCode AND UnitDS.DisplayName != null) OR UnitDS.LanguageCode = 'ENU')
WHERE
((@Name = '') OR L.Name LIKE '%' + @Name + '%') AND
((0 IN (SELECT value FROM @tableCostCenter)) OR (CostCenter.CiresonCostCenterDimKey IN (SELECT value FROM @tableCostCenter))) AND
((0 IN (SELECT value FROM @tableVendor)) OR (Vendor.CiresonVendorDimKey IN (SELECT value FROM @tableVendor))) AND
((@ContractStatus = '' ) OR (L.ContractStatus_CiresonSupportContractContractStatusId In (Select value from @tableContractStatus)))
INNER JOIN
dbo.ConfigItemDimvw CI
ON S.EntityDimKey = CI.EntityDimKey
LEFT OUTER JOIN
dbo.ConfigItemOwnedByUserFactvw
ON dbo.ConfigItemOwnedByUserFactvw.ConfigItemDimKey = CI.ConfigItemDimKey
AND ConfigItemOwnedByUserFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.UserDimvw AS Custodian
ON dbo.ConfigItemOwnedByUserFactvw.ConfigItemOwnedByUser_UserDimKey = Custodian.UserDimKey
LEFT OUTER JOIN
dbo.CiresonSupportContractRelatesToCostCenterFactvw
ON dbo.CiresonSupportContractRelatesToCostCenterFactvw.CiresonSupportContractDimKey = S.CiresonSupportContractDimKey
AND CiresonSupportContractRelatesToCostCenterFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.CiresonCostCenterDimVw AS CostCenter
ON dbo.CiresonSupportContractRelatesToCostCenterFactvw.SupportContractHasCostCenter_CiresonCostCenterDimKey = CostCenter.CiresonCostCenterDimKey
LEFT OUTER JOIN
dbo.CiresonSupportContractRelatesToVendorFactvw
ON dbo.CiresonSupportContractRelatesToVendorFactvw.CiresonSupportContractDimKey = S.CiresonSupportContractDimKey
AND CiresonSupportContractRelatesToVendorFactvw.DeletedDate Is Null
LEFT OUTER JOIN
dbo.CiresonVendorDimvw AS Vendor
ON dbo.CiresonSupportContractRelatesToVendorFactvw.SupportContractHasVendor_CiresonVendorDimKey = Vendor.CiresonVendorDimKey
LEFT OUTER JOIN
dbo.CiresonSupportContractContractStatusvw AS StatusEnum
ON StatusEnum.CiresonSupportContractContractStatusId = S.ContractStatus_CiresonSupportContractContractStatusId
LEFT OUTER JOIN
dbo.DisplayStringDimvw StatusDS
ON StatusEnum.EnumTypeId = StatusDS.BaseManagedEntityId
AND ((StatusDS.LanguageCode = @LanguageCode AND StatusDS.DisplayName != null) OR StatusDS.LanguageCode = 'ENU')
LEFT OUTER JOIN
dbo.CiresonContractUnit AS UnitEnum
ON UnitEnum.CiresonContractUnitId = S.Unit_CiresonContractUnitId
LEFT OUTER JOIN
dbo.DisplayStringDimvw UnitDS
ON UnitEnum.EnumTypeId = UnitDS.BaseManagedEntityId
AND ((UnitDS.LanguageCode = @LanguageCode AND UnitDS.DisplayName != null) OR UnitDS.LanguageCode = 'ENU')
WHERE
((@Name = '') OR S.Name LIKE '%' + @Name + '%') AND
((0 IN (SELECT value FROM @tableCostCenter)) OR (CostCenter.CiresonCostCenterDimKey IN (SELECT value FROM @tableCostCenter))) AND
((0 IN (SELECT value FROM @tableVendor)) OR (Vendor.CiresonVendorDimKey IN (SELECT value FROM @tableVendor))) AND
((@ContractStatus = '' ) OR (StatusDS.DisplayName IS NOT NULL AND StatusDS.IsDeleted <> 1
AND StatusDS.DisplayName <> '' AND S.ContractStatus_CiresonSupportContractContractStatusId In (SELECT value FROM @tableContractStatus)))
AND S.IsDeleted = 0
SELECT * FROM @tableContracts ORDER BY [Type],Name
END
GO
GRANT EXECUTE ON dbo.Cireson_AssetManagement_GetContractList TO ReportUser
GO