diff --git a/WebsitePanel/Database/install_db.sql b/WebsitePanel/Database/install_db.sql index 4f337c2e..e5b39fa7 100644 --- a/WebsitePanel/Database/install_db.sql +++ b/WebsitePanel/Database/install_db.sql @@ -20,6 +20,465 @@ GO INSERT [dbo].[ScheduleParameters] ([ScheduleID], [ParameterID], [ParameterValue]) VALUES (1, N'SUSPEND_OVERUSED', N'false') GO INSERT [dbo].[ScheduleParameters] ([ScheduleID], [ParameterID], [ParameterValue]) VALUES (2, N'SUSPEND_OVERUSED', N'false') +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ExchangeAccounts]( + [AccountID] [int] IDENTITY(1,1) NOT NULL, + [ItemID] [int] NOT NULL, + [AccountType] [int] NOT NULL, + [AccountName] [nvarchar](20) COLLATE Latin1_General_CI_AS NOT NULL, + [DisplayName] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL, + [PrimaryEmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NULL, + [MailEnabledPublicFolder] [bit] NULL, + [MailboxManagerActions] [varchar](200) COLLATE Latin1_General_CI_AS NULL, + [SamAccountName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL, + [AccountPassword] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL, + [CreatedDate] [datetime] NOT NULL, + CONSTRAINT [PK_ExchangeAccounts] PRIMARY KEY CLUSTERED +( + [AccountID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [IX_ExchangeAccounts_UniqueAccountName] UNIQUE NONCLUSTERED +( + [AccountName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetExchangeMailboxes] + @ItemID int +AS +BEGIN +SELECT + AccountID, + ItemID, + AccountType, + AccountName, + DisplayName, + PrimaryEmailAddress, + MailEnabledPublicFolder +FROM + ExchangeAccounts +WHERE + ItemID = @ItemID AND + (AccountType =1 OR AccountType=5 OR AccountType=6) +ORDER BY 1 + +END + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetExchangeAccounts] +( + @ItemID int, + @AccountType int +) +AS +SELECT + AccountID, + ItemID, + AccountType, + AccountName, + DisplayName, + PrimaryEmailAddress, + MailEnabledPublicFolder +FROM + ExchangeAccounts +WHERE + ItemID = @ItemID AND + (AccountType = @AccountType OR @AccountType IS NULL) +ORDER BY DisplayName +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetExchangeAccount] +( + @ItemID int, + @AccountID int +) +AS +SELECT + AccountID, + ItemID, + AccountType, + AccountName, + DisplayName, + PrimaryEmailAddress, + MailEnabledPublicFolder, + MailboxManagerActions, + SamAccountName, + AccountPassword +FROM + ExchangeAccounts +WHERE + ItemID = @ItemID AND + AccountID = @AccountID +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE ExchangeAccountExists +( + @AccountName nvarchar(20), + @Exists bit OUTPUT +) +AS +SET @Exists = 0 +IF EXISTS(SELECT * FROM ExchangeAccounts WHERE AccountName = @AccountName) +BEGIN + SET @Exists = 1 +END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[HostingPlans]( + [PlanID] [int] IDENTITY(1,1) NOT NULL, + [UserID] [int] NULL, + [PackageID] [int] NULL, + [ServerID] [int] NULL, + [PlanName] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL, + [PlanDescription] [ntext] COLLATE Latin1_General_CI_AS NULL, + [Available] [bit] NOT NULL, + [SetupPrice] [money] NULL, + [RecurringPrice] [money] NULL, + [RecurrenceUnit] [int] NULL, + [RecurrenceLength] [int] NULL, + [IsAddon] [bit] NULL, + CONSTRAINT [PK_HostingPlans] PRIMARY KEY CLUSTERED +( + [PlanID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetHostingPlan +( + @ActorID int, + @PlanID int +) +AS + +SELECT + PlanID, + UserID, + PackageID, + ServerID, + PlanName, + PlanDescription, + Available, + SetupPrice, + RecurringPrice, + RecurrenceLength, + RecurrenceUnit, + IsAddon +FROM HostingPlans AS HP +WHERE HP.PlanID = @PlanID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GO SET ANSI_NULLS ON GO @@ -156,6 +615,7 @@ END + GO @@ -293,6 +753,7 @@ END + GO @@ -423,6 +884,7 @@ END + GO @@ -555,6 +1017,226 @@ RETURN + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + +CREATE PROCEDURE [dbo].[GetExchangeAccountsPaged] +( + @ActorID int, + @ItemID int, + @AccountTypes nvarchar(30), + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +) +AS + +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM ServiceItems +WHERE ItemID = @ItemID + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- start +DECLARE @condition nvarchar(700) +SET @condition = ' +EA.AccountType IN (' + @AccountTypes + ') +AND EA.ItemID = @ItemID +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +BEGIN + IF @FilterColumn = 'PrimaryEmailAddress' AND @AccountTypes <> '2' + BEGIN + SET @condition = @condition + ' AND EA.AccountID IN (SELECT EAEA.AccountID FROM ExchangeAccountEmailAddresses EAEA WHERE EAEA.EmailAddress LIKE ''' + @FilterValue + ''')' + END + ELSE + BEGIN + SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + END +END + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'EA.DisplayName ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT COUNT(EA.AccountID) FROM ExchangeAccounts AS EA +WHERE ' + @condition + '; + +WITH Accounts AS ( + SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, + EA.AccountID, + EA.ItemID, + EA.AccountType, + EA.AccountName, + EA.DisplayName, + EA.PrimaryEmailAddress, + EA.MailEnabledPublicFolder + FROM ExchangeAccounts AS EA + WHERE ' + @condition + ' +) + +SELECT * FROM Accounts +WHERE Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows +' + +print @sql + +exec sp_executesql @sql, N'@ItemID int, @StartRow int, @MaximumRows int', +@ItemID, @StartRow, @MaximumRows + +RETURN + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetDomainsPaged] +( + @ActorID int, + @PackageID int, + @ServerID int, + @Recursive bit, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +) +AS +SET NOCOUNT ON + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- build query and run it to the temporary table +DECLARE @sql nvarchar(2000) + +IF @SortColumn = '' OR @SortColumn IS NULL +SET @SortColumn = 'DomainName' + +SET @sql = ' +DECLARE @Domains TABLE +( + ItemPosition int IDENTITY(1,1), + DomainID int +) +INSERT INTO @Domains (DomainID) +SELECT + D.DomainID +FROM Domains AS D +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID +LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +WHERE D.IsInstantAlias = 0 AND + ((@Recursive = 0 AND D.PackageID = @PackageID) + OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, D.PackageID) = 1)) +AND (@ServerID = 0 OR (@ServerID > 0 AND S.ServerID = @ServerID)) +' + +IF @FilterColumn <> '' AND @FilterValue <> '' +SET @sql = @sql + ' AND ' + @FilterColumn + ' LIKE @FilterValue ' + +IF @SortColumn <> '' AND @SortColumn IS NOT NULL +SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' ' + +SET @sql = @sql + ' SELECT COUNT(DomainID) FROM @Domains;SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainName, + D.HostingAllowed, + ISNULL(WS.ItemID, 0) AS WebSiteID, + WS.ItemName AS WebSiteName, + ISNULL(MD.ItemID, 0) AS MailDomainID, + MD.ItemName AS MailDomainName, + D.IsSubDomain, + D.IsInstantAlias, + D.IsDomainPointer, + + -- packages + P.PackageName, + + -- server + ISNULL(SRV.ServerID, 0) AS ServerID, + ISNULL(SRV.ServerName, '''') AS ServerName, + ISNULL(SRV.Comments, '''') AS ServerComments, + ISNULL(SRV.VirtualServer, 0) AS VirtualServer, + + -- user + P.UserID, + U.Username, + U.FirstName, + U.LastName, + U.FullName, + U.RoleID, + U.Email +FROM @Domains AS SD +INNER JOIN Domains AS D ON SD.DomainID = D.DomainID +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID +LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +WHERE SD.ItemPosition BETWEEN @StartRow + 1 AND @StartRow + @MaximumRows' + +exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @PackageID int, @FilterValue nvarchar(50), @ServerID int, @Recursive bit', +@StartRow, @MaximumRows, @PackageID, @FilterValue, @ServerID, @Recursive + + +RETURN + + + + @@ -613,6 +1295,7 @@ RETURN + GO SET ANSI_NULLS ON GO @@ -640,18 +1323,53 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[ExchangeOrganizations]( - [ItemID] [int] NOT NULL, - [OrganizationID] [nvarchar](10) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ExchangeOrganizations] PRIMARY KEY CLUSTERED -( - [ItemID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), - CONSTRAINT [IX_ExchangeOrganizations_UniqueOrg] UNIQUE NONCLUSTERED -( - [OrganizationID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteOrganizationUsers] + @ItemID int +AS +BEGIN + SET NOCOUNT ON; + + DELETE FROM ExchangeAccounts WHERE ItemID = @ItemID +END + + + + + + + + + + + + + + + + + + + + + + GO SET ANSI_NULLS ON @@ -684,401 +1402,24 @@ GO - - -CREATE PROCEDURE AddExchangeOrganization +CREATE PROCEDURE [dbo].[AddExchangeAccount] ( + @AccountID int OUTPUT, @ItemID int, - @OrganizationID nvarchar(10) + @AccountType int, + @AccountName nvarchar(20), + @DisplayName nvarchar(300), + @PrimaryEmailAddress nvarchar(300), + @MailEnabledPublicFolder bit, + @MailboxManagerActions varchar(200), + @SamAccountName nvarchar(100), + @AccountPassword nvarchar(200) ) AS -IF NOT EXISTS(SELECT * FROM ExchangeOrganizations WHERE OrganizationID = @OrganizationID) -BEGIN - INSERT INTO ExchangeOrganizations - (ItemID, OrganizationID) - VALUES - (@ItemID, @OrganizationID) -END - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE ExchangeOrganizationExists +INSERT INTO ExchangeAccounts ( - @OrganizationID nvarchar(10), - @Exists bit OUTPUT -) -AS -SET @Exists = 0 -IF EXISTS(SELECT * FROM ExchangeOrganizations WHERE OrganizationID = @OrganizationID) -BEGIN - SET @Exists = 1 -END - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ExchangeOrganizationDomains]( - [OrganizationDomainID] [int] IDENTITY(1,1) NOT NULL, - [ItemID] [int] NOT NULL, - [DomainID] [int] NULL, - [IsHost] [bit] NULL, - CONSTRAINT [PK_ExchangeOrganizationDomains] PRIMARY KEY CLUSTERED -( - [OrganizationDomainID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), - CONSTRAINT [IX_ExchangeOrganizationDomains_UniqueDomain] UNIQUE NONCLUSTERED -( - [DomainID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE AddExchangeOrganizationDomain -( - @ItemID int, - @DomainID int, - @IsHost bit -) -AS -INSERT INTO ExchangeOrganizationDomains -(ItemID, DomainID, IsHost) -VALUES -(@ItemID, @DomainID, @IsHost) -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE ExchangeOrganizationDomainExists -( - @DomainID int, - @Exists bit OUTPUT -) -AS -SET @Exists = 0 -IF EXISTS(SELECT * FROM ExchangeOrganizationDomains WHERE DomainID = @DomainID) -BEGIN - SET @Exists = 1 -END -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ExchangeAccounts]( - [AccountID] [int] IDENTITY(1,1) NOT NULL, - [ItemID] [int] NOT NULL, - [AccountType] [int] NOT NULL, - [AccountName] [nvarchar](20) COLLATE Latin1_General_CI_AS NOT NULL, - [DisplayName] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL, - [PrimaryEmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NULL, - [MailEnabledPublicFolder] [bit] NULL, - [MailboxManagerActions] [varchar](200) COLLATE Latin1_General_CI_AS NULL, - [SamAccountName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL, - [AccountPassword] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL, - [CreatedDate] [datetime] NOT NULL, - CONSTRAINT [PK_ExchangeAccounts] PRIMARY KEY CLUSTERED -( - [AccountID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), - CONSTRAINT [IX_ExchangeAccounts_UniqueAccountName] UNIQUE NONCLUSTERED -( - [AccountName] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[SearchExchangeAccount] -( - @ActorID int, - @AccountType int, - @PrimaryEmailAddress nvarchar(300) -) -AS - -DECLARE @PackageID int -DECLARE @ItemID int -DECLARE @AccountID int - -SELECT - @AccountID = AccountID, - @ItemID = ItemID -FROM ExchangeAccounts -WHERE PrimaryEmailAddress = @PrimaryEmailAddress -AND AccountType = @AccountType - - --- check space rights -SELECT @PackageID = PackageID FROM ServiceItems -WHERE ItemID = @ItemID - -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -SELECT - AccountID, ItemID, - @PackageID AS PackageID, AccountType, AccountName, DisplayName, @@ -1086,11 +1427,24 @@ SELECT MailEnabledPublicFolder, MailboxManagerActions, SamAccountName, - AccountPassword -FROM ExchangeAccounts -WHERE AccountID = @AccountID + AccountPassword +) +VALUES +( + @ItemID, + @AccountType, + @AccountName, + @DisplayName, + @PrimaryEmailAddress, + @MailEnabledPublicFolder, + @MailboxManagerActions, + @SamAccountName, + @AccountPassword +) -RETURN +SET @AccountID = SCOPE_IDENTITY() + +RETURN @@ -1111,6 +1465,90 @@ RETURN + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + +CREATE PROCEDURE AddDomain +( + @DomainID int OUTPUT, + @ActorID int, + @PackageID int, + @ZoneItemID int, + @DomainName nvarchar(200), + @HostingAllowed bit, + @WebSiteID int, + @MailDomainID int, + @IsSubDomain bit, + @IsInstantAlias bit, + @IsDomainPointer bit +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +IF @ZoneItemID = 0 SET @ZoneItemID = NULL +IF @WebSiteID = 0 SET @WebSiteID = NULL +IF @MailDomainID = 0 SET @MailDomainID = NULL + +-- insert record +INSERT INTO Domains +( + PackageID, + ZoneItemID, + DomainName, + HostingAllowed, + WebSiteID, + MailDomainID, + IsSubDomain, + IsInstantAlias, + IsDomainPointer +) +VALUES +( + @PackageID, + @ZoneItemID, + @DomainName, + @HostingAllowed, + @WebSiteID, + @MailDomainID, + @IsSubDomain, + @IsInstantAlias, + @IsDomainPointer +) + +SET @DomainID = SCOPE_IDENTITY() +RETURN + + + + @@ -1191,29 +1629,97 @@ GO -CREATE PROCEDURE DeleteSchedule +CREATE PROCEDURE AddSchedule ( @ActorID int, - @ScheduleID int + @ScheduleID int OUTPUT, + @TaskID nvarchar(100), + @PackageID int, + @ScheduleName nvarchar(100), + @ScheduleTypeID nvarchar(50), + @Interval int, + @FromTime datetime, + @ToTime datetime, + @StartTime datetime, + @NextRun datetime, + @Enabled bit, + @PriorityID nvarchar(50), + @HistoriesNumber int, + @MaxExecutionTime int, + @WeekMonthDay int, + @XmlParameters ntext ) AS -- check rights -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM Schedule -WHERE ScheduleID = @ScheduleID - IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 RAISERROR('You are not allowed to access this package', 16, 1) +-- insert record BEGIN TRAN --- delete schedule parameters +INSERT INTO Schedule +( + TaskID, + PackageID, + ScheduleName, + ScheduleTypeID, + Interval, + FromTime, + ToTime, + StartTime, + NextRun, + Enabled, + PriorityID, + HistoriesNumber, + MaxExecutionTime, + WeekMonthDay +) +VALUES +( + @TaskID, + @PackageID, + @ScheduleName, + @ScheduleTypeID, + @Interval, + @FromTime, + @ToTime, + @StartTime, + @NextRun, + @Enabled, + @PriorityID, + @HistoriesNumber, + @MaxExecutionTime, + @WeekMonthDay +) + +SET @ScheduleID = SCOPE_IDENTITY() + +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters + +-- Execute a SELECT statement that uses the OPENXML rowset provider. DELETE FROM ScheduleParameters WHERE ScheduleID = @ScheduleID --- delete schedule -DELETE FROM Schedule -WHERE ScheduleID = @ScheduleID +INSERT INTO ScheduleParameters +( + ScheduleID, + ParameterID, + ParameterValue +) +SELECT + @ScheduleID, + ParameterID, + ParameterValue +FROM OPENXML(@idoc, '/parameters/parameter',1) WITH +( + ParameterID nvarchar(50) '@id', + ParameterValue nvarchar(3000) '@value' +) as PV + +-- remove document +exec sp_xml_removedocument @idoc COMMIT TRAN @@ -1238,731 +1744,6 @@ RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[SearchOrganizationAccounts] -( - @ActorID int, - @ItemID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @IncludeMailboxes bit -) -AS -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM ServiceItems -WHERE ItemID = @ItemID - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- start -DECLARE @condition nvarchar(700) -SET @condition = ' -(EA.AccountType = 7 OR (EA.AccountType = 1 AND @IncludeMailboxes = 1) ) -AND EA.ItemID = @ItemID -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'EA.DisplayName ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT - EA.AccountID, - EA.ItemID, - EA.AccountType, - EA.AccountName, - EA.DisplayName, - EA.PrimaryEmailAddress -FROM ExchangeAccounts AS EA -WHERE ' + @condition - -print @sql - -exec sp_executesql @sql, N'@ItemID int, @IncludeMailboxes bit', -@ItemID, @IncludeMailboxes - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[PrivateIPAddresses]( - [PrivateAddressID] [int] IDENTITY(1,1) NOT NULL, - [ItemID] [int] NOT NULL, - [IPAddress] [varchar](15) COLLATE Latin1_General_CI_AS NOT NULL, - [IsPrimary] [bit] NOT NULL, - CONSTRAINT [PK_PrivateIPAddresses] PRIMARY KEY CLUSTERED -( - [PrivateAddressID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[UpdateExchangeAccount] -( - @AccountID int, - @AccountName nvarchar(20), - @DisplayName nvarchar(300), - @PrimaryEmailAddress nvarchar(300), - @AccountType int, - @SamAccountName nvarchar(100), - @MailEnabledPublicFolder bit, - @MailboxManagerActions varchar(200), - @Password varchar(200) -) -AS - -BEGIN TRAN -UPDATE ExchangeAccounts SET - AccountName = @AccountName, - DisplayName = @DisplayName, - PrimaryEmailAddress = @PrimaryEmailAddress, - MailEnabledPublicFolder = @MailEnabledPublicFolder, - MailboxManagerActions = @MailboxManagerActions, - AccountType =@AccountType, - SamAccountName = @SamAccountName - -WHERE - AccountID = @AccountID - -IF (@@ERROR <> 0 ) - BEGIN - ROLLBACK TRANSACTION - RETURN -1 - END - -UPDATE ExchangeAccounts SET - AccountPassword = @Password WHERE AccountID = @AccountID AND @Password IS NOT NULL - -IF (@@ERROR <> 0 ) - BEGIN - ROLLBACK TRANSACTION - RETURN -1 - END -COMMIT TRAN -RETURN - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdateDomain -( - @DomainID int, - @ActorID int, - @ZoneItemID int, - @HostingAllowed bit, - @WebSiteID int, - @MailDomainID int -) -AS - --- check rights -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM Domains -WHERE DomainID = @DomainID - -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -IF @ZoneItemID = 0 SET @ZoneItemID = NULL -IF @WebSiteID = 0 SET @WebSiteID = NULL -IF @MailDomainID = 0 SET @MailDomainID = NULL - --- update record -UPDATE Domains -SET - ZoneItemID = @ZoneItemID, - HostingAllowed = @HostingAllowed, - WebSiteID = @WebSiteID, - MailDomainID = @MailDomainID -WHERE - DomainID = @DomainID - RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[SetItemPrivatePrimaryIPAddress] -( - @ActorID int, - @ItemID int, - @PrivateAddressID int -) -AS -BEGIN - UPDATE PrivateIPAddresses - SET IsPrimary = CASE PIP.PrivateAddressID WHEN @PrivateAddressID THEN 1 ELSE 0 END - FROM PrivateIPAddresses AS PIP - INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID - WHERE PIP.ItemID = @ItemID - AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 -END - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetItemPrivateIPAddresses] -( - @ActorID int, - @ItemID int -) -AS - -SELECT - PIP.PrivateAddressID AS AddressID, - PIP.IPAddress, - PIP.IsPrimary -FROM PrivateIPAddresses AS PIP -INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID -WHERE PIP.ItemID = @ItemID -AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 -ORDER BY PIP.IsPrimary DESC - -RETURN - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetItemIdByOrganizationId] - @OrganizationId nvarchar(10) -AS -BEGIN - SET NOCOUNT ON; - - SELECT - ItemID - FROM - dbo.ExchangeOrganizations - WHERE - OrganizationId = @OrganizationId -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetPackage] -( - @PackageID int, - @ActorID int -) -AS - --- Note: ActorID is not verified --- check both requested and parent package - -SELECT - P.PackageID, - P.ParentPackageID, - P.UserID, - P.PackageName, - P.PackageComments, - P.ServerID, - P.StatusID, - P.PlanID, - P.PurchaseDate, - P.OverrideQuotas -FROM Packages AS P -WHERE P.PackageID = @PackageID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetOrganizationStatistics] -( - @ItemID int -) -AS -SELECT - (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 7 OR AccountType = 1 OR AccountType = 6 OR AccountType = 5) AND ItemID = @ItemID) AS CreatedUsers, - (SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetNestedPackagesSummary -( - @ActorID int, - @PackageID int -) -AS --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- ALL spaces -SELECT COUNT(PackageID) AS PackagesNumber FROM Packages -WHERE ParentPackageID = @PackageID - --- BY STATUS spaces -SELECT StatusID, COUNT(PackageID) AS PackagesNumber FROM Packages -WHERE ParentPackageID = @PackageID AND StatusID > 0 -GROUP BY StatusID -ORDER BY StatusID - -RETURN - - - - - - - - - - - - - - - - - - - @@ -2140,6 +1921,7 @@ RETURN + GO @@ -2175,85 +1957,34 @@ GO -CREATE PROCEDURE UpdateSchedule + + + + + +CREATE PROCEDURE [dbo].[GetPackage] ( - @ActorID int, - @ScheduleID int, - @TaskID nvarchar(100), - @ScheduleName nvarchar(100), - @ScheduleTypeID nvarchar(50), - @Interval int, - @FromTime datetime, - @ToTime datetime, - @StartTime datetime, - @LastRun datetime, - @NextRun datetime, - @Enabled bit, - @PriorityID nvarchar(50), - @HistoriesNumber int, - @MaxExecutionTime int, - @WeekMonthDay int, - @XmlParameters ntext + @PackageID int, + @ActorID int ) AS --- check rights -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM Schedule -WHERE ScheduleID = @ScheduleID +-- Note: ActorID is not verified +-- check both requested and parent package -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -BEGIN TRAN - -UPDATE Schedule -SET - TaskID = @TaskID, - ScheduleName = @ScheduleName, - ScheduleTypeID = @ScheduleTypeID, - Interval = @Interval, - FromTime = @FromTime, - ToTime = @ToTime, - StartTime = @StartTime, - LastRun = @LastRun, - NextRun = @NextRun, - Enabled = @Enabled, - PriorityID = @PriorityID, - HistoriesNumber = @HistoriesNumber, - MaxExecutionTime = @MaxExecutionTime, - WeekMonthDay = @WeekMonthDay -WHERE - ScheduleID = @ScheduleID - -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters - --- Execute a SELECT statement that uses the OPENXML rowset provider. -DELETE FROM ScheduleParameters -WHERE ScheduleID = @ScheduleID - -INSERT INTO ScheduleParameters -( - ScheduleID, - ParameterID, - ParameterValue -) SELECT - @ScheduleID, - ParameterID, - ParameterValue -FROM OPENXML(@idoc, '/parameters/parameter',1) WITH -( - ParameterID nvarchar(50) '@id', - ParameterValue nvarchar(3000) '@value' -) as PV - --- remove document -exec sp_xml_removedocument @idoc - -COMMIT TRAN + P.PackageID, + P.ParentPackageID, + P.UserID, + P.PackageName, + P.PackageComments, + P.ServerID, + P.StatusID, + P.PlanID, + P.PurchaseDate, + P.OverrideQuotas +FROM Packages AS P +WHERE P.PackageID = @PackageID RETURN @@ -2275,193 +2006,6 @@ RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdatePackageBandwidthUpdate -( - @PackageID int, - @UpdateDate datetime -) -AS - -UPDATE Packages SET BandwidthUpdated = @UpdateDate -WHERE PackageID = @PackageID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[PackagesTreeCache]( - [ParentPackageID] [int] NOT NULL, - [PackageID] [int] NOT NULL -) - -GO -INSERT [dbo].[PackagesTreeCache] ([ParentPackageID], [PackageID]) VALUES (1, 1) -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION dbo.PackagesTree -( - @PackageID int, - @Recursive bit = 0 -) -RETURNS @T TABLE (PackageID int) -AS -BEGIN - -INSERT INTO @T VALUES (@PackageID) - -IF @Recursive = 1 -BEGIN - WITH RecursivePackages(ParentPackageID, PackageID, PackageLevel) AS - ( - SELECT ParentPackageID, PackageID, 0 AS PackageLevel - FROM Packages - WHERE ParentPackageID = @PackageID - UNION ALL - SELECT p.ParentPackageID, p.PackageID, PackageLevel + 1 - FROM Packages p - INNER JOIN RecursivePackages d - ON p.ParentPackageID = d.PackageID - WHERE @Recursive = 1 - ) - INSERT INTO @T - SELECT PackageID - FROM RecursivePackages -END - -RETURN -END - - - - - - - - - - - - - - - - - @@ -2514,276 +2058,25 @@ GO - - -CREATE PROCEDURE GetResellerDomains +CREATE PROCEDURE GetNestedPackagesSummary ( @ActorID int, @PackageID int ) AS - -- check rights IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 RAISERROR('You are not allowed to access this package', 16, 1) --- load parent package -DECLARE @ParentPackageID int -SELECT @ParentPackageID = ParentPackageID FROM Packages -WHERE PackageID = @PackageID - -SELECT - D.DomainID, - D.PackageID, - D.ZoneItemID, - D.DomainName, - D.HostingAllowed, - D.WebSiteID, - WS.ItemName, - D.MailDomainID, - MD.ItemName -FROM Domains AS D -INNER JOIN PackagesTree(@ParentPackageID, 0) AS PT ON D.PackageID = PT.PackageID -LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID -LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID -WHERE HostingAllowed = 1 -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteExchangeOrganizationDomain -( - @ItemID int, - @DomainID int -) -AS -DELETE FROM ExchangeOrganizationDomains -WHERE DomainID = @DomainID AND ItemID = @ItemID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteExchangeOrganization -( - @ItemID int -) -AS -DELETE FROM ExchangeOrganizations -WHERE ItemID = @ItemID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteDomain -( - @DomainID int, - @ActorID int -) -AS - --- check rights -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM Domains -WHERE DomainID = @DomainID - -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DELETE FROM Domains -WHERE DomainID = @DomainID +-- ALL spaces +SELECT COUNT(PackageID) AS PackagesNumber FROM Packages +WHERE ParentPackageID = @PackageID + +-- BY STATUS spaces +SELECT StatusID, COUNT(PackageID) AS PackagesNumber FROM Packages +WHERE ParentPackageID = @PackageID AND StatusID > 0 +GROUP BY StatusID +ORDER BY StatusID RETURN @@ -2806,282 +2099,6 @@ RETURN - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[CRMUsers]( - [CRMUserID] [int] IDENTITY(1,1) NOT NULL, - [AccountID] [int] NOT NULL, - [CreatedDate] [datetime] NOT NULL, - [ChangedDate] [datetime] NOT NULL, - [CRMUserGuid] [uniqueidentifier] NULL, - [BusinessUnitID] [uniqueidentifier] NULL, - CONSTRAINT [PK_CRMUsers] PRIMARY KEY CLUSTERED -( - [CRMUserID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[InsertCRMUser] - @ItemID int, - @CrmUserID uniqueidentifier, - @BusinessUnitID uniqueidentifier -AS -BEGIN - SET NOCOUNT ON; - -INSERT INTO - CRMUsers -( - AccountID, - CRMUserGuid, - BusinessUnitID -) -VALUES -( - @ItemID, - @CrmUserID, - @BusinessUnitID -) - - - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetOrganizationCRMUserCount] - @ItemID int -AS -BEGIN -SELECT - COUNT(CRMUserID) -FROM - CrmUsers CU -INNER JOIN - ExchangeAccounts EA -ON - CU.AccountID = EA.AccountID -WHERE EA.ItemID = @ItemID -END - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetCRMUser] - @AccountID int -AS -BEGIN - SET NOCOUNT ON; -SELECT - CRMUserGUID as CRMUserID, - BusinessUnitID -FROM - CRMUsers -WHERE - AccountID = @AccountID -END - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[BlackBerryUsers]( - [BlackBerryUserId] [int] IDENTITY(1,1) NOT NULL, - [AccountId] [int] NOT NULL, - [CreatedDate] [datetime] NOT NULL, - [ModifiedDate] [datetime] NOT NULL, - CONSTRAINT [PK_BlackBerryUsers] PRIMARY KEY CLUSTERED -( - [BlackBerryUserId] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeleteBlackBerryUser] -( - @AccountID int -) -AS - -DELETE FROM - BlackBerryUsers -WHERE - AccountID = @AccountID - -RETURN - - - - @@ -3102,205 +2119,142 @@ GO SET QUOTED_IDENTIFIER OFF GO - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[CheckBlackBerryUserExists] - @AccountID int -AS -BEGIN - SELECT - COUNT(AccountID) - FROM - dbo.BlackBerryUsers - WHERE AccountID = @AccountID -END - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[AddBlackBerryUser] - @AccountID int -AS -BEGIN - SET NOCOUNT ON; - -INSERT INTO - dbo.BlackBerryUsers - ( - - AccountID, - CreatedDate, - ModifiedDate) -VALUES -( - @AccountID, - getdate(), - getdate() -) -END - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetExchangeOrganizationDomains -( - @ItemID int -) -AS -SELECT - ED.DomainID, - D.DomainName, - ED.IsHost -FROM - ExchangeOrganizationDomains AS ED -INNER JOIN Domains AS D ON ED.DomainID = D.DomainID -WHERE ED.ItemID = @ItemID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - -CREATE PROCEDURE [dbo].[GetExchangeAccountsPaged] +CREATE PROCEDURE [dbo].[GetVirtualMachinesPagedForPC] ( @ActorID int, - @ItemID int, - @AccountTypes nvarchar(30), + @PackageID int, @FilterColumn nvarchar(50) = '', @FilterValue nvarchar(50) = '', @SortColumn nvarchar(50), @StartRow int, - @MaximumRows int + @MaximumRows int, + @Recursive bit +) +AS + + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +-- start +DECLARE @condition nvarchar(700) +SET @condition = ' +SI.ItemTypeID = 35 -- VPS +AND ((@Recursive = 0 AND P.PackageID = @PackageID) +OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, P.PackageID) = 1)) +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'SI.ItemName ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT COUNT(SI.ItemID) FROM Packages AS P +INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID +INNER JOIN Users AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ( + SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses +) AS EIP ON SI.ItemID = EIP.ItemID +LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 +WHERE ' + @condition + ' + +DECLARE @Items AS TABLE +( + ItemID int +); + +WITH TempItems AS ( + SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, + SI.ItemID + FROM Packages AS P + INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID + INNER JOIN Users AS U ON P.UserID = U.UserID + LEFT OUTER JOIN ( + SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses + ) AS EIP ON SI.ItemID = EIP.ItemID + LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 + WHERE ' + @condition + ' +) + +INSERT INTO @Items +SELECT ItemID FROM TempItems +WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows + +SELECT + SI.ItemID, + SI.ItemName, + SI.PackageID, + P.PackageName, + P.UserID, + U.Username, + + EIP.ExternalIP, + PIP.IPAddress +FROM @Items AS TSI +INNER JOIN ServiceItems AS SI ON TSI.ItemID = SI.ItemID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Users AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ( + SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses +) AS EIP ON SI.ItemID = EIP.ItemID +LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 +' + +--print @sql + +exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit', +@PackageID, @StartRow, @MaximumRows, @Recursive + +RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetVirtualMachinesPaged] +( + @ActorID int, + @PackageID int, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int, + @Recursive bit ) AS -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM ServiceItems -WHERE ItemID = @ItemID -- check rights IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 @@ -3309,53 +2263,82 @@ RAISERROR('You are not allowed to access this package', 16, 1) -- start DECLARE @condition nvarchar(700) SET @condition = ' -EA.AccountType IN (' + @AccountTypes + ') -AND EA.ItemID = @ItemID +SI.ItemTypeID = 33 -- VPS +AND ((@Recursive = 0 AND P.PackageID = @PackageID) +OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, P.PackageID) = 1)) ' IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL AND @FilterValue <> '' AND @FilterValue IS NOT NULL -BEGIN - IF @FilterColumn = 'PrimaryEmailAddress' AND @AccountTypes <> '2' - BEGIN - SET @condition = @condition + ' AND EA.AccountID IN (SELECT EAEA.AccountID FROM ExchangeAccountEmailAddresses EAEA WHERE EAEA.EmailAddress LIKE ''' + @FilterValue + ''')' - END - ELSE - BEGIN - SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - END -END +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'EA.DisplayName ASC' +SET @SortColumn = 'SI.ItemName ASC' DECLARE @sql nvarchar(3500) set @sql = ' -SELECT COUNT(EA.AccountID) FROM ExchangeAccounts AS EA -WHERE ' + @condition + '; +SELECT COUNT(SI.ItemID) FROM Packages AS P +INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID +INNER JOIN Users AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ( + SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses +) AS EIP ON SI.ItemID = EIP.ItemID +LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 +WHERE ' + @condition + ' -WITH Accounts AS ( +DECLARE @Items AS TABLE +( + ItemID int +); + +WITH TempItems AS ( SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - EA.AccountID, - EA.ItemID, - EA.AccountType, - EA.AccountName, - EA.DisplayName, - EA.PrimaryEmailAddress, - EA.MailEnabledPublicFolder - FROM ExchangeAccounts AS EA + SI.ItemID + FROM Packages AS P + INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID + INNER JOIN Users AS U ON P.UserID = U.UserID + LEFT OUTER JOIN ( + SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses + ) AS EIP ON SI.ItemID = EIP.ItemID + LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 WHERE ' + @condition + ' ) -SELECT * FROM Accounts -WHERE Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows +INSERT INTO @Items +SELECT ItemID FROM TempItems +WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows + +SELECT + SI.ItemID, + SI.ItemName, + SI.PackageID, + P.PackageName, + P.UserID, + U.Username, + + EIP.ExternalIP, + PIP.IPAddress +FROM @Items AS TSI +INNER JOIN ServiceItems AS SI ON TSI.ItemID = SI.ItemID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Users AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ( + SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses +) AS EIP ON SI.ItemID = EIP.ItemID +LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 ' -print @sql +--print @sql -exec sp_executesql @sql, N'@ItemID int, @StartRow int, @MaximumRows int', -@ItemID, @StartRow, @MaximumRows +exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit', +@PackageID, @StartRow, @MaximumRows, @Recursive RETURN @@ -3366,302 +2349,6 @@ RETURN -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetDomainsPaged] -( - @ActorID int, - @PackageID int, - @ServerID int, - @Recursive bit, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int -) -AS -SET NOCOUNT ON - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- build query and run it to the temporary table -DECLARE @sql nvarchar(2000) - -IF @SortColumn = '' OR @SortColumn IS NULL -SET @SortColumn = 'DomainName' - -SET @sql = ' -DECLARE @Domains TABLE -( - ItemPosition int IDENTITY(1,1), - DomainID int -) -INSERT INTO @Domains (DomainID) -SELECT - D.DomainID -FROM Domains AS D -INNER JOIN Packages AS P ON D.PackageID = P.PackageID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID -LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID -LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID -LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -WHERE D.IsInstantAlias = 0 AND - ((@Recursive = 0 AND D.PackageID = @PackageID) - OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, D.PackageID) = 1)) -AND (@ServerID = 0 OR (@ServerID > 0 AND S.ServerID = @ServerID)) -' - -IF @FilterColumn <> '' AND @FilterValue <> '' -SET @sql = @sql + ' AND ' + @FilterColumn + ' LIKE @FilterValue ' - -IF @SortColumn <> '' AND @SortColumn IS NOT NULL -SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' ' - -SET @sql = @sql + ' SELECT COUNT(DomainID) FROM @Domains;SELECT - D.DomainID, - D.PackageID, - D.ZoneItemID, - D.DomainName, - D.HostingAllowed, - ISNULL(WS.ItemID, 0) AS WebSiteID, - WS.ItemName AS WebSiteName, - ISNULL(MD.ItemID, 0) AS MailDomainID, - MD.ItemName AS MailDomainName, - D.IsSubDomain, - D.IsInstantAlias, - D.IsDomainPointer, - - -- packages - P.PackageName, - - -- server - ISNULL(SRV.ServerID, 0) AS ServerID, - ISNULL(SRV.ServerName, '''') AS ServerName, - ISNULL(SRV.Comments, '''') AS ServerComments, - ISNULL(SRV.VirtualServer, 0) AS VirtualServer, - - -- user - P.UserID, - U.Username, - U.FirstName, - U.LastName, - U.FullName, - U.RoleID, - U.Email -FROM @Domains AS SD -INNER JOIN Domains AS D ON SD.DomainID = D.DomainID -INNER JOIN Packages AS P ON D.PackageID = P.PackageID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID -LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID -LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID -LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID -LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID -LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -WHERE SD.ItemPosition BETWEEN @StartRow + 1 AND @StartRow + @MaximumRows' - -exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @PackageID int, @FilterValue nvarchar(50), @ServerID int, @Recursive bit', -@StartRow, @MaximumRows, @PackageID, @FilterValue, @ServerID, @Recursive - - -RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - -CREATE PROCEDURE GetDomains -( - @ActorID int, - @PackageID int, - @Recursive bit = 1 -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -SELECT - D.DomainID, - D.PackageID, - D.ZoneItemID, - D.DomainName, - D.HostingAllowed, - ISNULL(WS.ItemID, 0) AS WebSiteID, - WS.ItemName AS WebSiteName, - ISNULL(MD.ItemID, 0) AS MailDomainID, - MD.ItemName AS MailDomainName, - Z.ItemName AS ZoneName, - D.IsSubDomain, - D.IsInstantAlias, - D.IsDomainPointer -FROM Domains AS D -INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON D.PackageID = PT.PackageID -LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID -LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID -LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID -RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - -CREATE PROCEDURE GetDomainByName -( - @ActorID int, - @DomainName nvarchar(100) -) -AS - -SELECT - D.DomainID, - D.PackageID, - D.ZoneItemID, - D.DomainName, - D.HostingAllowed, - ISNULL(D.WebSiteID, 0) AS WebSiteID, - WS.ItemName AS WebSiteName, - ISNULL(D.MailDomainID, 0) AS MailDomainID, - MD.ItemName AS MailDomainName, - Z.ItemName AS ZoneName, - D.IsSubDomain, - D.IsInstantAlias, - D.IsDomainPointer -FROM Domains AS D -INNER JOIN Packages AS P ON D.PackageID = P.PackageID -LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID -LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID -LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID -WHERE - D.DomainName = @DomainName - AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1 -RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - -CREATE PROCEDURE GetDomain -( - @ActorID int, - @DomainID int -) -AS - -SELECT - D.DomainID, - D.PackageID, - D.ZoneItemID, - D.DomainName, - D.HostingAllowed, - ISNULL(WS.ItemID, 0) AS WebSiteID, - WS.ItemName AS WebSiteName, - ISNULL(MD.ItemID, 0) AS MailDomainID, - MD.ItemName AS MailDomainName, - Z.ItemName AS ZoneName, - D.IsSubDomain, - D.IsInstantAlias, - D.IsDomainPointer -FROM Domains AS D -INNER JOIN Packages AS P ON D.PackageID = P.PackageID -LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID -LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID -LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID -WHERE - D.DomainID = @DomainID - AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1 -RETURN - - @@ -3678,137 +2365,19 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetExchangeOrganizationStatistics] +CREATE TABLE [dbo].[ExchangeAccountEmailAddresses]( + [AddressID] [int] IDENTITY(1,1) NOT NULL, + [AccountID] [int] NOT NULL, + [EmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ExchangeAccountEmailAddresses] PRIMARY KEY CLUSTERED ( - @ItemID int + [AddressID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [IX_ExchangeAccountEmailAddresses_UniqueEmail] UNIQUE NONCLUSTERED +( + [EmailAddress] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) -AS -SELECT - (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 1 OR AccountType = 5 OR AccountType = 6) AND ItemID = @ItemID) AS CreatedMailboxes, - (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts, - (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists, - (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders, - (SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetExchangeMailboxes] - @ItemID int -AS -BEGIN -SELECT - AccountID, - ItemID, - AccountType, - AccountName, - DisplayName, - PrimaryEmailAddress, - MailEnabledPublicFolder -FROM - ExchangeAccounts -WHERE - ItemID = @ItemID AND - (AccountType =1 OR AccountType=5 OR AccountType=6) -ORDER BY 1 - -END - - - - - - - - - - - - - - - - - - - - GO SET ANSI_NULLS ON @@ -3842,107 +2411,19 @@ GO -CREATE PROCEDURE [dbo].[GetExchangeAccounts] + +CREATE PROCEDURE GetExchangeAccountEmailAddresses ( - @ItemID int, - @AccountType int -) -AS -SELECT - AccountID, - ItemID, - AccountType, - AccountName, - DisplayName, - PrimaryEmailAddress, - MailEnabledPublicFolder -FROM - ExchangeAccounts -WHERE - ItemID = @ItemID AND - (AccountType = @AccountType OR @AccountType IS NULL) -ORDER BY DisplayName -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetExchangeAccount] -( - @ItemID int, @AccountID int ) AS SELECT + AddressID, AccountID, - ItemID, - AccountType, - AccountName, - DisplayName, - PrimaryEmailAddress, - MailEnabledPublicFolder, - MailboxManagerActions, - SamAccountName, - AccountPassword + EmailAddress FROM - ExchangeAccounts + ExchangeAccountEmailAddresses WHERE - ItemID = @ItemID AND AccountID = @AccountID RETURN @@ -3965,78 +2446,6 @@ RETURN - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetCRMUsersCount] -( - @ItemID int, - @Name nvarchar(400), - @Email nvarchar(400) - -) -AS - -IF (@Name IS NULL) -BEGIN - SET @Name = '%' -END - -IF (@Email IS NULL) -BEGIN - SET @Email = '%' -END - -SELECT - COUNT(ea.AccountID) -FROM - ExchangeAccounts ea -INNER JOIN - CRMUsers cu -ON - ea.AccountID = cu.AccountID -WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - - - - - - - - - - @@ -4057,680 +2466,69 @@ GO SET QUOTED_IDENTIFIER ON GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetCRMUsers] +CREATE PROCEDURE [dbo].[ExchangeAccountEmailAddressExists] ( - @ItemID int, - @SortColumn nvarchar(40), - @SortDirection nvarchar(20), - @Name nvarchar(400), - @Email nvarchar(400), - @StartRow int, - @Count int -) -AS - -IF (@Name IS NULL) -BEGIN - SET @Name = '%' -END - -IF (@Email IS NULL) -BEGIN - SET @Email = '%' -END - -CREATE TABLE #TempCRMUsers -( - [ID] [int] IDENTITY(1,1) NOT NULL, - [AccountID] [int], - [ItemID] [int] NOT NULL, - [AccountName] [nvarchar](20) NOT NULL, - [DisplayName] [nvarchar](300) NOT NULL, - [PrimaryEmailAddress] [nvarchar](300) NULL, - [SamAccountName] [nvarchar](100) NULL -) - - -IF (@SortColumn = 'DisplayName') -BEGIN - INSERT INTO - #TempCRMUsers - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - CRMUsers cu - ON - ea.AccountID = cu.AccountID - WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - ORDER BY - ea.DisplayName -END -ELSE -BEGIN - INSERT INTO - #TempCRMUsers - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - CRMUsers cu - ON - ea.AccountID = cu.AccountID - WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - ORDER BY - ea.PrimaryEmailAddress -END - -DECLARE @RetCount int -SELECT @RetCount = COUNT(ID) FROM #TempCRMUsers - -IF (@SortDirection = 'ASC') -BEGIN - SELECT * FROM #TempCRMUsers - WHERE ID > @StartRow AND ID <= (@StartRow + @Count) -END -ELSE -BEGIN - IF (@SortColumn = 'DisplayName') - BEGIN - SELECT * FROM #TempCRMUsers - WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY DisplayName DESC - END - ELSE - BEGIN - SELECT * FROM #TempCRMUsers - WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY PrimaryEmailAddress DESC - END - -END - - - -DROP TABLE #TempCRMUsers - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetCRMOrganizationUsers] - @ItemID int -AS -BEGIN - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - CRMUsers cu - ON - ea.AccountID = cu.AccountID - WHERE - ea.ItemID = @ItemID -END - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetBlackBerryUsersCount] -( - @ItemID int, - @Name nvarchar(400), - @Email nvarchar(400) - -) -AS - -IF (@Name IS NULL) -BEGIN - SET @Name = '%' -END - -IF (@Email IS NULL) -BEGIN - SET @Email = '%' -END - -SELECT - COUNT(ea.AccountID) -FROM - ExchangeAccounts ea -INNER JOIN - BlackBerryUsers bu -ON - ea.AccountID = bu.AccountID -WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetBlackBerryUsers] -( - @ItemID int, - @SortColumn nvarchar(40), - @SortDirection nvarchar(20), - @Name nvarchar(400), - @Email nvarchar(400), - @StartRow int, - @Count int -) -AS - -IF (@Name IS NULL) -BEGIN - SET @Name = '%' -END - -IF (@Email IS NULL) -BEGIN - SET @Email = '%' -END - -CREATE TABLE #TempBlackBerryUsers -( - [ID] [int] IDENTITY(1,1) NOT NULL, - [AccountID] [int], - [ItemID] [int] NOT NULL, - [AccountName] [nvarchar](20) NOT NULL, - [DisplayName] [nvarchar](300) NOT NULL, - [PrimaryEmailAddress] [nvarchar](300) NULL, - [SamAccountName] [nvarchar](100) NULL -) - - -IF (@SortColumn = 'DisplayName') -BEGIN - INSERT INTO - #TempBlackBerryUsers - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - BlackBerryUsers bu - ON - ea.AccountID = bu.AccountID - WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - ORDER BY - ea.DisplayName -END -ELSE -BEGIN - INSERT INTO - #TempBlackBerryUsers - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - BlackBerryUsers bu - ON - ea.AccountID = bu.AccountID - WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - ORDER BY - ea.PrimaryEmailAddress -END - -DECLARE @RetCount int -SELECT @RetCount = COUNT(ID) FROM #TempBlackBerryUsers - -IF (@SortDirection = 'ASC') -BEGIN - SELECT * FROM #TempBlackBerryUsers - WHERE ID > @StartRow AND ID <= (@StartRow + @Count) -END -ELSE -BEGIN - IF (@SortColumn = 'DisplayName') - BEGIN - SELECT * FROM #TempBlackBerryUsers - WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY DisplayName DESC - END - ELSE - BEGIN - SELECT * FROM #TempBlackBerryUsers - WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY PrimaryEmailAddress DESC - END - -END - - -DROP TABLE #TempBlackBerryUsers - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeleteOrganizationUsers] - @ItemID int -AS -BEGIN - SET NOCOUNT ON; - - DELETE FROM ExchangeAccounts WHERE ItemID = @ItemID -END - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeleteCRMOrganization] - @ItemID int -AS -BEGIN - SET NOCOUNT ON -DELETE FROM dbo.CRMUsers WHERE AccountID IN (SELECT AccountID FROM dbo.ExchangeAccounts WHERE ItemID = @ItemID) -END - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[AddExchangeAccount] -( - @AccountID int OUTPUT, - @ItemID int, - @AccountType int, - @AccountName nvarchar(20), - @DisplayName nvarchar(300), - @PrimaryEmailAddress nvarchar(300), - @MailEnabledPublicFolder bit, - @MailboxManagerActions varchar(200), - @SamAccountName nvarchar(100), - @AccountPassword nvarchar(200) -) -AS - -INSERT INTO ExchangeAccounts -( - ItemID, - AccountType, - AccountName, - DisplayName, - PrimaryEmailAddress, - MailEnabledPublicFolder, - MailboxManagerActions, - SamAccountName, - AccountPassword -) -VALUES -( - @ItemID, - @AccountType, - @AccountName, - @DisplayName, - @PrimaryEmailAddress, - @MailEnabledPublicFolder, - @MailboxManagerActions, - @SamAccountName, - @AccountPassword -) - -SET @AccountID = SCOPE_IDENTITY() - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE ExchangeAccountExists -( - @AccountName nvarchar(20), + @EmailAddress nvarchar(300), @Exists bit OUTPUT ) AS -SET @Exists = 0 -IF EXISTS(SELECT * FROM ExchangeAccounts WHERE AccountName = @AccountName) + + SET @Exists = 0 + IF EXISTS(SELECT * FROM [dbo].[ExchangeAccountEmailAddresses] WHERE [EmailAddress] = @EmailAddress) + BEGIN + SET @Exists = 1 + END + ELSE IF EXISTS(SELECT * FROM [dbo].[ExchangeAccounts] WHERE [PrimaryEmailAddress] = @EmailAddress AND [AccountType] <> 2) + BEGIN + SET @Exists = 1 + END + + RETURN + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + +-- ============================================= +-- Description: Delete user email addresses except primary email +-- ============================================= +CREATE PROCEDURE [dbo].[DeleteUserEmailAddresses] + @AccountId int, + @PrimaryEmailAddress nvarchar(300) +AS BEGIN - SET @Exists = 1 + +DELETE FROM + ExchangeAccountEmailAddresses +WHERE + AccountID = @AccountID AND LOWER(EmailAddress) <> LOWER(@PrimaryEmailAddress) END -RETURN @@ -4757,35 +2555,6 @@ RETURN - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[HostingPlans]( - [PlanID] [int] IDENTITY(1,1) NOT NULL, - [UserID] [int] NULL, - [PackageID] [int] NULL, - [ServerID] [int] NULL, - [PlanName] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL, - [PlanDescription] [ntext] COLLATE Latin1_General_CI_AS NULL, - [Available] [bit] NOT NULL, - [SetupPrice] [money] NULL, - [RecurringPrice] [money] NULL, - [RecurrenceUnit] [int] NULL, - [RecurrenceLength] [int] NULL, - [IsAddon] [bit] NULL, - CONSTRAINT [PK_HostingPlans] PRIMARY KEY CLUSTERED -( - [PlanID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) GO SET ANSI_NULLS ON @@ -4820,197 +2589,22 @@ GO - - -CREATE PROCEDURE GetHostingPlan +CREATE PROCEDURE AddExchangeAccountEmailAddress ( - @ActorID int, - @PlanID int + @AccountID int, + @EmailAddress nvarchar(300) ) AS - -SELECT - PlanID, - UserID, - PackageID, - ServerID, - PlanName, - PlanDescription, - Available, - SetupPrice, - RecurringPrice, - RecurrenceLength, - RecurrenceUnit, - IsAddon -FROM HostingPlans AS HP -WHERE HP.PlanID = @PlanID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE AddSchedule +INSERT INTO ExchangeAccountEmailAddresses ( - @ActorID int, - @ScheduleID int OUTPUT, - @TaskID nvarchar(100), - @PackageID int, - @ScheduleName nvarchar(100), - @ScheduleTypeID nvarchar(50), - @Interval int, - @FromTime datetime, - @ToTime datetime, - @StartTime datetime, - @NextRun datetime, - @Enabled bit, - @PriorityID nvarchar(50), - @HistoriesNumber int, - @MaxExecutionTime int, - @WeekMonthDay int, - @XmlParameters ntext -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- insert record -BEGIN TRAN -INSERT INTO Schedule -( - TaskID, - PackageID, - ScheduleName, - ScheduleTypeID, - Interval, - FromTime, - ToTime, - StartTime, - NextRun, - Enabled, - PriorityID, - HistoriesNumber, - MaxExecutionTime, - WeekMonthDay + AccountID, + EmailAddress ) VALUES ( - @TaskID, - @PackageID, - @ScheduleName, - @ScheduleTypeID, - @Interval, - @FromTime, - @ToTime, - @StartTime, - @NextRun, - @Enabled, - @PriorityID, - @HistoriesNumber, - @MaxExecutionTime, - @WeekMonthDay + @AccountID, + @EmailAddress ) - -SET @ScheduleID = SCOPE_IDENTITY() - -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters - --- Execute a SELECT statement that uses the OPENXML rowset provider. -DELETE FROM ScheduleParameters -WHERE ScheduleID = @ScheduleID - -INSERT INTO ScheduleParameters -( - ScheduleID, - ParameterID, - ParameterValue -) -SELECT - @ScheduleID, - ParameterID, - ParameterValue -FROM OPENXML(@idoc, '/parameters/parameter',1) WITH -( - ParameterID nvarchar(50) '@id', - ParameterValue nvarchar(3000) '@value' -) as PV - --- remove document -exec sp_xml_removedocument @idoc - -COMMIT TRAN - RETURN @@ -5032,519 +2626,6 @@ RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - -CREATE PROCEDURE AddDomain -( - @DomainID int OUTPUT, - @ActorID int, - @PackageID int, - @ZoneItemID int, - @DomainName nvarchar(200), - @HostingAllowed bit, - @WebSiteID int, - @MailDomainID int, - @IsSubDomain bit, - @IsInstantAlias bit, - @IsDomainPointer bit -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -IF @ZoneItemID = 0 SET @ZoneItemID = NULL -IF @WebSiteID = 0 SET @WebSiteID = NULL -IF @MailDomainID = 0 SET @MailDomainID = NULL - --- insert record -INSERT INTO Domains -( - PackageID, - ZoneItemID, - DomainName, - HostingAllowed, - WebSiteID, - MailDomainID, - IsSubDomain, - IsInstantAlias, - IsDomainPointer -) -VALUES -( - @PackageID, - @ZoneItemID, - @DomainName, - @HostingAllowed, - @WebSiteID, - @MailDomainID, - @IsSubDomain, - @IsInstantAlias, - @IsDomainPointer -) - -SET @DomainID = SCOPE_IDENTITY() -RETURN - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CheckPackageParent] -( - @ParentPackageID int, - @PackageID int -) -RETURNS bit -AS -BEGIN - --- check if the user requests hiself -IF @ParentPackageID = @PackageID -BEGIN - RETURN 1 -END - -DECLARE @TmpParentPackageID int, @TmpPackageID int -SET @TmpPackageID = @PackageID - -WHILE 10 = 10 -BEGIN - - SET @TmpParentPackageID = NULL --reset var - - -- get owner - SELECT - @TmpParentPackageID = ParentPackageID - FROM Packages - WHERE PackageID = @TmpPackageID - - IF @TmpParentPackageID IS NULL -- the last parent package - BREAK - - IF @TmpParentPackageID = @ParentPackageID - RETURN 1 - - SET @TmpPackageID = @TmpParentPackageID -END - - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE CheckDomain -( - @PackageID int, - @DomainName nvarchar(100), - @Result int OUTPUT -) -AS - -/* -@Result values: - 0 - OK - -1 - already exists - -2 - sub-domain of prohibited domain -*/ - -SET @Result = 0 -- OK - --- check if the domain already exists -IF EXISTS( -SELECT DomainID FROM Domains -WHERE DomainName = @DomainName -) -BEGIN - SET @Result = -1 - RETURN -END - --- check if this is a sub-domain of other domain --- that is not allowed for 3rd level hosting - -DECLARE @UserID int -SELECT @UserID = UserID FROM Packages -WHERE PackageID = @PackageID - --- find sub-domains -DECLARE @DomainUserID int, @HostingAllowed bit -SELECT - @DomainUserID = P.UserID, - @HostingAllowed = D.HostingAllowed -FROM Domains AS D -INNER JOIN Packages AS P ON D.PackageID = P.PackageID -WHERE CHARINDEX('.' + DomainName, @DomainName) > 0 -AND (CHARINDEX('.' + DomainName, @DomainName) + LEN('.' + DomainName)) = LEN(@DomainName) + 1 - --- this is a domain of other user -IF @UserID <> @DomainUserID AND @HostingAllowed = 0 -BEGIN - SET @Result = -2 - RETURN -END - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[PackageQuotas]( - [PackageID] [int] NOT NULL, - [QuotaID] [int] NOT NULL, - [QuotaValue] [int] NOT NULL, - CONSTRAINT [PK_PackageQuotas] PRIMARY KEY CLUSTERED -( - [PackageID] ASC, - [QuotaID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[PackageResources]( - [PackageID] [int] NOT NULL, - [GroupID] [int] NOT NULL, - [CalculateDiskspace] [bit] NOT NULL, - [CalculateBandwidth] [bit] NOT NULL, - CONSTRAINT [PK_PackageResources_1] PRIMARY KEY CLUSTERED -( - [PackageID] ASC, - [GroupID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdatePackageQuotas -( - @ActorID int, - @PackageID int, - @Xml ntext -) -AS - -/* -XML Format: - - - - - - - - - - -*/ - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @OverrideQuotas bit -SELECT @OverrideQuotas = OverrideQuotas FROM Packages -WHERE PackageID = @PackageID - -IF @OverrideQuotas = 0 -BEGIN - -- delete old Package resources - DELETE FROM PackageResources - WHERE PackageID = @PackageID - - -- delete old Package quotas - DELETE FROM PackageQuotas - WHERE PackageID = @PackageID -END - -IF @OverrideQuotas = 1 AND @Xml IS NOT NULL -BEGIN - -- delete old Package resources - DELETE FROM PackageResources - WHERE PackageID = @PackageID - - -- delete old Package quotas - DELETE FROM PackageQuotas - WHERE PackageID = @PackageID - - DECLARE @idoc int - --Create an internal representation of the XML document. - EXEC sp_xml_preparedocument @idoc OUTPUT, @xml - - -- update Package resources - INSERT INTO PackageResources - ( - PackageID, - GroupID, - CalculateDiskSpace, - CalculateBandwidth - ) - SELECT - @PackageID, - GroupID, - CalculateDiskSpace, - CalculateBandwidth - FROM OPENXML(@idoc, '/plan/groups/group',1) WITH - ( - GroupID int '@id', - CalculateDiskSpace bit '@calculateDiskSpace', - CalculateBandwidth bit '@calculateBandwidth' - ) as XRG - - -- update Package quotas - INSERT INTO PackageQuotas - ( - PackageID, - QuotaID, - QuotaValue - ) - SELECT - @PackageID, - QuotaID, - QuotaValue - FROM OPENXML(@idoc, '/plan/quotas/quota',1) WITH - ( - QuotaID int '@id', - QuotaValue int '@value' - ) as PV - - -- remove document - exec sp_xml_removedocument @idoc -END -RETURN - - - - - - - - - - - - - - - - - - - - @@ -5723,6 +2804,7 @@ RETURN + GO @@ -5876,843 +2958,6 @@ RETURN - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - -CREATE PROCEDURE [dbo].[GetVirtualMachinesPagedForPC] -( - @ActorID int, - @PackageID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int, - @Recursive bit -) -AS - - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - --- start -DECLARE @condition nvarchar(700) -SET @condition = ' -SI.ItemTypeID = 35 -- VPS -AND ((@Recursive = 0 AND P.PackageID = @PackageID) -OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, P.PackageID) = 1)) -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'SI.ItemName ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT COUNT(SI.ItemID) FROM Packages AS P -INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID -INNER JOIN Users AS U ON P.UserID = U.UserID -LEFT OUTER JOIN ( - SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses -) AS EIP ON SI.ItemID = EIP.ItemID -LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 -WHERE ' + @condition + ' - -DECLARE @Items AS TABLE -( - ItemID int -); - -WITH TempItems AS ( - SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - SI.ItemID - FROM Packages AS P - INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID - INNER JOIN Users AS U ON P.UserID = U.UserID - LEFT OUTER JOIN ( - SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses - ) AS EIP ON SI.ItemID = EIP.ItemID - LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 - WHERE ' + @condition + ' -) - -INSERT INTO @Items -SELECT ItemID FROM TempItems -WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows - -SELECT - SI.ItemID, - SI.ItemName, - SI.PackageID, - P.PackageName, - P.UserID, - U.Username, - - EIP.ExternalIP, - PIP.IPAddress -FROM @Items AS TSI -INNER JOIN ServiceItems AS SI ON TSI.ItemID = SI.ItemID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Users AS U ON P.UserID = U.UserID -LEFT OUTER JOIN ( - SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses -) AS EIP ON SI.ItemID = EIP.ItemID -LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 -' - ---print @sql - -exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit', -@PackageID, @StartRow, @MaximumRows, @Recursive - -RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetVirtualMachinesPaged] -( - @ActorID int, - @PackageID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int, - @Recursive bit -) -AS - - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- start -DECLARE @condition nvarchar(700) -SET @condition = ' -SI.ItemTypeID = 33 -- VPS -AND ((@Recursive = 0 AND P.PackageID = @PackageID) -OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, P.PackageID) = 1)) -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'SI.ItemName ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT COUNT(SI.ItemID) FROM Packages AS P -INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID -INNER JOIN Users AS U ON P.UserID = U.UserID -LEFT OUTER JOIN ( - SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses -) AS EIP ON SI.ItemID = EIP.ItemID -LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 -WHERE ' + @condition + ' - -DECLARE @Items AS TABLE -( - ItemID int -); - -WITH TempItems AS ( - SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - SI.ItemID - FROM Packages AS P - INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID - INNER JOIN Users AS U ON P.UserID = U.UserID - LEFT OUTER JOIN ( - SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses - ) AS EIP ON SI.ItemID = EIP.ItemID - LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 - WHERE ' + @condition + ' -) - -INSERT INTO @Items -SELECT ItemID FROM TempItems -WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows - -SELECT - SI.ItemID, - SI.ItemName, - SI.PackageID, - P.PackageName, - P.UserID, - U.Username, - - EIP.ExternalIP, - PIP.IPAddress -FROM @Items AS TSI -INNER JOIN ServiceItems AS SI ON TSI.ItemID = SI.ItemID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Users AS U ON P.UserID = U.UserID -LEFT OUTER JOIN ( - SELECT PIP.ItemID, IP.ExternalIP FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - WHERE PIP.IsPrimary = 1 AND IP.PoolID = 3 -- external IP addresses -) AS EIP ON SI.ItemID = EIP.ItemID -LEFT OUTER JOIN PrivateIPAddresses AS PIP ON PIP.ItemID = SI.ItemID AND PIP.IsPrimary = 1 -' - ---print @sql - -exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit', -@PackageID, @StartRow, @MaximumRows, @Recursive - -RETURN - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ExchangeAccountEmailAddresses]( - [AddressID] [int] IDENTITY(1,1) NOT NULL, - [AccountID] [int] NOT NULL, - [EmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ExchangeAccountEmailAddresses] PRIMARY KEY CLUSTERED -( - [AddressID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), - CONSTRAINT [IX_ExchangeAccountEmailAddresses_UniqueEmail] UNIQUE NONCLUSTERED -( - [EmailAddress] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetExchangeAccountEmailAddresses -( - @AccountID int -) -AS -SELECT - AddressID, - AccountID, - EmailAddress -FROM - ExchangeAccountEmailAddresses -WHERE - AccountID = @AccountID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[ExchangeAccountEmailAddressExists] -( - @EmailAddress nvarchar(300), - @Exists bit OUTPUT -) -AS - - SET @Exists = 0 - IF EXISTS(SELECT * FROM [dbo].[ExchangeAccountEmailAddresses] WHERE [EmailAddress] = @EmailAddress) - BEGIN - SET @Exists = 1 - END - ELSE IF EXISTS(SELECT * FROM [dbo].[ExchangeAccounts] WHERE [PrimaryEmailAddress] = @EmailAddress AND [AccountType] <> 2) - BEGIN - SET @Exists = 1 - END - - RETURN - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - --- ============================================= --- Description: Delete user email addresses except primary email --- ============================================= -CREATE PROCEDURE [dbo].[DeleteUserEmailAddresses] - @AccountId int, - @PrimaryEmailAddress nvarchar(300) -AS -BEGIN - -DELETE FROM - ExchangeAccountEmailAddresses -WHERE - AccountID = @AccountID AND LOWER(EmailAddress) <> LOWER(@PrimaryEmailAddress) -END - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteExchangeAccountEmailAddress -( - @AccountID int, - @EmailAddress nvarchar(300) -) -AS -DELETE FROM ExchangeAccountEmailAddresses -WHERE AccountID = @AccountID AND EmailAddress = @EmailAddress -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteExchangeAccount -( - @ItemID int, - @AccountID int -) -AS - --- delete e-mail addresses -DELETE FROM ExchangeAccountEmailAddresses -WHERE AccountID = @AccountID - --- delete account -DELETE FROM ExchangeAccounts -WHERE ItemID = @ItemID AND AccountID = @AccountID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE AddExchangeAccountEmailAddress -( - @AccountID int, - @EmailAddress nvarchar(300) -) -AS -INSERT INTO ExchangeAccountEmailAddresses -( - AccountID, - EmailAddress -) -VALUES -( - @AccountID, - @EmailAddress -) -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetPackagePrivateIPAddresses] - @PackageID int -AS -BEGIN - - SELECT - PA.PrivateAddressID, - PA.IPAddress, - PA.ItemID, - SI.ItemName, - PA.IsPrimary - FROM PrivateIPAddresses AS PA - INNER JOIN ServiceItems AS SI ON PA.ItemID = SI.ItemID - WHERE SI.PackageID = @PackageID - -END - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS OFF -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION dbo.PackageParents -( - @PackageID int -) -RETURNS @T TABLE (PackageOrder int IDENTITY(1,1), PackageID int) -AS -BEGIN - -- insert current user - INSERT @T VALUES (@PackageID) - - -- owner - DECLARE @ParentPackageID int, @TmpPackageID int - SET @TmpPackageID = @PackageID - - WHILE 10 = 10 - BEGIN - - SET @ParentPackageID = NULL --reset var - SELECT @ParentPackageID = ParentPackageID FROM Packages - WHERE PackageID = @TmpPackageID - - IF @ParentPackageID IS NULL -- parent not found - BREAK - - INSERT @T VALUES (@ParentPackageID) - - SET @TmpPackageID = @ParentPackageID - END - -RETURN -END - - - - - - - - - - - - - - - - - - - - @@ -6766,258 +3011,6 @@ GO -CREATE PROCEDURE [dbo].[DeleteItemIPAddresses] -( - @ActorID int, - @ItemID int -) -AS -BEGIN - UPDATE PackageIPAddresses - SET - ItemID = NULL, - IsPrimary = 0 - FROM PackageIPAddresses AS PIP - WHERE - PIP.ItemID = @ItemID - AND dbo.CheckActorPackageRights(@ActorID, PIP.PackageID) = 1 -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeleteItemIPAddress] -( - @ActorID int, - @ItemID int, - @PackageAddressID int -) -AS -BEGIN - UPDATE PackageIPAddresses - SET - ItemID = NULL, - IsPrimary = 0 - FROM PackageIPAddresses AS PIP - WHERE - PIP.PackageAddressID = @PackageAddressID - AND dbo.CheckActorPackageRights(@ActorID, PIP.PackageID) = 1 -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeallocatePackageIPAddress] - @PackageAddressID int -AS -BEGIN - - SET NOCOUNT ON; - - -- check parent package - DECLARE @ParentPackageID int - - SELECT @ParentPackageID = P.ParentPackageID - FROM PackageIPAddresses AS PIP - INNER JOIN Packages AS P ON PIP.PackageID = P.PackageId - WHERE PIP.PackageAddressID = @PackageAddressID - - IF (@ParentPackageID = 1) -- "System" space - BEGIN - DELETE FROM dbo.PackageIPAddresses - WHERE PackageAddressID = @PackageAddressID - END - ELSE -- 2rd level space and below - BEGIN - UPDATE PackageIPAddresses - SET PackageID = @ParentPackageID - WHERE PackageAddressID = @PackageAddressID - END - -END - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[AllocatePackageIPAddresses] -( - @PackageID int, - @xml ntext -) -AS -BEGIN - SET NOCOUNT ON; - - DECLARE @idoc int - --Create an internal representation of the XML document. - EXEC sp_xml_preparedocument @idoc OUTPUT, @xml - - -- delete - DELETE FROM PackageIPAddresses - FROM PackageIPAddresses AS PIP - INNER JOIN OPENXML(@idoc, '/items/item', 1) WITH - ( - AddressID int '@id' - ) as PV ON PIP.AddressID = PV.AddressID - - - -- insert - INSERT INTO dbo.PackageIPAddresses - ( - PackageID, - AddressID - ) - SELECT - @PackageID, - AddressID - - FROM OPENXML(@idoc, '/items/item', 1) WITH - ( - AddressID int '@id' - ) as PV - - -- remove document - exec sp_xml_removedocument @idoc - -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - CREATE PROCEDURE [dbo].[AddItemIPAddress] ( @ActorID int, @@ -7053,6 +3046,7 @@ END + GO SET ANSI_NULLS ON GO @@ -7169,6 +3163,7 @@ RETURN + GO @@ -7254,99 +3249,6 @@ RETURN - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeletePackageAddon -( - @ActorID int, - @PackageAddonID int -) -AS - -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM PackageAddons -WHERE PackageAddonID = @PackageAddonID - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- delete record -DELETE FROM PackageAddons -WHERE PackageAddonID = @PackageAddonID - -RETURN - - - - - - - - - - - - - - - - - - - @@ -7400,44 +3302,57 @@ GO - - - -CREATE PROCEDURE DeleteHostingPlan +CREATE PROCEDURE CheckDomain ( - @ActorID int, - @PlanID int, + @PackageID int, + @DomainName nvarchar(100), @Result int OUTPUT ) AS -SET @Result = 0 --- check rights -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM HostingPlans -WHERE PlanID = @PlanID +/* +@Result values: + 0 - OK + -1 - already exists + -2 - sub-domain of prohibited domain +*/ -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) +SET @Result = 0 -- OK --- check if some packages uses this plan -IF EXISTS (SELECT PackageID FROM Packages WHERE PlanID = @PlanID) +-- check if the domain already exists +IF EXISTS( +SELECT DomainID FROM Domains +WHERE DomainName = @DomainName +) BEGIN SET @Result = -1 RETURN END --- check if some package addons uses this plan -IF EXISTS (SELECT PackageID FROM PackageAddons WHERE PlanID = @PlanID) +-- check if this is a sub-domain of other domain +-- that is not allowed for 3rd level hosting + +DECLARE @UserID int +SELECT @UserID = UserID FROM Packages +WHERE PackageID = @PackageID + +-- find sub-domains +DECLARE @DomainUserID int, @HostingAllowed bit +SELECT + @DomainUserID = P.UserID, + @HostingAllowed = D.HostingAllowed +FROM Domains AS D +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +WHERE CHARINDEX('.' + DomainName, @DomainName) > 0 +AND (CHARINDEX('.' + DomainName, @DomainName) + LEN('.' + DomainName)) = LEN(@DomainName) + 1 + +-- this is a domain of other user +IF @UserID <> @DomainUserID AND @HostingAllowed = 0 BEGIN SET @Result = -2 RETURN END --- delete hosting plan -DELETE FROM HostingPlans -WHERE PlanID = @PlanID - RETURN @@ -7459,84 +3374,6 @@ RETURN - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[OrganizationUserExists] -( - @LoginName nvarchar(20), - @Exists bit OUTPUT -) -AS -SET @Exists = 0 -IF EXISTS(SELECT * FROM ExchangeAccounts WHERE AccountName = @LoginName) -BEGIN - SET @Exists = 1 -END - -RETURN - - - - - - - - - - - - - - - @@ -7924,6 +3761,22 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO +CREATE TABLE [dbo].[PackageQuotas]( + [PackageID] [int] NOT NULL, + [QuotaID] [int] NOT NULL, + [QuotaValue] [int] NOT NULL, + CONSTRAINT [PK_PackageQuotas] PRIMARY KEY CLUSTERED +( + [PackageID] ASC, + [QuotaID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO @@ -8091,6 +3944,7 @@ END + GO @@ -8168,6 +4022,7 @@ END + GO SET ANSI_NULLS ON GO @@ -8230,204 +4085,6 @@ END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdatePackageAddon -( - @ActorID int, - @PackageAddonID int, - @PlanID int, - @Quantity int, - @PurchaseDate datetime, - @StatusID int, - @Comments ntext -) -AS - -DECLARE @PackageID int -SELECT @PackageID = PackageID FROM PackageAddons -WHERE PackageAddonID = @PackageAddonID - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -BEGIN TRAN - -DECLARE @ParentPackageID int -SELECT @ParentPackageID = ParentPackageID FROM Packages -WHERE PackageID = @PackageID - --- update record -UPDATE PackageAddons SET - PlanID = @PlanID, - Quantity = @Quantity, - PurchaseDate = @PurchaseDate, - StatusID = @StatusID, - Comments = @Comments -WHERE PackageAddonID = @PackageAddonID - -DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int) -INSERT INTO @ExceedingQuotas -SELECT * FROM dbo.GetPackageExceedingQuotas(@ParentPackageID) WHERE QuotaValue > 0 - -SELECT * FROM @ExceedingQuotas - -IF EXISTS(SELECT * FROM @ExceedingQuotas) -BEGIN - ROLLBACK TRAN - RETURN -END - -COMMIT TRAN - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - -CREATE PROCEDURE [dbo].[UpdatePackage] -( - @ActorID int, - @PackageID int, - @PackageName nvarchar(300), - @PackageComments ntext, - @StatusID int, - @PlanID int, - @PurchaseDate datetime, - @OverrideQuotas bit, - @QuotasXml ntext -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -BEGIN TRAN - -DECLARE @ParentPackageID int -DECLARE @OldPlanID int - -SELECT @ParentPackageID = ParentPackageID, @OldPlanID = PlanID FROM Packages -WHERE PackageID = @PackageID - --- update package -UPDATE Packages SET - PackageName = @PackageName, - PackageComments = @PackageComments, - StatusID = @StatusID, - PlanID = @PlanID, - PurchaseDate = @PurchaseDate, - OverrideQuotas = @OverrideQuotas -WHERE - PackageID = @PackageID - --- update quotas (if required) -EXEC UpdatePackageQuotas @ActorID, @PackageID, @QuotasXml - --- check resulting quotas -DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int) - --- check exceeding quotas if plan has been changed -IF (@OldPlanID <> @PlanID) OR (@OverrideQuotas = 1) -BEGIN - INSERT INTO @ExceedingQuotas - SELECT * FROM dbo.GetPackageExceedingQuotas(@ParentPackageID) WHERE QuotaValue > 0 -END - -SELECT * FROM @ExceedingQuotas - -IF EXISTS(SELECT * FROM @ExceedingQuotas) -BEGIN - ROLLBACK TRAN - RETURN -END - - -COMMIT TRAN -RETURN - - - - - GO SET ANSI_NULLS ON @@ -8562,6 +4219,125 @@ RETURN + +GO +SET ANSI_NULLS OFF +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION dbo.PackageParents +( + @PackageID int +) +RETURNS @T TABLE (PackageOrder int IDENTITY(1,1), PackageID int) +AS +BEGIN + -- insert current user + INSERT @T VALUES (@PackageID) + + -- owner + DECLARE @ParentPackageID int, @TmpPackageID int + SET @TmpPackageID = @PackageID + + WHILE 10 = 10 + BEGIN + + SET @ParentPackageID = NULL --reset var + SELECT @ParentPackageID = ParentPackageID FROM Packages + WHERE PackageID = @TmpPackageID + + IF @ParentPackageID IS NULL -- parent not found + BREAK + + INSERT @T VALUES (@ParentPackageID) + + SET @TmpPackageID = @ParentPackageID + END + +RETURN +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[PackagesTreeCache]( + [ParentPackageID] [int] NOT NULL, + [PackageID] [int] NOT NULL +) + +GO +INSERT [dbo].[PackagesTreeCache] ([ParentPackageID], [PackageID]) VALUES (1, 1) GO SET ANSI_NULLS ON GO @@ -8711,6 +4487,7 @@ RETURN + GO @@ -8775,97 +4552,6 @@ RETURN - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteItemPrivateIPAddresses -( - @ActorID int, - @ItemID int -) -AS -BEGIN - DELETE FROM PrivateIPAddresses - FROM PrivateIPAddresses AS PIP - INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID - WHERE PIP.ItemID = @ItemID - AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 -END - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteItemPrivateIPAddress -( - @ActorID int, - @ItemID int, - @PrivateAddressID int -) -AS -BEGIN - DELETE FROM PrivateIPAddresses - FROM PrivateIPAddresses AS PIP - INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID - WHERE PIP.PrivateAddressID = @PrivateAddressID - AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 -END - @@ -8949,6 +4635,3333 @@ RETURN + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ServiceItemProperties]( + [ItemID] [int] NOT NULL, + [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValue] [nvarchar](3000) COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ServiceItemProperties] PRIMARY KEY CLUSTERED +( + [ItemID] ASC, + [PropertyName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeallocatePackageIPAddress] + @PackageAddressID int +AS +BEGIN + + SET NOCOUNT ON; + + -- check parent package + DECLARE @ParentPackageID int + + SELECT @ParentPackageID = P.ParentPackageID + FROM PackageIPAddresses AS PIP + INNER JOIN Packages AS P ON PIP.PackageID = P.PackageId + WHERE PIP.PackageAddressID = @PackageAddressID + + IF (@ParentPackageID = 1) -- "System" space + BEGIN + DELETE FROM dbo.PackageIPAddresses + WHERE PackageAddressID = @PackageAddressID + END + ELSE -- 2rd level space and below + BEGIN + UPDATE PackageIPAddresses + SET PackageID = @ParentPackageID + WHERE PackageAddressID = @PackageAddressID + END + +END + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[CRMUsers]( + [CRMUserID] [int] IDENTITY(1,1) NOT NULL, + [AccountID] [int] NOT NULL, + [CreatedDate] [datetime] NOT NULL, + [ChangedDate] [datetime] NOT NULL, + [CRMUserGuid] [uniqueidentifier] NULL, + [BusinessUnitID] [uniqueidentifier] NULL, + CONSTRAINT [PK_CRMUsers] PRIMARY KEY CLUSTERED +( + [CRMUserID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[InsertCRMUser] + @ItemID int, + @CrmUserID uniqueidentifier, + @BusinessUnitID uniqueidentifier +AS +BEGIN + SET NOCOUNT ON; + +INSERT INTO + CRMUsers +( + AccountID, + CRMUserGuid, + BusinessUnitID +) +VALUES +( + @ItemID, + @CrmUserID, + @BusinessUnitID +) + + + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetCRMUsersCount] +( + @ItemID int, + @Name nvarchar(400), + @Email nvarchar(400) + +) +AS + +IF (@Name IS NULL) +BEGIN + SET @Name = '%' +END + +IF (@Email IS NULL) +BEGIN + SET @Email = '%' +END + +SELECT + COUNT(ea.AccountID) +FROM + ExchangeAccounts ea +INNER JOIN + CRMUsers cu +ON + ea.AccountID = cu.AccountID +WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetCRMUsers] +( + @ItemID int, + @SortColumn nvarchar(40), + @SortDirection nvarchar(20), + @Name nvarchar(400), + @Email nvarchar(400), + @StartRow int, + @Count int +) +AS + +IF (@Name IS NULL) +BEGIN + SET @Name = '%' +END + +IF (@Email IS NULL) +BEGIN + SET @Email = '%' +END + +CREATE TABLE #TempCRMUsers +( + [ID] [int] IDENTITY(1,1) NOT NULL, + [AccountID] [int], + [ItemID] [int] NOT NULL, + [AccountName] [nvarchar](20) NOT NULL, + [DisplayName] [nvarchar](300) NOT NULL, + [PrimaryEmailAddress] [nvarchar](300) NULL, + [SamAccountName] [nvarchar](100) NULL +) + + +IF (@SortColumn = 'DisplayName') +BEGIN + INSERT INTO + #TempCRMUsers + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + CRMUsers cu + ON + ea.AccountID = cu.AccountID + WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + ORDER BY + ea.DisplayName +END +ELSE +BEGIN + INSERT INTO + #TempCRMUsers + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + CRMUsers cu + ON + ea.AccountID = cu.AccountID + WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + ORDER BY + ea.PrimaryEmailAddress +END + +DECLARE @RetCount int +SELECT @RetCount = COUNT(ID) FROM #TempCRMUsers + +IF (@SortDirection = 'ASC') +BEGIN + SELECT * FROM #TempCRMUsers + WHERE ID > @StartRow AND ID <= (@StartRow + @Count) +END +ELSE +BEGIN + IF (@SortColumn = 'DisplayName') + BEGIN + SELECT * FROM #TempCRMUsers + WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY DisplayName DESC + END + ELSE + BEGIN + SELECT * FROM #TempCRMUsers + WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY PrimaryEmailAddress DESC + END + +END + + + +DROP TABLE #TempCRMUsers + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetCRMUser] + @AccountID int +AS +BEGIN + SET NOCOUNT ON; +SELECT + CRMUserGUID as CRMUserID, + BusinessUnitID +FROM + CRMUsers +WHERE + AccountID = @AccountID +END + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetCRMOrganizationUsers] + @ItemID int +AS +BEGIN + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + CRMUsers cu + ON + ea.AccountID = cu.AccountID + WHERE + ea.ItemID = @ItemID +END + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[BlackBerryUsers]( + [BlackBerryUserId] [int] IDENTITY(1,1) NOT NULL, + [AccountId] [int] NOT NULL, + [CreatedDate] [datetime] NOT NULL, + [ModifiedDate] [datetime] NOT NULL, + CONSTRAINT [PK_BlackBerryUsers] PRIMARY KEY CLUSTERED +( + [BlackBerryUserId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetBlackBerryUsersCount] +( + @ItemID int, + @Name nvarchar(400), + @Email nvarchar(400) + +) +AS + +IF (@Name IS NULL) +BEGIN + SET @Name = '%' +END + +IF (@Email IS NULL) +BEGIN + SET @Email = '%' +END + +SELECT + COUNT(ea.AccountID) +FROM + ExchangeAccounts ea +INNER JOIN + BlackBerryUsers bu +ON + ea.AccountID = bu.AccountID +WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetBlackBerryUsers] +( + @ItemID int, + @SortColumn nvarchar(40), + @SortDirection nvarchar(20), + @Name nvarchar(400), + @Email nvarchar(400), + @StartRow int, + @Count int +) +AS + +IF (@Name IS NULL) +BEGIN + SET @Name = '%' +END + +IF (@Email IS NULL) +BEGIN + SET @Email = '%' +END + +CREATE TABLE #TempBlackBerryUsers +( + [ID] [int] IDENTITY(1,1) NOT NULL, + [AccountID] [int], + [ItemID] [int] NOT NULL, + [AccountName] [nvarchar](20) NOT NULL, + [DisplayName] [nvarchar](300) NOT NULL, + [PrimaryEmailAddress] [nvarchar](300) NULL, + [SamAccountName] [nvarchar](100) NULL +) + + +IF (@SortColumn = 'DisplayName') +BEGIN + INSERT INTO + #TempBlackBerryUsers + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + BlackBerryUsers bu + ON + ea.AccountID = bu.AccountID + WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + ORDER BY + ea.DisplayName +END +ELSE +BEGIN + INSERT INTO + #TempBlackBerryUsers + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + BlackBerryUsers bu + ON + ea.AccountID = bu.AccountID + WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + ORDER BY + ea.PrimaryEmailAddress +END + +DECLARE @RetCount int +SELECT @RetCount = COUNT(ID) FROM #TempBlackBerryUsers + +IF (@SortDirection = 'ASC') +BEGIN + SELECT * FROM #TempBlackBerryUsers + WHERE ID > @StartRow AND ID <= (@StartRow + @Count) +END +ELSE +BEGIN + IF (@SortColumn = 'DisplayName') + BEGIN + SELECT * FROM #TempBlackBerryUsers + WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY DisplayName DESC + END + ELSE + BEGIN + SELECT * FROM #TempBlackBerryUsers + WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY PrimaryEmailAddress DESC + END + +END + + +DROP TABLE #TempBlackBerryUsers + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteBlackBerryUser] +( + @AccountID int +) +AS + +DELETE FROM + BlackBerryUsers +WHERE + AccountID = @AccountID + +RETURN + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[CheckBlackBerryUserExists] + @AccountID int +AS +BEGIN + SELECT + COUNT(AccountID) + FROM + dbo.BlackBerryUsers + WHERE AccountID = @AccountID +END + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[AddBlackBerryUser] + @AccountID int +AS +BEGIN + SET NOCOUNT ON; + +INSERT INTO + dbo.BlackBerryUsers + ( + + AccountID, + CreatedDate, + ModifiedDate) +VALUES +( + @AccountID, + getdate(), + getdate() +) +END + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteExchangeAccountEmailAddress +( + @AccountID int, + @EmailAddress nvarchar(300) +) +AS +DELETE FROM ExchangeAccountEmailAddresses +WHERE AccountID = @AccountID AND EmailAddress = @EmailAddress +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteExchangeAccount +( + @ItemID int, + @AccountID int +) +AS + +-- delete e-mail addresses +DELETE FROM ExchangeAccountEmailAddresses +WHERE AccountID = @AccountID + +-- delete account +DELETE FROM ExchangeAccounts +WHERE ItemID = @ItemID AND AccountID = @AccountID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteCRMOrganization] + @ItemID int +AS +BEGIN + SET NOCOUNT ON +DELETE FROM dbo.CRMUsers WHERE AccountID IN (SELECT AccountID FROM dbo.ExchangeAccounts WHERE ItemID = @ItemID) +END + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[AllocatePackageIPAddresses] +( + @PackageID int, + @xml ntext +) +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @idoc int + --Create an internal representation of the XML document. + EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + + -- delete + DELETE FROM PackageIPAddresses + FROM PackageIPAddresses AS PIP + INNER JOIN OPENXML(@idoc, '/items/item', 1) WITH + ( + AddressID int '@id' + ) as PV ON PIP.AddressID = PV.AddressID + + + -- insert + INSERT INTO dbo.PackageIPAddresses + ( + PackageID, + AddressID + ) + SELECT + @PackageID, + AddressID + + FROM OPENXML(@idoc, '/items/item', 1) WITH + ( + AddressID int '@id' + ) as PV + + -- remove document + exec sp_xml_removedocument @idoc + +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ExchangeOrganizations]( + [ItemID] [int] NOT NULL, + [OrganizationID] [nvarchar](10) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ExchangeOrganizations] PRIMARY KEY CLUSTERED +( + [ItemID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [IX_ExchangeOrganizations_UniqueOrg] UNIQUE NONCLUSTERED +( + [OrganizationID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetItemIdByOrganizationId] + @OrganizationId nvarchar(10) +AS +BEGIN + SET NOCOUNT ON; + + SELECT + ItemID + FROM + dbo.ExchangeOrganizations + WHERE + OrganizationId = @OrganizationId +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteExchangeOrganization +( + @ItemID int +) +AS +DELETE FROM ExchangeOrganizations +WHERE ItemID = @ItemID +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE AddExchangeOrganization +( + @ItemID int, + @OrganizationID nvarchar(10) +) +AS + +IF NOT EXISTS(SELECT * FROM ExchangeOrganizations WHERE OrganizationID = @OrganizationID) +BEGIN + INSERT INTO ExchangeOrganizations + (ItemID, OrganizationID) + VALUES + (@ItemID, @OrganizationID) +END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE ExchangeOrganizationExists +( + @OrganizationID nvarchar(10), + @Exists bit OUTPUT +) +AS +SET @Exists = 0 +IF EXISTS(SELECT * FROM ExchangeOrganizations WHERE OrganizationID = @OrganizationID) +BEGIN + SET @Exists = 1 +END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ExchangeOrganizationDomains]( + [OrganizationDomainID] [int] IDENTITY(1,1) NOT NULL, + [ItemID] [int] NOT NULL, + [DomainID] [int] NULL, + [IsHost] [bit] NULL, + CONSTRAINT [PK_ExchangeOrganizationDomains] PRIMARY KEY CLUSTERED +( + [OrganizationDomainID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [IX_ExchangeOrganizationDomains_UniqueDomain] UNIQUE NONCLUSTERED +( + [DomainID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetExchangeOrganizationStatistics] +( + @ItemID int +) +AS +SELECT + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 1 OR AccountType = 5 OR AccountType = 6) AND ItemID = @ItemID) AS CreatedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders, + (SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetExchangeOrganizationDomains +( + @ItemID int +) +AS +SELECT + ED.DomainID, + D.DomainName, + ED.IsHost +FROM + ExchangeOrganizationDomains AS ED +INNER JOIN Domains AS D ON ED.DomainID = D.DomainID +WHERE ED.ItemID = @ItemID +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteExchangeOrganizationDomain +( + @ItemID int, + @DomainID int +) +AS +DELETE FROM ExchangeOrganizationDomains +WHERE DomainID = @DomainID AND ItemID = @ItemID +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE AddExchangeOrganizationDomain +( + @ItemID int, + @DomainID int, + @IsHost bit +) +AS +INSERT INTO ExchangeOrganizationDomains +(ItemID, DomainID, IsHost) +VALUES +(@ItemID, @DomainID, @IsHost) +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE ExchangeOrganizationDomainExists +( + @DomainID int, + @Exists bit OUTPUT +) +AS +SET @Exists = 0 +IF EXISTS(SELECT * FROM ExchangeOrganizationDomains WHERE DomainID = @DomainID) +BEGIN + SET @Exists = 1 +END +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[UpdateExchangeAccount] +( + @AccountID int, + @AccountName nvarchar(20), + @DisplayName nvarchar(300), + @PrimaryEmailAddress nvarchar(300), + @AccountType int, + @SamAccountName nvarchar(100), + @MailEnabledPublicFolder bit, + @MailboxManagerActions varchar(200), + @Password varchar(200) +) +AS + +BEGIN TRAN +UPDATE ExchangeAccounts SET + AccountName = @AccountName, + DisplayName = @DisplayName, + PrimaryEmailAddress = @PrimaryEmailAddress, + MailEnabledPublicFolder = @MailEnabledPublicFolder, + MailboxManagerActions = @MailboxManagerActions, + AccountType =@AccountType, + SamAccountName = @SamAccountName + +WHERE + AccountID = @AccountID + +IF (@@ERROR <> 0 ) + BEGIN + ROLLBACK TRANSACTION + RETURN -1 + END + +UPDATE ExchangeAccounts SET + AccountPassword = @Password WHERE AccountID = @AccountID AND @Password IS NOT NULL + +IF (@@ERROR <> 0 ) + BEGIN + ROLLBACK TRANSACTION + RETURN -1 + END +COMMIT TRAN +RETURN + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[SearchExchangeAccount] +( + @ActorID int, + @AccountType int, + @PrimaryEmailAddress nvarchar(300) +) +AS + +DECLARE @PackageID int +DECLARE @ItemID int +DECLARE @AccountID int + +SELECT + @AccountID = AccountID, + @ItemID = ItemID +FROM ExchangeAccounts +WHERE PrimaryEmailAddress = @PrimaryEmailAddress +AND AccountType = @AccountType + + +-- check space rights +SELECT @PackageID = PackageID FROM ServiceItems +WHERE ItemID = @ItemID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +SELECT + AccountID, + ItemID, + @PackageID AS PackageID, + AccountType, + AccountName, + DisplayName, + PrimaryEmailAddress, + MailEnabledPublicFolder, + MailboxManagerActions, + SamAccountName, + AccountPassword +FROM ExchangeAccounts +WHERE AccountID = @AccountID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[OrganizationUserExists] +( + @LoginName nvarchar(20), + @Exists bit OUTPUT +) +AS +SET @Exists = 0 +IF EXISTS(SELECT * FROM ExchangeAccounts WHERE AccountName = @LoginName) +BEGIN + SET @Exists = 1 +END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetOrganizationStatistics] +( + @ItemID int +) +AS +SELECT + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 7 OR AccountType = 1 OR AccountType = 6 OR AccountType = 5) AND ItemID = @ItemID) AS CreatedUsers, + (SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetOrganizationCRMUserCount] + @ItemID int +AS +BEGIN +SELECT + COUNT(CRMUserID) +FROM + CrmUsers CU +INNER JOIN + ExchangeAccounts EA +ON + CU.AccountID = EA.AccountID +WHERE EA.ItemID = @ItemID +END + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION dbo.PackagesTree +( + @PackageID int, + @Recursive bit = 0 +) +RETURNS @T TABLE (PackageID int) +AS +BEGIN + +INSERT INTO @T VALUES (@PackageID) + +IF @Recursive = 1 +BEGIN + WITH RecursivePackages(ParentPackageID, PackageID, PackageLevel) AS + ( + SELECT ParentPackageID, PackageID, 0 AS PackageLevel + FROM Packages + WHERE ParentPackageID = @PackageID + UNION ALL + SELECT p.ParentPackageID, p.PackageID, PackageLevel + 1 + FROM Packages p + INNER JOIN RecursivePackages d + ON p.ParentPackageID = d.PackageID + WHERE @Recursive = 1 + ) + INSERT INTO @T + SELECT PackageID + FROM RecursivePackages +END + +RETURN +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + +CREATE PROCEDURE GetDomains +( + @ActorID int, + @PackageID int, + @Recursive bit = 1 +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainName, + D.HostingAllowed, + ISNULL(WS.ItemID, 0) AS WebSiteID, + WS.ItemName AS WebSiteName, + ISNULL(MD.ItemID, 0) AS MailDomainID, + MD.ItemName AS MailDomainName, + Z.ItemName AS ZoneName, + D.IsSubDomain, + D.IsInstantAlias, + D.IsDomainPointer +FROM Domains AS D +INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON D.PackageID = PT.PackageID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +RETURN + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + +CREATE PROCEDURE GetDomainByName +( + @ActorID int, + @DomainName nvarchar(100) +) +AS + +SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainName, + D.HostingAllowed, + ISNULL(D.WebSiteID, 0) AS WebSiteID, + WS.ItemName AS WebSiteName, + ISNULL(D.MailDomainID, 0) AS MailDomainID, + MD.ItemName AS MailDomainName, + Z.ItemName AS ZoneName, + D.IsSubDomain, + D.IsInstantAlias, + D.IsDomainPointer +FROM Domains AS D +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +WHERE + D.DomainName = @DomainName + AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1 +RETURN + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + +CREATE PROCEDURE GetDomain +( + @ActorID int, + @DomainID int +) +AS + +SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainName, + D.HostingAllowed, + ISNULL(WS.ItemID, 0) AS WebSiteID, + WS.ItemName AS WebSiteName, + ISNULL(MD.ItemID, 0) AS MailDomainID, + MD.ItemName AS MailDomainName, + Z.ItemName AS ZoneName, + D.IsSubDomain, + D.IsInstantAlias, + D.IsDomainPointer +FROM Domains AS D +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +WHERE + D.DomainID = @DomainID + AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1 +RETURN + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteSchedule +( + @ActorID int, + @ScheduleID int +) +AS + +-- check rights +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM Schedule +WHERE ScheduleID = @ScheduleID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +BEGIN TRAN +-- delete schedule parameters +DELETE FROM ScheduleParameters +WHERE ScheduleID = @ScheduleID + +-- delete schedule +DELETE FROM Schedule +WHERE ScheduleID = @ScheduleID + +COMMIT TRAN + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeletePackageAddon +( + @ActorID int, + @PackageAddonID int +) +AS + +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM PackageAddons +WHERE PackageAddonID = @PackageAddonID + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- delete record +DELETE FROM PackageAddons +WHERE PackageAddonID = @PackageAddonID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteItemIPAddresses] +( + @ActorID int, + @ItemID int +) +AS +BEGIN + UPDATE PackageIPAddresses + SET + ItemID = NULL, + IsPrimary = 0 + FROM PackageIPAddresses AS PIP + WHERE + PIP.ItemID = @ItemID + AND dbo.CheckActorPackageRights(@ActorID, PIP.PackageID) = 1 +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteItemIPAddress] +( + @ActorID int, + @ItemID int, + @PackageAddressID int +) +AS +BEGIN + UPDATE PackageIPAddresses + SET + ItemID = NULL, + IsPrimary = 0 + FROM PackageIPAddresses AS PIP + WHERE + PIP.PackageAddressID = @PackageAddressID + AND dbo.CheckActorPackageRights(@ActorID, PIP.PackageID) = 1 +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteHostingPlan +( + @ActorID int, + @PlanID int, + @Result int OUTPUT +) +AS +SET @Result = 0 + +-- check rights +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM HostingPlans +WHERE PlanID = @PlanID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- check if some packages uses this plan +IF EXISTS (SELECT PackageID FROM Packages WHERE PlanID = @PlanID) +BEGIN + SET @Result = -1 + RETURN +END + +-- check if some package addons uses this plan +IF EXISTS (SELECT PackageID FROM PackageAddons WHERE PlanID = @PlanID) +BEGIN + SET @Result = -2 + RETURN +END + +-- delete hosting plan +DELETE FROM HostingPlans +WHERE PlanID = @PlanID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteDomain +( + @DomainID int, + @ActorID int +) +AS + +-- check rights +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM Domains +WHERE DomainID = @DomainID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DELETE FROM Domains +WHERE DomainID = @DomainID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[PrivateIPAddresses]( + [PrivateAddressID] [int] IDENTITY(1,1) NOT NULL, + [ItemID] [int] NOT NULL, + [IPAddress] [varchar](15) COLLATE Latin1_General_CI_AS NOT NULL, + [IsPrimary] [bit] NOT NULL, + CONSTRAINT [PK_PrivateIPAddresses] PRIMARY KEY CLUSTERED +( + [PrivateAddressID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetPackagePrivateIPAddresses] + @PackageID int +AS +BEGIN + + SELECT + PA.PrivateAddressID, + PA.IPAddress, + PA.ItemID, + SI.ItemName, + PA.IsPrimary + FROM PrivateIPAddresses AS PA + INNER JOIN ServiceItems AS SI ON PA.ItemID = SI.ItemID + WHERE SI.PackageID = @PackageID + +END + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetItemPrivateIPAddresses] +( + @ActorID int, + @ItemID int +) +AS + +SELECT + PIP.PrivateAddressID AS AddressID, + PIP.IPAddress, + PIP.IsPrimary +FROM PrivateIPAddresses AS PIP +INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID +WHERE PIP.ItemID = @ItemID +AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 +ORDER BY PIP.IsPrimary DESC + +RETURN + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteItemPrivateIPAddresses +( + @ActorID int, + @ItemID int +) +AS +BEGIN + DELETE FROM PrivateIPAddresses + FROM PrivateIPAddresses AS PIP + INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID + WHERE PIP.ItemID = @ItemID + AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 +END + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteItemPrivateIPAddress +( + @ActorID int, + @ItemID int, + @PrivateAddressID int +) +AS +BEGIN + DELETE FROM PrivateIPAddresses + FROM PrivateIPAddresses AS PIP + INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID + WHERE PIP.PrivateAddressID = @PrivateAddressID + AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 +END + + + + + + + + + @@ -9014,149 +8027,136 @@ RETURN + GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[ServiceItemProperties]( - [ItemID] [int] NOT NULL, - [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyValue] [nvarchar](3000) COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ServiceItemProperties] PRIMARY KEY CLUSTERED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CheckPackageParent] ( - [ItemID] ASC, - [PropertyName] ASC + @ParentPackageID int, + @PackageID int +) +RETURNS bit +AS +BEGIN + +-- check if the user requests hiself +IF @ParentPackageID = @PackageID +BEGIN + RETURN 1 +END + +DECLARE @TmpParentPackageID int, @TmpPackageID int +SET @TmpPackageID = @PackageID + +WHILE 10 = 10 +BEGIN + + SET @TmpParentPackageID = NULL --reset var + + -- get owner + SELECT + @TmpParentPackageID = ParentPackageID + FROM Packages + WHERE PackageID = @TmpPackageID + + IF @TmpParentPackageID IS NULL -- the last parent package + BREAK + + IF @TmpParentPackageID = @ParentPackageID + RETURN 1 + + SET @TmpPackageID = @TmpParentPackageID +END + + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[PackagesDiskspace]( + [PackageID] [int] NOT NULL, + [GroupID] [int] NOT NULL, + [DiskSpace] [bigint] NOT NULL, + CONSTRAINT [PK_PackagesDiskspace] PRIMARY KEY CLUSTERED +( + [PackageID] ASC, + [GroupID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdateServiceItem -( - @ActorID int, - @ItemID int, - @ItemName nvarchar(500), - @XmlProperties ntext -) -AS -BEGIN TRAN - --- check rights -DECLARE @PackageID int -SELECT PackageID = @PackageID FROM ServiceItems -WHERE ItemID = @ItemID - -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- update item -UPDATE ServiceItems SET ItemName = @ItemName -WHERE ItemID=@ItemID - -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlProperties - --- Execute a SELECT statement that uses the OPENXML rowset provider. -DELETE FROM ServiceItemProperties -WHERE ItemID = @ItemID - -INSERT INTO ServiceItemProperties -( - ItemID, - PropertyName, - PropertyValue -) -SELECT - @ItemID, - PropertyName, - PropertyValue -FROM OPENXML(@idoc, '/properties/property',1) WITH -( - PropertyName nvarchar(50) '@name', - PropertyValue nvarchar(3000) '@value' -) as PV - --- remove document -exec sp_xml_removedocument @idoc - -COMMIT TRAN - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GO SET ANSI_NULLS ON @@ -9180,22 +8180,6 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[PackagesDiskspace]( - [PackageID] [int] NOT NULL, - [GroupID] [int] NOT NULL, - [DiskSpace] [bigint] NOT NULL, - CONSTRAINT [PK_PackagesDiskspace] PRIMARY KEY CLUSTERED -( - [PackageID] ASC, - [GroupID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO @@ -9275,6 +8259,7 @@ END + GO @@ -9384,6 +8369,1192 @@ END + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdateServiceItem +( + @ActorID int, + @ItemID int, + @ItemName nvarchar(500), + @XmlProperties ntext +) +AS +BEGIN TRAN + +-- check rights +DECLARE @PackageID int +SELECT PackageID = @PackageID FROM ServiceItems +WHERE ItemID = @ItemID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- update item +UPDATE ServiceItems SET ItemName = @ItemName +WHERE ItemID=@ItemID + +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlProperties + +-- Execute a SELECT statement that uses the OPENXML rowset provider. +DELETE FROM ServiceItemProperties +WHERE ItemID = @ItemID + +INSERT INTO ServiceItemProperties +( + ItemID, + PropertyName, + PropertyValue +) +SELECT + @ItemID, + PropertyName, + PropertyValue +FROM OPENXML(@idoc, '/properties/property',1) WITH +( + PropertyName nvarchar(50) '@name', + PropertyValue nvarchar(3000) '@value' +) as PV + +-- remove document +exec sp_xml_removedocument @idoc + +COMMIT TRAN + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdateSchedule +( + @ActorID int, + @ScheduleID int, + @TaskID nvarchar(100), + @ScheduleName nvarchar(100), + @ScheduleTypeID nvarchar(50), + @Interval int, + @FromTime datetime, + @ToTime datetime, + @StartTime datetime, + @LastRun datetime, + @NextRun datetime, + @Enabled bit, + @PriorityID nvarchar(50), + @HistoriesNumber int, + @MaxExecutionTime int, + @WeekMonthDay int, + @XmlParameters ntext +) +AS + +-- check rights +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM Schedule +WHERE ScheduleID = @ScheduleID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +BEGIN TRAN + +UPDATE Schedule +SET + TaskID = @TaskID, + ScheduleName = @ScheduleName, + ScheduleTypeID = @ScheduleTypeID, + Interval = @Interval, + FromTime = @FromTime, + ToTime = @ToTime, + StartTime = @StartTime, + LastRun = @LastRun, + NextRun = @NextRun, + Enabled = @Enabled, + PriorityID = @PriorityID, + HistoriesNumber = @HistoriesNumber, + MaxExecutionTime = @MaxExecutionTime, + WeekMonthDay = @WeekMonthDay +WHERE + ScheduleID = @ScheduleID + +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters + +-- Execute a SELECT statement that uses the OPENXML rowset provider. +DELETE FROM ScheduleParameters +WHERE ScheduleID = @ScheduleID + +INSERT INTO ScheduleParameters +( + ScheduleID, + ParameterID, + ParameterValue +) +SELECT + @ScheduleID, + ParameterID, + ParameterValue +FROM OPENXML(@idoc, '/parameters/parameter',1) WITH +( + ParameterID nvarchar(50) '@id', + ParameterValue nvarchar(3000) '@value' +) as PV + +-- remove document +exec sp_xml_removedocument @idoc + +COMMIT TRAN +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdateDomain +( + @DomainID int, + @ActorID int, + @ZoneItemID int, + @HostingAllowed bit, + @WebSiteID int, + @MailDomainID int +) +AS + +-- check rights +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM Domains +WHERE DomainID = @DomainID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +IF @ZoneItemID = 0 SET @ZoneItemID = NULL +IF @WebSiteID = 0 SET @WebSiteID = NULL +IF @MailDomainID = 0 SET @MailDomainID = NULL + +-- update record +UPDATE Domains +SET + ZoneItemID = @ZoneItemID, + HostingAllowed = @HostingAllowed, + WebSiteID = @WebSiteID, + MailDomainID = @MailDomainID +WHERE + DomainID = @DomainID + RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[SetItemPrivatePrimaryIPAddress] +( + @ActorID int, + @ItemID int, + @PrivateAddressID int +) +AS +BEGIN + UPDATE PrivateIPAddresses + SET IsPrimary = CASE PIP.PrivateAddressID WHEN @PrivateAddressID THEN 1 ELSE 0 END + FROM PrivateIPAddresses AS PIP + INNER JOIN ServiceItems AS SI ON PIP.ItemID = SI.ItemID + WHERE PIP.ItemID = @ItemID + AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 +END + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[SearchOrganizationAccounts] +( + @ActorID int, + @ItemID int, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @IncludeMailboxes bit +) +AS +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM ServiceItems +WHERE ItemID = @ItemID + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- start +DECLARE @condition nvarchar(700) +SET @condition = ' +(EA.AccountType = 7 OR (EA.AccountType = 1 AND @IncludeMailboxes = 1) ) +AND EA.ItemID = @ItemID +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'EA.DisplayName ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT + EA.AccountID, + EA.ItemID, + EA.AccountType, + EA.AccountName, + EA.DisplayName, + EA.PrimaryEmailAddress +FROM ExchangeAccounts AS EA +WHERE ' + @condition + +print @sql + +exec sp_executesql @sql, N'@ItemID int, @IncludeMailboxes bit', +@ItemID, @IncludeMailboxes + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[PackageResources]( + [PackageID] [int] NOT NULL, + [GroupID] [int] NOT NULL, + [CalculateDiskspace] [bit] NOT NULL, + [CalculateBandwidth] [bit] NOT NULL, + CONSTRAINT [PK_PackageResources_1] PRIMARY KEY CLUSTERED +( + [PackageID] ASC, + [GroupID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdatePackageQuotas +( + @ActorID int, + @PackageID int, + @Xml ntext +) +AS + +/* +XML Format: + + + + + + + + + + +*/ + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @OverrideQuotas bit +SELECT @OverrideQuotas = OverrideQuotas FROM Packages +WHERE PackageID = @PackageID + +IF @OverrideQuotas = 0 +BEGIN + -- delete old Package resources + DELETE FROM PackageResources + WHERE PackageID = @PackageID + + -- delete old Package quotas + DELETE FROM PackageQuotas + WHERE PackageID = @PackageID +END + +IF @OverrideQuotas = 1 AND @Xml IS NOT NULL +BEGIN + -- delete old Package resources + DELETE FROM PackageResources + WHERE PackageID = @PackageID + + -- delete old Package quotas + DELETE FROM PackageQuotas + WHERE PackageID = @PackageID + + DECLARE @idoc int + --Create an internal representation of the XML document. + EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + + -- update Package resources + INSERT INTO PackageResources + ( + PackageID, + GroupID, + CalculateDiskSpace, + CalculateBandwidth + ) + SELECT + @PackageID, + GroupID, + CalculateDiskSpace, + CalculateBandwidth + FROM OPENXML(@idoc, '/plan/groups/group',1) WITH + ( + GroupID int '@id', + CalculateDiskSpace bit '@calculateDiskSpace', + CalculateBandwidth bit '@calculateBandwidth' + ) as XRG + + -- update Package quotas + INSERT INTO PackageQuotas + ( + PackageID, + QuotaID, + QuotaValue + ) + SELECT + @PackageID, + QuotaID, + QuotaValue + FROM OPENXML(@idoc, '/plan/quotas/quota',1) WITH + ( + QuotaID int '@id', + QuotaValue int '@value' + ) as PV + + -- remove document + exec sp_xml_removedocument @idoc +END +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdatePackageBandwidthUpdate +( + @PackageID int, + @UpdateDate datetime +) +AS + +UPDATE Packages SET BandwidthUpdated = @UpdateDate +WHERE PackageID = @PackageID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdatePackageAddon +( + @ActorID int, + @PackageAddonID int, + @PlanID int, + @Quantity int, + @PurchaseDate datetime, + @StatusID int, + @Comments ntext +) +AS + +DECLARE @PackageID int +SELECT @PackageID = PackageID FROM PackageAddons +WHERE PackageAddonID = @PackageAddonID + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +BEGIN TRAN + +DECLARE @ParentPackageID int +SELECT @ParentPackageID = ParentPackageID FROM Packages +WHERE PackageID = @PackageID + +-- update record +UPDATE PackageAddons SET + PlanID = @PlanID, + Quantity = @Quantity, + PurchaseDate = @PurchaseDate, + StatusID = @StatusID, + Comments = @Comments +WHERE PackageAddonID = @PackageAddonID + +DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int) +INSERT INTO @ExceedingQuotas +SELECT * FROM dbo.GetPackageExceedingQuotas(@ParentPackageID) WHERE QuotaValue > 0 + +SELECT * FROM @ExceedingQuotas + +IF EXISTS(SELECT * FROM @ExceedingQuotas) +BEGIN + ROLLBACK TRAN + RETURN +END + +COMMIT TRAN + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + +CREATE PROCEDURE [dbo].[UpdatePackage] +( + @ActorID int, + @PackageID int, + @PackageName nvarchar(300), + @PackageComments ntext, + @StatusID int, + @PlanID int, + @PurchaseDate datetime, + @OverrideQuotas bit, + @QuotasXml ntext +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +BEGIN TRAN + +DECLARE @ParentPackageID int +DECLARE @OldPlanID int + +SELECT @ParentPackageID = ParentPackageID, @OldPlanID = PlanID FROM Packages +WHERE PackageID = @PackageID + +-- update package +UPDATE Packages SET + PackageName = @PackageName, + PackageComments = @PackageComments, + StatusID = @StatusID, + PlanID = @PlanID, + PurchaseDate = @PurchaseDate, + OverrideQuotas = @OverrideQuotas +WHERE + PackageID = @PackageID + +-- update quotas (if required) +EXEC UpdatePackageQuotas @ActorID, @PackageID, @QuotasXml + +-- check resulting quotas +DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int) + +-- check exceeding quotas if plan has been changed +IF (@OldPlanID <> @PlanID) OR (@OverrideQuotas = 1) +BEGIN + INSERT INTO @ExceedingQuotas + SELECT * FROM dbo.GetPackageExceedingQuotas(@ParentPackageID) WHERE QuotaValue > 0 +END + +SELECT * FROM @ExceedingQuotas + +IF EXISTS(SELECT * FROM @ExceedingQuotas) +BEGIN + ROLLBACK TRAN + RETURN +END + + +COMMIT TRAN +RETURN + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetResellerDomains +( + @ActorID int, + @PackageID int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- load parent package +DECLARE @ParentPackageID int +SELECT @ParentPackageID = ParentPackageID FROM Packages +WHERE PackageID = @PackageID + +SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainName, + D.HostingAllowed, + D.WebSiteID, + WS.ItemName, + D.MailDomainID, + MD.ItemName +FROM Domains AS D +INNER JOIN PackagesTree(@ParentPackageID, 0) AS PT ON D.PackageID = PT.PackageID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +WHERE HostingAllowed = 1 +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE VIEW [dbo].[UsersDetailed] +AS +SELECT U.UserID, U.RoleID, U.StatusID, U.OwnerID, U.Created, U.Changed, U.IsDemo, U.Comments, U.IsPeer, U.Username, U.FirstName, U.LastName, U.Email, + U.CompanyName, U.FirstName + ' ' + U.LastName AS FullName, UP.Username AS OwnerUsername, UP.FirstName AS OwnerFirstName, + UP.LastName AS OwnerLastName, UP.RoleID AS OwnerRoleID, UP.FirstName + ' ' + UP.LastName AS OwnerFullName, UP.Email AS OwnerEmail, UP.RoleID AS Expr1, + (SELECT COUNT(PackageID) AS Expr1 + FROM dbo.Packages AS P + WHERE (UserID = U.UserID)) AS PackagesNumber, U.EcommerceEnabled +FROM dbo.Users AS U LEFT OUTER JOIN + dbo.Users AS UP ON U.OwnerID = UP.UserID + + + + + + + + + + + + + + + + + + + + @@ -9414,1500 +9585,6 @@ CREATE TABLE [dbo].[ecBillingCycles]( [CycleID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[OrganizationExists] -( - @OrganizationID nvarchar(10), - @Exists bit OUTPUT -) -AS -SET @Exists = 0 -IF EXISTS(SELECT * FROM Organizations WHERE OrganizationID = @OrganizationID) -BEGIN - SET @Exists = 1 -END - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[OCSUsers]( - [OCSUserID] [int] IDENTITY(1,1) NOT NULL, - [AccountID] [int] NOT NULL, - [InstanceID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [CreatedDate] [datetime] NOT NULL, - [ModifiedDate] [datetime] NOT NULL, - CONSTRAINT [PK_OCSUsers] PRIMARY KEY CLUSTERED -( - [OCSUserID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - -CREATE PROCEDURE [dbo].[GetOCSUsersCount] -( - @ItemID int, - @Name nvarchar(400), - @Email nvarchar(400) - -) -AS - -IF (@Name IS NULL) -BEGIN - SET @Name = '%' -END - -IF (@Email IS NULL) -BEGIN - SET @Email = '%' -END - -SELECT - COUNT(ea.AccountID) -FROM - ExchangeAccounts ea -INNER JOIN - OCSUsers ou -ON - ea.AccountID = ou.AccountID -WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetOCSUsers] -( - @ItemID int, - @SortColumn nvarchar(40), - @SortDirection nvarchar(20), - @Name nvarchar(400), - @Email nvarchar(400), - @StartRow int, - @Count int -) -AS - -IF (@Name IS NULL) -BEGIN - SET @Name = '%' -END - -IF (@Email IS NULL) -BEGIN - SET @Email = '%' -END - -CREATE TABLE #TempOCSUsers -( - [ID] [int] IDENTITY(1,1) NOT NULL, - [AccountID] [int], - [ItemID] [int] NOT NULL, - [AccountName] [nvarchar](20) NOT NULL, - [DisplayName] [nvarchar](300) NOT NULL, - [InstanceID] [nvarchar](50) NOT NULL, - [PrimaryEmailAddress] [nvarchar](300) NULL, - [SamAccountName] [nvarchar](100) NULL -) - - -IF (@SortColumn = 'DisplayName') -BEGIN - INSERT INTO - #TempOCSUsers - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ou.InstanceID, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - OCSUsers ou - ON - ea.AccountID = ou.AccountID - WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - ORDER BY - ea.DisplayName -END -ELSE -BEGIN - INSERT INTO - #TempOCSUsers - SELECT - ea.AccountID, - ea.ItemID, - ea.AccountName, - ea.DisplayName, - ou.InstanceID, - ea.PrimaryEmailAddress, - ea.SamAccountName - FROM - ExchangeAccounts ea - INNER JOIN - OCSUsers ou - ON - ea.AccountID = ou.AccountID - WHERE - ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email - ORDER BY - ea.PrimaryEmailAddress -END - -DECLARE @RetCount int -SELECT @RetCount = COUNT(ID) FROM #TempOCSUsers - -IF (@SortDirection = 'ASC') -BEGIN - SELECT * FROM #TempOCSUsers - WHERE ID > @StartRow AND ID <= (@StartRow + @Count) -END -ELSE -BEGIN - IF (@SortColumn = 'DisplayName') - BEGIN - SELECT * FROM #TempOCSUsers - WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY DisplayName DESC - END - ELSE - BEGIN - SELECT * FROM #TempOCSUsers - WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY PrimaryEmailAddress DESC - END - -END - - -DROP TABLE #TempOCSUsers - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetPackageIPAddresses] -( - @PackageID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int, - @PoolID int = 0, - @Recursive bit = 0 -) -AS -BEGIN - - --- start -DECLARE @condition nvarchar(700) -SET @condition = ' -((@Recursive = 0 AND PA.PackageID = @PackageID) -OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, PA.PackageID) = 1)) -AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID) -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'IP.ExternalIP ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT COUNT(PA.PackageAddressID) -FROM dbo.PackageIPAddresses PA -INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID -INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID -INNER JOIN dbo.Users U ON U.UserID = P.UserID -LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID -WHERE ' + @condition + ' - -DECLARE @Addresses AS TABLE -( - PackageAddressID int -); - -WITH TempItems AS ( - SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - PA.PackageAddressID - FROM dbo.PackageIPAddresses PA - INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID - INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID - INNER JOIN dbo.Users U ON U.UserID = P.UserID - LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID - WHERE ' + @condition + ' -) - -INSERT INTO @Addresses -SELECT PackageAddressID FROM TempItems -WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows - -SELECT - PA.PackageAddressID, - PA.AddressID, - IP.ExternalIP, - IP.InternalIP, - IP.SubnetMask, - IP.DefaultGateway, - PA.ItemID, - SI.ItemName, - PA.PackageID, - P.PackageName, - P.UserID, - U.UserName, - PA.IsPrimary -FROM @Addresses AS TA -INNER JOIN dbo.PackageIPAddresses AS PA ON TA.PackageAddressID = PA.PackageAddressID -INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID -INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID -INNER JOIN dbo.Users U ON U.UserID = P.UserID -LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID -' - -print @sql - -exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit, @PoolID int', -@PackageID, @StartRow, @MaximumRows, @Recursive, @PoolID - -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetPackagePrivateIPAddressesPaged] - @PackageID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int -AS -BEGIN - - --- start -DECLARE @condition nvarchar(700) -SET @condition = ' -SI.PackageID = @PackageID -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'PA.IPAddress ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT COUNT(PA.PrivateAddressID) -FROM dbo.PrivateIPAddresses AS PA -INNER JOIN dbo.ServiceItems AS SI ON PA.ItemID = SI.ItemID -WHERE ' + @condition + ' - -DECLARE @Addresses AS TABLE -( - PrivateAddressID int -); - -WITH TempItems AS ( - SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - PA.PrivateAddressID - FROM dbo.PrivateIPAddresses AS PA - INNER JOIN dbo.ServiceItems AS SI ON PA.ItemID = SI.ItemID - WHERE ' + @condition + ' -) - -INSERT INTO @Addresses -SELECT PrivateAddressID FROM TempItems -WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows - -SELECT - PA.PrivateAddressID, - PA.IPAddress, - PA.ItemID, - SI.ItemName, - PA.IsPrimary -FROM @Addresses AS TA -INNER JOIN dbo.PrivateIPAddresses AS PA ON TA.PrivateAddressID = PA.PrivateAddressID -INNER JOIN dbo.ServiceItems AS SI ON PA.ItemID = SI.ItemID -' - -print @sql - -exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int', -@PackageID, @StartRow, @MaximumRows - -END - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdatePackageName -( - @ActorID int, - @PackageID int, - @PackageName nvarchar(300), - @PackageComments ntext -) -AS - --- check rights -DECLARE @UserID int -SELECT @UserID = UserID FROM Packages -WHERE PackageID = @PackageID - -IF NOT(dbo.CheckActorPackageRights(@ActorID, @PackageID) = 1 - OR @UserID = @ActorID - OR EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND OwnerID = @UserID AND IsPeer = 1)) -RAISERROR('You are not allowed to access this package', 16, 1) - --- update package -UPDATE Packages SET - PackageName = @PackageName, - PackageComments = @PackageComments -WHERE - PackageID = @PackageID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CanUpdatePackageDetails] -( - @ActorID int, - @PackageID int -) -RETURNS bit -AS -BEGIN - -IF @ActorID = -1 -RETURN 1 - -DECLARE @UserID int -SELECT @UserID = UserID FROM Packages -WHERE PackageID = @PackageID - --- check if the user requests himself -IF @ActorID = @UserID -RETURN 1 - - -DECLARE @IsPeer bit -DECLARE @OwnerID int - -SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @IsPeer = 1 -SET @ActorID = @OwnerID - -IF @ActorID = @UserID -RETURN 1 - -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - IF @ParentUserID = @ActorID - RETURN 1 - - SET @TmpUserID = @ParentUserID -END - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ResourceGroups]( - [GroupID] [int] NOT NULL, - [GroupName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, - [GroupOrder] [int] NOT NULL, - [GroupController] [nvarchar](1000) COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ResourceGroups] PRIMARY KEY CLUSTERED -( - [GroupID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (1, N'OS', 1, N'WebsitePanel.EnterpriseServer.OperatingSystemController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (2, N'Web', 2, N'WebsitePanel.EnterpriseServer.WebServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (3, N'FTP', 3, N'WebsitePanel.EnterpriseServer.FtpServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (4, N'Mail', 4, N'WebsitePanel.EnterpriseServer.MailServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (5, N'MsSQL2000', 8, N'WebsitePanel.EnterpriseServer.DatabaseServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (6, N'MySQL4', 11, N'WebsitePanel.EnterpriseServer.DatabaseServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (7, N'DNS', 16, N'WebsitePanel.EnterpriseServer.DnsServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (8, N'Statistics', 17, N'WebsitePanel.EnterpriseServer.StatisticsServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (9, N'SharePoint', 13, N'WebsitePanel.EnterpriseServer.SharePointServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (10, N'MsSQL2005', 9, N'WebsitePanel.EnterpriseServer.DatabaseServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (11, N'MySQL5', 12, N'WebsitePanel.EnterpriseServer.DatabaseServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (12, N'Exchange', 5, NULL) -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (13, N'Hosted Organizations', 6, NULL) -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (20, N'Hosted SharePoint', 14, N'WebsitePanel.EnterpriseServer.HostedSharePointServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (21, N'Hosted CRM', 15, NULL) -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (22, N'MsSQL2008', 10, N'WebsitePanel.EnterpriseServer.DatabaseServerController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (30, N'VPS', 18, NULL) -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (31, N'BlackBerry', 20, NULL) -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (32, N'OCS', 21, NULL) -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (33, N'ExchangeHostedEdition', 7, N'WebsitePanel.EnterpriseServer.ExchangeHostedEditionController') -GO -INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (40, N'VPSForPC', 19, NULL) -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackageDiskspace -( - @ActorID int, - @PackageID int -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -SELECT - RG.GroupID, - RG.GroupName, - ROUND(CONVERT(float, ISNULL(GD.Diskspace, 0)) / 1024 / 1024, 0) AS Diskspace, - ISNULL(GD.Diskspace, 0) AS DiskspaceBytes -FROM ResourceGroups AS RG -LEFT OUTER JOIN -( - SELECT - PD.GroupID, - SUM(ISNULL(PD.DiskSpace, 0)) AS Diskspace -- in megabytes - FROM PackagesTreeCache AS PT - INNER JOIN PackagesDiskspace AS PD ON PT.PackageID = PD.PackageID - INNER JOIN Packages AS P ON PT.PackageID = P.PackageID - INNER JOIN HostingPlanResources AS HPR ON PD.GroupID = HPR.GroupID - AND HPR.PlanID = P.PlanID AND HPR.CalculateDiskspace = 1 - WHERE PT.ParentPackageID = @PackageID - GROUP BY PD.GroupID -) AS GD ON RG.GroupID = GD.GroupID -WHERE GD.Diskspace <> 0 -ORDER BY RG.GroupOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackageBandwidth -( - @ActorID int, - @PackageID int, - @StartDate datetime, - @EndDate datetime -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -SELECT - RG.GroupID, - RG.GroupName, - ROUND(CONVERT(float, ISNULL(GB.BytesSent, 0)) / 1024 / 1024, 0) AS MegaBytesSent, - ROUND(CONVERT(float, ISNULL(GB.BytesReceived, 0)) / 1024 / 1024, 0) AS MegaBytesReceived, - ROUND(CONVERT(float, ISNULL(GB.BytesTotal, 0)) / 1024 / 1024, 0) AS MegaBytesTotal, - ISNULL(GB.BytesSent, 0) AS BytesSent, - ISNULL(GB.BytesReceived, 0) AS BytesReceived, - ISNULL(GB.BytesTotal, 0) AS BytesTotal -FROM ResourceGroups AS RG -LEFT OUTER JOIN -( - SELECT - PB.GroupID, - SUM(ISNULL(PB.BytesSent, 0)) AS BytesSent, - SUM(ISNULL(PB.BytesReceived, 0)) AS BytesReceived, - SUM(ISNULL(PB.BytesSent, 0)) + SUM(ISNULL(PB.BytesReceived, 0)) AS BytesTotal - FROM PackagesTreeCache AS PT - INNER JOIN PackagesBandwidth AS PB ON PT.PackageID = PB.PackageID - INNER JOIN Packages AS P ON PB.PackageID = P.PackageID - INNER JOIN HostingPlanResources AS HPR ON PB.GroupID = HPR.GroupID AND HPR.PlanID = P.PlanID - AND HPR.CalculateBandwidth = 1 - WHERE - PT.ParentPackageID = @PackageID - AND PB.LogDate BETWEEN @StartDate AND @EndDate - GROUP BY PB.GroupID -) AS GB ON RG.GroupID = GB.GroupID -WHERE GB.BytesTotal > 0 -ORDER BY RG.GroupOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetPackagesPaged] -( - @ActorID int, - @UserID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int -) -AS - --- build query and run it to the temporary table -DECLARE @sql nvarchar(2000) - -SET @sql = ' -DECLARE @HasUserRights bit -SET @HasUserRights = dbo.CheckActorUserRights(@ActorID, @UserID) - -DECLARE @EndRow int -SET @EndRow = @StartRow + @MaximumRows -DECLARE @Packages TABLE -( - ItemPosition int IDENTITY(1,1), - PackageID int -) -INSERT INTO @Packages (PackageID) -SELECT - P.PackageID -FROM Packages AS P ---INNER JOIN UsersTree(@UserID, 1) AS UT ON P.UserID = UT.UserID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID -INNER JOIN Servers AS S ON P.ServerID = S.ServerID -INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID -WHERE - P.UserID <> @UserID AND dbo.CheckUserParent(@UserID, P.UserID) = 1 - AND @HasUserRights = 1 ' - -IF @FilterColumn <> '' AND @FilterValue <> '' -SET @sql = @sql + ' AND ' + @FilterColumn + ' LIKE @FilterValue ' - -IF @SortColumn <> '' AND @SortColumn IS NOT NULL -SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' ' - -SET @sql = @sql + ' SELECT COUNT(PackageID) FROM @Packages; -SELECT - P.PackageID, - P.PackageName, - P.StatusID, - P.PurchaseDate, - - dbo.GetItemComments(P.PackageID, ''PACKAGE'', @ActorID) AS Comments, - - -- server - P.ServerID, - ISNULL(S.ServerName, ''None'') AS ServerName, - ISNULL(S.Comments, '''') AS ServerComments, - ISNULL(S.VirtualServer, 1) AS VirtualServer, - - -- hosting plan - P.PlanID, - HP.PlanName, - - -- user - P.UserID, - U.Username, - U.FirstName, - U.LastName, - U.FullName, - U.RoleID, - U.Email -FROM @Packages AS TP -INNER JOIN Packages AS P ON TP.PackageID = P.PackageID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID -INNER JOIN Servers AS S ON P.ServerID = S.ServerID -INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID -WHERE TP.ItemPosition BETWEEN @StartRow AND @EndRow' - -exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @UserID int, @FilterValue nvarchar(50), @ActorID int', -@StartRow, @MaximumRows, @UserID, @FilterValue, @ActorID - - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[Clusters]( - [ClusterID] [int] IDENTITY(1,1) NOT NULL, - [ClusterName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_Clusters] PRIMARY KEY CLUSTERED -( - [ClusterID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecCategory]( - [CategoryID] [int] IDENTITY(1,1) NOT NULL, - [CategoryName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [CategorySku] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [ParentID] [int] NULL, - [Level] [int] NOT NULL, - [ShortDescription] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - [FullDescription] [ntext] COLLATE Latin1_General_CI_AS NULL, - [Created] [datetime] NOT NULL, - [Modified] [datetime] NULL, - [CreatorID] [int] NOT NULL, - [ModifierID] [int] NULL, - [ItemOrder] [int] NULL, - [ResellerID] [int] NOT NULL, - CONSTRAINT [PK_EC_Categories] PRIMARY KEY CLUSTERED -( - [CategoryID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecServiceHandlersResponses]( - [ResponseID] [int] IDENTITY(1,1) NOT NULL, - [ServiceID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, - [InvoiceID] [int] NULL, - [TextResponse] [ntext] COLLATE Latin1_General_CI_AS NULL, - [Received] [datetime] NOT NULL, - [ErrorMessage] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ecServiceHandlersResponses] PRIMARY KEY CLUSTERED -( - [ResponseID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecProductTypeControls]( - [TypeID] [int] NOT NULL, - [ControlKey] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [ControlSrc] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ecProductTypeControls] PRIMARY KEY CLUSTERED -( - [TypeID] ASC, - [ControlKey] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecContracts]( - [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [CustomerID] [int] NULL, - [ResellerID] [int] NOT NULL, - [AccountName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [OpenedDate] [datetime] NOT NULL, - [Status] [int] NOT NULL, - [ClosedDate] [datetime] NULL, - [Balance] [money] NOT NULL, - [FirstName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [LastName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [Email] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [CompanyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, - [PropertyNames] [ntext] COLLATE Latin1_General_CI_AS NULL, - [PropertyValues] [ntext] COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ecContracts] PRIMARY KEY CLUSTERED -( - [ContractID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), - CONSTRAINT [UQ_ecContracts_ContractID] UNIQUE NONCLUSTERED -( - [ContractID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecPluginsProperties]( - [PluginID] [int] NOT NULL, - [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyValue] [nvarchar](512) COLLATE Latin1_General_CI_AS NULL, - [ResellerID] [int] NOT NULL, - CONSTRAINT [PK_ecPluginsSettings] PRIMARY KEY CLUSTERED -( - [PluginID] ASC, - [ResellerID] ASC, - [PropertyName] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecPaymentProfiles]( - [PropertyNames] [ntext] COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyValues] [ntext] COLLATE Latin1_General_CI_AS NOT NULL, - [Created] [datetime] NOT NULL, - [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ecPaymentProfiles] PRIMARY KEY CLUSTERED -( - [ContractID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecCustomersPayments]( - [PaymentID] [int] IDENTITY(1,1) NOT NULL, - [InvoiceID] [int] NOT NULL, - [TransactionID] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [Total] [money] NOT NULL, - [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, - [Created] [datetime] NOT NULL, - [MethodName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PluginID] [int] NOT NULL, - [StatusID] [int] NOT NULL, - [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_EC_Payments] PRIMARY KEY CLUSTERED -( - [PaymentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), - CONSTRAINT [IX_ecCustomersPayments] UNIQUE NONCLUSTERED -( - [TransactionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecInvoice]( - [InvoiceID] [int] IDENTITY(1,1) NOT NULL, - [Created] [datetime] NOT NULL, - [DueDate] [datetime] NOT NULL, - [Total] [money] NOT NULL, - [SubTotal] [money] NOT NULL, - [TaxAmount] [money] NULL, - [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, - [InvoiceNumber] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, - [TaxationID] [int] NULL, - [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_EC_Invoices] PRIMARY KEY CLUSTERED -( - [InvoiceID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecTaxations]( - [TaxationID] [int] IDENTITY(1,1) NOT NULL, - [ResellerID] [int] NOT NULL, - [Country] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, - [State] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [Description] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [TypeID] [int] NOT NULL, - [Amount] [decimal](5, 2) NOT NULL, - [Active] [bit] NOT NULL, - CONSTRAINT [PK_ecTaxations_1] PRIMARY KEY CLUSTERED -( - [TaxationID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO - -CREATE UNIQUE NONCLUSTERED INDEX [IX_ecTaxations] ON [dbo].[ecTaxations] -( - [ResellerID] ASC, - [Country] ASC, - [State] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecSystemTriggers]( - [TriggerID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [OwnerID] [int] NOT NULL, - [TriggerHandler] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, - [ReferenceID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [Namespace] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [Status] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ecSystemTriggers] PRIMARY KEY CLUSTERED -( - [TriggerID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION GetFullIPAddress -( - @ExternalIP varchar(24), - @InternalIP varchar(24) -) -RETURNS varchar(60) -AS -BEGIN -DECLARE @IP varchar(60) -SET @IP = '' - -IF @ExternalIP IS NOT NULL AND @ExternalIP <> '' -SET @IP = @ExternalIP - -IF @InternalIP IS NOT NULL AND @InternalIP <> '' -SET @IP = @IP + ' (' + @InternalIP + ')' - -RETURN @IP -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GO SET ANSI_NULLS ON @@ -11466,16 +10143,41 @@ GO -CREATE VIEW [dbo].[UsersDetailed] + +CREATE PROCEDURE [dbo].[GetAuditLogRecord] +( + @RecordID varchar(32) +) AS -SELECT U.UserID, U.RoleID, U.StatusID, U.OwnerID, U.Created, U.Changed, U.IsDemo, U.Comments, U.IsPeer, U.Username, U.FirstName, U.LastName, U.Email, - U.CompanyName, U.FirstName + ' ' + U.LastName AS FullName, UP.Username AS OwnerUsername, UP.FirstName AS OwnerFirstName, - UP.LastName AS OwnerLastName, UP.RoleID AS OwnerRoleID, UP.FirstName + ' ' + UP.LastName AS OwnerFullName, UP.Email AS OwnerEmail, UP.RoleID AS Expr1, - (SELECT COUNT(PackageID) AS Expr1 - FROM dbo.Packages AS P - WHERE (UserID = U.UserID)) AS PackagesNumber, U.EcommerceEnabled -FROM dbo.Users AS U LEFT OUTER JOIN - dbo.Users AS UP ON U.OwnerID = UP.UserID + +SELECT + L.RecordID, + L.SeverityID, + L.StartDate, + L.FinishDate, + L.ItemID, + L.SourceName, + L.TaskName, + L.ItemName, + L.ExecutionLog, + + ISNULL(L.UserID, 0) AS UserID, + L.Username, + U.FirstName, + U.LastName, + U.FullName, + ISNULL(U.RoleID, 0) AS RoleID, + U.Email +FROM AuditLog AS L +LEFT OUTER JOIN UsersDetailed AS U ON L.UserID = U.UserID +WHERE RecordID = @RecordID +RETURN + + + + + + @@ -11541,33 +10243,1254 @@ GO -CREATE PROCEDURE [dbo].[GetAuditLogRecord] + + + + +CREATE PROCEDURE UpdatePackageName ( - @RecordID varchar(32) + @ActorID int, + @PackageID int, + @PackageName nvarchar(300), + @PackageComments ntext ) AS +-- check rights +DECLARE @UserID int +SELECT @UserID = UserID FROM Packages +WHERE PackageID = @PackageID + +IF NOT(dbo.CheckActorPackageRights(@ActorID, @PackageID) = 1 + OR @UserID = @ActorID + OR EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND OwnerID = @UserID AND IsPeer = 1)) +RAISERROR('You are not allowed to access this package', 16, 1) + +-- update package +UPDATE Packages SET + PackageName = @PackageName, + PackageComments = @PackageComments +WHERE + PackageID = @PackageID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CanUpdatePackageDetails] +( + @ActorID int, + @PackageID int +) +RETURNS bit +AS +BEGIN + +IF @ActorID = -1 +RETURN 1 + +DECLARE @UserID int +SELECT @UserID = UserID FROM Packages +WHERE PackageID = @PackageID + +-- check if the user requests himself +IF @ActorID = @UserID +RETURN 1 + + +DECLARE @IsPeer bit +DECLARE @OwnerID int + +SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @IsPeer = 1 +SET @ActorID = @OwnerID + +IF @ActorID = @UserID +RETURN 1 + +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + IF @ParentUserID = @ActorID + RETURN 1 + + SET @TmpUserID = @ParentUserID +END + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ResourceGroups]( + [GroupID] [int] NOT NULL, + [GroupName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + [GroupOrder] [int] NOT NULL, + [GroupController] [nvarchar](1000) COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ResourceGroups] PRIMARY KEY CLUSTERED +( + [GroupID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (1, N'OS', 1, N'WebsitePanel.EnterpriseServer.OperatingSystemController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (2, N'Web', 2, N'WebsitePanel.EnterpriseServer.WebServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (3, N'FTP', 3, N'WebsitePanel.EnterpriseServer.FtpServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (4, N'Mail', 4, N'WebsitePanel.EnterpriseServer.MailServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (5, N'MsSQL2000', 8, N'WebsitePanel.EnterpriseServer.DatabaseServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (6, N'MySQL4', 11, N'WebsitePanel.EnterpriseServer.DatabaseServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (7, N'DNS', 16, N'WebsitePanel.EnterpriseServer.DnsServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (8, N'Statistics', 17, N'WebsitePanel.EnterpriseServer.StatisticsServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (9, N'SharePoint', 13, N'WebsitePanel.EnterpriseServer.SharePointServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (10, N'MsSQL2005', 9, N'WebsitePanel.EnterpriseServer.DatabaseServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (11, N'MySQL5', 12, N'WebsitePanel.EnterpriseServer.DatabaseServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (12, N'Exchange', 5, NULL) +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (13, N'Hosted Organizations', 6, NULL) +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (20, N'Hosted SharePoint', 14, N'WebsitePanel.EnterpriseServer.HostedSharePointServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (21, N'Hosted CRM', 15, NULL) +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (22, N'MsSQL2008', 10, N'WebsitePanel.EnterpriseServer.DatabaseServerController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (30, N'VPS', 18, NULL) +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (31, N'BlackBerry', 20, NULL) +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (32, N'OCS', 21, NULL) +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (33, N'ExchangeHostedEdition', 7, N'WebsitePanel.EnterpriseServer.ExchangeHostedEditionController') +GO +INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (40, N'VPSForPC', 19, NULL) +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackageDiskspace +( + @ActorID int, + @PackageID int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + SELECT - L.RecordID, - L.SeverityID, - L.StartDate, - L.FinishDate, - L.ItemID, - L.SourceName, - L.TaskName, - L.ItemName, - L.ExecutionLog, - - ISNULL(L.UserID, 0) AS UserID, - L.Username, + RG.GroupID, + RG.GroupName, + ROUND(CONVERT(float, ISNULL(GD.Diskspace, 0)) / 1024 / 1024, 0) AS Diskspace, + ISNULL(GD.Diskspace, 0) AS DiskspaceBytes +FROM ResourceGroups AS RG +LEFT OUTER JOIN +( + SELECT + PD.GroupID, + SUM(ISNULL(PD.DiskSpace, 0)) AS Diskspace -- in megabytes + FROM PackagesTreeCache AS PT + INNER JOIN PackagesDiskspace AS PD ON PT.PackageID = PD.PackageID + INNER JOIN Packages AS P ON PT.PackageID = P.PackageID + INNER JOIN HostingPlanResources AS HPR ON PD.GroupID = HPR.GroupID + AND HPR.PlanID = P.PlanID AND HPR.CalculateDiskspace = 1 + WHERE PT.ParentPackageID = @PackageID + GROUP BY PD.GroupID +) AS GD ON RG.GroupID = GD.GroupID +WHERE GD.Diskspace <> 0 +ORDER BY RG.GroupOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackageBandwidth +( + @ActorID int, + @PackageID int, + @StartDate datetime, + @EndDate datetime +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +SELECT + RG.GroupID, + RG.GroupName, + ROUND(CONVERT(float, ISNULL(GB.BytesSent, 0)) / 1024 / 1024, 0) AS MegaBytesSent, + ROUND(CONVERT(float, ISNULL(GB.BytesReceived, 0)) / 1024 / 1024, 0) AS MegaBytesReceived, + ROUND(CONVERT(float, ISNULL(GB.BytesTotal, 0)) / 1024 / 1024, 0) AS MegaBytesTotal, + ISNULL(GB.BytesSent, 0) AS BytesSent, + ISNULL(GB.BytesReceived, 0) AS BytesReceived, + ISNULL(GB.BytesTotal, 0) AS BytesTotal +FROM ResourceGroups AS RG +LEFT OUTER JOIN +( + SELECT + PB.GroupID, + SUM(ISNULL(PB.BytesSent, 0)) AS BytesSent, + SUM(ISNULL(PB.BytesReceived, 0)) AS BytesReceived, + SUM(ISNULL(PB.BytesSent, 0)) + SUM(ISNULL(PB.BytesReceived, 0)) AS BytesTotal + FROM PackagesTreeCache AS PT + INNER JOIN PackagesBandwidth AS PB ON PT.PackageID = PB.PackageID + INNER JOIN Packages AS P ON PB.PackageID = P.PackageID + INNER JOIN HostingPlanResources AS HPR ON PB.GroupID = HPR.GroupID AND HPR.PlanID = P.PlanID + AND HPR.CalculateBandwidth = 1 + WHERE + PT.ParentPackageID = @PackageID + AND PB.LogDate BETWEEN @StartDate AND @EndDate + GROUP BY PB.GroupID +) AS GB ON RG.GroupID = GB.GroupID +WHERE GB.BytesTotal > 0 +ORDER BY RG.GroupOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[OrganizationExists] +( + @OrganizationID nvarchar(10), + @Exists bit OUTPUT +) +AS +SET @Exists = 0 +IF EXISTS(SELECT * FROM Organizations WHERE OrganizationID = @OrganizationID) +BEGIN + SET @Exists = 1 +END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[OCSUsers]( + [OCSUserID] [int] IDENTITY(1,1) NOT NULL, + [AccountID] [int] NOT NULL, + [InstanceID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [CreatedDate] [datetime] NOT NULL, + [ModifiedDate] [datetime] NOT NULL, + CONSTRAINT [PK_OCSUsers] PRIMARY KEY CLUSTERED +( + [OCSUserID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + +CREATE PROCEDURE [dbo].[GetOCSUsersCount] +( + @ItemID int, + @Name nvarchar(400), + @Email nvarchar(400) + +) +AS + +IF (@Name IS NULL) +BEGIN + SET @Name = '%' +END + +IF (@Email IS NULL) +BEGIN + SET @Email = '%' +END + +SELECT + COUNT(ea.AccountID) +FROM + ExchangeAccounts ea +INNER JOIN + OCSUsers ou +ON + ea.AccountID = ou.AccountID +WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetOCSUsers] +( + @ItemID int, + @SortColumn nvarchar(40), + @SortDirection nvarchar(20), + @Name nvarchar(400), + @Email nvarchar(400), + @StartRow int, + @Count int +) +AS + +IF (@Name IS NULL) +BEGIN + SET @Name = '%' +END + +IF (@Email IS NULL) +BEGIN + SET @Email = '%' +END + +CREATE TABLE #TempOCSUsers +( + [ID] [int] IDENTITY(1,1) NOT NULL, + [AccountID] [int], + [ItemID] [int] NOT NULL, + [AccountName] [nvarchar](20) NOT NULL, + [DisplayName] [nvarchar](300) NOT NULL, + [InstanceID] [nvarchar](50) NOT NULL, + [PrimaryEmailAddress] [nvarchar](300) NULL, + [SamAccountName] [nvarchar](100) NULL +) + + +IF (@SortColumn = 'DisplayName') +BEGIN + INSERT INTO + #TempOCSUsers + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ou.InstanceID, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + OCSUsers ou + ON + ea.AccountID = ou.AccountID + WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + ORDER BY + ea.DisplayName +END +ELSE +BEGIN + INSERT INTO + #TempOCSUsers + SELECT + ea.AccountID, + ea.ItemID, + ea.AccountName, + ea.DisplayName, + ou.InstanceID, + ea.PrimaryEmailAddress, + ea.SamAccountName + FROM + ExchangeAccounts ea + INNER JOIN + OCSUsers ou + ON + ea.AccountID = ou.AccountID + WHERE + ea.ItemID = @ItemID AND ea.DisplayName LIKE @Name AND ea.PrimaryEmailAddress LIKE @Email + ORDER BY + ea.PrimaryEmailAddress +END + +DECLARE @RetCount int +SELECT @RetCount = COUNT(ID) FROM #TempOCSUsers + +IF (@SortDirection = 'ASC') +BEGIN + SELECT * FROM #TempOCSUsers + WHERE ID > @StartRow AND ID <= (@StartRow + @Count) +END +ELSE +BEGIN + IF (@SortColumn = 'DisplayName') + BEGIN + SELECT * FROM #TempOCSUsers + WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY DisplayName DESC + END + ELSE + BEGIN + SELECT * FROM #TempOCSUsers + WHERE ID >@RetCount - @Count - @StartRow AND ID <= @RetCount- @StartRow ORDER BY PrimaryEmailAddress DESC + END + +END + + +DROP TABLE #TempOCSUsers + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetPackagePrivateIPAddressesPaged] + @PackageID int, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +AS +BEGIN + + +-- start +DECLARE @condition nvarchar(700) +SET @condition = ' +SI.PackageID = @PackageID +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'PA.IPAddress ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT COUNT(PA.PrivateAddressID) +FROM dbo.PrivateIPAddresses AS PA +INNER JOIN dbo.ServiceItems AS SI ON PA.ItemID = SI.ItemID +WHERE ' + @condition + ' + +DECLARE @Addresses AS TABLE +( + PrivateAddressID int +); + +WITH TempItems AS ( + SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, + PA.PrivateAddressID + FROM dbo.PrivateIPAddresses AS PA + INNER JOIN dbo.ServiceItems AS SI ON PA.ItemID = SI.ItemID + WHERE ' + @condition + ' +) + +INSERT INTO @Addresses +SELECT PrivateAddressID FROM TempItems +WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows + +SELECT + PA.PrivateAddressID, + PA.IPAddress, + PA.ItemID, + SI.ItemName, + PA.IsPrimary +FROM @Addresses AS TA +INNER JOIN dbo.PrivateIPAddresses AS PA ON TA.PrivateAddressID = PA.PrivateAddressID +INNER JOIN dbo.ServiceItems AS SI ON PA.ItemID = SI.ItemID +' + +print @sql + +exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int', +@PackageID, @StartRow, @MaximumRows + +END + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetPackagesPaged] +( + @ActorID int, + @UserID int, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +) +AS + +-- build query and run it to the temporary table +DECLARE @sql nvarchar(2000) + +SET @sql = ' +DECLARE @HasUserRights bit +SET @HasUserRights = dbo.CheckActorUserRights(@ActorID, @UserID) + +DECLARE @EndRow int +SET @EndRow = @StartRow + @MaximumRows +DECLARE @Packages TABLE +( + ItemPosition int IDENTITY(1,1), + PackageID int +) +INSERT INTO @Packages (PackageID) +SELECT + P.PackageID +FROM Packages AS P +--INNER JOIN UsersTree(@UserID, 1) AS UT ON P.UserID = UT.UserID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +INNER JOIN Servers AS S ON P.ServerID = S.ServerID +INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID +WHERE + P.UserID <> @UserID AND dbo.CheckUserParent(@UserID, P.UserID) = 1 + AND @HasUserRights = 1 ' + +IF @FilterColumn <> '' AND @FilterValue <> '' +SET @sql = @sql + ' AND ' + @FilterColumn + ' LIKE @FilterValue ' + +IF @SortColumn <> '' AND @SortColumn IS NOT NULL +SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' ' + +SET @sql = @sql + ' SELECT COUNT(PackageID) FROM @Packages; +SELECT + P.PackageID, + P.PackageName, + P.StatusID, + P.PurchaseDate, + + dbo.GetItemComments(P.PackageID, ''PACKAGE'', @ActorID) AS Comments, + + -- server + P.ServerID, + ISNULL(S.ServerName, ''None'') AS ServerName, + ISNULL(S.Comments, '''') AS ServerComments, + ISNULL(S.VirtualServer, 1) AS VirtualServer, + + -- hosting plan + P.PlanID, + HP.PlanName, + + -- user + P.UserID, + U.Username, U.FirstName, U.LastName, U.FullName, - ISNULL(U.RoleID, 0) AS RoleID, + U.RoleID, U.Email -FROM AuditLog AS L -LEFT OUTER JOIN UsersDetailed AS U ON L.UserID = U.UserID -WHERE RecordID = @RecordID +FROM @Packages AS TP +INNER JOIN Packages AS P ON TP.PackageID = P.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +INNER JOIN Servers AS S ON P.ServerID = S.ServerID +INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID +WHERE TP.ItemPosition BETWEEN @StartRow AND @EndRow' + +exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @UserID int, @FilterValue nvarchar(50), @ActorID int', +@StartRow, @MaximumRows, @UserID, @FilterValue, @ActorID + + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetPackageIPAddresses] +( + @PackageID int, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int, + @PoolID int = 0, + @Recursive bit = 0 +) +AS +BEGIN + + +-- start +DECLARE @condition nvarchar(700) +SET @condition = ' +((@Recursive = 0 AND PA.PackageID = @PackageID) +OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, PA.PackageID) = 1)) +AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID) +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'IP.ExternalIP ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT COUNT(PA.PackageAddressID) +FROM dbo.PackageIPAddresses PA +INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID +INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID +INNER JOIN dbo.Users U ON U.UserID = P.UserID +LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID +WHERE ' + @condition + ' + +DECLARE @Addresses AS TABLE +( + PackageAddressID int +); + +WITH TempItems AS ( + SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, + PA.PackageAddressID + FROM dbo.PackageIPAddresses PA + INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID + INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID + INNER JOIN dbo.Users U ON U.UserID = P.UserID + LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID + WHERE ' + @condition + ' +) + +INSERT INTO @Addresses +SELECT PackageAddressID FROM TempItems +WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows + +SELECT + PA.PackageAddressID, + PA.AddressID, + IP.ExternalIP, + IP.InternalIP, + IP.SubnetMask, + IP.DefaultGateway, + PA.ItemID, + SI.ItemName, + PA.PackageID, + P.PackageName, + P.UserID, + U.UserName, + PA.IsPrimary +FROM @Addresses AS TA +INNER JOIN dbo.PackageIPAddresses AS PA ON TA.PackageAddressID = PA.PackageAddressID +INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID +INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID +INNER JOIN dbo.Users U ON U.UserID = P.UserID +LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID +' + +print @sql + +exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit, @PoolID int', +@PackageID, @StartRow, @MaximumRows, @Recursive, @PoolID + +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[PackageSettings]( + [PackageID] [int] NOT NULL, + [SettingsName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValue] [ntext] COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_PackageSettings] PRIMARY KEY CLUSTERED +( + [PackageID] ASC, + [SettingsName] ASC, + [PropertyName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdatePackageSettings +( + @ActorID int, + @PackageID int, + @SettingsName nvarchar(50), + @Xml ntext +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- delete old properties +BEGIN TRAN +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + +-- Execute a SELECT statement that uses the OPENXML rowset provider. +DELETE FROM PackageSettings +WHERE PackageID = @PackageID AND SettingsName = @SettingsName + +INSERT INTO PackageSettings +( + PackageID, + SettingsName, + PropertyName, + PropertyValue +) +SELECT + @PackageID, + @SettingsName, + PropertyName, + PropertyValue +FROM OPENXML(@idoc, '/properties/property',1) WITH +( + PropertyName nvarchar(50) '@name', + PropertyValue ntext '@value' +) as PV + +-- remove document +exec sp_xml_removedocument @idoc + +COMMIT TRAN + RETURN @@ -11587,6 +11510,143 @@ RETURN + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackageSettings +( + @ActorID int, + @PackageID int, + @SettingsName nvarchar(50) +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @ParentPackageID int, @TmpPackageID int +SET @TmpPackageID = @PackageID + +WHILE 10 = 10 +BEGIN + IF @TmpPackageID < 2 -- system package + BEGIN + SELECT + @TmpPackageID AS PackageID, + 'Dump' AS PropertyName, + '' AS PropertyValue + END + ELSE + BEGIN + -- user package + IF EXISTS + ( + SELECT PropertyName FROM PackageSettings + WHERE SettingsName = @SettingsName AND PackageID = @TmpPackageID + ) + BEGIN + SELECT + PackageID, + PropertyName, + PropertyValue + FROM + PackageSettings + WHERE + PackageID = @TmpPackageID AND + SettingsName = @SettingsName + + BREAK + END + END + + + SET @ParentPackageID = NULL --reset var + + -- get owner + SELECT + @ParentPackageID = ParentPackageID + FROM Packages + WHERE PackageID = @TmpPackageID + + IF @ParentPackageID IS NULL -- the last parent + BREAK + + SET @TmpPackageID = @ParentPackageID +END + +RETURN + + + + + + + + + + + + + + + + + + + + @@ -11747,275 +11807,6 @@ RETURN - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[PackageSettings]( - [PackageID] [int] NOT NULL, - [SettingsName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyValue] [ntext] COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_PackageSettings] PRIMARY KEY CLUSTERED -( - [PackageID] ASC, - [SettingsName] ASC, - [PropertyName] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdatePackageSettings -( - @ActorID int, - @PackageID int, - @SettingsName nvarchar(50), - @Xml ntext -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- delete old properties -BEGIN TRAN -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @xml - --- Execute a SELECT statement that uses the OPENXML rowset provider. -DELETE FROM PackageSettings -WHERE PackageID = @PackageID AND SettingsName = @SettingsName - -INSERT INTO PackageSettings -( - PackageID, - SettingsName, - PropertyName, - PropertyValue -) -SELECT - @PackageID, - @SettingsName, - PropertyName, - PropertyValue -FROM OPENXML(@idoc, '/properties/property',1) WITH -( - PropertyName nvarchar(50) '@name', - PropertyValue ntext '@value' -) as PV - --- remove document -exec sp_xml_removedocument @idoc - -COMMIT TRAN - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackageSettings -( - @ActorID int, - @PackageID int, - @SettingsName nvarchar(50) -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @ParentPackageID int, @TmpPackageID int -SET @TmpPackageID = @PackageID - -WHILE 10 = 10 -BEGIN - IF @TmpPackageID < 2 -- system package - BEGIN - SELECT - @TmpPackageID AS PackageID, - 'Dump' AS PropertyName, - '' AS PropertyValue - END - ELSE - BEGIN - -- user package - IF EXISTS - ( - SELECT PropertyName FROM PackageSettings - WHERE SettingsName = @SettingsName AND PackageID = @TmpPackageID - ) - BEGIN - SELECT - PackageID, - PropertyName, - PropertyValue - FROM - PackageSettings - WHERE - PackageID = @TmpPackageID AND - SettingsName = @SettingsName - - BREAK - END - END - - - SET @ParentPackageID = NULL --reset var - - -- get owner - SELECT - @ParentPackageID = ParentPackageID - FROM Packages - WHERE PackageID = @TmpPackageID - - IF @ParentPackageID IS NULL -- the last parent - BREAK - - SET @TmpPackageID = @ParentPackageID -END - -RETURN - - - - - - - - - - - - - - - - - - - - @@ -12173,35 +11964,7 @@ RETURN -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecProductType]( - [TypeID] [int] IDENTITY(1,1) NOT NULL, - [TypeName] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - [ProvisioningController] [nvarchar](512) COLLATE Latin1_General_CI_AS NULL, - [Created] [datetime] NOT NULL, - [NativeItemType] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, - [ServiceItemType] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_EC_ProductTypes] PRIMARY KEY CLUSTERED -( - [TypeID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -GO -SET IDENTITY_INSERT [dbo].[ecProductType] ON - -GO -INSERT [dbo].[ecProductType] ([TypeID], [TypeName], [ProvisioningController], [Created], [NativeItemType], [ServiceItemType]) VALUES (1, N'Hosting Plan', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingPackageController,WebsitePanel.EnterpriseServer', CAST(0x0000993E010F2F0C AS DateTime), N'WebsitePanel.Ecommerce.EnterpriseServer.HostingPlan, WebsitePanel.EnterpriseServer', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingPackageSvc, WebsitePanel.EnterpriseServer') -GO -INSERT [dbo].[ecProductType] ([TypeID], [TypeName], [ProvisioningController], [Created], [NativeItemType], [ServiceItemType]) VALUES (2, N'Hosting Add-On', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingAddonController,WebsitePanel.EnterpriseServer', CAST(0x0000993E010F2F0C AS DateTime), N'WebsitePanel.Ecommerce.EnterpriseServer.HostingAddon, WebsitePanel.EnterpriseServer', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingAddonSvc, WebsitePanel.EnterpriseServer') -GO -INSERT [dbo].[ecProductType] ([TypeID], [TypeName], [ProvisioningController], [Created], [NativeItemType], [ServiceItemType]) VALUES (3, N'Domain Name', N'WebsitePanel.Ecommerce.EnterpriseServer.DomainNameController,WebsitePanel.EnterpriseServer', CAST(0x0000993E010F2F0C AS DateTime), N'WebsitePanel.Ecommerce.EnterpriseServer.DomainName, WebsitePanel.EnterpriseServer', N'WebsitePanel.Ecommerce.EnterpriseServer.DomainNameSvc, WebsitePanel.EnterpriseServer') -GO -SET IDENTITY_INSERT [dbo].[ecProductType] OFF GO SET ANSI_NULLS ON GO @@ -12356,343 +12119,6 @@ RETURN - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[SystemSettings]( - [SettingsName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyValue] [ntext] COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_SystemSettings] PRIMARY KEY CLUSTERED -( - [SettingsName] ASC, - [PropertyName] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'BackupSettings', N'BackupsPath', N'c:\HostingBackups') -GO -INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpEnableSsl', N'False') -GO -INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpPort', N'25') -GO -INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpServer', N'127.0.0.1') -GO -INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpUsername', N'postmaster') -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[SSLCertificates]( - [ID] [int] IDENTITY(1,1) NOT NULL, - [UserID] [int] NOT NULL, - [SiteID] [int] NOT NULL, - [FriendlyName] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - [Hostname] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - [DistinguishedName] [nvarchar](500) COLLATE Latin1_General_CI_AS NULL, - [CSR] [ntext] COLLATE Latin1_General_CI_AS NULL, - [CSRLength] [int] NULL, - [Certificate] [ntext] COLLATE Latin1_General_CI_AS NULL, - [Hash] [ntext] COLLATE Latin1_General_CI_AS NULL, - [Installed] [bit] NULL, - [IsRenewal] [bit] NULL, - [ValidFrom] [datetime] NULL, - [ExpiryDate] [datetime] NULL, - [SerialNumber] [nvarchar](250) COLLATE Latin1_General_CI_AS NULL, - [Pfx] [ntext] COLLATE Latin1_General_CI_AS NULL, - [PreviousId] [int] NULL -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - -CREATE PROCEDURE [dbo].[GetSSLCertificateByID] -( - @ActorID int, - @ID int -) -AS - -SELECT - [ID], [UserID], [SiteID], [Hostname], [FriendlyName], [CSR], [Certificate], [Hash], [Installed], [IsRenewal], [PreviousId] -FROM - [dbo].[SSLCertificates] -INNER JOIN - [dbo].[ServiceItems] AS [SI] ON [SSLCertificates].[SiteID] = [SI].[ItemID] -WHERE - [ID] = @ID AND [dbo].CheckActorPackageRights(@ActorID, [SI].[PackageID]) = 1 - -RETURN - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - -CREATE PROCEDURE [dbo].[GetSiteCert] -( - @ActorID int, - @ID int -) -AS - -SELECT - [UserID], [SiteID], [Hostname], [CSR], [Certificate], [Hash], [Installed], [IsRenewal] -FROM - [dbo].[SSLCertificates] -INNER JOIN - [dbo].[ServiceItems] AS [SI] ON [SSLCertificates].[SiteID] = [SI].[ItemID] -WHERE - [SiteID] = @ID AND [Installed] = 1 AND [dbo].CheckActorPackageRights(@ActorID, [SI].[PackageID]) = 1 -RETURN - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - -CREATE PROCEDURE [dbo].[GetPendingSSLForWebsite] -( - @ActorID int, - @PackageID int, - @websiteid int, - @Recursive bit = 1 -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - -SELECT - [ID], [UserID], [SiteID], [Hostname], [CSR], [Certificate], [Hash], [Installed] -FROM - [dbo].[SSLCertificates] -WHERE - @websiteid = 2 AND [Installed] = 0 AND [IsRenewal] = 0 - -RETURN - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - -CREATE PROCEDURE [dbo].[GetCertificatesForSite] -( - @ActorID int, - @PackageID int, - @websiteid int -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - -SELECT - [ID], [UserID], [SiteID], [FriendlyName], [Hostname], [DistinguishedName], - [CSR], [CSRLength], [ValidFrom], [ExpiryDate], [Installed], [IsRenewal], - [PreviousId], [SerialNumber] -FROM - [dbo].[SSLCertificates] -WHERE - [SiteID] = @websiteid -RETURN - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - -CREATE PROCEDURE [dbo].[DeleteCertificate] -( - @ActorID int, - @PackageID int, - @id int - -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - --- insert record -DELETE FROM - [dbo].[SSLCertificates] -WHERE - [ID] = @id - -RETURN - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - -CREATE PROCEDURE [dbo].[CompleteSSLRequest] -( - @ActorID int, - @PackageID int, - @ID int, - @Certificate ntext, - @SerialNumber nvarchar(250), - @Hash ntext, - @DistinguishedName nvarchar(500), - @ValidFrom datetime, - @ExpiryDate datetime - -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - --- insert record -UPDATE - [dbo].[SSLCertificates] -SET - [Certificate] = @Certificate, - [Installed] = 1, - [SerialNumber] = @SerialNumber, - [DistinguishedName] = @DistinguishedName, - [Hash] = @Hash, - [ValidFrom] = @ValidFrom, - [ExpiryDate] = @ExpiryDate -WHERE - [ID] = @ID; - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - -CREATE PROCEDURE [dbo].[AddSSLRequest] -( - @SSLID int OUTPUT, - @ActorID int, - @PackageID int, - @UserID int, - @WebSiteID int, - @FriendlyName nvarchar(255), - @HostName nvarchar(255), - @CSR ntext, - @CSRLength int, - @DistinguishedName nvarchar(500), - @IsRenewal bit = 0, - @PreviousId int = NULL - -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - --- insert record -INSERT INTO [dbo].[SSLCertificates] - ([UserID], [SiteID], [FriendlyName], [Hostname], [DistinguishedName], [CSR], [CSRLength], [IsRenewal], [PreviousId]) -VALUES - (@UserID, @WebSiteID, @FriendlyName, @HostName, @DistinguishedName, @CSR, @CSRLength, @IsRenewal, @PreviousId) - -SET @SSLID = SCOPE_IDENTITY() -RETURN - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - -CREATE PROCEDURE [dbo].[AddPFX] -( - @ActorID int, - @PackageID int, - @UserID int, - @WebSiteID int, - @FriendlyName nvarchar(255), - @HostName nvarchar(255), - @CSRLength int, - @DistinguishedName nvarchar(500), - @SerialNumber nvarchar(250), - @ValidFrom datetime, - @ExpiryDate datetime - -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -BEGIN - RAISERROR('You are not allowed to access this package', 16, 1) - RETURN -END - --- insert record -INSERT INTO [dbo].[SSLCertificates] - ([UserID], [SiteID], [FriendlyName], [Hostname], [DistinguishedName], [CSRLength], [SerialNumber], [ValidFrom], [ExpiryDate], [Installed]) -VALUES - (@UserID, @WebSiteID, @FriendlyName, @HostName, @DistinguishedName, @CSRLength, @SerialNumber, @ValidFrom, @ExpiryDate, 1) - -RETURN @@ -13404,6 +12830,267 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO +CREATE TABLE [dbo].[Clusters]( + [ClusterID] [int] IDENTITY(1,1) NOT NULL, + [ClusterName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_Clusters] PRIMARY KEY CLUSTERED +( + [ClusterID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecProductTypeControls]( + [TypeID] [int] NOT NULL, + [ControlKey] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [ControlSrc] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ecProductTypeControls] PRIMARY KEY CLUSTERED +( + [TypeID] ASC, + [ControlKey] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecProductType]( + [TypeID] [int] IDENTITY(1,1) NOT NULL, + [TypeName] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + [ProvisioningController] [nvarchar](512) COLLATE Latin1_General_CI_AS NULL, + [Created] [datetime] NOT NULL, + [NativeItemType] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, + [ServiceItemType] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_EC_ProductTypes] PRIMARY KEY CLUSTERED +( + [TypeID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET IDENTITY_INSERT [dbo].[ecProductType] ON + +GO +INSERT [dbo].[ecProductType] ([TypeID], [TypeName], [ProvisioningController], [Created], [NativeItemType], [ServiceItemType]) VALUES (1, N'Hosting Plan', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingPackageController,WebsitePanel.EnterpriseServer', CAST(0x0000993E010F2F0C AS DateTime), N'WebsitePanel.Ecommerce.EnterpriseServer.HostingPlan, WebsitePanel.EnterpriseServer', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingPackageSvc, WebsitePanel.EnterpriseServer') +GO +INSERT [dbo].[ecProductType] ([TypeID], [TypeName], [ProvisioningController], [Created], [NativeItemType], [ServiceItemType]) VALUES (2, N'Hosting Add-On', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingAddonController,WebsitePanel.EnterpriseServer', CAST(0x0000993E010F2F0C AS DateTime), N'WebsitePanel.Ecommerce.EnterpriseServer.HostingAddon, WebsitePanel.EnterpriseServer', N'WebsitePanel.Ecommerce.EnterpriseServer.HostingAddonSvc, WebsitePanel.EnterpriseServer') +GO +INSERT [dbo].[ecProductType] ([TypeID], [TypeName], [ProvisioningController], [Created], [NativeItemType], [ServiceItemType]) VALUES (3, N'Domain Name', N'WebsitePanel.Ecommerce.EnterpriseServer.DomainNameController,WebsitePanel.EnterpriseServer', CAST(0x0000993E010F2F0C AS DateTime), N'WebsitePanel.Ecommerce.EnterpriseServer.DomainName, WebsitePanel.EnterpriseServer', N'WebsitePanel.Ecommerce.EnterpriseServer.DomainNameSvc, WebsitePanel.EnterpriseServer') +GO +SET IDENTITY_INSERT [dbo].[ecProductType] OFF +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecCategory]( + [CategoryID] [int] IDENTITY(1,1) NOT NULL, + [CategoryName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [CategorySku] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [ParentID] [int] NULL, + [Level] [int] NOT NULL, + [ShortDescription] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + [FullDescription] [ntext] COLLATE Latin1_General_CI_AS NULL, + [Created] [datetime] NOT NULL, + [Modified] [datetime] NULL, + [CreatorID] [int] NOT NULL, + [ModifierID] [int] NULL, + [ItemOrder] [int] NULL, + [ResellerID] [int] NOT NULL, + CONSTRAINT [PK_EC_Categories] PRIMARY KEY CLUSTERED +( + [CategoryID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecTaxations]( + [TaxationID] [int] IDENTITY(1,1) NOT NULL, + [ResellerID] [int] NOT NULL, + [Country] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, + [State] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [Description] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [TypeID] [int] NOT NULL, + [Amount] [decimal](5, 2) NOT NULL, + [Active] [bit] NOT NULL, + CONSTRAINT [PK_ecTaxations_1] PRIMARY KEY CLUSTERED +( + [TaxationID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO + +CREATE UNIQUE NONCLUSTERED INDEX [IX_ecTaxations] ON [dbo].[ecTaxations] +( + [ResellerID] ASC, + [Country] ASC, + [State] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecSystemTriggers]( + [TriggerID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [OwnerID] [int] NOT NULL, + [TriggerHandler] [nvarchar](512) COLLATE Latin1_General_CI_AS NOT NULL, + [ReferenceID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [Namespace] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [Status] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ecSystemTriggers] PRIMARY KEY CLUSTERED +( + [TriggerID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecContracts]( + [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [CustomerID] [int] NULL, + [ResellerID] [int] NOT NULL, + [AccountName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [OpenedDate] [datetime] NOT NULL, + [Status] [int] NOT NULL, + [ClosedDate] [datetime] NULL, + [Balance] [money] NOT NULL, + [FirstName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [LastName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [Email] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [CompanyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, + [PropertyNames] [ntext] COLLATE Latin1_General_CI_AS NULL, + [PropertyValues] [ntext] COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ecContracts] PRIMARY KEY CLUSTERED +( + [ContractID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [UQ_ecContracts_ContractID] UNIQUE NONCLUSTERED +( + [ContractID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecServiceHandlersResponses]( + [ResponseID] [int] IDENTITY(1,1) NOT NULL, + [ServiceID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, + [InvoiceID] [int] NULL, + [TextResponse] [ntext] COLLATE Latin1_General_CI_AS NULL, + [Received] [datetime] NOT NULL, + [ErrorMessage] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ecServiceHandlersResponses] PRIMARY KEY CLUSTERED +( + [ResponseID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecPluginsProperties]( + [PluginID] [int] NOT NULL, + [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValue] [nvarchar](512) COLLATE Latin1_General_CI_AS NULL, + [ResellerID] [int] NOT NULL, + CONSTRAINT [PK_ecPluginsSettings] PRIMARY KEY CLUSTERED +( + [PluginID] ASC, + [ResellerID] ASC, + [PropertyName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecPaymentProfiles]( + [PropertyNames] [ntext] COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValues] [ntext] COLLATE Latin1_General_CI_AS NOT NULL, + [Created] [datetime] NOT NULL, + [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ecPaymentProfiles] PRIMARY KEY CLUSTERED +( + [ContractID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecCustomersPayments]( + [PaymentID] [int] IDENTITY(1,1) NOT NULL, + [InvoiceID] [int] NOT NULL, + [TransactionID] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [Total] [money] NOT NULL, + [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, + [Created] [datetime] NOT NULL, + [MethodName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PluginID] [int] NOT NULL, + [StatusID] [int] NOT NULL, + [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_EC_Payments] PRIMARY KEY CLUSTERED +( + [PaymentID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [IX_ecCustomersPayments] UNIQUE NONCLUSTERED +( + [TransactionID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecInvoice]( + [InvoiceID] [int] IDENTITY(1,1) NOT NULL, + [Created] [datetime] NOT NULL, + [DueDate] [datetime] NOT NULL, + [Total] [money] NOT NULL, + [SubTotal] [money] NOT NULL, + [TaxAmount] [money] NULL, + [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, + [InvoiceNumber] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, + [TaxationID] [int] NULL, + [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_EC_Invoices] PRIMARY KEY CLUSTERED +( + [InvoiceID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO @@ -13473,6 +13160,7 @@ RETURN + GO @@ -13480,27 +13168,90 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[Versions]( - [DatabaseVersion] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [BuildDate] [datetime] NOT NULL, - CONSTRAINT [PK_Versions] PRIMARY KEY CLUSTERED -( - [DatabaseVersion] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -GO -INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.0', CAST(0x00009D5400000000 AS DateTime)) -GO -INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.0.1.0', CAST(0x00009DB500D453BD AS DateTime)) -GO -INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.0.2.0', CAST(0x00009DE600000000 AS DateTime)) -GO -INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.1.0.9', CAST(0x00009E3000000000 AS DateTime)) -GO -INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.1.2.13', CAST(0x00009EC600000000 AS DateTime)) -GO -INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.2.0.38', CAST(0x00009F1F00000000 AS DateTime)) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION GetFullIPAddress +( + @ExternalIP varchar(24), + @InternalIP varchar(24) +) +RETURNS varchar(60) +AS +BEGIN +DECLARE @IP varchar(60) +SET @IP = '' + +IF @ExternalIP IS NOT NULL AND @ExternalIP <> '' +SET @IP = @ExternalIP + +IF @InternalIP IS NOT NULL AND @InternalIP <> '' +SET @IP = @IP + ' (' + @InternalIP + ')' + +RETURN @IP +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GO SET ANSI_NULLS ON GO @@ -13647,6 +13398,7 @@ RETURN + GO @@ -13654,56 +13406,377 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[ScheduleTaskViewConfiguration]( - [TaskID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, - [ConfigurationID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, - [Environment] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, - [Description] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ScheduleTaskViewConfiguration] PRIMARY KEY CLUSTERED +CREATE TABLE [dbo].[Versions]( + [DatabaseVersion] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [BuildDate] [datetime] NOT NULL, + CONSTRAINT [PK_Versions] PRIMARY KEY CLUSTERED ( - [ConfigurationID] ASC, - [TaskID] ASC + [DatabaseVersion] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_ACTIVATE_PAID_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.0', CAST(0x00009D5400000000 AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_BACKUP', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/Backup.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.0.1.0', CAST(0x00009DB500D453BD AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/BackupDatabase.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.0.2.0', CAST(0x00009DE600000000 AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CALCULATE_EXCHANGE_DISKSPACE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.1.0.9', CAST(0x00009E3000000000 AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CALCULATE_PACKAGES_BANDWIDTH', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.1.2.13', CAST(0x00009EC600000000 AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CALCULATE_PACKAGES_DISKSPACE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.2.0.38', CAST(0x00009F1F00000000 AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CANCEL_OVERDUE_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (N'1.2.1.6', CAST(0x0000A02300000000 AS DateTime)) GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/CheckWebsite.ascx') +SET ANSI_NULLS ON GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/SendFilesViaFtp.ascx') +SET QUOTED_IDENTIFIER ON GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_GENERATE_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +CREATE TABLE [dbo].[SystemSettings]( + [SettingsName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValue] [ntext] COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_SystemSettings] PRIMARY KEY CLUSTERED +( + [SettingsName] ASC, + [PropertyName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/HostedSolutionReport.ascx') +INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'BackupSettings', N'BackupsPath', N'c:\HostingBackups') GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/NotifyOverusedDatabases.ascx') +INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpEnableSsl', N'False') GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_RUN_PAYMENT_QUEUE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpPort', N'25') GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/ExecuteSystemCommand.ascx') +INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpServer', N'127.0.0.1') GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/SendEmailNotification.ascx') +INSERT [dbo].[SystemSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SmtpSettings', N'SmtpUsername', N'postmaster') GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_SUSPEND_OVERDUE_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +SET ANSI_NULLS ON GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/SuspendOverusedSpaces.ascx') +SET QUOTED_IDENTIFIER ON GO -INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_ZIP_FILES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/ZipFiles.ascx') +CREATE TABLE [dbo].[SSLCertificates]( + [ID] [int] IDENTITY(1,1) NOT NULL, + [UserID] [int] NOT NULL, + [SiteID] [int] NOT NULL, + [FriendlyName] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + [Hostname] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + [DistinguishedName] [nvarchar](500) COLLATE Latin1_General_CI_AS NULL, + [CSR] [ntext] COLLATE Latin1_General_CI_AS NULL, + [CSRLength] [int] NULL, + [Certificate] [ntext] COLLATE Latin1_General_CI_AS NULL, + [Hash] [ntext] COLLATE Latin1_General_CI_AS NULL, + [Installed] [bit] NULL, + [IsRenewal] [bit] NULL, + [ValidFrom] [datetime] NULL, + [ExpiryDate] [datetime] NULL, + [SerialNumber] [nvarchar](250) COLLATE Latin1_General_CI_AS NULL, + [Pfx] [ntext] COLLATE Latin1_General_CI_AS NULL, + [PreviousId] [int] NULL +) + GO -SET ANSI_NULLS OFF +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + +CREATE PROCEDURE [dbo].[GetSSLCertificateByID] +( + @ActorID int, + @ID int +) +AS + +SELECT + [ID], [UserID], [SiteID], [Hostname], [FriendlyName], [CSR], [Certificate], [Hash], [Installed], [IsRenewal], [PreviousId] +FROM + [dbo].[SSLCertificates] +INNER JOIN + [dbo].[ServiceItems] AS [SI] ON [SSLCertificates].[SiteID] = [SI].[ItemID] +WHERE + [ID] = @ID AND [dbo].CheckActorPackageRights(@ActorID, [SI].[PackageID]) = 1 + +RETURN + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + +CREATE PROCEDURE [dbo].[GetSiteCert] +( + @ActorID int, + @ID int +) +AS + +SELECT + [UserID], [SiteID], [Hostname], [CSR], [Certificate], [Hash], [Installed], [IsRenewal] +FROM + [dbo].[SSLCertificates] +INNER JOIN + [dbo].[ServiceItems] AS [SI] ON [SSLCertificates].[SiteID] = [SI].[ItemID] +WHERE + [SiteID] = @ID AND [Installed] = 1 AND [dbo].CheckActorPackageRights(@ActorID, [SI].[PackageID]) = 1 +RETURN + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + +CREATE PROCEDURE [dbo].[GetPendingSSLForWebsite] +( + @ActorID int, + @PackageID int, + @websiteid int, + @Recursive bit = 1 +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +SELECT + [ID], [UserID], [SiteID], [Hostname], [CSR], [Certificate], [Hash], [Installed] +FROM + [dbo].[SSLCertificates] +WHERE + @websiteid = 2 AND [Installed] = 0 AND [IsRenewal] = 0 + +RETURN + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + +CREATE PROCEDURE [dbo].[GetCertificatesForSite] +( + @ActorID int, + @PackageID int, + @websiteid int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +SELECT + [ID], [UserID], [SiteID], [FriendlyName], [Hostname], [DistinguishedName], + [CSR], [CSRLength], [ValidFrom], [ExpiryDate], [Installed], [IsRenewal], + [PreviousId], [SerialNumber] +FROM + [dbo].[SSLCertificates] +WHERE + [SiteID] = @websiteid +RETURN + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + +CREATE PROCEDURE [dbo].[DeleteCertificate] +( + @ActorID int, + @PackageID int, + @id int + +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +-- insert record +DELETE FROM + [dbo].[SSLCertificates] +WHERE + [ID] = @id + +RETURN + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + +CREATE PROCEDURE [dbo].[CompleteSSLRequest] +( + @ActorID int, + @PackageID int, + @ID int, + @Certificate ntext, + @SerialNumber nvarchar(250), + @Hash ntext, + @DistinguishedName nvarchar(500), + @ValidFrom datetime, + @ExpiryDate datetime + +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +-- insert record +UPDATE + [dbo].[SSLCertificates] +SET + [Certificate] = @Certificate, + [Installed] = 1, + [SerialNumber] = @SerialNumber, + [DistinguishedName] = @DistinguishedName, + [Hash] = @Hash, + [ValidFrom] = @ValidFrom, + [ExpiryDate] = @ExpiryDate +WHERE + [ID] = @ID; + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + +CREATE PROCEDURE [dbo].[AddSSLRequest] +( + @SSLID int OUTPUT, + @ActorID int, + @PackageID int, + @UserID int, + @WebSiteID int, + @FriendlyName nvarchar(255), + @HostName nvarchar(255), + @CSR ntext, + @CSRLength int, + @DistinguishedName nvarchar(500), + @IsRenewal bit = 0, + @PreviousId int = NULL + +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +-- insert record +INSERT INTO [dbo].[SSLCertificates] + ([UserID], [SiteID], [FriendlyName], [Hostname], [DistinguishedName], [CSR], [CSRLength], [IsRenewal], [PreviousId]) +VALUES + (@UserID, @WebSiteID, @FriendlyName, @HostName, @DistinguishedName, @CSR, @CSRLength, @IsRenewal, @PreviousId) + +SET @SSLID = SCOPE_IDENTITY() +RETURN + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + +CREATE PROCEDURE [dbo].[AddPFX] +( + @ActorID int, + @PackageID int, + @UserID int, + @WebSiteID int, + @FriendlyName nvarchar(255), + @HostName nvarchar(255), + @CSRLength int, + @DistinguishedName nvarchar(500), + @SerialNumber nvarchar(250), + @ValidFrom datetime, + @ExpiryDate datetime + +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +BEGIN + RAISERROR('You are not allowed to access this package', 16, 1) + RETURN +END + +-- insert record +INSERT INTO [dbo].[SSLCertificates] + ([UserID], [SiteID], [FriendlyName], [Hostname], [DistinguishedName], [CSRLength], [SerialNumber], [ValidFrom], [ExpiryDate], [Installed]) +VALUES + (@UserID, @WebSiteID, @FriendlyName, @HostName, @DistinguishedName, @CSRLength, @SerialNumber, @ValidFrom, @ExpiryDate, 1) + +RETURN + + + + +GO +SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO @@ -13737,36 +13810,47 @@ GO - - -CREATE FUNCTION dbo.UsersTree -( - @OwnerID int, - @Recursive bit = 0 -) -RETURNS @T TABLE (UserID int) +CREATE PROCEDURE [dbo].[SetSystemSettings] + @SettingsName nvarchar(50), + @Xml ntext AS BEGIN +/* +XML Format: + + + +*/ + SET NOCOUNT ON; - IF @Recursive = 1 - BEGIN - -- insert "root" user - INSERT @T VALUES(@OwnerID) + BEGIN TRAN + DECLARE @idoc int; + --Create an internal representation of the XML document. + EXEC sp_xml_preparedocument @idoc OUTPUT, @xml; - -- get all children recursively - WHILE @@ROWCOUNT > 0 - BEGIN - INSERT @T SELECT UserID - FROM Users - WHERE OwnerID IN(SELECT UserID from @T) AND UserID NOT IN(SELECT UserID FROM @T) - END - END - ELSE - BEGIN - INSERT @T VALUES(@OwnerID) - END - -RETURN + DELETE FROM [dbo].[SystemSettings] WHERE [SettingsName] = @SettingsName; + + INSERT INTO [dbo].[SystemSettings] + ( + [SettingsName], + [PropertyName], + [PropertyValue] + ) + SELECT + @SettingsName, + [XML].[PropertyName], + [XML].[PropertyValue] + FROM OPENXML(@idoc, '/properties/property',1) WITH + ( + [PropertyName] nvarchar(50) '@name', + [PropertyValue] ntext '@value' + ) AS XML; + + -- remove document + EXEC sp_xml_removedocument @idoc; + + COMMIT TRAN; + END @@ -13801,7 +13885,6 @@ END - GO @@ -14098,6 +14181,7 @@ RETURN + GO @@ -14194,6 +14278,7 @@ RETURN + GO @@ -14316,6 +14401,7 @@ RETURN + GO @@ -14426,6 +14512,241 @@ RETURN + + + + + + + + + + + + + + +GO +SET ANSI_NULLS OFF +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION dbo.UsersTree +( + @OwnerID int, + @Recursive bit = 0 +) +RETURNS @T TABLE (UserID int) +AS +BEGIN + + IF @Recursive = 1 + BEGIN + -- insert "root" user + INSERT @T VALUES(@OwnerID) + + -- get all children recursively + WHILE @@ROWCOUNT > 0 + BEGIN + INSERT @T SELECT UserID + FROM Users + WHERE OwnerID IN(SELECT UserID from @T) AND UserID NOT IN(SELECT UserID FROM @T) + END + END + ELSE + BEGIN + INSERT @T VALUES(@OwnerID) + END + +RETURN +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ScheduleTaskViewConfiguration]( + [TaskID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + [ConfigurationID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + [Environment] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + [Description] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ScheduleTaskViewConfiguration] PRIMARY KEY CLUSTERED +( + [ConfigurationID] ASC, + [TaskID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_ACTIVATE_PAID_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_BACKUP', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/Backup.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/BackupDatabase.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CALCULATE_EXCHANGE_DISKSPACE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CALCULATE_PACKAGES_BANDWIDTH', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CALCULATE_PACKAGES_DISKSPACE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CANCEL_OVERDUE_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/CheckWebsite.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/SendFilesViaFtp.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_GENERATE_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/HostedSolutionReport.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/NotifyOverusedDatabases.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_RUN_PAYMENT_QUEUE', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/ExecuteSystemCommand.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/SendEmailNotification.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_SUSPEND_OVERDUE_INVOICES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/EmptyView.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/SuspendOverusedSpaces.ascx') +GO +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_ZIP_FILES', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/ZipFiles.ascx') +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomerTaxation] + @ContractID nvarchar(50), + @Country nvarchar(50), + @State nvarchar(50) +AS +BEGIN + DECLARE @ResellerID int; + SELECT + @ResellerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + -- + SELECT TOP 1 + ROW_NUMBER() OVER (ORDER BY [TypeId] DESC, [State] ASC), + * + FROM + [dbo].[ecTaxations] + WHERE + [ResellerID] = @ResellerID + AND + ([Country] = @Country OR [Country] = '*') + AND + ([State] = @State OR [State] = '*') + AND + [Active] = 1; + +END + + + + + + + + + + + @@ -14590,6 +14911,7 @@ RETURN + GO @@ -14720,6 +15042,1251 @@ RETURN + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateContract] + @ContractID nvarchar(50), + @CustomerID int, + @AccountName nvarchar(50), + @Status int, + @Balance money, + @FirstName nvarchar(50), + @LastName nvarchar(50), + @Email nvarchar(255), + @CompanyName nvarchar(50), + @PropertyNames ntext, + @PropertyValues ntext, + @Result int OUTPUT +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SET @Result = 0; + + IF @CustomerID < 1 + SET @CustomerID = NULL; + + UPDATE [dbo].[ecContracts] SET + [CustomerID] = @CustomerID, + [AccountName] = @AccountName, + [Status] = @Status, + [Balance] = @Balance, + [FirstName] = @FirstName, + [LastName] = @LastName, + [Email] = @Email, + [CompanyName] = @CompanyName, + [PropertyNames] = @PropertyNames, + [PropertyValues] = @PropertyValues + WHERE + [ContractID] = @ContractID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecInvoiceItems]( + [ItemID] [int] IDENTITY(1,1) NOT NULL, + [InvoiceID] [int] NOT NULL, + [ServiceID] [int] NULL, + [ItemName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [TypeName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [Quantity] [int] NOT NULL, + [Total] [money] NOT NULL, + [SubTotal] [money] NOT NULL, + [UnitPrice] [money] NOT NULL, + [Processed] [bit] NOT NULL, + CONSTRAINT [PK_EC_InvoiceItems] PRIMARY KEY CLUSTERED +( + [ItemID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecPaymentMethods]( + [ResellerID] [int] NOT NULL, + [MethodName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PluginID] [int] NOT NULL, + [DisplayName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [SupportedItems] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ecPaymentMethods] PRIMARY KEY CLUSTERED +( + [ResellerID] ASC, + [MethodName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecLookupForTransaction] + @TransactionID nvarchar(255) +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT * FROM [dbo].[ecCustomersPayments] WHERE [TransactionID] = @TransactionID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecService]( + [ServiceID] [int] IDENTITY(1,1) NOT NULL, + [ServiceName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [TypeID] [int] NULL, + [Status] [int] NOT NULL, + [Created] [datetime] NOT NULL, + [Modified] [datetime] NULL, + [ParentID] [int] NULL, + [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_SpaceInstances] PRIMARY KEY CLUSTERED +( + [ServiceID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecCheckCustomerContractExists] + @CustomerID int, + @Result bit OUTPUT +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + IF EXISTS (SELECT * FROM [ecContracts] WHERE [CustomerID] = @CustomerID) + BEGIN + SET @Result = 1; + RETURN; + END + + SET @Result = 0; + +END + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE VIEW [dbo].[ContractsInvoicesDetailed] +AS +SELECT dbo.ecInvoice.InvoiceID, dbo.ecInvoice.ContractID, dbo.ecContracts.ResellerID, dbo.ecContracts.CustomerID, ISNULL(dbo.Users.Username, +dbo.ecContracts.AccountName) AS Username, dbo.ecContracts.Status, dbo.ecInvoice.Created, dbo.ecInvoice.DueDate, dbo.ecInvoice.Total, dbo.ecInvoice.SubTotal, +dbo.ecInvoice.TaxAmount, dbo.ecInvoice.Currency, dbo.ecInvoice.InvoiceNumber, dbo.ecInvoice.TaxationID, dbo.ecCustomersPayments.PaymentID, +dbo.ecCustomersPayments.StatusID, dbo.ecCustomersPayments.TransactionID, (CASE WHEN dbo.ecCustomersPayments.PaymentID IS NOT NULL AND +dbo.ecCustomersPayments.StatusID = 1 THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END) AS Paid +FROM dbo.ecInvoice INNER JOIN +dbo.ecContracts ON dbo.ecInvoice.ContractID = dbo.ecContracts.ContractID LEFT OUTER JOIN +dbo.ecCustomersPayments ON dbo.ecInvoice.InvoiceID = dbo.ecCustomersPayments.InvoiceID LEFT OUTER JOIN +dbo.Users ON dbo.ecContracts.CustomerID = dbo.Users.UserID + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[Comments]( + [CommentID] [int] IDENTITY(1,1) NOT NULL, + [ItemTypeID] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [ItemID] [int] NOT NULL, + [UserID] [int] NOT NULL, + [CreatedDate] [datetime] NOT NULL, + [CommentText] [nvarchar](1000) COLLATE Latin1_General_CI_AS NULL, + [SeverityID] [int] NULL, + CONSTRAINT [PK_Comments] PRIMARY KEY CLUSTERED +( + [CommentID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CheckUserParent] +( + @OwnerID int, + @UserID int +) +RETURNS bit +AS +BEGIN + +-- check if the user requests himself +IF @OwnerID = @UserID +BEGIN + RETURN 1 +END + +-- check if the owner is peer +DECLARE @IsPeer int, @TmpOwnerID int +SELECT @IsPeer = IsPeer, @TmpOwnerID = OwnerID FROM Users +WHERE UserID = @OwnerID + +IF @IsPeer = 1 +SET @OwnerID = @TmpOwnerID + +-- check if the user requests himself +IF @OwnerID = @UserID +BEGIN + RETURN 1 +END + +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + IF @ParentUserID = @OwnerID + RETURN 1 + + SET @TmpUserID = @ParentUserID +END + + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION GetItemComments +( + @ItemID int, + @ItemTypeID varchar(50), + @ActorID int +) +RETURNS nvarchar(3000) +AS +BEGIN +DECLARE @text nvarchar(3000) +SET @text = '' + +SELECT @text = @text + U.Username + ' - ' + CONVERT(nvarchar(50), C.CreatedDate) + ' +' + CommentText + ' +-------------------------------------- +' FROM Comments AS C +INNER JOIN UsersDetailed AS U ON C.UserID = U.UserID +WHERE + ItemID = @ItemID + AND ItemTypeID = @ItemTypeID + AND dbo.CheckUserParent(@ActorID, C.UserID) = 1 +ORDER BY C.CreatedDate DESC + +RETURN @text +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteServiceItem] +( + @ActorID int, + @ItemID int +) +AS + +-- check rights +DECLARE @PackageID int +SELECT PackageID = @PackageID FROM ServiceItems +WHERE ItemID = @ItemID + +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +BEGIN TRAN + +UPDATE Domains +SET ZoneItemID = NULL +WHERE ZoneItemID = @ItemID + +UPDATE Domains +SET WebSiteID = NULL +WHERE WebSiteID = @ItemID + +UPDATE Domains +SET MailDomainID = NULL +WHERE MailDomainID = @ItemID + +-- delete item comments +DELETE FROM Comments +WHERE ItemID = @ItemID AND ItemTypeID = 'SERVICE_ITEM' + +-- delete item properties +DELETE FROM ServiceItemProperties +WHERE ItemID = @ItemID + +-- delete external IP addresses +EXEC dbo.DeleteItemIPAddresses @ActorID, @ItemID + +-- delete item +DELETE FROM ServiceItems +WHERE ItemID = @ItemID + +COMMIT TRAN + +RETURN + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[GlobalDnsRecords]( + [RecordID] [int] IDENTITY(1,1) NOT NULL, + [RecordType] [varchar](10) COLLATE Latin1_General_CI_AS NOT NULL, + [RecordName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [RecordData] [nvarchar](500) COLLATE Latin1_General_CI_AS NOT NULL, + [MXPriority] [int] NOT NULL, + [ServiceID] [int] NULL, + [ServerID] [int] NULL, + [PackageID] [int] NULL, + [IPAddressID] [int] NULL, + CONSTRAINT [PK_GlobalDnsRecords] PRIMARY KEY CLUSTERED +( + [RecordID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[PackageServices]( + [PackageID] [int] NOT NULL, + [ServiceID] [int] NOT NULL, + CONSTRAINT [PK_PackageServices] PRIMARY KEY CLUSTERED +( + [PackageID] ASC, + [ServiceID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeletePackage] +( + @ActorID int, + @PackageID int +) +AS +BEGIN + -- check rights + IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 + RAISERROR('You are not allowed to access this package', 16, 1) + + BEGIN TRAN + + -- remove package from cache + DELETE FROM PackagesTreeCache + WHERE + ParentPackageID = @PackageID OR + PackageID = @PackageID + + -- delete package comments + DELETE FROM Comments + WHERE ItemID = @PackageID AND ItemTypeID = 'PACKAGE' + + -- delete diskspace + DELETE FROM PackagesDiskspace + WHERE PackageID = @PackageID + + -- delete bandwidth + DELETE FROM PackagesBandwidth + WHERE PackageID = @PackageID + + -- delete settings + DELETE FROM PackageSettings + WHERE PackageID = @PackageID + + -- delete domains + DELETE FROM Domains + WHERE PackageID = @PackageID + + -- delete package IP addresses + DELETE FROM PackageIPAddresses + WHERE PackageID = @PackageID + + -- delete service items + DELETE FROM ServiceItems + WHERE PackageID = @PackageID + + -- delete global DNS records + DELETE FROM GlobalDnsRecords + WHERE PackageID = @PackageID + + -- delete package services + DELETE FROM PackageServices + WHERE PackageID = @PackageID + + -- delete package quotas + DELETE FROM PackageQuotas + WHERE PackageID = @PackageID + + -- delete package resources + DELETE FROM PackageResources + WHERE PackageID = @PackageID + + -- delete package + DELETE FROM Packages + WHERE PackageID = @PackageID + + COMMIT TRAN +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CanUpdateUserDetails] +( + @ActorID int, + @UserID int +) +RETURNS bit +AS +BEGIN + +IF @ActorID = -1 +RETURN 1 + +-- check if the user requests himself +IF @ActorID = @UserID +BEGIN + RETURN 1 +END + +DECLARE @IsPeer bit +DECLARE @OwnerID int + +SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @IsPeer = 1 +BEGIN + -- check if the peer is trying to update his owner + IF @UserID = @OwnerID + RETURN 0 + + -- check if the peer is trying to update his peers + IF EXISTS (SELECT UserID FROM Users + WHERE IsPeer = 1 AND OwnerID = @OwnerID AND UserID = @UserID) + RETURN 0 + + SET @ActorID = @OwnerID +END + +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + IF @ParentUserID = @ActorID + RETURN 1 + + SET @TmpUserID = @ParentUserID +END + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[DeleteUser] +( + @ActorID int, + @UserID int +) +AS + +-- check actor rights +IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0 +RETURN + +BEGIN TRAN +-- delete user comments +DELETE FROM Comments +WHERE ItemID = @UserID AND ItemTypeID = 'USER' + +IF (@@ERROR <> 0 ) + BEGIN + ROLLBACK TRANSACTION + RETURN -1 + END + +--delete reseller addon +DELETE FROM HostingPlans WHERE UserID = @UserID AND IsAddon = 'True' + +IF (@@ERROR <> 0 ) + BEGIN + ROLLBACK TRANSACTION + RETURN -1 + END + +-- delete user peers +DELETE FROM Users +WHERE IsPeer = 1 AND OwnerID = @UserID + +IF (@@ERROR <> 0 ) + BEGIN + ROLLBACK TRANSACTION + RETURN -1 + END + +-- delete user +DELETE FROM Users +WHERE UserID = @UserID + +IF (@@ERROR <> 0 ) + BEGIN + ROLLBACK TRANSACTION + RETURN -1 + END + +COMMIT TRAN + +RETURN + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomerContract] + @CustomerID int +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT * FROM [dbo].[ecContracts] WHERE [CustomerID] = @CustomerID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetContract] + @ContractID nvarchar(50) +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT * FROM [dbo].[ecContracts] WHERE [ContractID] = @ContractID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomerPayment] + @ActorID int, + @PaymentID int +AS +BEGIN + -- read an issuer information + DECLARE @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecCustomersPayments] + WHERE + [PaymentID] = @PaymentID; + + SET NOCOUNT ON; + + SELECT + [P].*, [INV].[InvoiceNumber] FROM [dbo].[ecCustomersPayments] AS [P] + LEFT OUTER JOIN + [dbo].[ecInvoice] AS [INV] ON [INV].[InvoiceID] = [P].[InvoiceID] + WHERE + [P].[PaymentID] = @PaymentID AND [P].[ContractID] = @ContractID; + +END + + + + + + + + @@ -14811,6 +16378,7 @@ END + GO @@ -14887,6 +16455,7 @@ END + GO @@ -14962,6 +16531,7 @@ END + GO @@ -15047,6 +16617,7 @@ END + GO @@ -15149,6 +16720,7 @@ END + GO @@ -15233,6 +16805,7 @@ END + GO @@ -15324,6 +16897,7 @@ END + GO @@ -15400,6 +16974,7 @@ END + GO @@ -15495,6 +17070,7 @@ END + GO @@ -15583,6 +17159,7 @@ END + GO @@ -15656,6 +17233,7 @@ END + GO @@ -15750,6 +17328,7 @@ RETURN + GO @@ -15892,6 +17471,7 @@ RETURN + GO @@ -16003,6 +17583,7 @@ RETURN + GO @@ -16113,6 +17694,7 @@ RETURN + GO @@ -16139,240 +17721,6 @@ CREATE TABLE [dbo].[Servers]( [ServerID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[Comments]( - [CommentID] [int] IDENTITY(1,1) NOT NULL, - [ItemTypeID] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [ItemID] [int] NOT NULL, - [UserID] [int] NOT NULL, - [CreatedDate] [datetime] NOT NULL, - [CommentText] [nvarchar](1000) COLLATE Latin1_General_CI_AS NULL, - [SeverityID] [int] NULL, - CONSTRAINT [PK_Comments] PRIMARY KEY CLUSTERED -( - [CommentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CheckUserParent] -( - @OwnerID int, - @UserID int -) -RETURNS bit -AS -BEGIN - --- check if the user requests himself -IF @OwnerID = @UserID -BEGIN - RETURN 1 -END - --- check if the owner is peer -DECLARE @IsPeer int, @TmpOwnerID int -SELECT @IsPeer = IsPeer, @TmpOwnerID = OwnerID FROM Users -WHERE UserID = @OwnerID - -IF @IsPeer = 1 -SET @OwnerID = @TmpOwnerID - --- check if the user requests himself -IF @OwnerID = @UserID -BEGIN - RETURN 1 -END - -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - IF @ParentUserID = @OwnerID - RETURN 1 - - SET @TmpUserID = @ParentUserID -END - - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION GetItemComments -( - @ItemID int, - @ItemTypeID varchar(50), - @ActorID int -) -RETURNS nvarchar(3000) -AS -BEGIN -DECLARE @text nvarchar(3000) -SET @text = '' - -SELECT @text = @text + U.Username + ' - ' + CONVERT(nvarchar(50), C.CreatedDate) + ' -' + CommentText + ' --------------------------------------- -' FROM Comments AS C -INNER JOIN UsersDetailed AS U ON C.UserID = U.UserID -WHERE - ItemID = @ItemID - AND ItemTypeID = @ItemTypeID - AND dbo.CheckUserParent(@ActorID, C.UserID) = 1 -ORDER BY C.CreatedDate DESC - -RETURN @text -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GO SET ANSI_NULLS ON @@ -16460,6 +17808,7 @@ RETURN + GO @@ -16578,6 +17927,7 @@ RETURN + GO @@ -16669,6 +18019,111 @@ RETURN + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetComments +( + @ActorID int, + @UserID int, + @ItemTypeID varchar(50), + @ItemID int +) +AS + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +SELECT + C.CommentID, + C.ItemTypeID, + C.ItemID, + C.UserID, + C.CreatedDate, + C.CommentText, + C.SeverityID, + + -- user + U.Username, + U.FirstName, + U.LastName, + U.FullName, + U.RoleID, + U.Email +FROM Comments AS C +INNER JOIN UsersDetailed AS U ON C.UserID = U.UserID +WHERE + ItemTypeID = @ItemTypeID + AND ItemID = @ItemID + AND dbo.CheckUserParent(@UserID, C.UserID) = 1 +ORDER BY C.CreatedDate ASC +RETURN + + + + + + + + + + + + + + @@ -16734,6 +18189,7 @@ END + GO SET ANSI_NULLS ON GO @@ -16825,6 +18281,7 @@ RETURN + GO SET ANSI_NULLS ON GO @@ -16850,6 +18307,7 @@ RETURN + GO SET ANSI_NULLS ON GO @@ -16917,6 +18375,7 @@ END + GO @@ -17004,6 +18463,7 @@ RETURN + GO @@ -17086,6 +18546,7 @@ END + GO @@ -17121,50 +18582,105 @@ GO - - -CREATE PROCEDURE [dbo].[SetSystemSettings] - @SettingsName nvarchar(50), - @Xml ntext +CREATE PROCEDURE GetResourceGroups AS -BEGIN -/* -XML Format: - - - -*/ - SET NOCOUNT ON; +SELECT + GroupID, + GroupName, + GroupController +FROM ResourceGroups +ORDER BY GroupOrder +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetResourceGroup +( + @GroupID int +) +AS +SELECT + RG.GroupID, + RG.GroupOrder, + RG.GroupName, + RG.GroupController +FROM ResourceGroups AS RG +WHERE RG.GroupID = @GroupID + +RETURN - BEGIN TRAN - DECLARE @idoc int; - --Create an internal representation of the XML document. - EXEC sp_xml_preparedocument @idoc OUTPUT, @xml; - - DELETE FROM [dbo].[SystemSettings] WHERE [SettingsName] = @SettingsName; - INSERT INTO [dbo].[SystemSettings] - ( - [SettingsName], - [PropertyName], - [PropertyValue] - ) - SELECT - @SettingsName, - [XML].[PropertyName], - [XML].[PropertyValue] - FROM OPENXML(@idoc, '/properties/property',1) WITH - ( - [PropertyName] nvarchar(50) '@name', - [PropertyValue] ntext '@value' - ) AS XML; - -- remove document - EXEC sp_xml_removedocument @idoc; - COMMIT TRAN; -END @@ -17265,231 +18781,7 @@ END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[Providers]( - [ProviderID] [int] NOT NULL, - [GroupID] [int] NOT NULL, - [ProviderName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL, - [DisplayName] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL, - [ProviderType] [nvarchar](400) COLLATE Latin1_General_CI_AS NULL, - [EditorControl] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL, - [DisableAutoDiscovery] [bit] NULL, - CONSTRAINT [PK_ServiceTypes] PRIMARY KEY CLUSTERED -( - [ProviderID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (1, 1, N'Windows2003', N'Windows Server 2003', N'WebsitePanel.Providers.OS.Windows2003, WebsitePanel.Providers.OS.Windows2003', N'Windows2003', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (2, 2, N'IIS60', N'Internet Information Services 6.0', N'WebsitePanel.Providers.Web.IIs60, WebsitePanel.Providers.Web.IIs60', N'IIS60', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (3, 3, N'MSFTP60', N'Microsoft FTP Server 6.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs60', N'MSFTP60', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (4, 4, N'MailEnable', N'MailEnable Server 1.x - 4.x', N'WebsitePanel.Providers.Mail.MailEnable, WebsitePanel.Providers.Mail.MailEnable', N'MailEnable', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (5, 5, N'MSSQL', N'Microsoft SQL Server 2000', N'WebsitePanel.Providers.Database.MsSqlServer, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (6, 6, N'MySQL', N'MySQL Server 4.x', N'WebsitePanel.Providers.Database.MySqlServer, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (7, 7, N'MSDNS', N'Microsoft DNS Server', N'WebsitePanel.Providers.DNS.MsDNS, WebsitePanel.Providers.DNS.MsDNS', N'MSDNS', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (8, 8, N'AWStats', N'AWStats Statistics Service', N'WebsitePanel.Providers.Statistics.AWStats, WebsitePanel.Providers.Statistics.AWStats', N'AWStats', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (9, 7, N'SimpleDNS', N'SimpleDNS Plus 4.x', N'WebsitePanel.Providers.DNS.SimpleDNS, WebsitePanel.Providers.DNS.SimpleDNS', N'SimpleDNS', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (10, 8, N'SmarterStats', N'SmarterStats 3.x', N'WebsitePanel.Providers.Statistics.SmarterStats, WebsitePanel.Providers.Statistics.SmarterStats', N'SmarterStats', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (11, 4, N'SmarterMail', N'SmarterMail 2.x', N'WebsitePanel.Providers.Mail.SmarterMail2, WebsitePanel.Providers.Mail.SmarterMail2', N'SmarterMail', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (12, 3, N'Gene6FTP', N'Gene6 FTP Server 3.x', N'WebsitePanel.Providers.FTP.Gene6, WebsitePanel.Providers.FTP.Gene6', N'Gene6FTP', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (13, 4, N'Merak', N'Merak Mail Server 8.0.3 - 9.2.x', N'WebsitePanel.Providers.Mail.Merak, WebsitePanel.Providers.Mail.Merak', N'Merak', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (14, 4, N'SmarterMail', N'SmarterMail 3.x - 4.x', N'WebsitePanel.Providers.Mail.SmarterMail3, WebsitePanel.Providers.Mail.SmarterMail3', N'SmarterMail', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (15, 9, N'Sps20', N'Windows SharePoint Services 2.0', N'WebsitePanel.Providers.SharePoint.Sps20, WebsitePanel.Providers.SharePoint.Sps20', N'Sps20', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (16, 10, N'MSSQL', N'Microsoft SQL Server 2005', N'WebsitePanel.Providers.Database.MsSqlServer2005, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (17, 11, N'MySQL', N'MySQL Server 5.0', N'WebsitePanel.Providers.Database.MySqlServer50, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (18, 4, N'MDaemon', N'MDaemon 9.x - 11.x', N'WebsitePanel.Providers.Mail.MDaemon, WebsitePanel.Providers.Mail.MDaemon', N'MDaemon', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (19, 4, N'ArgoMail', N'ArGoSoft Mail Server 1.x', N'WebsitePanel.Providers.Mail.ArgoMail, WebsitePanel.Providers.Mail.ArgoMail', N'ArgoMail', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (20, 4, N'hMailServer', N'hMailServer 4.2', N'WebsitePanel.Providers.Mail.hMailServer, WebsitePanel.Providers.Mail.hMailServer', N'hMailServer', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (21, 4, N'AbilityMailServer', N'Ability Mail Server 2.x', N'WebsitePanel.Providers.Mail.AbilityMailServer, WebsitePanel.Providers.Mail.AbilityMailServer', N'AbilityMailServer', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (22, 4, N'hMailServer43', N'hMailServer 4.3', N'WebsitePanel.Providers.Mail.hMailServer43, WebsitePanel.Providers.Mail.hMailServer43', N'hMailServer43', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (23, 9, N'Sps20', N'Windows SharePoint Services 3.0', N'WebsitePanel.Providers.SharePoint.Sps30, WebsitePanel.Providers.SharePoint.Sps30', N'Sps20', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (24, 7, N'Bind', N'ISC BIND 8.x - 9.x', N'WebsitePanel.Providers.DNS.IscBind, WebsitePanel.Providers.DNS.Bind', N'Bind', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (25, 3, N'ServU', N'Serv-U FTP 6.x', N'WebsitePanel.Providers.FTP.ServU, WebsitePanel.Providers.FTP.ServU', N'ServU', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (26, 3, N'FileZilla', N'FileZilla FTP Server 0.9', N'WebsitePanel.Providers.FTP.FileZilla, WebsitePanel.Providers.FTP.FileZilla', N'FileZilla', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (27, 12, N'Exchange2007', N'Hosted Microsoft Exchange Server 2007', N'WebsitePanel.Providers.HostedSolution.Exchange2007, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (28, 7, N'SimpleDNS', N'SimpleDNS Plus 5.x', N'WebsitePanel.Providers.DNS.SimpleDNS5, WebsitePanel.Providers.DNS.SimpleDNS50', N'SimpleDNS', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (29, 4, N'SmarterMail', N'SmarterMail 5.x', N'WebsitePanel.Providers.Mail.SmarterMail5, WebsitePanel.Providers.Mail.SmarterMail5', N'SmarterMail50', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (30, 11, N'MySQL', N'MySQL Server 5.1', N'WebsitePanel.Providers.Database.MySqlServer51, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (31, 8, N'SmarterStats', N'SmarterStats 4.x', N'WebsitePanel.Providers.Statistics.SmarterStats4, WebsitePanel.Providers.Statistics.SmarterStats', N'SmarterStats', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (32, 12, N'Exchange2010', N'Hosted Microsoft Exchange Server 2010', N'WebsitePanel.Providers.HostedSolution.Exchange2010, WebsitePanel.Providers.HostedSolution', N'Exchange', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (55, 7, N'NetticaDNS', N'Nettica DNS', N'WebsitePanel.Providers.DNS.Nettica, WebsitePanel.Providers.DNS.Nettica', N'NetticaDNS', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (56, 7, N'PowerDNS', N'PowerDNS', N'WebsitePanel.Providers.DNS.PowerDNS, WebsitePanel.Providers.DNS.PowerDNS', N'PowerDNS', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (60, 4, N'SmarterMail', N'SmarterMail 6.x', N'WebsitePanel.Providers.Mail.SmarterMail6, WebsitePanel.Providers.Mail.SmarterMail6', N'SmarterMail60', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (61, 4, N'Merak', N'Merak Mail Server 10.x', N'WebsitePanel.Providers.Mail.Merak10, WebsitePanel.Providers.Mail.Merak10', N'Merak', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (62, 8, N'SmarterStats', N'SmarterStats 5.x-6.x', N'WebsitePanel.Providers.Statistics.SmarterStats5, WebsitePanel.Providers.Statistics.SmarterStats', N'SmarterStats', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (63, 4, N'hMailServer5', N'hMailServer 5.x', N'WebsitePanel.Providers.Mail.hMailServer5, WebsitePanel.Providers.Mail.hMailServer5', N'hMailServer43', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (64, 4, N'SmarterMail', N'SmarterMail 7.x', N'WebsitePanel.Providers.Mail.SmarterMail7, WebsitePanel.Providers.Mail.SmarterMail7', N'SmarterMail60', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (100, 1, N'Windows2008', N'Windows Server 2008', N'WebsitePanel.Providers.OS.Windows2008, WebsitePanel.Providers.OS.Windows2008', N'Windows2008', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (101, 2, N'IIS70', N'Internet Information Services 7.0', N'WebsitePanel.Providers.Web.IIs70, WebsitePanel.Providers.Web.IIs70', N'IIS70', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (102, 3, N'MSFTP70', N'Microsoft FTP Server 7.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs70', N'MSFTP70', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (103, 13, N'Organizations', N'Hosted Organizations', N'WebsitePanel.Providers.HostedSolution.OrganizationProvider, WebsitePanel.Providers.HostedSolution', N'Organizations', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (200, 20, N'HostedSharePoint30', N'Hosted Windows SharePoint Services 3.0', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (201, 21, N'CRM', N'Hosted MS CRM 4.0', N'WebsitePanel.Providers.HostedSolution.CRMProvider, WebsitePanel.Providers.HostedSolution', N'CRM', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (202, 22, N'MsSQL', N'Microsoft SQL Server 2008', N'WebsitePanel.Providers.Database.MsSqlServer2008, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (203, 31, N'BlackBerry 4.1', N'BlackBerry 4.1', N'WebsitePanel.Providers.HostedSolution.BlackBerryProvider, WebsitePanel.Providers.HostedSolution', N'BlackBerry', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (204, 31, N'BlackBerry 5.0', N'BlackBerry 5.0', N'WebsitePanel.Providers.HostedSolution.BlackBerry5Provider, WebsitePanel.Providers.HostedSolution', N'BlackBerry5', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (205, 32, N'OCS', N'Office Communications Server 2007 R2', N'WebsitePanel.Providers.HostedSolution.OCS2007R2, WebsitePanel.Providers.HostedSolution', N'OCS', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (206, 32, N'OCSEdge', N'OCS Edge server', N'WebsitePanel.Providers.HostedSolution.OCSEdge2007R2, WebsitePanel.Providers.HostedSolution', N'OCS_Edge', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (207, 33, N'Exchange2010SP1', N'Exchange Server 2010 SP1 Hosting Mode', N'WebsitePanel.Providers.ExchangeHostedEdition.Exchange2010SP1, WebsitePanel.Providers.ExchangeHostedEdition', N'Exchange2010SP1', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (208, 20, N'HostedSharePoint2010', N'Hosted SharePoint Foundation 2010', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer2010, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (300, 30, N'HyperV', N'Microsoft Hyper-V', N'WebsitePanel.Providers.Virtualization.HyperV, WebsitePanel.Providers.Virtualization.HyperV', N'HyperV', 1) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (301, 11, N'MySQL', N'MySQL Server 5.5', N'WebsitePanel.Providers.Database.MySqlServer55, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) -GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (400, 40, N'HyperVForPC', N'Microsoft Hyper-V For Private Cloud', N'WebsitePanel.Providers.VirtualizationForPC.HyperVForPC, WebsitePanel.Providers.VirtualizationForPC.HyperVForPC', N'HyperVForPrivateCloud', 1) -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ServiceItemTypes]( - [ItemTypeID] [int] NOT NULL, - [GroupID] [int] NULL, - [DisplayName] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, - [TypeName] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL, - [TypeOrder] [int] NOT NULL, - [CalculateDiskspace] [bit] NULL, - [CalculateBandwidth] [bit] NULL, - [Suspendable] [bit] NULL, - [Disposable] [bit] NULL, - [Searchable] [bit] NULL, - [Importable] [bit] NOT NULL, - [Backupable] [bit] NOT NULL, - CONSTRAINT [PK_ServiceItemTypes] PRIMARY KEY CLUSTERED -( - [ItemTypeID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (1, 9, N'SharePointUser', N'WebsitePanel.Providers.OS.SystemUser, WebsitePanel.Providers.Base', 19, 0, 0, 1, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (2, 1, N'HomeFolder', N'WebsitePanel.Providers.OS.HomeFolder, WebsitePanel.Providers.Base', 15, 1, 0, 0, 1, 0, 0, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (3, 9, N'SharePointGroup', N'WebsitePanel.Providers.OS.SystemGroup, WebsitePanel.Providers.Base', 20, 0, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (5, 5, N'MsSQL2000Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 9, 1, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (6, 5, N'MsSQL2000User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 10, 0, 0, 1, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (7, 6, N'MySQL4Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 13, 1, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (8, 6, N'MySQL4User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 14, 0, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (9, 3, N'FTPAccount', N'WebsitePanel.Providers.FTP.FtpAccount, WebsitePanel.Providers.Base', 3, 0, 1, 1, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (10, 2, N'WebSite', N'WebsitePanel.Providers.Web.WebSite, WebsitePanel.Providers.Base', 2, 1, 1, 1, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (11, 4, N'MailDomain', N'WebsitePanel.Providers.Mail.MailDomain, WebsitePanel.Providers.Base', 8, 0, 1, 1, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (12, 7, N'DNSZone', N'WebsitePanel.Providers.DNS.DnsZone, WebsitePanel.Providers.Base', 0, 0, 0, 1, 1, 0, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (13, 1, N'Domain', N'WebsitePanel.Providers.OS.Domain, WebsitePanel.Providers.Base', 1, 0, 0, 0, 0, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (14, 8, N'StatisticsSite', N'WebsitePanel.Providers.Statistics.StatsSite, WebsitePanel.Providers.Base', 17, 0, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (15, 4, N'MailAccount', N'WebsitePanel.Providers.Mail.MailAccount, WebsitePanel.Providers.Base', 4, 1, 0, 0, 0, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (16, 4, N'MailAlias', N'WebsitePanel.Providers.Mail.MailAlias, WebsitePanel.Providers.Base', 5, 0, 0, 0, 0, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (17, 4, N'MailList', N'WebsitePanel.Providers.Mail.MailList, WebsitePanel.Providers.Base', 7, 0, 0, 0, 0, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (18, 4, N'MailGroup', N'WebsitePanel.Providers.Mail.MailGroup, WebsitePanel.Providers.Base', 6, 0, 0, 0, 0, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (19, 9, N'SharePointSite', N'WebsitePanel.Providers.SharePoint.SharePointSite, WebsitePanel.Providers.Base', 18, 0, 0, 0, 1, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (20, 1, N'ODBCDSN', N'WebsitePanel.Providers.OS.SystemDSN, WebsitePanel.Providers.Base', 22, 0, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (21, 10, N'MsSQL2005Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 11, 1, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (22, 10, N'MsSQL2005User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 12, 0, 0, 1, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (23, 11, N'MySQL5Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 15, 1, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (24, 11, N'MySQL5User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 16, 0, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (25, 2, N'SharedSSLFolder', N'WebsitePanel.Providers.Web.SharedSSLFolder, WebsitePanel.Providers.Base', 21, 0, 0, 0, 1, 1, 0, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (28, 7, N'SecondaryDNSZone', N'WebsitePanel.Providers.DNS.SecondaryDnsZone, WebsitePanel.Providers.Base', 0, 0, 0, 1, 1, 0, 0, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (29, 13, N'Organization', N'WebsitePanel.Providers.HostedSolution.Organization, WebsitePanel.Providers.Base', 1, 1, 0, 1, 1, 1, 0, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (30, 13, N'OrganizationDomain', N'WebsitePanel.Providers.HostedSolution.OrganizationDomain, WebsitePanel.Providers.Base', 1, NULL, NULL, NULL, NULL, NULL, 0, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (31, 22, N'MsSQL2008Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 1, 1, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (32, 22, N'MsSQL2008User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (33, 30, N'VirtualMachine', N'WebsitePanel.Providers.Virtualization.VirtualMachine, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (34, 30, N'VirtualSwitch', N'WebsitePanel.Providers.Virtualization.VirtualSwitch, WebsitePanel.Providers.Base', 2, 0, 0, 1, 1, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (35, 40, N'VMInfo', N'WebsitePanel.Providers.Virtualization.VMInfo, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (36, 40, N'VirtualSwitch', N'WebsitePanel.Providers.Virtualization.VirtualSwitch, WebsitePanel.Providers.Base', 2, 0, 0, 1, 1, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 33, N'ExchangeOrganization', N'WebsitePanel.Providers.ExchangeHostedEdition.ExchangeOrganization, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) -GO -INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (200, 20, N'SharePointSiteCollection', N'WebsitePanel.Providers.SharePoint.SharePointSiteCollection, WebsitePanel.Providers.Base', 25, 1, 0, 0, 1, 1, 1, 1) GO SET ANSI_NULLS ON GO @@ -17523,52 +18815,16 @@ GO - - - - -CREATE PROCEDURE UpdatePackageDiskSpace +CREATE PROCEDURE GetAuditLogTasks ( - @PackageID int, - @xml ntext + @SourceName varchar(100) ) AS -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @xml --- Execute a SELECT statement that uses the OPENXML rowset provider. -DECLARE @Items TABLE -( - ItemID int, - Bytes bigint -) +IF @SourceName = '' SET @SourceName = NULL -INSERT INTO @Items (ItemID, Bytes) -SELECT ItemID, DiskSpace FROM OPENXML (@idoc, '/items/item',1) -WITH -( - ItemID int '@id', - DiskSpace bigint '@bytes' -) as XSI - --- remove current diskspace -DELETE FROM PackagesDiskspace -WHERE PackageID = @PackageID - --- update package diskspace -INSERT INTO PackagesDiskspace (PackageID, GroupID, Diskspace) -SELECT - @PackageID, - SIT.GroupID, - SUM(I.Bytes) -FROM @Items AS I -INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -GROUP BY SIT.GroupID - --- remove document -exec sp_xml_removedocument @idoc +SELECT SourceName, TaskName FROM AuditLogTasks +WHERE (@SourceName = NULL OR @SourceName IS NOT NULL AND SourceName = @SourceName) RETURN @@ -17600,6 +18856,8 @@ RETURN + + @@ -17636,74 +18894,750 @@ GO -CREATE PROCEDURE UpdatePackageBandwidth +CREATE PROCEDURE GetAuditLogSources +AS + +SELECT SourceName FROM AuditLogSources + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetScheduleTasks ( - @PackageID int, - @xml ntext + @ActorID int ) AS -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @xml +-- get user role +DECLARE @RoleID int +SELECT @RoleID = RoleID FROM Users +WHERE UserID = @ActorID -DECLARE @Items TABLE -( - ItemID int, - LogDate datetime, - BytesSent bigint, - BytesReceived bigint -) - -INSERT INTO @Items -( - ItemID, - LogDate, - BytesSent, - BytesReceived -) SELECT - ItemID, - CONVERT(datetime, LogDate, 101), - BytesSent, - BytesReceived -FROM OPENXML(@idoc, '/items/item',1) WITH -( - ItemID int '@id', - LogDate nvarchar(10) '@date', - BytesSent bigint '@sent', - BytesReceived bigint '@received' -) + TaskID, + TaskType, + RoleID +FROM ScheduleTasks +WHERE @RoleID <= RoleID +RETURN --- delete current statistics -DELETE FROM PackagesBandwidth -FROM PackagesBandwidth AS PB -INNER JOIN ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetScheduleTask +( + @ActorID int, + @TaskID nvarchar(100) +) +AS + +-- get user role +DECLARE @RoleID int +SELECT @RoleID = RoleID FROM Users +WHERE UserID = @ActorID + +SELECT + TaskID, + TaskType, + RoleID +FROM ScheduleTasks +WHERE + TaskID = @TaskID + AND @RoleID >= RoleID +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetSystemSettings + @SettingsName nvarchar(50) +AS +BEGIN + + SET NOCOUNT ON; + + SELECT + [PropertyName], + [PropertyValue] + FROM + [dbo].[SystemSettings] + WHERE + [SettingsName] = @SettingsName; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +CREATE PROCEDURE [dbo].[GetUserByIdInternally] +( + @UserID int +) +AS SELECT - SIT.GroupID, - I.LogDate - FROM @Items AS I - INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID - INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID - GROUP BY I.LogDate, SIT.GroupID -) AS STAT ON PB.LogDate = STAT.LogDate AND PB.GroupID = STAT.GroupID -WHERE PB.PackageID = @PackageID + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + U.Password, + U.FirstName, + U.LastName, + U.Email, + U.SecondaryEmail, + U.Address, + U.City, + U.State, + U.Country, + U.Zip, + U.PrimaryPhone, + U.SecondaryPhone, + U.Fax, + U.InstantMessenger, + U.HtmlMail, + U.CompanyName, + U.EcommerceEnabled, + U.[AdditionalParams] + FROM Users AS U + WHERE U.UserID = @UserID + + RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +CREATE PROCEDURE [dbo].[GetUserByUsernameInternally] +( + @Username nvarchar(50) +) +AS + SELECT + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + U.Password, + U.FirstName, + U.LastName, + U.Email, + U.SecondaryEmail, + U.Address, + U.City, + U.State, + U.Country, + U.Zip, + U.PrimaryPhone, + U.SecondaryPhone, + U.Fax, + U.InstantMessenger, + U.HtmlMail, + U.CompanyName, + U.EcommerceEnabled, + U.[AdditionalParams] + FROM Users AS U + WHERE U.Username = @Username + + RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CanGetUserPassword] +( + @ActorID int, + @UserID int +) +RETURNS bit +AS +BEGIN + +IF @ActorID = -1 +RETURN 1 -- unauthenticated mode + +-- check if the user requests himself +IF @ActorID = @UserID +BEGIN + RETURN 1 +END + +DECLARE @IsPeer bit +DECLARE @OwnerID int + +SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @IsPeer = 1 +BEGIN + -- peer can't get the password of his peers + -- and his owner + IF @UserID = @OwnerID + RETURN 0 + + IF EXISTS ( + SELECT UserID FROM Users + WHERE IsPeer = 1 AND OwnerID = @OwnerID AND UserID = @UserID + ) RETURN 0 + + -- set actor to his owner + SET @ActorID = @OwnerID +END + +-- get user's owner +SELECT @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @UserID = @OwnerID +RETURN 0 -- user can't get the password of his owner + +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + IF @ParentUserID = @ActorID + RETURN 1 + + SET @TmpUserID = @ParentUserID +END + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CanGetUserDetails] +( + @ActorID int, + @UserID int +) +RETURNS bit +AS +BEGIN + +IF @ActorID = -1 +RETURN 1 + +-- check if the user requests himself +IF @ActorID = @UserID +BEGIN + RETURN 1 +END + +DECLARE @IsPeer bit +DECLARE @OwnerID int + +SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @IsPeer = 1 +SET @ActorID = @OwnerID + +-- get user's owner +SELECT @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @UserID = @OwnerID +RETURN 1 -- user can get the details of his owner + +-- check if the user requests himself +IF @ActorID = @UserID +BEGIN + RETURN 1 +END + +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + IF @ParentUserID = @ActorID + RETURN 1 + + SET @TmpUserID = @ParentUserID +END + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetUsers] +( + @ActorID int, + @OwnerID int, + @Recursive bit = 0 +) +AS + +DECLARE @CanGetDetails bit +SET @CanGetDetails = dbo.CanGetUserDetails(@ActorID, @OwnerID) --- insert new statistics -INSERT INTO PackagesBandwidth (PackageID, GroupID, LogDate, BytesSent, BytesReceived) SELECT - @PackageID, - SIT.GroupID, - I.LogDate, - SUM(I.BytesSent), - SUM(I.BytesReceived) -FROM @Items AS I -INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -GROUP BY I.LogDate, SIT.GroupID - --- remove document -exec sp_xml_removedocument @idoc + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + U.FirstName, + U.LastName, + U.Email, + U.FullName, + U.OwnerUsername, + U.OwnerFirstName, + U.OwnerLastName, + U.OwnerRoleID, + U.OwnerFullName, + U.PackagesNumber, + U.CompanyName, + U.EcommerceEnabled +FROM UsersDetailed AS U +WHERE U.UserID <> @OwnerID AND +((@Recursive = 1 AND dbo.CheckUserParent(@OwnerID, U.UserID) = 1) OR +(@Recursive = 0 AND U.OwnerID = @OwnerID)) +AND U.IsPeer = 0 +AND @CanGetDetails = 1 -- actor user rights RETURN @@ -17740,13 +19674,15 @@ RETURN + + GO SET ANSI_NULLS ON GO -SET QUOTED_IDENTIFIER OFF +SET QUOTED_IDENTIFIER ON GO @@ -17763,367 +19699,886 @@ GO -CREATE PROCEDURE [dbo].[GetServiceItemsPaged] + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetUserPeers] ( @ActorID int, - @PackageID int, - @ItemTypeName nvarchar(200), - @GroupName nvarchar(100) = NULL, - @ServerID int, - @Recursive bit, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int + @UserID int ) AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- start -DECLARE @GroupID int -SELECT @GroupID = GroupID FROM ResourceGroups -WHERE GroupName = @GroupName - -DECLARE @ItemTypeID int -SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes -WHERE TypeName = @ItemTypeName -AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND GroupID = @GroupID)) - -DECLARE @condition nvarchar(700) -SET @condition = 'SI.ItemTypeID = @ItemTypeID -AND ((@Recursive = 0 AND P.PackageID = @PackageID) - OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, P.PackageID) = 1)) -AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND IT.GroupID = @GroupID)) -AND (@ServerID = 0 OR (@ServerID > 0 AND S.ServerID = @ServerID)) -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'SI.ItemName ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT COUNT(SI.ItemID) FROM Packages AS P -INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID -INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -WHERE ' + @condition + ' - -DECLARE @Items AS TABLE -( - ItemID int -); - -WITH TempItems AS ( - SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - SI.ItemID - FROM Packages AS P - INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID - INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID - INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID - INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID - INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID - WHERE ' + @condition + ' -) - -INSERT INTO @Items -SELECT ItemID FROM TempItems -WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows +DECLARE @CanGetDetails bit +SET @CanGetDetails = dbo.CanGetUserDetails(@ActorID, @UserID) SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - IT.TypeName, - SI.ServiceID, - SI.PackageID, - SI.CreatedDate, - RG.GroupName, + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + U.FirstName, + U.LastName, + U.Email, + U.FullName, + (U.FirstName + ' ' + U.LastName) AS FullName, + U.CompanyName, + U.EcommerceEnabled +FROM UsersDetailed AS U +WHERE U.OwnerID = @UserID AND IsPeer = 1 +AND @CanGetDetails = 1 -- actor rights - -- packages +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CheckActorParentPackageRights] +( + @ActorID int, + @PackageID int +) +RETURNS bit +AS +BEGIN + +IF @ActorID = -1 OR @PackageID IS NULL +RETURN 1 + +-- get package owner +DECLARE @UserID int +SELECT @UserID = UserID FROM Packages +WHERE PackageID = @PackageID + +IF @UserID IS NULL +RETURN 1 -- unexisting package + +-- check user +RETURN dbo.CanGetUserDetails(@ActorID, @UserID) + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecWriteSupportedPluginLog] + @ContractID nvarchar(50), + @PluginID int, + @RecordType int, + @RawData ntext, + @Result int OUTPUT +AS +BEGIN + + SET NOCOUNT ON; + + INSERT INTO [dbo].[ecSupportedPluginLog] + ( + [PluginID], + [ContractID], + [RecordType], + [RawData] + ) + VALUES + ( + @PluginID, + @ContractID, + @RecordType, + @RawData + ); + + SET @Result = SCOPE_IDENTITY(); +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ResourceGroupDnsRecords]( + [RecordID] [int] IDENTITY(1,1) NOT NULL, + [RecordOrder] [int] NOT NULL, + [GroupID] [int] NOT NULL, + [RecordType] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [RecordName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [RecordData] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL, + [MXPriority] [int] NULL, + CONSTRAINT [PK_ResourceGroupDnsRecords] PRIMARY KEY CLUSTERED +( + [RecordID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET IDENTITY_INSERT [dbo].[ResourceGroupDnsRecords] ON + +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (1, 1, 2, N'A', N'', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (2, 2, 2, N'A', N'*', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (3, 3, 2, N'A', N'www', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (4, 1, 3, N'A', N'ftp', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (5, 1, 4, N'A', N'mail', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (6, 2, 4, N'A', N'mail2', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (7, 3, 4, N'MX', N'', N'mail.[DOMAIN_NAME]', 10) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (9, 4, 4, N'MX', N'', N'mail2.[DOMAIN_NAME]', 21) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (10, 1, 5, N'A', N'mssql', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (11, 1, 6, N'A', N'mysql', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (12, 1, 8, N'A', N'stats', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (13, 5, 4, N'TXT', N'', N'v=spf1 a mx -all', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (14, 1, 12, N'A', N'smtp', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (15, 2, 12, N'MX', N'', N'smtp.[DOMAIN_NAME]', 10) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (16, 3, 12, N'CNAME', N'autodiscover', N'', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (17, 4, 12, N'CNAME', N'owa', N'', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (18, 1, 33, N'A', N'smtp', N'[IP]', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (19, 2, 33, N'MX', N'', N'smtp.[DOMAIN_NAME]', 10) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (20, 3, 33, N'CNAME', N'autodiscover', N'', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (21, 4, 33, N'CNAME', N'owa', N'', 0) +GO +INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (22, 5, 33, N'CNAME', N'ecp', N'', 0) +GO +SET IDENTITY_INSERT [dbo].[ResourceGroupDnsRecords] OFF +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION [dbo].[CanCreateUser] +( + @ActorID int, + @UserID int +) +RETURNS bit +AS +BEGIN + +IF @ActorID = -1 +RETURN 1 + +-- check if the user requests himself +IF @ActorID = @UserID +RETURN 1 + +DECLARE @IsPeer bit +DECLARE @OwnerID int + +SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users +WHERE UserID = @ActorID + +IF @IsPeer = 1 +BEGIN + SET @ActorID = @OwnerID +END + +IF @ActorID = @UserID +RETURN 1 + +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + IF @ParentUserID = @ActorID + RETURN 1 + + SET @TmpUserID = @ParentUserID +END + +RETURN 0 +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION dbo.UserParents +( + @ActorID int, + @UserID int +) +RETURNS @T TABLE (UserOrder int IDENTITY(1,1), UserID int) +AS +BEGIN + -- insert current user + INSERT @T VALUES (@UserID) + + DECLARE @TopUserID int + IF @ActorID = -1 + BEGIN + SELECT @TopUserID = UserID FROM Users WHERE OwnerID IS NULL + END + ELSE + BEGIN + SET @TopUserID = @ActorID + + IF EXISTS (SELECT UserID FROM Users WHERE UserID = @ActorID AND IsPeer = 1) + SELECT @TopUserID = OwnerID FROM Users WHERE UserID = @ActorID AND IsPeer = 1 + END + + -- owner + DECLARE @OwnerID int, @TmpUserID int + + SET @TmpUserID = @UserID + + WHILE (@TmpUserID <> @TopUserID) + BEGIN + + SET @OwnerID = NULL + SELECT @OwnerID = OwnerID FROM Users WHERE UserID = @TmpUserID + + IF @OwnerID IS NOT NULL + BEGIN + INSERT @T VALUES (@OwnerID) + SET @TmpUserID = @OwnerID + END + END + +RETURN +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateServiceHandlersResponses] + @ResellerID int, + @XmlData xml +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + +/* + + + + + + +*/ + DELETE + FROM [ecServiceHandlersResponses] + WHERE + [ResponseID] IN (SELECT [SXML].[Data].value('@ID','int') FROM @XmlData.nodes('/Succeed/Response') [SXML]([Data])) + + UPDATE + [ecServiceHandlersResponses] + SET + [ErrorMessage] = [SXML].[Data].value('@Error','nvarchar(255)') + FROM @XmlData.nodes('/Failed/Response') [SXML]([Data]) + WHERE + [ResponseID] = [SXML].[Data].value('@ID', 'int') +END + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteAuditLogRecordsComplete +AS + +TRUNCATE TABLE AuditLog + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddServiceHandlerTextResponse] + @ServiceID nvarchar(50), + @ContractID nvarchar(50), + @InvoiceID int, + @DataReceived ntext +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + IF @InvoiceID = 0 + SET @InvoiceID = NULL; + + INSERT INTO [ecServiceHandlersResponses] ([ServiceID],[ContractID],[InvoiceID],[TextResponse]) + VALUES (@ServiceID,@ContractID,@InvoiceID,@DataReceived); + +END + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackages +( + @ActorID int, + @UserID int +) +AS + +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +SELECT + P.PackageID, + P.ParentPackageID, P.PackageName, - + P.StatusID, + P.PurchaseDate, + -- server - ISNULL(SRV.ServerID, 0) AS ServerID, - ISNULL(SRV.ServerName, '''') AS ServerName, - ISNULL(SRV.Comments, '''') AS ServerComments, - ISNULL(SRV.VirtualServer, 0) AS VirtualServer, - + ISNULL(P.ServerID, 0) AS ServerID, + ISNULL(S.ServerName, 'None') AS ServerName, + ISNULL(S.Comments, '') AS ServerComments, + ISNULL(S.VirtualServer, 1) AS VirtualServer, + + -- hosting plan + P.PlanID, + HP.PlanName, + -- user P.UserID, U.Username, U.FirstName, U.LastName, - U.FullName, U.RoleID, U.Email -FROM @Items AS TSI -INNER JOIN ServiceItems AS SI ON TSI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN ResourceGroups AS RG ON IT.GroupID = RG.GroupID - - -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS TSI ON IP.ItemID = TSI.ItemID' - ---print @sql - -exec sp_executesql @sql, N'@ItemTypeID int, @PackageID int, @GroupID int, @StartRow int, @MaximumRows int, @Recursive bit, @ServerID int', -@ItemTypeID, @PackageID, @GroupID, @StartRow, @MaximumRows, @Recursive, @ServerID - -RETURN - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemsForStatistics] -( - @ActorID int, - @ServiceID int, - @PackageID int, - @CalculateDiskspace bit, - @CalculateBandwidth bit, - @Suspendable bit, - @Disposable bit -) -AS -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +FROM Packages AS P +INNER JOIN Users AS U ON P.UserID = U.UserID +INNER JOIN Servers AS S ON P.ServerID = S.ServerID +INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID WHERE - ((@ServiceID = 0) OR (@ServiceID > 0 AND SI.ServiceID = @ServiceID)) - AND ((@PackageID = 0) OR (@PackageID > 0 AND SI.PackageID = @PackageID)) - AND ((@CalculateDiskspace = 0) OR (@CalculateDiskspace = 1 AND SIT.CalculateDiskspace = @CalculateDiskspace)) - AND ((@CalculateBandwidth = 0) OR (@CalculateBandwidth = 1 AND SIT.CalculateBandwidth = @CalculateBandwidth)) - AND ((@Suspendable = 0) OR (@Suspendable = 1 AND SIT.Suspendable = @Suspendable)) - AND ((@Disposable = 0) OR (@Disposable = 1 AND SIT.Disposable = @Disposable)) - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - RG.GroupName, - SIT.TypeName, - SI.ServiceID, - SI.PackageID, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID -ORDER BY RG.GroupOrder DESC, SI.ItemName - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID - -RETURN - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemsCount] -( - @ItemTypeName nvarchar(200), - @GroupName nvarchar(100) = NULL, - @ServiceID int = 0, - @TotalNumber int OUTPUT -) -AS - -SET @TotalNumber = 0 - --- find service items -SELECT - @TotalNumber = COUNT(SI.ItemID) -FROM ServiceItems AS SI -INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID -INNER JOIN ResourceGroups AS RG ON IT.GroupID = RG.GroupID -WHERE IT.TypeName = @ItemTypeName -AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) -AND ((@ServiceID = 0) OR (@ServiceID > 0 AND SI.ServiceID = @ServiceID)) - -RETURN - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE CheckServiceItemExistsInService -( - @Exists bit OUTPUT, - @ServiceID int, - @ItemName nvarchar(500), - @ItemTypeName nvarchar(200) -) -AS - -SET @Exists = 0 - -DECLARE @ItemTypeID int -SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes -WHERE TypeName = @ItemTypeName - -IF EXISTS (SELECT ItemID FROM ServiceItems -WHERE ItemName = @ItemName AND ItemTypeID = @ItemTypeID AND ServiceID = @ServiceID) -SET @Exists = 1 - + P.UserID <> @UserID + AND dbo.CheckUserParent(@UserID, P.UserID) = 1 RETURN @@ -18148,197 +20603,6 @@ RETURN - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE CheckUserExists -( - @Exists bit OUTPUT, - @Username nvarchar(100) -) -AS - -SET @Exists = 0 - -IF EXISTS (SELECT UserID FROM Users -WHERE Username = @Username) -SET @Exists = 1 - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - -CREATE PROCEDURE [dbo].[CheckSSLExistsForWebsite] -( - @siteID int, - @SerialNumber nvarchar(250), - @Result bit OUTPUT -) -AS - -/* -@Result values: - 0 - OK - -1 - already exists -*/ - -SET @Result = 0 -- OK - --- check if a SSL Certificate is installed for domain -IF EXISTS(SELECT [ID] FROM [dbo].[SSLCertificates] WHERE [SiteID] = @siteID ---AND SerialNumber=@SerialNumber -) -BEGIN - SET @Result = 1 - RETURN -END - -RETURN - -SET ANSI_NULLS ON - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - -CREATE PROCEDURE [dbo].[CheckSSL] -( - @siteID int, - @Renewal bit = 0, - @Result int OUTPUT -) -AS - -/* -@Result values: - 0 - OK - -1 - already exists -*/ - -SET @Result = 0 -- OK - --- check if a SSL Certificate is installed for domain -IF EXISTS(SELECT [ID] FROM [dbo].[SSLCertificates] WHERE [SiteID] = @siteID) -BEGIN - SET @Result = -1 - RETURN -END - ---To Do add renewal stuff - -RETURN - -SET ANSI_NULLS ON - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - -CREATE PROCEDURE [dbo].[CheckOCSUserExists] - @AccountID int -AS -BEGIN - SELECT - COUNT(AccountID) - FROM - dbo.OCSUsers - WHERE AccountID = @AccountID -END @@ -18470,6 +20734,28 @@ RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecProduct]( + [ProductID] [int] IDENTITY(1,1) NOT NULL, + [ProductName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [ProductSKU] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [TypeID] [int] NULL, + [Description] [ntext] COLLATE Latin1_General_CI_AS NULL, + [Created] [datetime] NOT NULL, + [Enabled] [bit] NOT NULL, + [ResellerID] [int] NOT NULL, + [TaxInclusive] [bit] NULL, + CONSTRAINT [PK_EC_Products] PRIMARY KEY CLUSTERED +( + [ProductID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) GO SET ANSI_NULLS ON @@ -19836,22 +22122,1132 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[GlobalDnsRecords]( - [RecordID] [int] IDENTITY(1,1) NOT NULL, - [RecordType] [varchar](10) COLLATE Latin1_General_CI_AS NOT NULL, - [RecordName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [RecordData] [nvarchar](500) COLLATE Latin1_General_CI_AS NOT NULL, - [MXPriority] [int] NOT NULL, - [ServiceID] [int] NULL, - [ServerID] [int] NULL, - [PackageID] [int] NULL, - [IPAddressID] [int] NULL, - CONSTRAINT [PK_GlobalDnsRecords] PRIMARY KEY CLUSTERED + + + + + + + + +CREATE PROCEDURE [dbo].[GetInstanceID] + @AccountID int +AS +BEGIN + SET NOCOUNT ON; + + SELECT InstanceID FROM OCSUsers WHERE AccountID = @AccountID +END + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ServiceItemTypes]( + [ItemTypeID] [int] NOT NULL, + [GroupID] [int] NULL, + [DisplayName] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, + [TypeName] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL, + [TypeOrder] [int] NOT NULL, + [CalculateDiskspace] [bit] NULL, + [CalculateBandwidth] [bit] NULL, + [Suspendable] [bit] NULL, + [Disposable] [bit] NULL, + [Searchable] [bit] NULL, + [Importable] [bit] NOT NULL, + [Backupable] [bit] NOT NULL, + CONSTRAINT [PK_ServiceItemTypes] PRIMARY KEY CLUSTERED ( - [RecordID] ASC + [ItemTypeID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (1, 9, N'SharePointUser', N'WebsitePanel.Providers.OS.SystemUser, WebsitePanel.Providers.Base', 19, 0, 0, 1, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (2, 1, N'HomeFolder', N'WebsitePanel.Providers.OS.HomeFolder, WebsitePanel.Providers.Base', 15, 1, 0, 0, 1, 0, 0, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (3, 9, N'SharePointGroup', N'WebsitePanel.Providers.OS.SystemGroup, WebsitePanel.Providers.Base', 20, 0, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (5, 5, N'MsSQL2000Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 9, 1, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (6, 5, N'MsSQL2000User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 10, 0, 0, 1, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (7, 6, N'MySQL4Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 13, 1, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (8, 6, N'MySQL4User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 14, 0, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (9, 3, N'FTPAccount', N'WebsitePanel.Providers.FTP.FtpAccount, WebsitePanel.Providers.Base', 3, 0, 1, 1, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (10, 2, N'WebSite', N'WebsitePanel.Providers.Web.WebSite, WebsitePanel.Providers.Base', 2, 1, 1, 1, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (11, 4, N'MailDomain', N'WebsitePanel.Providers.Mail.MailDomain, WebsitePanel.Providers.Base', 8, 0, 1, 1, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (12, 7, N'DNSZone', N'WebsitePanel.Providers.DNS.DnsZone, WebsitePanel.Providers.Base', 0, 0, 0, 1, 1, 0, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (13, 1, N'Domain', N'WebsitePanel.Providers.OS.Domain, WebsitePanel.Providers.Base', 1, 0, 0, 0, 0, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (14, 8, N'StatisticsSite', N'WebsitePanel.Providers.Statistics.StatsSite, WebsitePanel.Providers.Base', 17, 0, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (15, 4, N'MailAccount', N'WebsitePanel.Providers.Mail.MailAccount, WebsitePanel.Providers.Base', 4, 1, 0, 0, 0, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (16, 4, N'MailAlias', N'WebsitePanel.Providers.Mail.MailAlias, WebsitePanel.Providers.Base', 5, 0, 0, 0, 0, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (17, 4, N'MailList', N'WebsitePanel.Providers.Mail.MailList, WebsitePanel.Providers.Base', 7, 0, 0, 0, 0, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (18, 4, N'MailGroup', N'WebsitePanel.Providers.Mail.MailGroup, WebsitePanel.Providers.Base', 6, 0, 0, 0, 0, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (19, 9, N'SharePointSite', N'WebsitePanel.Providers.SharePoint.SharePointSite, WebsitePanel.Providers.Base', 18, 0, 0, 0, 1, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (20, 1, N'ODBCDSN', N'WebsitePanel.Providers.OS.SystemDSN, WebsitePanel.Providers.Base', 22, 0, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (21, 10, N'MsSQL2005Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 11, 1, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (22, 10, N'MsSQL2005User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 12, 0, 0, 1, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (23, 11, N'MySQL5Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 15, 1, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (24, 11, N'MySQL5User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 16, 0, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (25, 2, N'SharedSSLFolder', N'WebsitePanel.Providers.Web.SharedSSLFolder, WebsitePanel.Providers.Base', 21, 0, 0, 0, 1, 1, 0, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (28, 7, N'SecondaryDNSZone', N'WebsitePanel.Providers.DNS.SecondaryDnsZone, WebsitePanel.Providers.Base', 0, 0, 0, 1, 1, 0, 0, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (29, 13, N'Organization', N'WebsitePanel.Providers.HostedSolution.Organization, WebsitePanel.Providers.Base', 1, 1, 0, 1, 1, 1, 0, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (30, 13, N'OrganizationDomain', N'WebsitePanel.Providers.HostedSolution.OrganizationDomain, WebsitePanel.Providers.Base', 1, NULL, NULL, NULL, NULL, NULL, 0, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (31, 22, N'MsSQL2008Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 1, 1, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (32, 22, N'MsSQL2008User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (33, 30, N'VirtualMachine', N'WebsitePanel.Providers.Virtualization.VirtualMachine, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (34, 30, N'VirtualSwitch', N'WebsitePanel.Providers.Virtualization.VirtualSwitch, WebsitePanel.Providers.Base', 2, 0, 0, 1, 1, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (35, 40, N'VMInfo', N'WebsitePanel.Providers.Virtualization.VMInfo, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (36, 40, N'VirtualSwitch', N'WebsitePanel.Providers.Virtualization.VirtualSwitch, WebsitePanel.Providers.Base', 2, 0, 0, 1, 1, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 33, N'ExchangeOrganization', N'WebsitePanel.Providers.ExchangeHostedEdition.ExchangeOrganization, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) +GO +INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (200, 20, N'SharePointSiteCollection', N'WebsitePanel.Providers.SharePoint.SharePointSiteCollection, WebsitePanel.Providers.Base', 25, 1, 0, 0, 1, 1, 1, 1) +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdatePackageDiskSpace +( + @PackageID int, + @xml ntext +) +AS +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @xml +-- Execute a SELECT statement that uses the OPENXML rowset provider. + +DECLARE @Items TABLE +( + ItemID int, + Bytes bigint +) + +INSERT INTO @Items (ItemID, Bytes) +SELECT ItemID, DiskSpace FROM OPENXML (@idoc, '/items/item',1) +WITH +( + ItemID int '@id', + DiskSpace bigint '@bytes' +) as XSI + +-- remove current diskspace +DELETE FROM PackagesDiskspace +WHERE PackageID = @PackageID + +-- update package diskspace +INSERT INTO PackagesDiskspace (PackageID, GroupID, Diskspace) +SELECT + @PackageID, + SIT.GroupID, + SUM(I.Bytes) +FROM @Items AS I +INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +GROUP BY SIT.GroupID + +-- remove document +exec sp_xml_removedocument @idoc + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdatePackageBandwidth +( + @PackageID int, + @xml ntext +) +AS +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + + +DECLARE @Items TABLE +( + ItemID int, + LogDate datetime, + BytesSent bigint, + BytesReceived bigint +) + +INSERT INTO @Items +( + ItemID, + LogDate, + BytesSent, + BytesReceived +) +SELECT + ItemID, + CONVERT(datetime, LogDate, 101), + BytesSent, + BytesReceived +FROM OPENXML(@idoc, '/items/item',1) WITH +( + ItemID int '@id', + LogDate nvarchar(10) '@date', + BytesSent bigint '@sent', + BytesReceived bigint '@received' +) + +-- delete current statistics +DELETE FROM PackagesBandwidth +FROM PackagesBandwidth AS PB +INNER JOIN ( + SELECT + SIT.GroupID, + I.LogDate + FROM @Items AS I + INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID + INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID + GROUP BY I.LogDate, SIT.GroupID +) AS STAT ON PB.LogDate = STAT.LogDate AND PB.GroupID = STAT.GroupID +WHERE PB.PackageID = @PackageID + +-- insert new statistics +INSERT INTO PackagesBandwidth (PackageID, GroupID, LogDate, BytesSent, BytesReceived) +SELECT + @PackageID, + SIT.GroupID, + I.LogDate, + SUM(I.BytesSent), + SUM(I.BytesReceived) +FROM @Items AS I +INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +GROUP BY I.LogDate, SIT.GroupID + +-- remove document +exec sp_xml_removedocument @idoc + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemsPaged] +( + @ActorID int, + @PackageID int, + @ItemTypeName nvarchar(200), + @GroupName nvarchar(100) = NULL, + @ServerID int, + @Recursive bit, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +) +AS + + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- start +DECLARE @GroupID int +SELECT @GroupID = GroupID FROM ResourceGroups +WHERE GroupName = @GroupName + +DECLARE @ItemTypeID int +SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes +WHERE TypeName = @ItemTypeName +AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND GroupID = @GroupID)) + +DECLARE @condition nvarchar(700) +SET @condition = 'SI.ItemTypeID = @ItemTypeID +AND ((@Recursive = 0 AND P.PackageID = @PackageID) + OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, P.PackageID) = 1)) +AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND IT.GroupID = @GroupID)) +AND (@ServerID = 0 OR (@ServerID > 0 AND S.ServerID = @ServerID)) +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'SI.ItemName ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT COUNT(SI.ItemID) FROM Packages AS P +INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +WHERE ' + @condition + ' + +DECLARE @Items AS TABLE +( + ItemID int +); + +WITH TempItems AS ( + SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, + SI.ItemID + FROM Packages AS P + INNER JOIN ServiceItems AS SI ON P.PackageID = SI.PackageID + INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID + INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID + INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID + INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID + WHERE ' + @condition + ' +) + +INSERT INTO @Items +SELECT ItemID FROM TempItems +WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows + +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + IT.TypeName, + SI.ServiceID, + SI.PackageID, + SI.CreatedDate, + RG.GroupName, + + -- packages + P.PackageName, + + -- server + ISNULL(SRV.ServerID, 0) AS ServerID, + ISNULL(SRV.ServerName, '''') AS ServerName, + ISNULL(SRV.Comments, '''') AS ServerComments, + ISNULL(SRV.VirtualServer, 0) AS VirtualServer, + + -- user + P.UserID, + U.Username, + U.FirstName, + U.LastName, + U.FullName, + U.RoleID, + U.Email +FROM @Items AS TSI +INNER JOIN ServiceItems AS SI ON TSI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN ResourceGroups AS RG ON IT.GroupID = RG.GroupID + + +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS TSI ON IP.ItemID = TSI.ItemID' + +--print @sql + +exec sp_executesql @sql, N'@ItemTypeID int, @PackageID int, @GroupID int, @StartRow int, @MaximumRows int, @Recursive bit, @ServerID int', +@ItemTypeID, @PackageID, @GroupID, @StartRow, @MaximumRows, @Recursive, @ServerID + +RETURN + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemsForStatistics] +( + @ActorID int, + @ServiceID int, + @PackageID int, + @CalculateDiskspace bit, + @CalculateBandwidth bit, + @Suspendable bit, + @Disposable bit +) +AS +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +WHERE + ((@ServiceID = 0) OR (@ServiceID > 0 AND SI.ServiceID = @ServiceID)) + AND ((@PackageID = 0) OR (@PackageID > 0 AND SI.PackageID = @PackageID)) + AND ((@CalculateDiskspace = 0) OR (@CalculateDiskspace = 1 AND SIT.CalculateDiskspace = @CalculateDiskspace)) + AND ((@CalculateBandwidth = 0) OR (@CalculateBandwidth = 1 AND SIT.CalculateBandwidth = @CalculateBandwidth)) + AND ((@Suspendable = 0) OR (@Suspendable = 1 AND SIT.Suspendable = @Suspendable)) + AND ((@Disposable = 0) OR (@Disposable = 1 AND SIT.Disposable = @Disposable)) + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + RG.GroupName, + SIT.TypeName, + SI.ServiceID, + SI.PackageID, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID +ORDER BY RG.GroupOrder DESC, SI.ItemName + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemsCount] +( + @ItemTypeName nvarchar(200), + @GroupName nvarchar(100) = NULL, + @ServiceID int = 0, + @TotalNumber int OUTPUT +) +AS + +SET @TotalNumber = 0 + +-- find service items +SELECT + @TotalNumber = COUNT(SI.ItemID) +FROM ServiceItems AS SI +INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID +INNER JOIN ResourceGroups AS RG ON IT.GroupID = RG.GroupID +WHERE IT.TypeName = @ItemTypeName +AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) +AND ((@ServiceID = 0) OR (@ServiceID > 0 AND SI.ServiceID = @ServiceID)) + +RETURN + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE CheckServiceItemExistsInService +( + @Exists bit OUTPUT, + @ServiceID int, + @ItemName nvarchar(500), + @ItemTypeName nvarchar(200) +) +AS + +SET @Exists = 0 + +DECLARE @ItemTypeID int +SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes +WHERE TypeName = @ItemTypeName + +IF EXISTS (SELECT ItemID FROM ServiceItems +WHERE ItemName = @ItemName AND ItemTypeID = @ItemTypeID AND ServiceID = @ServiceID) +SET @Exists = 1 + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE CheckUserExists +( + @Exists bit OUTPUT, + @Username nvarchar(100) +) +AS + +SET @Exists = 0 + +IF EXISTS (SELECT UserID FROM Users +WHERE Username = @Username) +SET @Exists = 1 + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + +CREATE PROCEDURE [dbo].[CheckSSLExistsForWebsite] +( + @siteID int, + @SerialNumber nvarchar(250), + @Result bit OUTPUT +) +AS + +/* +@Result values: + 0 - OK + -1 - already exists +*/ + +SET @Result = 0 -- OK + +-- check if a SSL Certificate is installed for domain +IF EXISTS(SELECT [ID] FROM [dbo].[SSLCertificates] WHERE [SiteID] = @siteID +--AND SerialNumber=@SerialNumber +) +BEGIN + SET @Result = 1 + RETURN +END + +RETURN + +SET ANSI_NULLS ON + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + +CREATE PROCEDURE [dbo].[CheckSSL] +( + @siteID int, + @Renewal bit = 0, + @Result int OUTPUT +) +AS + +/* +@Result values: + 0 - OK + -1 - already exists +*/ + +SET @Result = 0 -- OK + +-- check if a SSL Certificate is installed for domain +IF EXISTS(SELECT [ID] FROM [dbo].[SSLCertificates] WHERE [SiteID] = @siteID) +BEGIN + SET @Result = -1 + RETURN +END + +--To Do add renewal stuff + +RETURN + +SET ANSI_NULLS ON + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[Providers]( + [ProviderID] [int] NOT NULL, + [GroupID] [int] NOT NULL, + [ProviderName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL, + [DisplayName] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL, + [ProviderType] [nvarchar](400) COLLATE Latin1_General_CI_AS NULL, + [EditorControl] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL, + [DisableAutoDiscovery] [bit] NULL, + CONSTRAINT [PK_ServiceTypes] PRIMARY KEY CLUSTERED +( + [ProviderID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (1, 1, N'Windows2003', N'Windows Server 2003', N'WebsitePanel.Providers.OS.Windows2003, WebsitePanel.Providers.OS.Windows2003', N'Windows2003', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (2, 2, N'IIS60', N'Internet Information Services 6.0', N'WebsitePanel.Providers.Web.IIs60, WebsitePanel.Providers.Web.IIs60', N'IIS60', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (3, 3, N'MSFTP60', N'Microsoft FTP Server 6.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs60', N'MSFTP60', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (4, 4, N'MailEnable', N'MailEnable Server 1.x - 4.x', N'WebsitePanel.Providers.Mail.MailEnable, WebsitePanel.Providers.Mail.MailEnable', N'MailEnable', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (5, 5, N'MSSQL', N'Microsoft SQL Server 2000', N'WebsitePanel.Providers.Database.MsSqlServer, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (6, 6, N'MySQL', N'MySQL Server 4.x', N'WebsitePanel.Providers.Database.MySqlServer, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (7, 7, N'MSDNS', N'Microsoft DNS Server', N'WebsitePanel.Providers.DNS.MsDNS, WebsitePanel.Providers.DNS.MsDNS', N'MSDNS', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (8, 8, N'AWStats', N'AWStats Statistics Service', N'WebsitePanel.Providers.Statistics.AWStats, WebsitePanel.Providers.Statistics.AWStats', N'AWStats', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (9, 7, N'SimpleDNS', N'SimpleDNS Plus 4.x', N'WebsitePanel.Providers.DNS.SimpleDNS, WebsitePanel.Providers.DNS.SimpleDNS', N'SimpleDNS', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (10, 8, N'SmarterStats', N'SmarterStats 3.x', N'WebsitePanel.Providers.Statistics.SmarterStats, WebsitePanel.Providers.Statistics.SmarterStats', N'SmarterStats', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (11, 4, N'SmarterMail', N'SmarterMail 2.x', N'WebsitePanel.Providers.Mail.SmarterMail2, WebsitePanel.Providers.Mail.SmarterMail2', N'SmarterMail', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (12, 3, N'Gene6FTP', N'Gene6 FTP Server 3.x', N'WebsitePanel.Providers.FTP.Gene6, WebsitePanel.Providers.FTP.Gene6', N'Gene6FTP', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (13, 4, N'Merak', N'Merak Mail Server 8.0.3 - 9.2.x', N'WebsitePanel.Providers.Mail.Merak, WebsitePanel.Providers.Mail.Merak', N'Merak', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (14, 4, N'SmarterMail', N'SmarterMail 3.x - 4.x', N'WebsitePanel.Providers.Mail.SmarterMail3, WebsitePanel.Providers.Mail.SmarterMail3', N'SmarterMail', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (15, 9, N'Sps20', N'Windows SharePoint Services 2.0', N'WebsitePanel.Providers.SharePoint.Sps20, WebsitePanel.Providers.SharePoint.Sps20', N'Sps20', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (16, 10, N'MSSQL', N'Microsoft SQL Server 2005', N'WebsitePanel.Providers.Database.MsSqlServer2005, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (17, 11, N'MySQL', N'MySQL Server 5.0', N'WebsitePanel.Providers.Database.MySqlServer50, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (18, 4, N'MDaemon', N'MDaemon 9.x - 11.x', N'WebsitePanel.Providers.Mail.MDaemon, WebsitePanel.Providers.Mail.MDaemon', N'MDaemon', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (19, 4, N'ArgoMail', N'ArGoSoft Mail Server 1.x', N'WebsitePanel.Providers.Mail.ArgoMail, WebsitePanel.Providers.Mail.ArgoMail', N'ArgoMail', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (20, 4, N'hMailServer', N'hMailServer 4.2', N'WebsitePanel.Providers.Mail.hMailServer, WebsitePanel.Providers.Mail.hMailServer', N'hMailServer', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (21, 4, N'AbilityMailServer', N'Ability Mail Server 2.x', N'WebsitePanel.Providers.Mail.AbilityMailServer, WebsitePanel.Providers.Mail.AbilityMailServer', N'AbilityMailServer', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (22, 4, N'hMailServer43', N'hMailServer 4.3', N'WebsitePanel.Providers.Mail.hMailServer43, WebsitePanel.Providers.Mail.hMailServer43', N'hMailServer43', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (23, 9, N'Sps20', N'Windows SharePoint Services 3.0', N'WebsitePanel.Providers.SharePoint.Sps30, WebsitePanel.Providers.SharePoint.Sps30', N'Sps20', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (24, 7, N'Bind', N'ISC BIND 8.x - 9.x', N'WebsitePanel.Providers.DNS.IscBind, WebsitePanel.Providers.DNS.Bind', N'Bind', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (25, 3, N'ServU', N'Serv-U FTP 6.x', N'WebsitePanel.Providers.FTP.ServU, WebsitePanel.Providers.FTP.ServU', N'ServU', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (26, 3, N'FileZilla', N'FileZilla FTP Server 0.9', N'WebsitePanel.Providers.FTP.FileZilla, WebsitePanel.Providers.FTP.FileZilla', N'FileZilla', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (27, 12, N'Exchange2007', N'Hosted Microsoft Exchange Server 2007', N'WebsitePanel.Providers.HostedSolution.Exchange2007, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (28, 7, N'SimpleDNS', N'SimpleDNS Plus 5.x', N'WebsitePanel.Providers.DNS.SimpleDNS5, WebsitePanel.Providers.DNS.SimpleDNS50', N'SimpleDNS', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (29, 4, N'SmarterMail', N'SmarterMail 5.x', N'WebsitePanel.Providers.Mail.SmarterMail5, WebsitePanel.Providers.Mail.SmarterMail5', N'SmarterMail50', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (30, 11, N'MySQL', N'MySQL Server 5.1', N'WebsitePanel.Providers.Database.MySqlServer51, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (31, 8, N'SmarterStats', N'SmarterStats 4.x', N'WebsitePanel.Providers.Statistics.SmarterStats4, WebsitePanel.Providers.Statistics.SmarterStats', N'SmarterStats', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (32, 12, N'Exchange2010', N'Hosted Microsoft Exchange Server 2010', N'WebsitePanel.Providers.HostedSolution.Exchange2010, WebsitePanel.Providers.HostedSolution', N'Exchange', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (55, 7, N'NetticaDNS', N'Nettica DNS', N'WebsitePanel.Providers.DNS.Nettica, WebsitePanel.Providers.DNS.Nettica', N'NetticaDNS', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (56, 7, N'PowerDNS', N'PowerDNS', N'WebsitePanel.Providers.DNS.PowerDNS, WebsitePanel.Providers.DNS.PowerDNS', N'PowerDNS', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (60, 4, N'SmarterMail', N'SmarterMail 6.x', N'WebsitePanel.Providers.Mail.SmarterMail6, WebsitePanel.Providers.Mail.SmarterMail6', N'SmarterMail60', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (61, 4, N'Merak', N'Merak Mail Server 10.x', N'WebsitePanel.Providers.Mail.Merak10, WebsitePanel.Providers.Mail.Merak10', N'Merak', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (62, 8, N'SmarterStats', N'SmarterStats 5.x-6.x', N'WebsitePanel.Providers.Statistics.SmarterStats5, WebsitePanel.Providers.Statistics.SmarterStats', N'SmarterStats', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (63, 4, N'hMailServer5', N'hMailServer 5.x', N'WebsitePanel.Providers.Mail.hMailServer5, WebsitePanel.Providers.Mail.hMailServer5', N'hMailServer43', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (64, 4, N'SmarterMail', N'SmarterMail 7.x', N'WebsitePanel.Providers.Mail.SmarterMail7, WebsitePanel.Providers.Mail.SmarterMail7', N'SmarterMail60', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (100, 1, N'Windows2008', N'Windows Server 2008', N'WebsitePanel.Providers.OS.Windows2008, WebsitePanel.Providers.OS.Windows2008', N'Windows2008', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (101, 2, N'IIS70', N'Internet Information Services 7.0', N'WebsitePanel.Providers.Web.IIs70, WebsitePanel.Providers.Web.IIs70', N'IIS70', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (102, 3, N'MSFTP70', N'Microsoft FTP Server 7.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs70', N'MSFTP70', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (103, 13, N'Organizations', N'Hosted Organizations', N'WebsitePanel.Providers.HostedSolution.OrganizationProvider, WebsitePanel.Providers.HostedSolution', N'Organizations', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (200, 20, N'HostedSharePoint30', N'Hosted Windows SharePoint Services 3.0', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (201, 21, N'CRM', N'Hosted MS CRM 4.0', N'WebsitePanel.Providers.HostedSolution.CRMProvider, WebsitePanel.Providers.HostedSolution', N'CRM', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (202, 22, N'MsSQL', N'Microsoft SQL Server 2008', N'WebsitePanel.Providers.Database.MsSqlServer2008, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (203, 31, N'BlackBerry 4.1', N'BlackBerry 4.1', N'WebsitePanel.Providers.HostedSolution.BlackBerryProvider, WebsitePanel.Providers.HostedSolution', N'BlackBerry', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (204, 31, N'BlackBerry 5.0', N'BlackBerry 5.0', N'WebsitePanel.Providers.HostedSolution.BlackBerry5Provider, WebsitePanel.Providers.HostedSolution', N'BlackBerry5', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (205, 32, N'OCS', N'Office Communications Server 2007 R2', N'WebsitePanel.Providers.HostedSolution.OCS2007R2, WebsitePanel.Providers.HostedSolution', N'OCS', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (206, 32, N'OCSEdge', N'OCS Edge server', N'WebsitePanel.Providers.HostedSolution.OCSEdge2007R2, WebsitePanel.Providers.HostedSolution', N'OCS_Edge', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (207, 33, N'Exchange2010SP1', N'Exchange Server 2010 SP1 Hosting Mode', N'WebsitePanel.Providers.ExchangeHostedEdition.Exchange2010SP1, WebsitePanel.Providers.ExchangeHostedEdition', N'Exchange2010SP1', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (208, 20, N'HostedSharePoint2010', N'Hosted SharePoint Foundation 2010', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer2010, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (300, 30, N'HyperV', N'Microsoft Hyper-V', N'WebsitePanel.Providers.Virtualization.HyperV, WebsitePanel.Providers.Virtualization.HyperV', N'HyperV', 1) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (301, 11, N'MySQL', N'MySQL Server 5.5', N'WebsitePanel.Providers.Database.MySqlServer55, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) +GO +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (400, 40, N'HyperVForPC', N'Microsoft Hyper-V For Private Cloud', N'WebsitePanel.Providers.VirtualizationForPC.HyperVForPC, WebsitePanel.Providers.VirtualizationForPC.HyperVForPC', N'HyperVForPrivateCloud', 1) +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + +CREATE PROCEDURE [dbo].[CheckOCSUserExists] + @AccountID int +AS +BEGIN + SELECT + COUNT(AccountID) + FROM + dbo.OCSUsers + WHERE AccountID = @AccountID +END + + + + + + + + + + + + + + GO SET ANSI_NULLS ON GO @@ -19962,6 +23358,7 @@ RETURN + GO @@ -20069,6 +23466,7 @@ RETURN + GO @@ -20167,6 +23565,7 @@ RETURN + GO @@ -20288,83 +23687,6 @@ RETURN - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetAuditLogTasks -( - @SourceName varchar(100) -) -AS - -IF @SourceName = '' SET @SourceName = NULL - -SELECT SourceName, TaskName FROM AuditLogTasks -WHERE (@SourceName = NULL OR @SourceName IS NOT NULL AND SourceName = @SourceName) - -RETURN - - - - - - - - - - - - - - - - - @@ -20386,988 +23708,10 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetAuditLogSources -AS - -SELECT SourceName FROM AuditLogSources - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetResourceGroups -AS -SELECT - GroupID, - GroupName, - GroupController -FROM ResourceGroups -ORDER BY GroupOrder -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetResourceGroup -( - @GroupID int -) -AS -SELECT - RG.GroupID, - RG.GroupOrder, - RG.GroupName, - RG.GroupController -FROM ResourceGroups AS RG -WHERE RG.GroupID = @GroupID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetScheduleTasks -( - @ActorID int -) -AS - --- get user role -DECLARE @RoleID int -SELECT @RoleID = RoleID FROM Users -WHERE UserID = @ActorID - -SELECT - TaskID, - TaskType, - RoleID -FROM ScheduleTasks -WHERE @RoleID <= RoleID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetScheduleTask -( - @ActorID int, - @TaskID nvarchar(100) -) -AS - --- get user role -DECLARE @RoleID int -SELECT @RoleID = RoleID FROM Users -WHERE UserID = @ActorID - -SELECT - TaskID, - TaskType, - RoleID -FROM ScheduleTasks -WHERE - TaskID = @TaskID - AND @RoleID >= RoleID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetSystemSettings - @SettingsName nvarchar(50) -AS -BEGIN - - SET NOCOUNT ON; - - SELECT - [PropertyName], - [PropertyValue] - FROM - [dbo].[SystemSettings] - WHERE - [SettingsName] = @SettingsName; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[GetUserByIdInternally] -( - @UserID int -) -AS - SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - U.Password, - U.FirstName, - U.LastName, - U.Email, - U.SecondaryEmail, - U.Address, - U.City, - U.State, - U.Country, - U.Zip, - U.PrimaryPhone, - U.SecondaryPhone, - U.Fax, - U.InstantMessenger, - U.HtmlMail, - U.CompanyName, - U.EcommerceEnabled, - U.[AdditionalParams] - FROM Users AS U - WHERE U.UserID = @UserID - - RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[GetUserByUsernameInternally] -( - @Username nvarchar(50) -) -AS - SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - U.Password, - U.FirstName, - U.LastName, - U.Email, - U.SecondaryEmail, - U.Address, - U.City, - U.State, - U.Country, - U.Zip, - U.PrimaryPhone, - U.SecondaryPhone, - U.Fax, - U.InstantMessenger, - U.HtmlMail, - U.CompanyName, - U.EcommerceEnabled, - U.[AdditionalParams] - FROM Users AS U - WHERE U.Username = @Username - - RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION dbo.UserParents -( - @ActorID int, - @UserID int -) -RETURNS @T TABLE (UserOrder int IDENTITY(1,1), UserID int) -AS -BEGIN - -- insert current user - INSERT @T VALUES (@UserID) - - DECLARE @TopUserID int - IF @ActorID = -1 - BEGIN - SELECT @TopUserID = UserID FROM Users WHERE OwnerID IS NULL - END - ELSE - BEGIN - SET @TopUserID = @ActorID - - IF EXISTS (SELECT UserID FROM Users WHERE UserID = @ActorID AND IsPeer = 1) - SELECT @TopUserID = OwnerID FROM Users WHERE UserID = @ActorID AND IsPeer = 1 - END - - -- owner - DECLARE @OwnerID int, @TmpUserID int - - SET @TmpUserID = @UserID - - WHILE (@TmpUserID <> @TopUserID) - BEGIN - - SET @OwnerID = NULL - SELECT @OwnerID = OwnerID FROM Users WHERE UserID = @TmpUserID - - IF @OwnerID IS NOT NULL - BEGIN - INSERT @T VALUES (@OwnerID) - SET @TmpUserID = @OwnerID - END - END - -RETURN -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CanCreateUser] -( - @ActorID int, - @UserID int -) -RETURNS bit -AS -BEGIN - -IF @ActorID = -1 -RETURN 1 - --- check if the user requests himself -IF @ActorID = @UserID -RETURN 1 - -DECLARE @IsPeer bit -DECLARE @OwnerID int - -SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @IsPeer = 1 -BEGIN - SET @ActorID = @OwnerID -END - -IF @ActorID = @UserID -RETURN 1 - -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - IF @ParentUserID = @ActorID - RETURN 1 - - SET @TmpUserID = @ParentUserID -END - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddServiceHandlerTextResponse] - @ServiceID nvarchar(50), - @ContractID nvarchar(50), - @InvoiceID int, - @DataReceived ntext -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - IF @InvoiceID = 0 - SET @InvoiceID = NULL; - - INSERT INTO [ecServiceHandlersResponses] ([ServiceID],[ContractID],[InvoiceID],[TextResponse]) - VALUES (@ServiceID,@ContractID,@InvoiceID,@DataReceived); - -END - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteAuditLogRecordsComplete -AS - -TRUNCATE TABLE AuditLog - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecInvoiceItems]( - [ItemID] [int] IDENTITY(1,1) NOT NULL, - [InvoiceID] [int] NOT NULL, - [ServiceID] [int] NULL, - [ItemName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [TypeName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [Quantity] [int] NOT NULL, - [Total] [money] NOT NULL, - [SubTotal] [money] NOT NULL, - [UnitPrice] [money] NOT NULL, - [Processed] [bit] NOT NULL, - CONSTRAINT [PK_EC_InvoiceItems] PRIMARY KEY CLUSTERED -( - [ItemID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +CREATE TABLE [dbo].[ecProductsHighlights]( + [ProductID] [int] NOT NULL, + [HighlightText] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [SortOrder] [int] NOT NULL ) GO @@ -21375,252 +23719,15 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - - - - - - - - -CREATE PROCEDURE [dbo].[GetInstanceID] - @AccountID int -AS -BEGIN - SET NOCOUNT ON; - - SELECT InstanceID FROM OCSUsers WHERE AccountID = @AccountID -END - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateContract] - @ContractID nvarchar(50), - @CustomerID int, - @AccountName nvarchar(50), - @Status int, - @Balance money, - @FirstName nvarchar(50), - @LastName nvarchar(50), - @Email nvarchar(255), - @CompanyName nvarchar(50), - @PropertyNames ntext, - @PropertyValues ntext, - @Result int OUTPUT -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SET @Result = 0; - - IF @CustomerID < 1 - SET @CustomerID = NULL; - - UPDATE [dbo].[ecContracts] SET - [CustomerID] = @CustomerID, - [AccountName] = @AccountName, - [Status] = @Status, - [Balance] = @Balance, - [FirstName] = @FirstName, - [LastName] = @LastName, - [Email] = @Email, - [CompanyName] = @CompanyName, - [PropertyNames] = @PropertyNames, - [PropertyValues] = @PropertyValues - WHERE - [ContractID] = @ContractID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackages -( - @ActorID int, - @UserID int -) -AS - -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - -SELECT - P.PackageID, - P.ParentPackageID, - P.PackageName, - P.StatusID, - P.PurchaseDate, - - -- server - ISNULL(P.ServerID, 0) AS ServerID, - ISNULL(S.ServerName, 'None') AS ServerName, - ISNULL(S.Comments, '') AS ServerComments, - ISNULL(S.VirtualServer, 1) AS VirtualServer, - - -- hosting plan - P.PlanID, - HP.PlanName, - - -- user - P.UserID, - U.Username, - U.FirstName, - U.LastName, - U.RoleID, - U.Email -FROM Packages AS P -INNER JOIN Users AS U ON P.UserID = U.UserID -INNER JOIN Servers AS S ON P.ServerID = S.ServerID -INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID -WHERE - P.UserID <> @UserID - AND dbo.CheckUserParent(@UserID, P.UserID) = 1 -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecPaymentMethods]( +CREATE TABLE [dbo].[ecProductCategories]( + [ProductID] [int] NOT NULL, + [CategoryID] [int] NOT NULL, [ResellerID] [int] NOT NULL, - [MethodName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PluginID] [int] NOT NULL, - [DisplayName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [SupportedItems] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ecPaymentMethods] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_ecProductCategories] PRIMARY KEY CLUSTERED ( - [ResellerID] ASC, - [MethodName] ASC + [ProductID] ASC, + [CategoryID] ASC, + [ResellerID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) @@ -21629,92 +23736,15 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecLookupForTransaction] - @TransactionID nvarchar(255) -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT * FROM [dbo].[ecCustomersPayments] WHERE [TransactionID] = @TransactionID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecService]( +CREATE TABLE [dbo].[Services]( [ServiceID] [int] IDENTITY(1,1) NOT NULL, - [ServiceName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [TypeID] [int] NULL, - [Status] [int] NOT NULL, - [Created] [datetime] NOT NULL, - [Modified] [datetime] NULL, - [ParentID] [int] NULL, - [ContractID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_SpaceInstances] PRIMARY KEY CLUSTERED + [ServerID] [int] NOT NULL, + [ProviderID] [int] NOT NULL, + [ServiceName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [Comments] [ntext] COLLATE Latin1_General_CI_AS NULL, + [ServiceQuotaValue] [int] NULL, + [ClusterID] [int] NULL, + CONSTRAINT [PK_Services] PRIMARY KEY CLUSTERED ( [ServiceID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) @@ -21742,218 +23772,85 @@ GO - - -CREATE PROCEDURE [dbo].[ecCheckCustomerContractExists] - @CustomerID int, - @Result bit OUTPUT -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - IF EXISTS (SELECT * FROM [ecContracts] WHERE [CustomerID] = @CustomerID) - BEGIN - SET @Result = 1; - RETURN; - END - - SET @Result = 0; - -END - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetComments +CREATE PROCEDURE [dbo].[AddServiceItem] ( @ActorID int, - @UserID int, - @ItemTypeID varchar(50), - @ItemID int + @PackageID int, + @ServiceID int, + @ItemName nvarchar(500), + @ItemTypeName nvarchar(200), + @ItemID int OUTPUT, + @XmlProperties ntext, + @CreatedDate datetime ) AS +BEGIN TRAN -- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - -SELECT - C.CommentID, - C.ItemTypeID, - C.ItemID, - C.UserID, - C.CreatedDate, - C.CommentText, - C.SeverityID, - - -- user - U.Username, - U.FirstName, - U.LastName, - U.FullName, - U.RoleID, - U.Email -FROM Comments AS C -INNER JOIN UsersDetailed AS U ON C.UserID = U.UserID -WHERE - ItemTypeID = @ItemTypeID - AND ItemID = @ItemID - AND dbo.CheckUserParent(@UserID, C.UserID) = 1 -ORDER BY C.CreatedDate ASC -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeleteServiceItem] -( - @ActorID int, - @ItemID int -) -AS - --- check rights -DECLARE @PackageID int -SELECT PackageID = @PackageID FROM ServiceItems -WHERE ItemID = @ItemID - IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 RAISERROR('You are not allowed to access this package', 16, 1) -BEGIN TRAN +-- get GroupID +DECLARE @GroupID int +SELECT + @GroupID = PROV.GroupID +FROM Services AS S +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +WHERE S.ServiceID = @ServiceID -UPDATE Domains -SET ZoneItemID = NULL -WHERE ZoneItemID = @ItemID +DECLARE @ItemTypeID int +SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes +WHERE TypeName = @ItemTypeName +AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND GroupID = @GroupID)) -UPDATE Domains -SET WebSiteID = NULL -WHERE WebSiteID = @ItemID +-- add item +INSERT INTO ServiceItems +( + PackageID, + ServiceID, + ItemName, + ItemTypeID, + CreatedDate +) +VALUES +( + @PackageID, + @ServiceID, + @ItemName, + @ItemTypeID, + @CreatedDate +) -UPDATE Domains -SET MailDomainID = NULL -WHERE MailDomainID = @ItemID +SET @ItemID = SCOPE_IDENTITY() --- delete item comments -DELETE FROM Comments -WHERE ItemID = @ItemID AND ItemTypeID = 'SERVICE_ITEM' +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlProperties --- delete item properties +-- Execute a SELECT statement that uses the OPENXML rowset provider. DELETE FROM ServiceItemProperties WHERE ItemID = @ItemID --- delete external IP addresses -EXEC dbo.DeleteItemIPAddresses @ActorID, @ItemID +INSERT INTO ServiceItemProperties +( + ItemID, + PropertyName, + PropertyValue +) +SELECT + @ItemID, + PropertyName, + PropertyValue +FROM OPENXML(@idoc, '/properties/property',1) WITH +( + PropertyName nvarchar(50) '@name', + PropertyValue nvarchar(3000) '@value' +) as PV --- delete item -DELETE FROM ServiceItems -WHERE ItemID = @ItemID +-- remove document +exec sp_xml_removedocument @idoc COMMIT TRAN - RETURN @@ -21972,1521 +23869,6 @@ RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[PackageServices]( - [PackageID] [int] NOT NULL, - [ServiceID] [int] NOT NULL, - CONSTRAINT [PK_PackageServices] PRIMARY KEY CLUSTERED -( - [PackageID] ASC, - [ServiceID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeletePackage] -( - @ActorID int, - @PackageID int -) -AS -BEGIN - -- check rights - IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 - RAISERROR('You are not allowed to access this package', 16, 1) - - BEGIN TRAN - - -- remove package from cache - DELETE FROM PackagesTreeCache - WHERE - ParentPackageID = @PackageID OR - PackageID = @PackageID - - -- delete package comments - DELETE FROM Comments - WHERE ItemID = @PackageID AND ItemTypeID = 'PACKAGE' - - -- delete diskspace - DELETE FROM PackagesDiskspace - WHERE PackageID = @PackageID - - -- delete bandwidth - DELETE FROM PackagesBandwidth - WHERE PackageID = @PackageID - - -- delete settings - DELETE FROM PackageSettings - WHERE PackageID = @PackageID - - -- delete domains - DELETE FROM Domains - WHERE PackageID = @PackageID - - -- delete package IP addresses - DELETE FROM PackageIPAddresses - WHERE PackageID = @PackageID - - -- delete service items - DELETE FROM ServiceItems - WHERE PackageID = @PackageID - - -- delete global DNS records - DELETE FROM GlobalDnsRecords - WHERE PackageID = @PackageID - - -- delete package services - DELETE FROM PackageServices - WHERE PackageID = @PackageID - - -- delete package quotas - DELETE FROM PackageQuotas - WHERE PackageID = @PackageID - - -- delete package resources - DELETE FROM PackageResources - WHERE PackageID = @PackageID - - -- delete package - DELETE FROM Packages - WHERE PackageID = @PackageID - - COMMIT TRAN -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE VIEW [dbo].[ContractsInvoicesDetailed] -AS -SELECT dbo.ecInvoice.InvoiceID, dbo.ecInvoice.ContractID, dbo.ecContracts.ResellerID, dbo.ecContracts.CustomerID, ISNULL(dbo.Users.Username, -dbo.ecContracts.AccountName) AS Username, dbo.ecContracts.Status, dbo.ecInvoice.Created, dbo.ecInvoice.DueDate, dbo.ecInvoice.Total, dbo.ecInvoice.SubTotal, -dbo.ecInvoice.TaxAmount, dbo.ecInvoice.Currency, dbo.ecInvoice.InvoiceNumber, dbo.ecInvoice.TaxationID, dbo.ecCustomersPayments.PaymentID, -dbo.ecCustomersPayments.StatusID, dbo.ecCustomersPayments.TransactionID, (CASE WHEN dbo.ecCustomersPayments.PaymentID IS NOT NULL AND -dbo.ecCustomersPayments.StatusID = 1 THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END) AS Paid -FROM dbo.ecInvoice INNER JOIN -dbo.ecContracts ON dbo.ecInvoice.ContractID = dbo.ecContracts.ContractID LEFT OUTER JOIN -dbo.ecCustomersPayments ON dbo.ecInvoice.InvoiceID = dbo.ecCustomersPayments.InvoiceID LEFT OUTER JOIN -dbo.Users ON dbo.ecContracts.CustomerID = dbo.Users.UserID - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecProduct]( - [ProductID] [int] IDENTITY(1,1) NOT NULL, - [ProductName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [ProductSKU] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [TypeID] [int] NULL, - [Description] [ntext] COLLATE Latin1_General_CI_AS NULL, - [Created] [datetime] NOT NULL, - [Enabled] [bit] NOT NULL, - [ResellerID] [int] NOT NULL, - [TaxInclusive] [bit] NULL, - CONSTRAINT [PK_EC_Products] PRIMARY KEY CLUSTERED -( - [ProductID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomerTaxation] - @ContractID nvarchar(50), - @Country nvarchar(50), - @State nvarchar(50) -AS -BEGIN - DECLARE @ResellerID int; - SELECT - @ResellerID = [ResellerID] FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - -- - SELECT TOP 1 - ROW_NUMBER() OVER (ORDER BY [TypeId] DESC, [State] ASC), - * - FROM - [dbo].[ecTaxations] - WHERE - [ResellerID] = @ResellerID - AND - ([Country] = @Country OR [Country] = '*') - AND - ([State] = @State OR [State] = '*') - AND - [Active] = 1; - -END - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomerPayment] - @ActorID int, - @PaymentID int -AS -BEGIN - -- read an issuer information - DECLARE @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecCustomersPayments] - WHERE - [PaymentID] = @PaymentID; - - SET NOCOUNT ON; - - SELECT - [P].*, [INV].[InvoiceNumber] FROM [dbo].[ecCustomersPayments] AS [P] - LEFT OUTER JOIN - [dbo].[ecInvoice] AS [INV] ON [INV].[InvoiceID] = [P].[InvoiceID] - WHERE - [P].[PaymentID] = @PaymentID AND [P].[ContractID] = @ContractID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomerContract] - @CustomerID int -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT * FROM [dbo].[ecContracts] WHERE [CustomerID] = @CustomerID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetContract] - @ContractID nvarchar(50) -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT * FROM [dbo].[ecContracts] WHERE [ContractID] = @ContractID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CanUpdateUserDetails] -( - @ActorID int, - @UserID int -) -RETURNS bit -AS -BEGIN - -IF @ActorID = -1 -RETURN 1 - --- check if the user requests himself -IF @ActorID = @UserID -BEGIN - RETURN 1 -END - -DECLARE @IsPeer bit -DECLARE @OwnerID int - -SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @IsPeer = 1 -BEGIN - -- check if the peer is trying to update his owner - IF @UserID = @OwnerID - RETURN 0 - - -- check if the peer is trying to update his peers - IF EXISTS (SELECT UserID FROM Users - WHERE IsPeer = 1 AND OwnerID = @OwnerID AND UserID = @UserID) - RETURN 0 - - SET @ActorID = @OwnerID -END - -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - IF @ParentUserID = @ActorID - RETURN 1 - - SET @TmpUserID = @ParentUserID -END - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DeleteUser] -( - @ActorID int, - @UserID int -) -AS - --- check actor rights -IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0 -RETURN - -BEGIN TRAN --- delete user comments -DELETE FROM Comments -WHERE ItemID = @UserID AND ItemTypeID = 'USER' - -IF (@@ERROR <> 0 ) - BEGIN - ROLLBACK TRANSACTION - RETURN -1 - END - ---delete reseller addon -DELETE FROM HostingPlans WHERE UserID = @UserID AND IsAddon = 'True' - -IF (@@ERROR <> 0 ) - BEGIN - ROLLBACK TRANSACTION - RETURN -1 - END - --- delete user peers -DELETE FROM Users -WHERE IsPeer = 1 AND OwnerID = @UserID - -IF (@@ERROR <> 0 ) - BEGIN - ROLLBACK TRANSACTION - RETURN -1 - END - --- delete user -DELETE FROM Users -WHERE UserID = @UserID - -IF (@@ERROR <> 0 ) - BEGIN - ROLLBACK TRANSACTION - RETURN -1 - END - -COMMIT TRAN - -RETURN - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ResourceGroupDnsRecords]( - [RecordID] [int] IDENTITY(1,1) NOT NULL, - [RecordOrder] [int] NOT NULL, - [GroupID] [int] NOT NULL, - [RecordType] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [RecordName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [RecordData] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL, - [MXPriority] [int] NULL, - CONSTRAINT [PK_ResourceGroupDnsRecords] PRIMARY KEY CLUSTERED -( - [RecordID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET IDENTITY_INSERT [dbo].[ResourceGroupDnsRecords] ON - -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (1, 1, 2, N'A', N'', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (2, 2, 2, N'A', N'*', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (3, 3, 2, N'A', N'www', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (4, 1, 3, N'A', N'ftp', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (5, 1, 4, N'A', N'mail', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (6, 2, 4, N'A', N'mail2', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (7, 3, 4, N'MX', N'', N'mail.[DOMAIN_NAME]', 10) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (9, 4, 4, N'MX', N'', N'mail2.[DOMAIN_NAME]', 21) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (10, 1, 5, N'A', N'mssql', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (11, 1, 6, N'A', N'mysql', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (12, 1, 8, N'A', N'stats', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (13, 5, 4, N'TXT', N'', N'v=spf1 a mx -all', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (14, 1, 12, N'A', N'smtp', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (15, 2, 12, N'MX', N'', N'smtp.[DOMAIN_NAME]', 10) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (16, 3, 12, N'CNAME', N'autodiscover', N'', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (17, 4, 12, N'CNAME', N'owa', N'', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (18, 1, 33, N'A', N'smtp', N'[IP]', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (19, 2, 33, N'MX', N'', N'smtp.[DOMAIN_NAME]', 10) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (20, 3, 33, N'CNAME', N'autodiscover', N'', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (21, 4, 33, N'CNAME', N'owa', N'', 0) -GO -INSERT [dbo].[ResourceGroupDnsRecords] ([RecordID], [RecordOrder], [GroupID], [RecordType], [RecordName], [RecordData], [MXPriority]) VALUES (22, 5, 33, N'CNAME', N'ecp', N'', 0) -GO -SET IDENTITY_INSERT [dbo].[ResourceGroupDnsRecords] OFF -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CanGetUserPassword] -( - @ActorID int, - @UserID int -) -RETURNS bit -AS -BEGIN - -IF @ActorID = -1 -RETURN 1 -- unauthenticated mode - --- check if the user requests himself -IF @ActorID = @UserID -BEGIN - RETURN 1 -END - -DECLARE @IsPeer bit -DECLARE @OwnerID int - -SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @IsPeer = 1 -BEGIN - -- peer can't get the password of his peers - -- and his owner - IF @UserID = @OwnerID - RETURN 0 - - IF EXISTS ( - SELECT UserID FROM Users - WHERE IsPeer = 1 AND OwnerID = @OwnerID AND UserID = @UserID - ) RETURN 0 - - -- set actor to his owner - SET @ActorID = @OwnerID -END - --- get user's owner -SELECT @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @UserID = @OwnerID -RETURN 0 -- user can't get the password of his owner - -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - IF @ParentUserID = @ActorID - RETURN 1 - - SET @TmpUserID = @ParentUserID -END - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CanGetUserDetails] -( - @ActorID int, - @UserID int -) -RETURNS bit -AS -BEGIN - -IF @ActorID = -1 -RETURN 1 - --- check if the user requests himself -IF @ActorID = @UserID -BEGIN - RETURN 1 -END - -DECLARE @IsPeer bit -DECLARE @OwnerID int - -SELECT @IsPeer = IsPeer, @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @IsPeer = 1 -SET @ActorID = @OwnerID - --- get user's owner -SELECT @OwnerID = OwnerID FROM Users -WHERE UserID = @ActorID - -IF @UserID = @OwnerID -RETURN 1 -- user can get the details of his owner - --- check if the user requests himself -IF @ActorID = @UserID -BEGIN - RETURN 1 -END - -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - IF @ParentUserID = @ActorID - RETURN 1 - - SET @TmpUserID = @ParentUserID -END - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetUsers] -( - @ActorID int, - @OwnerID int, - @Recursive bit = 0 -) -AS - -DECLARE @CanGetDetails bit -SET @CanGetDetails = dbo.CanGetUserDetails(@ActorID, @OwnerID) - -SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - U.FirstName, - U.LastName, - U.Email, - U.FullName, - U.OwnerUsername, - U.OwnerFirstName, - U.OwnerLastName, - U.OwnerRoleID, - U.OwnerFullName, - U.PackagesNumber, - U.CompanyName, - U.EcommerceEnabled -FROM UsersDetailed AS U -WHERE U.UserID <> @OwnerID AND -((@Recursive = 1 AND dbo.CheckUserParent(@OwnerID, U.UserID) = 1) OR -(@Recursive = 0 AND U.OwnerID = @OwnerID)) -AND U.IsPeer = 0 -AND @CanGetDetails = 1 -- actor user rights - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetUserPeers] -( - @ActorID int, - @UserID int -) -AS - -DECLARE @CanGetDetails bit -SET @CanGetDetails = dbo.CanGetUserDetails(@ActorID, @UserID) - -SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - U.FirstName, - U.LastName, - U.Email, - U.FullName, - (U.FirstName + ' ' + U.LastName) AS FullName, - U.CompanyName, - U.EcommerceEnabled -FROM UsersDetailed AS U -WHERE U.OwnerID = @UserID AND IsPeer = 1 -AND @CanGetDetails = 1 -- actor rights - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION [dbo].[CheckActorParentPackageRights] -( - @ActorID int, - @PackageID int -) -RETURNS bit -AS -BEGIN - -IF @ActorID = -1 OR @PackageID IS NULL -RETURN 1 - --- get package owner -DECLARE @UserID int -SELECT @UserID = UserID FROM Packages -WHERE PackageID = @PackageID - -IF @UserID IS NULL -RETURN 1 -- unexisting package - --- check user -RETURN dbo.CanGetUserDetails(@ActorID, @UserID) - -RETURN 0 -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateServiceHandlersResponses] - @ResellerID int, - @XmlData xml -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - -/* - - - - - - -*/ - DELETE - FROM [ecServiceHandlersResponses] - WHERE - [ResponseID] IN (SELECT [SXML].[Data].value('@ID','int') FROM @XmlData.nodes('/Succeed/Response') [SXML]([Data])) - - UPDATE - [ecServiceHandlersResponses] - SET - [ErrorMessage] = [SXML].[Data].value('@Error','nvarchar(255)') - FROM @XmlData.nodes('/Failed/Response') [SXML]([Data]) - WHERE - [ResponseID] = [SXML].[Data].value('@ID', 'int') -END - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecWriteSupportedPluginLog] - @ContractID nvarchar(50), - @PluginID int, - @RecordType int, - @RawData ntext, - @Result int OUTPUT -AS -BEGIN - - SET NOCOUNT ON; - - INSERT INTO [dbo].[ecSupportedPluginLog] - ( - [PluginID], - [ContractID], - [RecordType], - [RawData] - ) - VALUES - ( - @PluginID, - @ContractID, - @RecordType, - @RawData - ); - - SET @Result = SCOPE_IDENTITY(); -END - - - - - - - - - - - - - - - - - - - - @@ -23546,6777 +23928,6 @@ FROM dbo.ecContracts RIGHT OUTER JOIN - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecVoidCustomerInvoice] - @ActorID int, - @InvoiceID int -AS -BEGIN - -- load customer and reseller identities - DECLARE @ContractID nvarchar(50), @IssuerID int; - SELECT - @ContractID = [ContractID] FROM [dbo].[ecInvoice] - WHERE - [InvoiceID] = @InvoiceID; - SELECT - @IssuerID = [ResellerID] FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access the contract', 16, 1); - RETURN; - END - -- - SET NOCOUNT ON; - -- void invoice - DELETE FROM [dbo].[ecInvoice] WHERE [InvoiceID] = @InvoiceID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateTaxation] - @ActorID int, - @UserID int, - @TaxationID int, - @Country nvarchar(3), - @State nvarchar(50), - @Description nvarchar(50), - @TypeID int, - @Amount decimal(5,2), - @Active bit, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - -- - DECLARE @T_TaxationID int; - -- - SELECT @T_TaxationID = [TaxationID] FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID AND [Country] = @Country AND [State] = @State; - -- - SET @T_TaxationID = ISNULL(@T_TaxationID, @TaxationID); - -- - IF @T_TaxationID = @TaxationID - BEGIN - -- insert - UPDATE - [dbo].[ecTaxations] - SET - [Country] = @Country, - [State] = @State, - [Description] = @Description, - [TypeID] = @TypeID, - [Amount] = @Amount, - [Active] = @Active - WHERE - [ResellerID] = @UserID - AND - [TaxationID] = @TaxationID; - -- - SET @Result = 0; - -- - RETURN; - END - - -- taxation update error - SET @Result = -202; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateSystemTrigger] - @ActorID int, - @TriggerID nvarchar(50), - @TriggerHandler nvarchar(512), - @ReferenceID nvarchar(50), - @Namespace nvarchar(255), - @Status nvarchar(50) -AS -BEGIN - DECLARE @OwnerID int; - SELECT - @OwnerID = [OwnerID] FROM [dbo].[ecSystemTriggers] - WHERE - [TriggerID] = @TriggerID; - -- - IF [dbo].[CheckUserParent](@ActorID, @OwnerID) = 0 - BEGIN - RAISERROR('You are not allowed to perform this action', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - UPDATE [dbo].[ecSystemTriggers] SET - [TriggerHandler] = @TriggerHandler, - [ReferenceID] = @ReferenceID, - [Namespace] = @Namespace, - [Status] = @Status - WHERE - [TriggerID] = @TriggerID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateInvoice] - @ActorID int, - @InvoiceID int, - @InvoiceNumber nvarchar(50), - @DueDate datetime, - @TaxationID int, - @Total money, - @SubTotal money, - @TaxAmount money, - @Currency nvarchar(3), - @Result int OUTPUT -AS -BEGIN - -- ensure an update request has been issued by the right person - DECLARE @ContractID nvarchar(50), @IssuerID int; - SELECT - @ContractID = [ContractID] FROM [dbo].[ecInvoice] - WHERE - [InvoiceID] = @InvoiceID; - SELECT - @IssuerID = [ResellerID] FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - - SET NOCOUNT ON; - - SET @Result = 0; - - UPDATE - [dbo].[ecInvoice] - SET - [InvoiceNumber] = @InvoiceNumber, - [DueDate] = @DueDate, - [Total] = @Total, - [SubTotal] = @SubTotal, - [TaxationID] = @TaxationID, - [TaxAmount] = @TaxAmount, - [Currency] = @Currency - WHERE - [InvoiceID] = @InvoiceID - AND - [ContractID] = @ContractID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[VirtualServices]( - [VirtualServiceID] [int] IDENTITY(1,1) NOT NULL, - [ServerID] [int] NOT NULL, - [ServiceID] [int] NOT NULL, - CONSTRAINT [PK_VirtualServices] PRIMARY KEY CLUSTERED -( - [VirtualServiceID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[Services]( - [ServiceID] [int] IDENTITY(1,1) NOT NULL, - [ServerID] [int] NOT NULL, - [ProviderID] [int] NOT NULL, - [ServiceName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [Comments] [ntext] COLLATE Latin1_General_CI_AS NULL, - [ServiceQuotaValue] [int] NULL, - [ClusterID] [int] NULL, - CONSTRAINT [PK_Services] PRIMARY KEY CLUSTERED -( - [ServiceID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE FUNCTION dbo.GetPackageAllocatedResource -( - @PackageID int, - @GroupID int, - @ServerID int -) -RETURNS bit -AS -BEGIN - -IF @PackageID IS NULL -RETURN 1 - -DECLARE @Result bit -SET @Result = 1 -- enabled - -DECLARE @PID int, @ParentPackageID int -SET @PID = @PackageID - -DECLARE @OverrideQuotas bit - -IF @ServerID IS NULL OR @ServerID = 0 -SELECT @ServerID = ServerID FROM Packages -WHERE PackageID = @PackageID - -WHILE 1 = 1 -BEGIN - - DECLARE @GroupEnabled int - - -- get package info - SELECT - @ParentPackageID = ParentPackageID, - @OverrideQuotas = OverrideQuotas - FROM Packages WHERE PackageID = @PID - - -- check if this is a root 'System' package - SET @GroupEnabled = 1 -- enabled - IF @ParentPackageID IS NULL - BEGIN - - IF @ServerID = -1 OR @ServerID IS NULL - RETURN 1 - - IF EXISTS (SELECT VirtualServer FROM Servers WHERE ServerID = @ServerID AND VirtualServer = 1) - BEGIN - IF NOT EXISTS( - SELECT - DISTINCT(PROV.GroupID) - FROM VirtualServices AS VS - INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID - INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID - WHERE PROV.GroupID = @GroupID AND VS.ServerID = @ServerID - ) - SET @GroupEnabled = 0 - END - ELSE - BEGIN - IF NOT EXISTS( - SELECT - DISTINCT(PROV.GroupID) - FROM Services AS S - INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID - WHERE PROV.GroupID = @GroupID AND S.ServerID = @ServerID - ) - SET @GroupEnabled = 0 - END - - RETURN @GroupEnabled -- exit from the loop - END - ELSE -- parentpackage is not null - BEGIN - -- check the current package - IF @OverrideQuotas = 1 - BEGIN - IF NOT EXISTS( - SELECT GroupID FROM PackageResources WHERE GroupID = @GroupID AND PackageID = @PID - ) - SET @GroupEnabled = 0 - END - ELSE - BEGIN - IF NOT EXISTS( - SELECT HPR.GroupID FROM Packages AS P - INNER JOIN HostingPlanResources AS HPR ON P.PlanID = HPR.PlanID - WHERE HPR.GroupID = @GroupID AND P.PackageID = @PID - ) - SET @GroupEnabled = 0 - END - - -- check addons - IF EXISTS( - SELECT HPR.GroupID FROM PackageAddons AS PA - INNER JOIN HostingPlanResources AS HPR ON PA.PlanID = HPR.PlanID - WHERE HPR.GroupID = @GroupID AND PA.PackageID = @PID - AND PA.StatusID = 1 -- active add-on - ) - SET @GroupEnabled = 1 - END - - IF @GroupEnabled = 0 - RETURN 0 - - SET @PID = @ParentPackageID - -END -- end while - -RETURN @Result -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackageQuotasForEdit -( - @ActorID int, - @PackageID int -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @ServerID int, @ParentPackageID int, @PlanID int -SELECT @ServerID = ServerID, @ParentPackageID = ParentPackageID, @PlanID = PlanID FROM Packages -WHERE PackageID = @PackageID - --- get resource groups -SELECT - RG.GroupID, - RG.GroupName, - ISNULL(PR.CalculateDiskSpace, ISNULL(HPR.CalculateDiskSpace, 0)) AS CalculateDiskSpace, - ISNULL(PR.CalculateBandwidth, ISNULL(HPR.CalculateBandwidth, 0)) AS CalculateBandwidth, - dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID) AS Enabled, - dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, @ServerID) AS ParentEnabled -FROM ResourceGroups AS RG -LEFT OUTER JOIN PackageResources AS PR ON RG.GroupID = PR.GroupID AND PR.PackageID = @PackageID -LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID -ORDER BY RG.GroupOrder - - --- return quotas -SELECT - Q.QuotaID, - Q.GroupID, - Q.QuotaName, - Q.QuotaDescription, - Q.QuotaTypeID, - CASE - WHEN PQ.QuotaValue IS NULL THEN dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) - ELSE PQ.QuotaValue - END QuotaValue, - dbo.GetPackageAllocatedQuota(@ParentPackageID, Q.QuotaID) AS ParentQuotaValue -FROM Quotas AS Q -LEFT OUTER JOIN PackageQuotas AS PQ ON PQ.QuotaID = Q.QuotaID AND PQ.PackageID = @PackageID -ORDER BY Q.QuotaOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[IPAddresses]( - [AddressID] [int] IDENTITY(1,1) NOT NULL, - [ExternalIP] [varchar](24) COLLATE Latin1_General_CI_AS NOT NULL, - [InternalIP] [varchar](24) COLLATE Latin1_General_CI_AS NULL, - [ServerID] [int] NULL, - [Comments] [ntext] COLLATE Latin1_General_CI_AS NULL, - [SubnetMask] [varchar](15) COLLATE Latin1_General_CI_AS NULL, - [DefaultGateway] [varchar](15) COLLATE Latin1_General_CI_AS NULL, - [PoolID] [int] NULL, - CONSTRAINT [PK_IPAddresses] PRIMARY KEY CLUSTERED -( - [AddressID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - -CREATE FUNCTION [dbo].[CalculateQuotaUsage] -( - @PackageID int, - @QuotaID int -) -RETURNS int -AS - BEGIN - - DECLARE @QuotaTypeID int - SELECT @QuotaTypeID = QuotaTypeID FROM Quotas - WHERE QuotaID = @QuotaID - - IF @QuotaTypeID <> 2 - RETURN 0 - - DECLARE @Result int - - IF @QuotaID = 52 -- diskspace - SET @Result = dbo.CalculatePackageDiskspace(@PackageID) - ELSE IF @QuotaID = 51 -- bandwidth - SET @Result = dbo.CalculatePackageBandwidth(@PackageID) - ELSE IF @QuotaID = 53 -- domains - SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT - INNER JOIN Domains AS D ON D.PackageID = PT.PackageID - WHERE IsSubDomain = 0 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 54 -- sub-domains - SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT - INNER JOIN Domains AS D ON D.PackageID = PT.PackageID - WHERE IsSubDomain = 1 AND IsInstantAlias = 0 AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 220 -- domain pointers - SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT - INNER JOIN Domains AS D ON D.PackageID = PT.PackageID - WHERE IsDomainPointer = 1 AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 71 -- scheduled tasks - SET @Result = (SELECT COUNT(S.ScheduleID) FROM PackagesTreeCache AS PT - INNER JOIN Schedule AS S ON S.PackageID = PT.PackageID - WHERE PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 305 -- RAM of VPS - SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP - INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID - INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID - WHERE SIP.PropertyName = 'RamSize' AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 306 -- HDD of VPS - SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP - INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID - INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID - WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 309 -- External IP addresses of VPS - SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID - WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3) - ELSE IF @QuotaID = 100 -- Dedicated Web IP addresses - SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID - WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 2) - ELSE IF @QuotaID = 350 -- RAM of VPSforPc - SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP - INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID - INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID - WHERE SIP.PropertyName = 'Memory' AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 351 -- HDD of VPSforPc - SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP - INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID - INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID - WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID) - ELSE IF @QuotaID = 354 -- External IP addresses of VPSforPc - SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP - INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID - INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID - WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3) - ELSE IF @QuotaID = 319 -- BB Users - SET @Result = (SELECT COUNT(ea.AccountID) - FROM - ExchangeAccounts ea - INNER JOIN - BlackBerryUsers bu - ON - ea.AccountID = bu.AccountID - INNER JOIN - ServiceItems si - ON - ea.ItemID = si.ItemID - INNER JOIN - PackagesTreeCache pt ON si.PackageID = pt.PackageID - WHERE - pt.ParentPackageID = @PackageID) - ELSE - SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q - INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID - INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID AND PT.ParentPackageID = @PackageID - WHERE Q.QuotaID = @QuotaID) - - RETURN @Result - END - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackageQuotas -( - @ActorID int, - @PackageID int -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @PlanID int, @ParentPackageID int -SELECT @PlanID = PlanID, @ParentPackageID = ParentPackageID FROM Packages -WHERE PackageID = @PackageID - --- get resource groups -SELECT - RG.GroupID, - RG.GroupName, - ISNULL(HPR.CalculateDiskSpace, 0) AS CalculateDiskSpace, - ISNULL(HPR.CalculateBandwidth, 0) AS CalculateBandwidth, - dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, 0) AS ParentEnabled -FROM ResourceGroups AS RG -LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID -WHERE dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, 0) = 1 -ORDER BY RG.GroupOrder - - --- return quotas -SELECT - Q.QuotaID, - Q.GroupID, - Q.QuotaName, - Q.QuotaDescription, - Q.QuotaTypeID, - dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) AS QuotaValue, - dbo.GetPackageAllocatedQuota(@ParentPackageID, Q.QuotaID) AS ParentQuotaValue, - ISNULL(dbo.CalculateQuotaUsage(@PackageID, Q.QuotaID), 0) AS QuotaUsedValue -FROM Quotas AS Q -ORDER BY Q.QuotaOrder -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetPackageQuota] -( - @ActorID int, - @PackageID int, - @QuotaName nvarchar(50) -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - --- return quota -SELECT - Q.QuotaID, - Q.QuotaName, - Q.QuotaDescription, - Q.QuotaTypeID, - ISNULL(dbo.GetPackageAllocatedQuota(@PackageId, Q.QuotaID), 0) AS QuotaAllocatedValue, - ISNULL(dbo.CalculateQuotaUsage(@PackageId, Q.QuotaID), 0) AS QuotaUsedValue -FROM Quotas AS Q -WHERE Q.QuotaName = @QuotaName - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetHostingPlanQuotas -( - @ActorID int, - @PlanID int, - @PackageID int, - @ServerID int -) -AS - --- check rights -IF dbo.CheckActorParentPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @IsAddon bit - -IF @ServerID = 0 -SELECT @ServerID = ServerID FROM Packages -WHERE PackageID = @PackageID - --- get resource groups -SELECT - RG.GroupID, - RG.GroupName, - CASE - WHEN HPR.CalculateDiskSpace IS NULL THEN CAST(0 as bit) - ELSE CAST(1 as bit) - END AS Enabled, - dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID) AS ParentEnabled, - ISNULL(HPR.CalculateDiskSpace, 1) AS CalculateDiskSpace, - ISNULL(HPR.CalculateBandwidth, 1) AS CalculateBandwidth -FROM ResourceGroups AS RG -LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID -ORDER BY RG.GroupOrder - --- get quotas by groups -SELECT - Q.QuotaID, - Q.GroupID, - Q.QuotaName, - Q.QuotaDescription, - Q.QuotaTypeID, - ISNULL(HPQ.QuotaValue, 0) AS QuotaValue, - dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) AS ParentQuotaValue -FROM Quotas AS Q -LEFT OUTER JOIN HostingPlanQuotas AS HPQ ON Q.QuotaID = HPQ.QuotaID AND HPQ.PlanID = @PlanID -ORDER BY Q.QuotaOrder -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/* -Algorythm: - 0. Get the primary distribution resource from hosting plan - 1. Check whether user has Resource of requested type in his user plans/add-ons - EXCEPTION "The requested service is not available for the user. The resource of the requested type {type} should be assigned to him through hosting plan or add-on" - 1.1 If the number of returned reources is greater than 1 - EXCEPTION "User has several resources assigned of the requested type" - - 2. If the requested resource has 0 services - EXCEPTION "The resource {name} of type {type} should contain atleast one service - 3. If the requested resource has one service - remember the ID of this single service - 4. If the requested resource has several services DO distribution: - - 4.1. If the resource is NOT BOUNDED or is PRIMARY DISTRIBUTION RESOURCE - if PRIMARY DISTRIBUTION RESOURCE and exists in UserServices - return serviceId from UserServices table - - remember any service from that resource according to distribution type ("BALANCED" or "RANDOM") - get the number of ServiceItems for each service - - 4.2. If the resource is BOUNDED to primary distribution resource - - If the primary distribution resource is NULL - EXCEPTION "Requested resource marked as bound to primary distribution resource, but there is no any resources in hosting plan marked as primary" - - - Get the service id of the primary distribution resource - GetServiceId(userId, primaryResourceId) - - - Get from user assigned hosting plan - - 5. If it is PRIMARY DISTRIBUTION RESOURCE - Save it's ID to UserServices table - - 6. return serviceId - -ERROR CODES: - -1 - there are several hosting plans with PDR assigned to that user - -2 - The requested service is not available for the user. The resource of the - requested type {type} should be assigned to him through hosting plan or add-on - -3 - several resources of the same type was assigned through hosting plan or add-on - -4 - The resource {name} of type {type} should contain atleast one service - -5 - Requested resource marked as bound to primary distribution resource, - but there is no any resources in hosting plan marked as primary - -6 - the server where PDR is located doesn't contain the service of requested resource type -*/ -CREATE PROCEDURE GetUserServiceID -( - @UserID int, - @TypeName nvarchar(1000), - @ServiceID int OUTPUT -) -AS - DECLARE @PrimaryResourceID int -- primary distribution resource assigned through hosting plan - - ---------------------------------------- - -- Get the primary distribution resource - ---------------------------------------- - IF (SELECT COUNT (HP.PrimaryResourceID) FROM PurchasedHostingPlans AS PHP - INNER JOIN HostingPlans AS HP ON PHP.PlanID = HP.PlanID - WHERE PHP.UserID = @UserID AND HP.PrimaryResourceID IS NOT NULL AND HP.PrimaryResourceID <> 0) > 1 - BEGIN - SET @ServiceID = -1 - RETURN - END - - SELECT @PrimaryResourceID = HP.PrimaryResourceID FROM PurchasedHostingPlans AS PHP - INNER JOIN HostingPlans AS HP ON PHP.PlanID = HP.PlanID - WHERE PHP.UserID = @UserID AND HP.PrimaryResourceID IS NOT NULL AND HP.PrimaryResourceID <> 0 - - - ---------------------------------------------- - -- Check whether user has a resource - -- of this type in his hosting plans or addons - ---------------------------------------------- - DECLARE @UserResourcesTable TABLE - ( - ResourceID int - ) - INSERT INTO @UserResourcesTable - SELECT DISTINCT HPR.ResourceID FROM PurchasedHostingPlans AS PHP - INNER JOIN HostingPlans AS HP ON PHP.PlanID = HP.PlanID - INNER JOIN HostingPlanResources AS HPR ON HP.PlanID = HPR.PlanID - INNER JOIN Resources AS R ON HPR.ResourceID = R.ResourceID - INNER JOIN ServiceTypes AS ST ON R.ServiceTypeID = ST.ServiceTypeID - WHERE PHP.UserID = @UserID AND (ST.ImplementedTypeNames LIKE @TypeName OR ST.TypeName LIKE @TypeName) - - ---------------------------------------- - -- Check resources number - ---------------------------------------- - DECLARE @ResourcesCount int - SET @ResourcesCount = @@ROWCOUNT - IF @ResourcesCount = 0 - BEGIN - SET @ServiceID = -2 -- user doesn't have requested service assigned - RETURN - END - IF @ResourcesCount > 1 - BEGIN - SET @ServiceID = -3 -- several resources of the same type was assigned - RETURN - END - - ---------------------------------------- - -- Check services number - ---------------------------------------- - DECLARE @ResourceID int - SET @ResourceID = (SELECT TOP 1 ResourceID FROM @UserResourcesTable) - - DECLARE @UserServicesTable TABLE - ( - ServiceID int, - ServerID int, - ItemsNumber int, - Randomizer float - ) - INSERT INTO @UserServicesTable - SELECT - RS.ServiceID, - S.ServerID, - (SELECT COUNT(ItemID) FROM ServiceItems AS SI WHERE SI.ServiceID = RS.ServiceID), - RAND() - FROM ResourceServices AS RS - INNER JOIN Services AS S ON RS.ServiceID = S.ServiceID - WHERE RS.ResourceID = @ResourceID - - DECLARE @ServicesCount int - SET @ServicesCount = @@ROWCOUNT - IF @ServicesCount = 0 - BEGIN - SET @ServiceID = -4 -- The resource {name} of type {type} should contain atleast one service - RETURN - END - - -- try to return from UserServices - -- if it is a PDR - IF @ResourceID = @PrimaryResourceID - BEGIN - -- check in UserServices table - SELECT @ServiceID = US.ServiceID FROM ResourceServices AS RS - INNER JOIN UserServices AS US ON RS.ServiceID = US.ServiceID - WHERE RS.ResourceID = @ResourceID AND US.UserID = @UserID - - -- check validness of the current primary service id - IF @ServiceID IS NOT NULL - BEGIN - IF EXISTS(SELECT ResourceServiceID FROM ResourceServices - WHERE ResourceID = @ResourceID AND ServiceID = @ServiceID) - RETURN - ELSE -- invalidate service - DELETE FROM UserServices WHERE UserID = @UserID - END - END - - IF @ServicesCount = 1 - BEGIN - -- nothing to distribute - -- just remember this single service id - SET @ServiceID = (SELECT TOP 1 ServiceID FROM @UserServicesTable) - END - ELSE - BEGIN - -- the service should be distributed - DECLARE @DistributionTypeID int - DECLARE @BoundToPrimaryResource bit - SELECT @DistributionTypeID = R.DistributionTypeID, @BoundToPrimaryResource = R.BoundToPrimaryResource - FROM Resources AS R WHERE R.ResourceID = @ResourceID - - IF @BoundToPrimaryResource = 0 OR @ResourceID = @PrimaryResourceID - BEGIN - IF @ResourceID = @PrimaryResourceID -- it's PDR itself - BEGIN - -- check in UserServices table - SELECT @ServiceID = US.ServiceID FROM ResourceServices AS RS - INNER JOIN UserServices AS US ON RS.ServiceID = US.ServiceID - WHERE RS.ResourceID = @ResourceID AND US.UserID = @UserID - - -- check validness of the current primary service id - IF @ServiceID IS NOT NULL - BEGIN - IF EXISTS(SELECT ResourceServiceID FROM ResourceServices - WHERE ResourceID = @ResourceID AND ServiceID = @ServiceID) - RETURN - ELSE -- invalidate service - DELETE FROM UserServices WHERE UserID = @UserID - END - END - - -- distribute - IF @DistributionTypeID = 1 -- BALANCED distribution - SELECT @ServiceID = ServiceID FROM @UserServicesTable - ORDER BY ItemsNumber ASC - ELSE -- RANDOM distribution - SELECT @ServiceID = ServiceID FROM @UserServicesTable - ORDER BY Randomizer - END - ELSE -- BOUND to PDR resource - BEGIN - IF @PrimaryResourceID IS NULL - BEGIN - SET @ServiceID = -5 -- Requested resource marked as bound to primary distribution resource, - -- but there is no any resources in hosting plan marked as primary - RETURN - END - - -- get the type of primary resource - DECLARE @PrimaryTypeName nvarchar(200) - SELECT @PrimaryTypeName = ST.TypeName FROM Resources AS R - INNER JOIN ServiceTypes AS ST ON R.ServiceTypeID = ST.ServiceTypeID - WHERE R.ResourceID = @PrimaryResourceID - - - DECLARE @PrimaryServiceID int - EXEC GetUserServiceID @UserID, @PrimaryTypeName, @PrimaryServiceID OUTPUT - - IF @PrimaryServiceID < 0 - BEGIN - SET @ServiceID = @PrimaryServiceID - RETURN - END - - DECLARE @ServerID int - SET @ServerID = (SELECT ServerID FROM Services WHERE ServiceID = @PrimaryServiceID) - - -- try to get the service of the requested type on PDR server - SET @ServiceID = (SELECT ServiceID FROM @UserServicesTable WHERE ServerID = @ServerID) - - IF @ServiceID IS NULL - BEGIN - SET @ServiceID = -6 -- the server where PDR is located doesn't contain the service of requested resource type - END - END - END - - IF @ResourceID = @PrimaryResourceID -- it's PDR - BEGIN - DELETE FROM UserServices WHERE UserID = @UserID - - INSERT INTO UserServices (UserID, ServiceID) - VALUES (@UserID, @ServiceID) - END - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemsByService] -( - @ActorID int, - @ServiceID int -) -AS - --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -WHERE SI.ServiceID = @ServiceID - - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - SIT.TypeName, - SI.ServiceID, - SI.PackageID, - P.PackageName, - S.ServiceID, - S.ServiceName, - SRV.ServerID, - SRV.ServerName, - RG.GroupName, - U.UserID, - U.Username, - (U.FirstName + U.LastName) AS UserFullName, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID -INNER JOIN Users AS U ON P.UserID = U.UserID -WHERE @IsAdmin = 1 - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID -WHERE @IsAdmin = 1 - -RETURN - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemsByPackage] -( - @ActorID int, - @PackageID int -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -WHERE SI.PackageID = @PackageID - - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - SIT.TypeName, - SIT.DisplayName, - SI.ServiceID, - SI.PackageID, - P.PackageName, - S.ServiceID, - S.ServiceName, - SRV.ServerID, - SRV.ServerName, - RG.GroupName, - U.UserID, - U.Username, - (U.FirstName + U.LastName) AS UserFullName, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID -INNER JOIN Users AS U ON P.UserID = U.UserID - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID - -RETURN - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemsByName] -( - @ActorID int, - @PackageID int, - @ItemName nvarchar(500) -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -WHERE SI.PackageID = @PackageID -AND SI.ItemName LIKE @ItemName - - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - SIT.TypeName, - SI.ServiceID, - SI.PackageID, - P.PackageName, - S.ServiceID, - S.ServiceName, - SRV.ServerID, - SRV.ServerName, - RG.GroupName, - U.UserID, - U.Username, - U.FullName AS UserFullName, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID - - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItems] -( - @ActorID int, - @PackageID int, - @ItemTypeName nvarchar(200), - @GroupName nvarchar(100) = NULL, - @Recursive bit -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON SI.PackageID = PT.PackageID -INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID -INNER JOIN ResourceGroups AS RG ON IT.GroupID = RG.GroupID -WHERE IT.TypeName = @ItemTypeName -AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) - - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - SIT.TypeName, - SI.ServiceID, - SI.PackageID, - P.PackageName, - S.ServiceID, - S.ServiceName, - SRV.ServerID, - SRV.ServerName, - RG.GroupName, - U.UserID, - U.Username, - (U.FirstName + U.LastName) AS UserFullName, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID -INNER JOIN Users AS U ON P.UserID = U.UserID - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID - -RETURN - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemByName] -( - @ActorID int, - @PackageID int, - @ItemName nvarchar(500), - @GroupName nvarchar(100) = NULL, - @ItemTypeName nvarchar(200) -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID -WHERE SI.PackageID = @PackageID AND SIT.TypeName = @ItemTypeName -AND SI.ItemName = @ItemName -AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) - - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - SIT.TypeName, - SI.ServiceID, - SI.PackageID, - P.PackageName, - S.ServiceID, - S.ServiceName, - SRV.ServerID, - SRV.ServerName, - RG.GroupName, - U.UserID, - U.Username, - U.FullName AS UserFullName, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID - - -RETURN - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItem] -( - @ActorID int, - @ItemID int -) -AS - -DECLARE @Items TABLE -( - ItemID int -) - --- find service items -INSERT INTO @Items -SELECT - SI.ItemID -FROM ServiceItems AS SI -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -WHERE - SI.ItemID = @ItemID - AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 - - --- select service items -SELECT - SI.ItemID, - SI.ItemName, - SI.ItemTypeID, - SIT.TypeName, - SI.ServiceID, - SI.PackageID, - P.PackageName, - S.ServiceID, - S.ServiceName, - SRV.ServerID, - SRV.ServerName, - RG.GroupName, - U.UserID, - U.Username, - U.FullName AS UserFullName, - SI.CreatedDate -FROM @Items AS FI -INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID -INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID -INNER JOIN Packages AS P ON SI.PackageID = P.PackageID -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID - --- select item properties --- get corresponding item properties -SELECT - IP.ItemID, - IP.PropertyName, - IP.PropertyValue -FROM ServiceItemProperties AS IP -INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID - - -RETURN - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[VirtualGroups]( - [VirtualGroupID] [int] IDENTITY(1,1) NOT NULL, - [ServerID] [int] NOT NULL, - [GroupID] [int] NOT NULL, - [DistributionType] [int] NULL, - [BindDistributionToPrimary] [bit] NULL, - CONSTRAINT [PK_VirtualGroups] PRIMARY KEY CLUSTERED -( - [VirtualGroupID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[DistributePackageServices] -( - @ActorID int, - @PackageID int -) -AS - --- get primary distribution group -DECLARE @PrimaryGroupID int -DECLARE @VirtualServer bit -DECLARE @PlanID int -DECLARE @ServerID int -SELECT - @PrimaryGroupID = ISNULL(S.PrimaryGroupID, 0), - @VirtualServer = S.VirtualServer, - @PlanID = P.PlanID, - @ServerID = P.ServerID -FROM Packages AS P -INNER JOIN Servers AS S ON P.ServerID = S.ServerID -WHERE P.PackageID = @PackageID - - --- get the list of available groups from hosting plan -DECLARE @Groups TABLE -( - GroupID int, - PrimaryGroup bit -) - -INSERT INTO @Groups (GroupID, PrimaryGroup) -SELECT - RG.GroupID, - CASE WHEN RG.GroupID = @PrimaryGroupID THEN 1 -- mark primary group - ELSE 0 - END -FROM ResourceGroups AS RG -WHERE dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, NULL) = 1 -AND RG.GroupID NOT IN -( - SELECT P.GroupID - FROM PackageServices AS PS - INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE PS.PackageID = @PackageID -) - -IF @VirtualServer <> 1 -BEGIN - -- PHYSICAL SERVER - -- just return the list of services based on the plan - INSERT INTO PackageServices (PackageID, ServiceID) - SELECT - @PackageID, - S.ServiceID - FROM Services AS S - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - INNER JOIN @Groups AS G ON P.GroupID = G.GroupID - WHERE S.ServerID = @ServerID - AND S.ServiceID NOT IN (SELECT ServiceID FROM PackageServices WHERE PackageID = @PackageID) -END -ELSE -BEGIN - -- VIRTUAL SERVER - - DECLARE @GroupID int, @PrimaryGroup int - DECLARE GroupsCursor CURSOR FOR - SELECT GroupID, PrimaryGroup FROM @Groups - ORDER BY PrimaryGroup DESC - - OPEN GroupsCursor - - WHILE (10 = 10) - BEGIN --LOOP 10: thru groups - FETCH NEXT FROM GroupsCursor - INTO @GroupID, @PrimaryGroup - - IF (@@fetch_status <> 0) - BEGIN - DEALLOCATE GroupsCursor - BREAK - END - - -- read group information - DECLARE @DistributionType int, @BindDistributionToPrimary int - SELECT - @DistributionType = DistributionType, - @BindDistributionToPrimary = BindDistributionToPrimary - FROM VirtualGroups AS VG - WHERE ServerID = @ServerID AND GroupID = @GroupID - - -- bind distribution to primary - IF @BindDistributionToPrimary = 1 AND @PrimaryGroup = 0 AND @PrimaryGroupID <> 0 - BEGIN - -- if only one service found just use it and do not distribute - IF (SELECT COUNT(*) FROM VirtualServices AS VS - INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID) = 1 - BEGIN - INSERT INTO PackageServices (PackageID, ServiceID) - SELECT - @PackageID, - VS.ServiceID - FROM VirtualServices AS VS - INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID - END - ELSE - BEGIN - DECLARE @PrimaryServerID int - -- try to get primary distribution server - SELECT - @PrimaryServerID = S.ServerID - FROM PackageServices AS PS - INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE PS.PackageID = @PackageID AND P.GroupID = @PrimaryGroupID - - INSERT INTO PackageServices (PackageID, ServiceID) - SELECT - @PackageID, - VS.ServiceID - FROM VirtualServices AS VS - INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID AND S.ServerID = @PrimaryServerID - END - END - ELSE - BEGIN - - -- DISTRIBUTION - DECLARE @Services TABLE - ( - ServiceID int, - ItemsNumber int, - RandomNumber int - ) - - DELETE FROM @Services - - INSERT INTO @Services (ServiceID, ItemsNumber, RandomNumber) - SELECT - VS.ServiceID, - (SELECT COUNT(ItemID) FROM ServiceItems WHERE ServiceID = VS.ServiceID), - RAND() - FROM VirtualServices AS VS - INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID - - -- BALANCED DISTRIBUTION - IF @DistributionType = 1 - BEGIN - -- get the less allocated service - INSERT INTO PackageServices (PackageID, ServiceID) - SELECT TOP 1 - @PackageID, - ServiceID - FROM @Services - ORDER BY ItemsNumber - END - ELSE - -- RANDOMIZED DISTRIBUTION - BEGIN - -- get the less allocated service - INSERT INTO PackageServices (PackageID, ServiceID) - SELECT TOP 1 - @PackageID, - ServiceID - FROM @Services - ORDER BY RandomNumber - END - END - - IF @PrimaryGroup = 1 - SET @PrimaryGroupID = @GroupID - - END -- while groups - -END -- end virtual server - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetPackageServiceID -( - @ActorID int, - @PackageID int, - @GroupName nvarchar(100), - @ServiceID int OUTPUT -) -AS - --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) - -SET @ServiceID = 0 - --- load group info -DECLARE @GroupID int -SELECT @GroupID = GroupID FROM ResourceGroups -WHERE GroupName = @GroupName - --- check if user has this resource enabled -IF dbo.GetPackageAllocatedResource(@PackageID, @GroupID, NULL) = 0 -BEGIN - -- remove all resource services from the space - DELETE FROM PackageServices FROM PackageServices AS PS - INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID - INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID - WHERE P.GroupID = @GroupID AND PS.PackageID = @PackageID - RETURN -END - --- check if the service is already distributed -SELECT - @ServiceID = PS.ServiceID -FROM PackageServices AS PS -INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID -INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID -WHERE PS.PackageID = @PackageID AND P.GroupID = @GroupID - -IF @ServiceID <> 0 -RETURN - --- distribute services -EXEC DistributePackageServices @ActorID, @PackageID - --- get distributed service again -SELECT - @ServiceID = PS.ServiceID -FROM PackageServices AS PS -INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID -INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID -WHERE PS.PackageID = @PackageID AND P.GroupID = @GroupID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE CheckServiceItemExists -( - @Exists bit OUTPUT, - @ItemName nvarchar(500), - @ItemTypeName nvarchar(200), - @GroupName nvarchar(100) = NULL -) -AS - -SET @Exists = 0 - -DECLARE @ItemTypeID int -SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes -WHERE TypeName = @ItemTypeName - -IF EXISTS ( -SELECT ItemID FROM ServiceItems AS SI -INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -WHERE SI.ItemName = @ItemName AND SI.ItemTypeID = @ItemTypeID -AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) -) -SET @Exists = 1 - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ChangeUserPassword] -( - @ActorID int, - @UserID int, - @Password nvarchar(200) -) -AS - --- check actor rights -IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0 -RETURN - -UPDATE Users -SET Password = @Password -WHERE UserID = @UserID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingPlansBillingCycles]( - [ProductID] [int] NOT NULL, - [CycleID] [int] NOT NULL, - [SetupFee] [money] NOT NULL, - [RecurringFee] [money] NOT NULL, - [SortOrder] [int] NOT NULL, - CONSTRAINT [PK_ecHostingPlansBillingCycles] PRIMARY KEY CLUSTERED -( - [ProductID] ASC, - [CycleID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingPlans]( - [ProductID] [int] NOT NULL, - [ResellerID] [int] NOT NULL, - [PlanID] [int] NOT NULL, - [UserRole] [int] NOT NULL, - [InitialStatus] [int] NOT NULL, - [DomainOption] [int] NOT NULL, - CONSTRAINT [PK_ecHostingPlans] PRIMARY KEY CLUSTERED -( - [ProductID] ASC, - [ResellerID] ASC, - [PlanID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomersPaymentsPaged] - @ActorID int, - @UserID int, - @IsReseller bit, - @MaximumRows int, - @StartRowIndex int -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - DECLARE @EndIndex int; - - SET @EndIndex = @MaximumRows + @StartRowIndex; - SET @StartRowIndex = @StartRowIndex + 1; - - IF @IsReseller = 1 - BEGIN - WITH [PAYMENTS] AS ( - SELECT - ROW_NUMBER() OVER(ORDER BY [CP].[Created] DESC) AS [RowIndex], [CP].* FROM [dbo].[ecCustomersPayments] AS [CP] - INNER JOIN - [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] - WHERE - [C].[ResellerID] = @UserID - ) - - SELECT - [P].*, [INV].[InvoiceNumber], [SP].[DisplayName] AS [ProviderName] FROM [PAYMENTS] AS [P] - LEFT OUTER JOIN - [dbo].[ecSupportedPlugins] AS [SP] ON [SP].[PluginID] = [P].[PluginID] - LEFT OUTER JOIN - [dbo].[ecInvoice] AS [INV] ON [INV].[InvoiceID] = [P].[InvoiceID] - WHERE - [RowIndex] BETWEEN @StartRowIndex AND @EndIndex - ORDER BY - [Created] DESC; - - RETURN; - END; - - WITH [PAYMENTS] AS ( - SELECT - ROW_NUMBER() OVER(ORDER BY [CP].[Created] DESC) AS [RowIndex], [CP].* FROM [dbo].[ecCustomersPayments] AS [CP] - INNER JOIN - [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] - WHERE - [C].[CustomerID] = @UserID - ) - - SELECT - [P].*, [INV].[InvoiceNumber], [SP].[DisplayName] AS [ProviderName] FROM [PAYMENTS] AS [P] - LEFT OUTER JOIN - [dbo].[ecSupportedPlugins] AS [SP] ON [SP].[PluginID] = [P].[PluginID] - LEFT OUTER JOIN - [dbo].[ecInvoice] AS [INV] ON [INV].[InvoiceID] = [P].[InvoiceID] - WHERE - [RowIndex] BETWEEN @StartRowIndex AND @EndIndex - ORDER BY - [Created] DESC; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomersPaymentsCount] - @ActorID int, - @UserID int, - @IsReseller bit, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - IF @IsReseller = 1 - BEGIN - SELECT - @Result = COUNT([CP].[PaymentID]) FROM [dbo].[ecCustomersPayments] AS [CP] - INNER JOIN - [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] - WHERE - [C].[ResellerID] = @UserID; - RETURN; - END - - SELECT - @Result = COUNT([CP].[PaymentID]) FROM [dbo].[ecCustomersPayments] AS [CP] - INNER JOIN - [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] - WHERE - [C].[CustomerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomersInvoicesPaged] - @ActorID int, - @UserID int, - @IsReseller bit, - @MaximumRows int, - @StartRowIndex int -AS -BEGIN - -- check actor rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - - SET NOCOUNT ON; - - DECLARE @EndIndex int; - - SET @EndIndex = @MaximumRows + @StartRowIndex; - SET @StartRowIndex = @StartRowIndex + 1; - - IF @IsReseller = 1 - BEGIN - -- get reseller invoices - WITH [INVOICES] AS ( - SELECT - ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsInvoicesDetailed] - WHERE - [ResellerID] = @UserID - ) - - SELECT * FROM [INVOICES] - WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex - ORDER BY [Created] DESC; - - RETURN; - END; - - -- get customer invoices - WITH [INVOICES] AS ( - SELECT - ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsInvoicesDetailed] - WHERE - [CustomerID] = @UserID - ) - - SELECT * FROM [INVOICES] - WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex - ORDER BY [Created] DESC; - - RETURN; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomersInvoicesCount] - @ActorID int, - @UserID int, - @IsReseller bit, - @Result int OUTPUT -AS -BEGIN - - -- check user parent - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - - SET NOCOUNT ON; - - IF @IsReseller = 1 - BEGIN - SELECT - @Result = COUNT([InvoiceID]) FROM [dbo].[ContractsInvoicesDetailed] - WHERE - [ResellerID] = @UserID; - RETURN; - END - - SELECT - @Result = COUNT([InvoiceID]) FROM [dbo].[ContractsInvoicesDetailed] - WHERE - [CustomerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomerService] - @ActorID int, - @ServiceID int -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecService] - WHERE - [ServiceID] = @ServiceID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - - SELECT * FROM [dbo].[ecService] WHERE [ServiceID] = @ServiceID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomerInvoiceItems] - @ActorID int, - @InvoiceID int -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecInvoice] - WHERE - [InvoiceID] = @InvoiceID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID,@IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access the contract', 16, 1); - RETURN; - END - -- - SET NOCOUNT ON; - -- - SELECT - * FROM [dbo].[ecInvoiceItems] AS [II] - INNER JOIN - [ecInvoice] AS [I] ON [I].[InvoiceID] = [II].[InvoiceID] - WHERE - [I].[InvoiceID] = @InvoiceID; - -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetCustomerInvoice] - @ActorID int, - @InvoiceID int -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecInvoice] - WHERE - [InvoiceID] = @InvoiceID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access the contract', 16, 1); - RETURN; - END - -- - SET NOCOUNT ON; - -- - SELECT - * FROM [dbo].[ContractsInvoicesDetailed] - WHERE - [InvoiceID] = @InvoiceID AND [ContractID] = @ContractID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE VIEW [dbo].[ContractsServicesDetailed] -AS -SELECT dbo.ecService.ServiceID, ISNULL(dbo.Users.Username, dbo.ecContracts.AccountName) AS Username, dbo.ecContracts.CustomerID, dbo.ecService.ContractID, -dbo.ecContracts.ResellerID, dbo.ecService.ServiceName, dbo.ecService.TypeID, dbo.ecService.Status, dbo.ecService.Created, dbo.ecService.Modified, -dbo.ecService.ParentID -FROM dbo.ecContracts INNER JOIN -dbo.ecService ON dbo.ecContracts.ContractID = dbo.ecService.ContractID LEFT OUTER JOIN -dbo.Users ON dbo.ecContracts.CustomerID = dbo.Users.UserID - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecBulkServiceDelete] - @ActorID int, - @ContractID nvarchar(50), - @SvcsXml xml, - @Result int OUTPUT -AS -BEGIN - DECLARE @IssuerID int; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - DELETE - FROM [dbo].[ecService] - WHERE - [ServiceID] IN(SELECT [SXML].[Data].value('@id','int') FROM @SvcsXml.nodes('/Svcs/Svc') [SXML]([Data])); - -- - SET @Result = 0; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecPaymentProfileExists] - @ActorID int, - @ContractID nvarchar(50), - @Result bit OUTPUT -AS -BEGIN - DECLARE @IssuerID int; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - IF EXISTS (SELECT [ContractID] FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID) - BEGIN - SET @Result = 1; - RETURN; - END - -- - SET @Result = 0; -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecIsSupportedPluginActive] - @ActorID int, - @ResellerID int, - @PluginID int, - @Active bit OUTPUT -AS -BEGIN - -- check user parent - IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - IF EXISTS(SELECT * FROM [dbo].[ecPluginsProperties] - WHERE [ResellerID] = @ResellerID AND [PluginID] = @PluginID) - BEGIN - SET @Active = 1; - RETURN; - END - - SET @Active = 0; - RETURN; -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateCategory] - @ActorID int, - @UserID int, - @CategoryID int, - @CategoryName nvarchar(255), - @CategorySku nvarchar(50), - @ParentID int, - @ShortDescription ntext, - @FullDescription ntext, - @Result int OUTPUT -AS -BEGIN - -- check actor rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - - SET NOCOUNT ON; - - SET @Result = 0; - - DECLARE @Level int; - - IF @ParentID <= 0 - SET @ParentID = NULL; - - -- check whether a category exists - IF NOT EXISTS( - SELECT - [CategoryName] - FROM - [dbo].[ecCategory] - WHERE - [CategoryID] = @CategoryID - AND - [ResellerID] = @UserID - ) - BEGIN - SET @Result = -1; - RETURN; - END - - -- check whether the update is correct - IF @ParentID = @CategoryID - BEGIN - SET @Result = -1; - RETURN; - END - - -- check consistency: sub-categories won't include a parent category - IF @ParentID IN ( - SELECT - [CategoryID] - FROM - [dbo].[ecCategory] - WHERE - [ParentID] = @CategoryID - AND - [ResellerID] = @UserID - ) - BEGIN - SET @Result = -1; - RETURN; - END - - -- category level updates - IF @ParentID = 0 - BEGIN - SET @ParentID = NULL; - SET @Level = 0; - END - ELSE - BEGIN - -- identify parent level - SELECT - @Level = [Level] - FROM - [dbo].[ecCategory] - WHERE - [CategoryID] = @ParentID - AND - [ResellerID] = @UserID; - - -- increase if necessary - IF @Level >= 0 - SET @Level = @Level + 1; - ELSE - SET @Level = 0; - END - - -- update a category - UPDATE - [dbo].[ecCategory] - SET - [CategoryName] = @CategoryName, - [CategorySku] = @CategorySku, - [ParentID] = @ParentID, - [Level] = @Level, - [ShortDescription] = @ShortDescription, - [FullDescription] = @FullDescription, - [Modified] = GETUTCDATE(), - [ModifierID] = @ActorID - WHERE - [CategoryID] = @CategoryID - AND - [ResellerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateBillingCycle] - @ActorID int, - @UserID int, - @CycleID int, - @CycleName nvarchar(255), - @BillingPeriod nvarchar(50), - @PeriodLength int, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- update cycle details - UPDATE - [dbo].[ecBillingCycles] - SET - [CycleName] = @CycleName, - [BillingPeriod] = @BillingPeriod, - [PeriodLength] = @PeriodLength - WHERE - [ResellerID] = @UserID - AND - [CycleID] = @CycleID; - - SET @Result = 0; - RETURN; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecTopLevelDomainsCycles]( - [ProductID] [int] NOT NULL, - [CycleID] [int] NOT NULL, - [SetupFee] [money] NOT NULL, - [RecurringFee] [money] NOT NULL, - [TransferFee] [money] NULL, - [SortOrder] [int] NOT NULL -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecTopLevelDomains]( - [TopLevelDomain] [nvarchar](10) COLLATE Latin1_General_CI_AS NOT NULL, - [ProductID] [int] NOT NULL, - [PluginID] [int] NOT NULL, - [ResellerID] [int] NOT NULL, - [WhoisEnabled] [bit] NULL, - CONSTRAINT [PK_ecTopLevelDomains] PRIMARY KEY CLUSTERED -( - [TopLevelDomain] ASC, - [ResellerID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecSetPaymentMethod] - @ActorID int, - @UserID int, - @MethodName nvarchar(50), - @DisplayName nvarchar(50), - @PluginID int, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - -- cleanup - DELETE FROM [dbo].[ecPaymentMethods] - WHERE [ResellerID] = @UserID AND [MethodName] = @MethodName; - -- add - INSERT INTO [dbo].[ecPaymentMethods] - ( - [ResellerID], - [MethodName], - [PluginID], - [DisplayName], - [SupportedItems] - ) - SELECT - @UserID, - @MethodName, - @PluginID, - @DisplayName, - [SupportedItems] - FROM - [dbo].[ecSupportedPlugins] - WHERE - [PluginID] = @PluginID; - -- - SET @Result = 0; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecSetInvoiceItemProcessed] - @InvoiceID int, - @ItemID int, - @Result int OUTPUT -AS -BEGIN - - SET NOCOUNT ON; - - SET @Result = 0; - - UPDATE - [dbo].[ecInvoiceItems] - SET - [Processed] = 1 - WHERE - [InvoiceID] = @InvoiceID - AND - [ItemID] = @ItemID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingPackageSvcsCycles]( - [SvcCycleID] [int] IDENTITY(1,1) NOT NULL, - [ServiceID] [int] NOT NULL, - [CycleName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [BillingPeriod] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PeriodLength] [int] NOT NULL, - [SetupFee] [money] NULL, - [RecurringFee] [money] NOT NULL, - [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ecPackagesSvcsCycles] PRIMARY KEY CLUSTERED -( - [SvcCycleID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingPackageSvcs]( - [ServiceID] [int] NOT NULL, - [ProductID] [int] NOT NULL, - [PlanID] [int] NOT NULL, - [PackageID] [int] NULL, - [UserRole] [int] NOT NULL, - [InitialStatus] [int] NOT NULL, - [SvcCycleID] [int] NOT NULL, - CONSTRAINT [PK_ecPackagesSvcs] PRIMARY KEY CLUSTERED -( - [ServiceID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingAddonSvcsCycles]( - [SvcCycleID] [int] IDENTITY(1,1) NOT NULL, - [ServiceID] [int] NOT NULL, - [CycleName] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, - [BillingPeriod] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, - [PeriodLength] [int] NULL, - [SetupFee] [money] NULL, - [CyclePrice] [money] NOT NULL, - [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, - CONSTRAINT [PK_ecAddonPackagesSvcsCycles] PRIMARY KEY CLUSTERED -( - [SvcCycleID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingAddonSvcs]( - [ServiceID] [int] NOT NULL, - [ProductID] [int] NOT NULL, - [PlanID] [int] NULL, - [PackageAddonID] [int] NULL, - [Quantity] [int] NOT NULL, - [Recurring] [bit] NOT NULL, - [DummyAddon] [bit] NOT NULL, - [SvcCycleID] [int] NOT NULL, - CONSTRAINT [PK_ecAddonPackagesSvcs] PRIMARY KEY CLUSTERED -( - [ServiceID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecHostingAddonsCycles]( - [ProductID] [int] NOT NULL, - [CycleID] [int] NOT NULL, - [SetupFee] [money] NOT NULL, - [RecurringFee] [money] NOT NULL, - [SortOrder] [int] NOT NULL, - CONSTRAINT [PK_ecHostingAddonsCycles] PRIMARY KEY CLUSTERED -( - [ProductID] ASC, - [CycleID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecDeleteBillingCycle] - @ActorID int, - @UserID int, - @CycleID int, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - - DELETE FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID AND [CycleID] = @CycleID; - - SET @Result = 0; - RETURN; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecUpdateCustomerPayment] - @ActorID int, - @PaymentID int, - @InvoiceID int, - @TransactionID nvarchar(255), - @Total money, - @Currency nvarchar(3), - @MethodName nvarchar(50), - @PluginID int, - @StatusID int, - @Result int OUTPUT -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecCustomersPayments] - WHERE - [PaymentID] = @PaymentID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SET @Result = 0; - - UPDATE [dbo].[ecCustomersPayments] - SET - [InvoiceID] = @InvoiceID, - [TransactionID] = @TransactionID, - [Total] = @Total, - [Currency] = @Currency, - [MethodName] = @MethodName, - [PluginID] = @PluginID, - [StatusID] = @StatusID - WHERE - [PaymentID] = @PaymentID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetGroupProviders -( - @GroupID int -) -AS -SELECT - PROV.ProviderID, - PROV.GroupID, - PROV.ProviderName, - PROV.DisplayName, - PROV.ProviderType, - RG.GroupName + ' - ' + PROV.DisplayName AS ProviderName -FROM Providers AS PROV -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -WHERE RG.GroupID = @GroupId -ORDER BY RG.GroupOrder, PROV.DisplayName -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteAuditLogRecords -( - @ActorID int, - @UserID int, - @ItemID int, - @ItemName nvarchar(100), - @StartDate datetime, - @EndDate datetime, - @SeverityID int, - @SourceName varchar(100), - @TaskName varchar(100) -) -AS - --- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - -DECLARE @IsAdmin bit -SET @IsAdmin = 0 -IF EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND RoleID = 1) -SET @IsAdmin = 1 - -DELETE FROM AuditLog -WHERE (dbo.CheckUserParent(@UserID, UserID) = 1 OR (UserID IS NULL AND @IsAdmin = 1)) -AND StartDate BETWEEN @StartDate AND @EndDate -AND ((@SourceName = '') OR (@SourceName <> '' AND SourceName = @SourceName)) -AND ((@TaskName = '') OR (@TaskName <> '' AND TaskName = @TaskName)) -AND ((@ItemID = 0) OR (@ItemID > 0 AND ItemID = @ItemID)) -AND ((@ItemName = '') OR (@ItemName <> '' AND ItemName LIKE @ItemName)) - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddTaxation] - @ActorID int, - @UserID int, - @Country nvarchar(3), - @State nvarchar(50), - @Description nvarchar(50), - @TypeID int, - @Amount decimal(5,2), - @Active bit, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - -- check before insert - IF EXISTS (SELECT [TaxationID] FROM [dbo].[ecTaxations] - WHERE [ResellerID] = @UserID AND [Country] = @Country AND [State] = @State) - BEGIN - SET @Result = -202; - RETURN; - END - - -- insert - INSERT INTO [dbo].[ecTaxations] - ( - [ResellerID], - [Country], - [State], - [Description], - [TypeID], - [Amount], - [Active] - ) - VALUES - ( - @UserID, - @Country, - @State, - @Description, - @TypeID, - @Amount, - @Active - ); - -- - SET @Result = SCOPE_IDENTITY(); - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - -CREATE PROCEDURE [dbo].[ecAddSystemTrigger] - @ActorID int, - @OwnerID int, - @TriggerHandler nvarchar(512), - @ReferenceID nvarchar(50), - @Namespace nvarchar(255), - @Status nvarchar(50) -AS -BEGIN - IF [dbo].[CheckUserParent](@ActorID, @OwnerID) = 0 - BEGIN - RAISERROR('You are not allowed to perform this action', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - IF NOT EXISTS(SELECT * FROM [dbo].[ecSystemTriggers] WHERE [OwnerID] = @OwnerID AND - [TriggerHandler] = @TriggerHandler AND [ReferenceID] = @ReferenceID AND - [Namespace] = @Namespace AND [Status] = @Status) - BEGIN - INSERT INTO [dbo].[ecSystemTriggers] - ([OwnerID], [TriggerHandler], [ReferenceID], [Namespace], [Status]) - VALUES - (@OwnerID, @TriggerHandler, @ReferenceID, @Namespace, @Status); - END - -END - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ecAddonProducts]( - [AddonID] [int] NOT NULL, - [ProductID] [int] NOT NULL, - [ResellerID] [int] NOT NULL, - CONSTRAINT [PK_ecAddonProducts] PRIMARY KEY CLUSTERED -( - [AddonID] ASC, - [ProductID] ASC, - [ResellerID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddInvoice] - @ContractID nvarchar(50), - @Created datetime, - @DueDate datetime, - @TaxationID int, - @TotalAmount money, - @SubTotalAmount money, - @TaxAmount money, - @Xml ntext, - @Currency nvarchar(3), - @Result int OUTPUT -AS -BEGIN -/* - XML Format: - - - -*/ - -BEGIN TRAN ADD_INVOICE - DECLARE @XmlDocID int; - SET @XmlDocID = NULL; - -- - IF @TaxationID < 1 - SET @TaxationID = NULL; - -- emit invoice - INSERT INTO [dbo].[ecInvoice] - ([ContractID], [Created], [DueDate], [TaxationID], [Total], [SubTotal], [TaxAmount], [Currency]) - VALUES - (@ContractID, @Created, @DueDate, @TaxationID, @TotalAmount, @SubTotalAmount, @TaxAmount, @Currency); - -- obtain result - SET @Result = SCOPE_IDENTITY(); - - --Create an internal representation of the XML document. - EXEC sp_xml_preparedocument @XmlDocID OUTPUT, @Xml;; - -- - INSERT INTO [dbo].[ecInvoiceItems] - ( - [InvoiceID], - [ServiceID], - [ItemName], - [TypeName], - [Quantity], - [Total], - [SubTotal], - [UnitPrice] - ) - SELECT - @Result, - CASE [XML].[ServiceID] - WHEN 0 THEN NULL - ELSE [XML].[ServiceID] - END, - [XML].[ItemName], - [XML].[TypeName], - [XML].[Quantity], - [XML].[Total], - [XML].[SubTotal], - [XML].[UnitPrice] - FROM OPENXML(@XmlDocID, '/items/item',1) WITH - ( - [ServiceID] int '@serviceid', - [ItemName] nvarchar(255) '@itemname', - [TypeName] nvarchar(255) '@typename', - [Quantity] int '@quantity', - [Total] money '@total', - [SubTotal] money '@subtotal', - [UnitPrice] money '@unitprice' - ) AS [XML]; - -- check errors - IF @@ERROR <> 0 - GOTO ERROR_HANDLE; - -- remove document - EXEC sp_xml_removedocument @XmlDocID; - - -- commit - COMMIT TRAN ADD_INVOICE; - -- exit - RETURN; --- error handle -ERROR_HANDLE: -BEGIN - IF NOT @XmlDocID IS NULL - EXEC sp_xml_removedocument @XmlDocID; - - SET @Result = -1; - ROLLBACK TRAN ADD_INVOICE; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteComment -( - @ActorID int, - @CommentID int -) -AS - --- check rights -DECLARE @UserID int -SELECT @UserID = UserID FROM Comments -WHERE CommentID = @CommentID - --- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to perform this operation', 16, 1) - - --- delete comment -DELETE FROM Comments -WHERE CommentID = @CommentID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[AddUser] -( - @ActorID int, - @UserID int OUTPUT, - @OwnerID int, - @RoleID int, - @StatusID int, - @IsDemo bit, - @IsPeer bit, - @Comments ntext, - @Username nvarchar(50), - @Password nvarchar(200), - @FirstName nvarchar(50), - @LastName nvarchar(50), - @Email nvarchar(255), - @SecondaryEmail nvarchar(255), - @Address nvarchar(200), - @City nvarchar(50), - @State nvarchar(50), - @Country nvarchar(50), - @Zip varchar(20), - @PrimaryPhone varchar(30), - @SecondaryPhone varchar(30), - @Fax varchar(30), - @InstantMessenger nvarchar(200), - @HtmlMail bit, - @CompanyName nvarchar(100), - @EcommerceEnabled bit -) -AS - --- check if the user already exists -IF EXISTS(SELECT UserID FROM Users WHERE Username = @Username) -BEGIN - SET @UserID = -1 - RETURN -END - --- check actor rights -IF dbo.CanCreateUser(@ActorID, @OwnerID) = 0 -BEGIN - SET @UserID = -2 - RETURN -END - -INSERT INTO Users -( - OwnerID, - RoleID, - StatusID, - Created, - Changed, - IsDemo, - IsPeer, - Comments, - Username, - Password, - FirstName, - LastName, - Email, - SecondaryEmail, - Address, - City, - State, - Country, - Zip, - PrimaryPhone, - SecondaryPhone, - Fax, - InstantMessenger, - HtmlMail, - CompanyName, - EcommerceEnabled -) -VALUES -( - @OwnerID, - @RoleID, - @StatusID, - GetDate(), - GetDate(), - @IsDemo, - @IsPeer, - @Comments, - @Username, - @Password, - @FirstName, - @LastName, - @Email, - @SecondaryEmail, - @Address, - @City, - @State, - @Country, - @Zip, - @PrimaryPhone, - @SecondaryPhone, - @Fax, - @InstantMessenger, - @HtmlMail, - @CompanyName, - @EcommerceEnabled -) - -SET @UserID = SCOPE_IDENTITY() - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdateServer -( - @ServerID int, - @ServerName nvarchar(100), - @ServerUrl nvarchar(100), - @Password nvarchar(100), - @Comments ntext, - @InstantDomainAlias nvarchar(200), - @PrimaryGroupID int, - @ADEnabled bit, - @ADRootDomain nvarchar(200), - @ADUsername nvarchar(100), - @ADPassword nvarchar(100), - @ADAuthenticationType varchar(50) -) -AS - -IF @PrimaryGroupID = 0 -SET @PrimaryGroupID = NULL - -UPDATE Servers SET - ServerName = @ServerName, - ServerUrl = @ServerUrl, - Password = @Password, - Comments = @Comments, - InstantDomainAlias = @InstantDomainAlias, - PrimaryGroupID = @PrimaryGroupID, - ADEnabled = @ADEnabled, - ADRootDomain = @ADRootDomain, - ADUsername = @ADUsername, - ADPassword = @ADPassword, - ADAuthenticationType = @ADAuthenticationType -WHERE ServerID = @ServerID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdateUserSettings -( - @ActorID int, - @UserID int, - @SettingsName nvarchar(50), - @Xml ntext -) -AS - --- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - --- delete old properties -BEGIN TRAN -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @xml - --- Execute a SELECT statement that uses the OPENXML rowset provider. -DELETE FROM UserSettings -WHERE UserID = @UserID AND SettingsName = @SettingsName - -INSERT INTO UserSettings -( - UserID, - SettingsName, - PropertyName, - PropertyValue -) -SELECT - @UserID, - @SettingsName, - PropertyName, - PropertyValue -FROM OPENXML(@idoc, '/properties/property',1) WITH -( - PropertyName nvarchar(50) '@name', - PropertyValue ntext '@value' -) as PV - --- remove document -exec sp_xml_removedocument @idoc - -COMMIT TRAN - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[UpdateUser] -( - @ActorID int, - @UserID int, - @RoleID int, - @StatusID int, - @IsDemo bit, - @IsPeer bit, - @Comments ntext, - @FirstName nvarchar(50), - @LastName nvarchar(50), - @Email nvarchar(255), - @SecondaryEmail nvarchar(255), - @Address nvarchar(200), - @City nvarchar(50), - @State nvarchar(50), - @Country nvarchar(50), - @Zip varchar(20), - @PrimaryPhone varchar(30), - @SecondaryPhone varchar(30), - @Fax varchar(30), - @InstantMessenger nvarchar(200), - @HtmlMail bit, - @CompanyName nvarchar(100), - @EcommerceEnabled BIT, - @AdditionalParams NVARCHAR(max) -) -AS - - -- check actor rights - IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0 - BEGIN - RETURN - END - - UPDATE Users SET - RoleID = @RoleID, - StatusID = @StatusID, - Changed = GetDate(), - IsDemo = @IsDemo, - IsPeer = @IsPeer, - Comments = @Comments, - FirstName = @FirstName, - LastName = @LastName, - Email = @Email, - SecondaryEmail = @SecondaryEmail, - Address = @Address, - City = @City, - State = @State, - Country = @Country, - Zip = @Zip, - PrimaryPhone = @PrimaryPhone, - SecondaryPhone = @SecondaryPhone, - Fax = @Fax, - InstantMessenger = @InstantMessenger, - HtmlMail = @HtmlMail, - CompanyName = @CompanyName, - EcommerceEnabled = @EcommerceEnabled, - [AdditionalParams] = @AdditionalParams - WHERE UserID = @UserID - - RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetUserSettings -( - @ActorID int, - @UserID int, - @SettingsName nvarchar(50) -) -AS - --- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - --- find which parent package has overriden NS -DECLARE @ParentUserID int, @TmpUserID int -SET @TmpUserID = @UserID - -WHILE 10 = 10 -BEGIN - - IF EXISTS - ( - SELECT PropertyName FROM UserSettings - WHERE SettingsName = @SettingsName AND UserID = @TmpUserID - ) - BEGIN - SELECT - UserID, - PropertyName, - PropertyValue - FROM - UserSettings - WHERE - UserID = @TmpUserID AND - SettingsName = @SettingsName - - BREAK - END - - SET @ParentUserID = NULL --reset var - - -- get owner - SELECT - @ParentUserID = OwnerID - FROM Users - WHERE UserID = @TmpUserID - - IF @ParentUserID IS NULL -- the last parent - BREAK - - SET @TmpUserID = @ParentUserID -END - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetUsersSummary -( - @ActorID int, - @UserID int -) -AS --- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - --- ALL users -SELECT COUNT(UserID) AS UsersNumber FROM Users -WHERE OwnerID = @UserID AND IsPeer = 0 - --- BY STATUS users -SELECT StatusID, COUNT(UserID) AS UsersNumber FROM Users -WHERE OwnerID = @UserID AND IsPeer = 0 -GROUP BY StatusID -ORDER BY StatusID - --- BY ROLE users -SELECT RoleID, COUNT(UserID) AS UsersNumber FROM Users -WHERE OwnerID = @UserID AND IsPeer = 0 -GROUP BY RoleID -ORDER BY RoleID DESC - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetUserParents] -( - @ActorID int, - @UserID int -) -AS - --- check rights -IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 -RAISERROR('You are not allowed to access this account', 16, 1) - -SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - U.FirstName, - U.LastName, - U.Email, - U.CompanyName, - U.EcommerceEnabled -FROM UserParents(@ActorID, @UserID) AS UP -INNER JOIN Users AS U ON UP.UserID = U.UserID -ORDER BY UP.UserOrder DESC -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[GetUserByUsername] -( - @ActorID int, - @Username nvarchar(50) -) -AS - - SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - CASE WHEN dbo.CanGetUserPassword(@ActorID, UserID) = 1 THEN U.Password - ELSE '' END AS Password, - U.FirstName, - U.LastName, - U.Email, - U.SecondaryEmail, - U.Address, - U.City, - U.State, - U.Country, - U.Zip, - U.PrimaryPhone, - U.SecondaryPhone, - U.Fax, - U.InstantMessenger, - U.HtmlMail, - U.CompanyName, - U.EcommerceEnabled, - U.[AdditionalParams] - FROM Users AS U - WHERE U.Username = @Username - AND dbo.CanGetUserDetails(@ActorID, UserID) = 1 -- actor user rights - - RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[GetUserById] -( - @ActorID int, - @UserID int -) -AS - -- user can retrieve his own account, his users accounts - -- and his reseller account (without pasword) - SELECT - U.UserID, - U.RoleID, - U.StatusID, - U.OwnerID, - U.Created, - U.Changed, - U.IsDemo, - U.Comments, - U.IsPeer, - U.Username, - CASE WHEN dbo.CanGetUserPassword(@ActorID, @UserID) = 1 THEN U.Password - ELSE '' END AS Password, - U.FirstName, - U.LastName, - U.Email, - U.SecondaryEmail, - U.Address, - U.City, - U.State, - U.Country, - U.Zip, - U.PrimaryPhone, - U.SecondaryPhone, - U.Fax, - U.InstantMessenger, - U.HtmlMail, - U.CompanyName, - U.EcommerceEnabled, - U.[AdditionalParams] - FROM Users AS U - WHERE U.UserID = @UserID - AND dbo.CanGetUserDetails(@ActorID, @UserID) = 1 -- actor user rights - - RETURN - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServerInternal -( - @ServerID int -) -AS -SELECT - ServerID, - ServerName, - ServerUrl, - Password, - Comments, - VirtualServer, - InstantDomainAlias, - PrimaryGroupID, - ADEnabled, - ADRootDomain, - ADUsername, - ADPassword, - ADAuthenticationType -FROM Servers -WHERE - ServerID = @ServerID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServerByName -( - @ActorID int, - @ServerName nvarchar(100) -) -AS --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - ServerID, - ServerName, - ServerUrl, - Password, - Comments, - VirtualServer, - InstantDomainAlias, - PrimaryGroupID, - ADRootDomain, - ADUsername, - ADPassword, - ADAuthenticationType -FROM Servers -WHERE - ServerName = @ServerName - AND @IsAdmin = 1 - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServer] -( - @ActorID int, - @ServerID int -) -AS --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - ServerID, - ServerName, - ServerUrl, - Password, - Comments, - VirtualServer, - InstantDomainAlias, - PrimaryGroupID, - ADEnabled, - ADRootDomain, - ADUsername, - ADPassword, - ADAuthenticationType -FROM Servers -WHERE - ServerID = @ServerID - AND @IsAdmin = 1 - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetSearchableServiceItemTypes - -AS -SELECT - ItemTypeID, - DisplayName -FROM - ServiceItemTypes -WHERE Searchable = 1 -ORDER BY TypeOrder -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - - - - - - - - - - - - -/****** Object: StoredProcedure [dbo].[GetScheduleTaskViewConfigurations] Script Date: 09/10/2007 17:53:56 ******/ - -CREATE PROCEDURE [dbo].[GetScheduleTaskViewConfigurations] -( - @TaskID nvarchar(100) -) -AS - -SELECT - @TaskID AS TaskID, - STVC.ConfigurationID, - STVC.Environment, - STVC.Description -FROM ScheduleTaskViewConfiguration AS STVC -WHERE STVC.TaskID = @TaskID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemTypes] -AS -SELECT - [ItemTypeID], - [GroupID], - [DisplayName], - [TypeName], - [TypeOrder], - [CalculateDiskspace], - [CalculateBandwidth], - [Suspendable], - [Disposable], - [Searchable], - [Importable], - [Backupable] -FROM - [ServiceItemTypes] -ORDER BY TypeOrder - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetServiceItemType] -( - @ItemTypeID int -) -AS -SELECT - [ItemTypeID], - [GroupID], - [DisplayName], - [TypeName], - [TypeOrder], - [CalculateDiskspace], - [CalculateBandwidth], - [Suspendable], - [Disposable], - [Searchable], - [Importable], - [Backupable] -FROM - [ServiceItemTypes] -WHERE - [ItemTypeID] = @ItemTypeID - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServerShortDetails -( - @ServerID int -) -AS - -SELECT - ServerID, - ServerName, - Comments, - VirtualServer, - InstantDomainAlias -FROM Servers -WHERE - ServerID = @ServerID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetProviders] -AS -SELECT - PROV.ProviderID, - PROV.GroupID, - PROV.ProviderName, - PROV.EditorControl, - PROV.DisplayName, - PROV.ProviderType, - RG.GroupName + ' - ' + PROV.DisplayName AS ProviderName, - PROV.DisableAutoDiscovery -FROM Providers AS PROV -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -ORDER BY RG.GroupOrder, PROV.DisplayName -RETURN - - - - - - - - - - - - - - @@ -30819,10 +24430,16 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[ecProductsHighlights]( +CREATE TABLE [dbo].[ecAddonProducts]( + [AddonID] [int] NOT NULL, [ProductID] [int] NOT NULL, - [HighlightText] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, - [SortOrder] [int] NOT NULL + [ResellerID] [int] NOT NULL, + CONSTRAINT [PK_ecAddonProducts] PRIMARY KEY CLUSTERED +( + [AddonID] ASC, + [ProductID] ASC, + [ResellerID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) GO @@ -30830,15 +24447,2582 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -CREATE TABLE [dbo].[ecProductCategories]( - [ProductID] [int] NOT NULL, - [CategoryID] [int] NOT NULL, - [ResellerID] [int] NOT NULL, - CONSTRAINT [PK_ecProductCategories] PRIMARY KEY CLUSTERED + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddInvoice] + @ContractID nvarchar(50), + @Created datetime, + @DueDate datetime, + @TaxationID int, + @TotalAmount money, + @SubTotalAmount money, + @TaxAmount money, + @Xml ntext, + @Currency nvarchar(3), + @Result int OUTPUT +AS +BEGIN +/* + XML Format: + + + +*/ + +BEGIN TRAN ADD_INVOICE + DECLARE @XmlDocID int; + SET @XmlDocID = NULL; + -- + IF @TaxationID < 1 + SET @TaxationID = NULL; + -- emit invoice + INSERT INTO [dbo].[ecInvoice] + ([ContractID], [Created], [DueDate], [TaxationID], [Total], [SubTotal], [TaxAmount], [Currency]) + VALUES + (@ContractID, @Created, @DueDate, @TaxationID, @TotalAmount, @SubTotalAmount, @TaxAmount, @Currency); + -- obtain result + SET @Result = SCOPE_IDENTITY(); + + --Create an internal representation of the XML document. + EXEC sp_xml_preparedocument @XmlDocID OUTPUT, @Xml;; + -- + INSERT INTO [dbo].[ecInvoiceItems] + ( + [InvoiceID], + [ServiceID], + [ItemName], + [TypeName], + [Quantity], + [Total], + [SubTotal], + [UnitPrice] + ) + SELECT + @Result, + CASE [XML].[ServiceID] + WHEN 0 THEN NULL + ELSE [XML].[ServiceID] + END, + [XML].[ItemName], + [XML].[TypeName], + [XML].[Quantity], + [XML].[Total], + [XML].[SubTotal], + [XML].[UnitPrice] + FROM OPENXML(@XmlDocID, '/items/item',1) WITH + ( + [ServiceID] int '@serviceid', + [ItemName] nvarchar(255) '@itemname', + [TypeName] nvarchar(255) '@typename', + [Quantity] int '@quantity', + [Total] money '@total', + [SubTotal] money '@subtotal', + [UnitPrice] money '@unitprice' + ) AS [XML]; + -- check errors + IF @@ERROR <> 0 + GOTO ERROR_HANDLE; + -- remove document + EXEC sp_xml_removedocument @XmlDocID; + + -- commit + COMMIT TRAN ADD_INVOICE; + -- exit + RETURN; +-- error handle +ERROR_HANDLE: +BEGIN + IF NOT @XmlDocID IS NULL + EXEC sp_xml_removedocument @XmlDocID; + + SET @Result = -1; + ROLLBACK TRAN ADD_INVOICE; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteAuditLogRecords ( - [ProductID] ASC, - [CategoryID] ASC, - [ResellerID] ASC + @ActorID int, + @UserID int, + @ItemID int, + @ItemName nvarchar(100), + @StartDate datetime, + @EndDate datetime, + @SeverityID int, + @SourceName varchar(100), + @TaskName varchar(100) +) +AS + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +DECLARE @IsAdmin bit +SET @IsAdmin = 0 +IF EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND RoleID = 1) +SET @IsAdmin = 1 + +DELETE FROM AuditLog +WHERE (dbo.CheckUserParent(@UserID, UserID) = 1 OR (UserID IS NULL AND @IsAdmin = 1)) +AND StartDate BETWEEN @StartDate AND @EndDate +AND ((@SourceName = '') OR (@SourceName <> '' AND SourceName = @SourceName)) +AND ((@TaskName = '') OR (@TaskName <> '' AND TaskName = @TaskName)) +AND ((@ItemID = 0) OR (@ItemID > 0 AND ItemID = @ItemID)) +AND ((@ItemName = '') OR (@ItemName <> '' AND ItemName LIKE @ItemName)) + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateInvoice] + @ActorID int, + @InvoiceID int, + @InvoiceNumber nvarchar(50), + @DueDate datetime, + @TaxationID int, + @Total money, + @SubTotal money, + @TaxAmount money, + @Currency nvarchar(3), + @Result int OUTPUT +AS +BEGIN + -- ensure an update request has been issued by the right person + DECLARE @ContractID nvarchar(50), @IssuerID int; + SELECT + @ContractID = [ContractID] FROM [dbo].[ecInvoice] + WHERE + [InvoiceID] = @InvoiceID; + SELECT + @IssuerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + + SET NOCOUNT ON; + + SET @Result = 0; + + UPDATE + [dbo].[ecInvoice] + SET + [InvoiceNumber] = @InvoiceNumber, + [DueDate] = @DueDate, + [Total] = @Total, + [SubTotal] = @SubTotal, + [TaxationID] = @TaxationID, + [TaxAmount] = @TaxAmount, + [Currency] = @Currency + WHERE + [InvoiceID] = @InvoiceID + AND + [ContractID] = @ContractID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[AddUser] +( + @ActorID int, + @UserID int OUTPUT, + @OwnerID int, + @RoleID int, + @StatusID int, + @IsDemo bit, + @IsPeer bit, + @Comments ntext, + @Username nvarchar(50), + @Password nvarchar(200), + @FirstName nvarchar(50), + @LastName nvarchar(50), + @Email nvarchar(255), + @SecondaryEmail nvarchar(255), + @Address nvarchar(200), + @City nvarchar(50), + @State nvarchar(50), + @Country nvarchar(50), + @Zip varchar(20), + @PrimaryPhone varchar(30), + @SecondaryPhone varchar(30), + @Fax varchar(30), + @InstantMessenger nvarchar(200), + @HtmlMail bit, + @CompanyName nvarchar(100), + @EcommerceEnabled bit +) +AS + +-- check if the user already exists +IF EXISTS(SELECT UserID FROM Users WHERE Username = @Username) +BEGIN + SET @UserID = -1 + RETURN +END + +-- check actor rights +IF dbo.CanCreateUser(@ActorID, @OwnerID) = 0 +BEGIN + SET @UserID = -2 + RETURN +END + +INSERT INTO Users +( + OwnerID, + RoleID, + StatusID, + Created, + Changed, + IsDemo, + IsPeer, + Comments, + Username, + Password, + FirstName, + LastName, + Email, + SecondaryEmail, + Address, + City, + State, + Country, + Zip, + PrimaryPhone, + SecondaryPhone, + Fax, + InstantMessenger, + HtmlMail, + CompanyName, + EcommerceEnabled +) +VALUES +( + @OwnerID, + @RoleID, + @StatusID, + GetDate(), + GetDate(), + @IsDemo, + @IsPeer, + @Comments, + @Username, + @Password, + @FirstName, + @LastName, + @Email, + @SecondaryEmail, + @Address, + @City, + @State, + @Country, + @Zip, + @PrimaryPhone, + @SecondaryPhone, + @Fax, + @InstantMessenger, + @HtmlMail, + @CompanyName, + @EcommerceEnabled +) + +SET @UserID = SCOPE_IDENTITY() + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdateUserSettings +( + @ActorID int, + @UserID int, + @SettingsName nvarchar(50), + @Xml ntext +) +AS + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +-- delete old properties +BEGIN TRAN +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + +-- Execute a SELECT statement that uses the OPENXML rowset provider. +DELETE FROM UserSettings +WHERE UserID = @UserID AND SettingsName = @SettingsName + +INSERT INTO UserSettings +( + UserID, + SettingsName, + PropertyName, + PropertyValue +) +SELECT + @UserID, + @SettingsName, + PropertyName, + PropertyValue +FROM OPENXML(@idoc, '/properties/property',1) WITH +( + PropertyName nvarchar(50) '@name', + PropertyValue ntext '@value' +) as PV + +-- remove document +exec sp_xml_removedocument @idoc + +COMMIT TRAN + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +CREATE PROCEDURE [dbo].[UpdateUser] +( + @ActorID int, + @UserID int, + @RoleID int, + @StatusID int, + @IsDemo bit, + @IsPeer bit, + @Comments ntext, + @FirstName nvarchar(50), + @LastName nvarchar(50), + @Email nvarchar(255), + @SecondaryEmail nvarchar(255), + @Address nvarchar(200), + @City nvarchar(50), + @State nvarchar(50), + @Country nvarchar(50), + @Zip varchar(20), + @PrimaryPhone varchar(30), + @SecondaryPhone varchar(30), + @Fax varchar(30), + @InstantMessenger nvarchar(200), + @HtmlMail bit, + @CompanyName nvarchar(100), + @EcommerceEnabled BIT, + @AdditionalParams NVARCHAR(max) +) +AS + + -- check actor rights + IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0 + BEGIN + RETURN + END + + UPDATE Users SET + RoleID = @RoleID, + StatusID = @StatusID, + Changed = GetDate(), + IsDemo = @IsDemo, + IsPeer = @IsPeer, + Comments = @Comments, + FirstName = @FirstName, + LastName = @LastName, + Email = @Email, + SecondaryEmail = @SecondaryEmail, + Address = @Address, + City = @City, + State = @State, + Country = @Country, + Zip = @Zip, + PrimaryPhone = @PrimaryPhone, + SecondaryPhone = @SecondaryPhone, + Fax = @Fax, + InstantMessenger = @InstantMessenger, + HtmlMail = @HtmlMail, + CompanyName = @CompanyName, + EcommerceEnabled = @EcommerceEnabled, + [AdditionalParams] = @AdditionalParams + WHERE UserID = @UserID + + RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteComment +( + @ActorID int, + @CommentID int +) +AS + +-- check rights +DECLARE @UserID int +SELECT @UserID = UserID FROM Comments +WHERE CommentID = @CommentID + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to perform this operation', 16, 1) + + +-- delete comment +DELETE FROM Comments +WHERE CommentID = @CommentID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[VirtualServices]( + [VirtualServiceID] [int] IDENTITY(1,1) NOT NULL, + [ServerID] [int] NOT NULL, + [ServiceID] [int] NOT NULL, + CONSTRAINT [PK_VirtualServices] PRIMARY KEY CLUSTERED +( + [VirtualServiceID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE FUNCTION dbo.GetPackageAllocatedResource +( + @PackageID int, + @GroupID int, + @ServerID int +) +RETURNS bit +AS +BEGIN + +IF @PackageID IS NULL +RETURN 1 + +DECLARE @Result bit +SET @Result = 1 -- enabled + +DECLARE @PID int, @ParentPackageID int +SET @PID = @PackageID + +DECLARE @OverrideQuotas bit + +IF @ServerID IS NULL OR @ServerID = 0 +SELECT @ServerID = ServerID FROM Packages +WHERE PackageID = @PackageID + +WHILE 1 = 1 +BEGIN + + DECLARE @GroupEnabled int + + -- get package info + SELECT + @ParentPackageID = ParentPackageID, + @OverrideQuotas = OverrideQuotas + FROM Packages WHERE PackageID = @PID + + -- check if this is a root 'System' package + SET @GroupEnabled = 1 -- enabled + IF @ParentPackageID IS NULL + BEGIN + + IF @ServerID = -1 OR @ServerID IS NULL + RETURN 1 + + IF EXISTS (SELECT VirtualServer FROM Servers WHERE ServerID = @ServerID AND VirtualServer = 1) + BEGIN + IF NOT EXISTS( + SELECT + DISTINCT(PROV.GroupID) + FROM VirtualServices AS VS + INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID + INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID + WHERE PROV.GroupID = @GroupID AND VS.ServerID = @ServerID + ) + SET @GroupEnabled = 0 + END + ELSE + BEGIN + IF NOT EXISTS( + SELECT + DISTINCT(PROV.GroupID) + FROM Services AS S + INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID + WHERE PROV.GroupID = @GroupID AND S.ServerID = @ServerID + ) + SET @GroupEnabled = 0 + END + + RETURN @GroupEnabled -- exit from the loop + END + ELSE -- parentpackage is not null + BEGIN + -- check the current package + IF @OverrideQuotas = 1 + BEGIN + IF NOT EXISTS( + SELECT GroupID FROM PackageResources WHERE GroupID = @GroupID AND PackageID = @PID + ) + SET @GroupEnabled = 0 + END + ELSE + BEGIN + IF NOT EXISTS( + SELECT HPR.GroupID FROM Packages AS P + INNER JOIN HostingPlanResources AS HPR ON P.PlanID = HPR.PlanID + WHERE HPR.GroupID = @GroupID AND P.PackageID = @PID + ) + SET @GroupEnabled = 0 + END + + -- check addons + IF EXISTS( + SELECT HPR.GroupID FROM PackageAddons AS PA + INNER JOIN HostingPlanResources AS HPR ON PA.PlanID = HPR.PlanID + WHERE HPR.GroupID = @GroupID AND PA.PackageID = @PID + AND PA.StatusID = 1 -- active add-on + ) + SET @GroupEnabled = 1 + END + + IF @GroupEnabled = 0 + RETURN 0 + + SET @PID = @ParentPackageID + +END -- end while + +RETURN @Result +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackageQuotasForEdit +( + @ActorID int, + @PackageID int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @ServerID int, @ParentPackageID int, @PlanID int +SELECT @ServerID = ServerID, @ParentPackageID = ParentPackageID, @PlanID = PlanID FROM Packages +WHERE PackageID = @PackageID + +-- get resource groups +SELECT + RG.GroupID, + RG.GroupName, + ISNULL(PR.CalculateDiskSpace, ISNULL(HPR.CalculateDiskSpace, 0)) AS CalculateDiskSpace, + ISNULL(PR.CalculateBandwidth, ISNULL(HPR.CalculateBandwidth, 0)) AS CalculateBandwidth, + dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID) AS Enabled, + dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, @ServerID) AS ParentEnabled +FROM ResourceGroups AS RG +LEFT OUTER JOIN PackageResources AS PR ON RG.GroupID = PR.GroupID AND PR.PackageID = @PackageID +LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID +ORDER BY RG.GroupOrder + + +-- return quotas +SELECT + Q.QuotaID, + Q.GroupID, + Q.QuotaName, + Q.QuotaDescription, + Q.QuotaTypeID, + CASE + WHEN PQ.QuotaValue IS NULL THEN dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) + ELSE PQ.QuotaValue + END QuotaValue, + dbo.GetPackageAllocatedQuota(@ParentPackageID, Q.QuotaID) AS ParentQuotaValue +FROM Quotas AS Q +LEFT OUTER JOIN PackageQuotas AS PQ ON PQ.QuotaID = Q.QuotaID AND PQ.PackageID = @PackageID +ORDER BY Q.QuotaOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[IPAddresses]( + [AddressID] [int] IDENTITY(1,1) NOT NULL, + [ExternalIP] [varchar](24) COLLATE Latin1_General_CI_AS NOT NULL, + [InternalIP] [varchar](24) COLLATE Latin1_General_CI_AS NULL, + [ServerID] [int] NULL, + [Comments] [ntext] COLLATE Latin1_General_CI_AS NULL, + [SubnetMask] [varchar](15) COLLATE Latin1_General_CI_AS NULL, + [DefaultGateway] [varchar](15) COLLATE Latin1_General_CI_AS NULL, + [PoolID] [int] NULL, + CONSTRAINT [PK_IPAddresses] PRIMARY KEY CLUSTERED +( + [AddressID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + +CREATE FUNCTION [dbo].[CalculateQuotaUsage] +( + @PackageID int, + @QuotaID int +) +RETURNS int +AS + BEGIN + + DECLARE @QuotaTypeID int + SELECT @QuotaTypeID = QuotaTypeID FROM Quotas + WHERE QuotaID = @QuotaID + + IF @QuotaTypeID <> 2 + RETURN 0 + + DECLARE @Result int + + IF @QuotaID = 52 -- diskspace + SET @Result = dbo.CalculatePackageDiskspace(@PackageID) + ELSE IF @QuotaID = 51 -- bandwidth + SET @Result = dbo.CalculatePackageBandwidth(@PackageID) + ELSE IF @QuotaID = 53 -- domains + SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT + INNER JOIN Domains AS D ON D.PackageID = PT.PackageID + WHERE IsSubDomain = 0 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 54 -- sub-domains + SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT + INNER JOIN Domains AS D ON D.PackageID = PT.PackageID + WHERE IsSubDomain = 1 AND IsInstantAlias = 0 AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 220 -- domain pointers + SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT + INNER JOIN Domains AS D ON D.PackageID = PT.PackageID + WHERE IsDomainPointer = 1 AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 71 -- scheduled tasks + SET @Result = (SELECT COUNT(S.ScheduleID) FROM PackagesTreeCache AS PT + INNER JOIN Schedule AS S ON S.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 305 -- RAM of VPS + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'RamSize' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 306 -- HDD of VPS + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 309 -- External IP addresses of VPS + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3) + ELSE IF @QuotaID = 100 -- Dedicated Web IP addresses + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 2) + ELSE IF @QuotaID = 350 -- RAM of VPSforPc + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'Memory' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 351 -- HDD of VPSforPc + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 354 -- External IP addresses of VPSforPc + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3) + ELSE IF @QuotaID = 319 -- BB Users + SET @Result = (SELECT COUNT(ea.AccountID) + FROM + ExchangeAccounts ea + INNER JOIN + BlackBerryUsers bu + ON + ea.AccountID = bu.AccountID + INNER JOIN + ServiceItems si + ON + ea.ItemID = si.ItemID + INNER JOIN + PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE + pt.ParentPackageID = @PackageID) + ELSE + SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q + INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID AND PT.ParentPackageID = @PackageID + WHERE Q.QuotaID = @QuotaID) + + RETURN @Result + END + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackageQuotas +( + @ActorID int, + @PackageID int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @PlanID int, @ParentPackageID int +SELECT @PlanID = PlanID, @ParentPackageID = ParentPackageID FROM Packages +WHERE PackageID = @PackageID + +-- get resource groups +SELECT + RG.GroupID, + RG.GroupName, + ISNULL(HPR.CalculateDiskSpace, 0) AS CalculateDiskSpace, + ISNULL(HPR.CalculateBandwidth, 0) AS CalculateBandwidth, + dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, 0) AS ParentEnabled +FROM ResourceGroups AS RG +LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID +WHERE dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, 0) = 1 +ORDER BY RG.GroupOrder + + +-- return quotas +SELECT + Q.QuotaID, + Q.GroupID, + Q.QuotaName, + Q.QuotaDescription, + Q.QuotaTypeID, + dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) AS QuotaValue, + dbo.GetPackageAllocatedQuota(@ParentPackageID, Q.QuotaID) AS ParentQuotaValue, + ISNULL(dbo.CalculateQuotaUsage(@PackageID, Q.QuotaID), 0) AS QuotaUsedValue +FROM Quotas AS Q +ORDER BY Q.QuotaOrder +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetPackageQuota] +( + @ActorID int, + @PackageID int, + @QuotaName nvarchar(50) +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- return quota +SELECT + Q.QuotaID, + Q.QuotaName, + Q.QuotaDescription, + Q.QuotaTypeID, + ISNULL(dbo.GetPackageAllocatedQuota(@PackageId, Q.QuotaID), 0) AS QuotaAllocatedValue, + ISNULL(dbo.CalculateQuotaUsage(@PackageId, Q.QuotaID), 0) AS QuotaUsedValue +FROM Quotas AS Q +WHERE Q.QuotaName = @QuotaName + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetHostingPlanQuotas +( + @ActorID int, + @PlanID int, + @PackageID int, + @ServerID int +) +AS + +-- check rights +IF dbo.CheckActorParentPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @IsAddon bit + +IF @ServerID = 0 +SELECT @ServerID = ServerID FROM Packages +WHERE PackageID = @PackageID + +-- get resource groups +SELECT + RG.GroupID, + RG.GroupName, + CASE + WHEN HPR.CalculateDiskSpace IS NULL THEN CAST(0 as bit) + ELSE CAST(1 as bit) + END AS Enabled, + dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID) AS ParentEnabled, + ISNULL(HPR.CalculateDiskSpace, 1) AS CalculateDiskSpace, + ISNULL(HPR.CalculateBandwidth, 1) AS CalculateBandwidth +FROM ResourceGroups AS RG +LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID +ORDER BY RG.GroupOrder + +-- get quotas by groups +SELECT + Q.QuotaID, + Q.GroupID, + Q.QuotaName, + Q.QuotaDescription, + Q.QuotaTypeID, + ISNULL(HPQ.QuotaValue, 0) AS QuotaValue, + dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) AS ParentQuotaValue +FROM Quotas AS Q +LEFT OUTER JOIN HostingPlanQuotas AS HPQ ON Q.QuotaID = HPQ.QuotaID AND HPQ.PlanID = @PlanID +ORDER BY Q.QuotaOrder +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* +Algorythm: + 0. Get the primary distribution resource from hosting plan + 1. Check whether user has Resource of requested type in his user plans/add-ons + EXCEPTION "The requested service is not available for the user. The resource of the requested type {type} should be assigned to him through hosting plan or add-on" + 1.1 If the number of returned reources is greater than 1 + EXCEPTION "User has several resources assigned of the requested type" + + 2. If the requested resource has 0 services + EXCEPTION "The resource {name} of type {type} should contain atleast one service + 3. If the requested resource has one service + remember the ID of this single service + 4. If the requested resource has several services DO distribution: + + 4.1. If the resource is NOT BOUNDED or is PRIMARY DISTRIBUTION RESOURCE + if PRIMARY DISTRIBUTION RESOURCE and exists in UserServices + return serviceId from UserServices table + + remember any service from that resource according to distribution type ("BALANCED" or "RANDOM") - get the number of ServiceItems for each service + + 4.2. If the resource is BOUNDED to primary distribution resource + - If the primary distribution resource is NULL + EXCEPTION "Requested resource marked as bound to primary distribution resource, but there is no any resources in hosting plan marked as primary" + + - Get the service id of the primary distribution resource + GetServiceId(userId, primaryResourceId) + + + Get from user assigned hosting plan + + 5. If it is PRIMARY DISTRIBUTION RESOURCE + Save it's ID to UserServices table + + 6. return serviceId + +ERROR CODES: + -1 - there are several hosting plans with PDR assigned to that user + -2 - The requested service is not available for the user. The resource of the + requested type {type} should be assigned to him through hosting plan or add-on + -3 - several resources of the same type was assigned through hosting plan or add-on + -4 - The resource {name} of type {type} should contain atleast one service + -5 - Requested resource marked as bound to primary distribution resource, + but there is no any resources in hosting plan marked as primary + -6 - the server where PDR is located doesn't contain the service of requested resource type +*/ +CREATE PROCEDURE GetUserServiceID +( + @UserID int, + @TypeName nvarchar(1000), + @ServiceID int OUTPUT +) +AS + DECLARE @PrimaryResourceID int -- primary distribution resource assigned through hosting plan + + ---------------------------------------- + -- Get the primary distribution resource + ---------------------------------------- + IF (SELECT COUNT (HP.PrimaryResourceID) FROM PurchasedHostingPlans AS PHP + INNER JOIN HostingPlans AS HP ON PHP.PlanID = HP.PlanID + WHERE PHP.UserID = @UserID AND HP.PrimaryResourceID IS NOT NULL AND HP.PrimaryResourceID <> 0) > 1 + BEGIN + SET @ServiceID = -1 + RETURN + END + + SELECT @PrimaryResourceID = HP.PrimaryResourceID FROM PurchasedHostingPlans AS PHP + INNER JOIN HostingPlans AS HP ON PHP.PlanID = HP.PlanID + WHERE PHP.UserID = @UserID AND HP.PrimaryResourceID IS NOT NULL AND HP.PrimaryResourceID <> 0 + + + ---------------------------------------------- + -- Check whether user has a resource + -- of this type in his hosting plans or addons + ---------------------------------------------- + DECLARE @UserResourcesTable TABLE + ( + ResourceID int + ) + INSERT INTO @UserResourcesTable + SELECT DISTINCT HPR.ResourceID FROM PurchasedHostingPlans AS PHP + INNER JOIN HostingPlans AS HP ON PHP.PlanID = HP.PlanID + INNER JOIN HostingPlanResources AS HPR ON HP.PlanID = HPR.PlanID + INNER JOIN Resources AS R ON HPR.ResourceID = R.ResourceID + INNER JOIN ServiceTypes AS ST ON R.ServiceTypeID = ST.ServiceTypeID + WHERE PHP.UserID = @UserID AND (ST.ImplementedTypeNames LIKE @TypeName OR ST.TypeName LIKE @TypeName) + + ---------------------------------------- + -- Check resources number + ---------------------------------------- + DECLARE @ResourcesCount int + SET @ResourcesCount = @@ROWCOUNT + IF @ResourcesCount = 0 + BEGIN + SET @ServiceID = -2 -- user doesn't have requested service assigned + RETURN + END + IF @ResourcesCount > 1 + BEGIN + SET @ServiceID = -3 -- several resources of the same type was assigned + RETURN + END + + ---------------------------------------- + -- Check services number + ---------------------------------------- + DECLARE @ResourceID int + SET @ResourceID = (SELECT TOP 1 ResourceID FROM @UserResourcesTable) + + DECLARE @UserServicesTable TABLE + ( + ServiceID int, + ServerID int, + ItemsNumber int, + Randomizer float + ) + INSERT INTO @UserServicesTable + SELECT + RS.ServiceID, + S.ServerID, + (SELECT COUNT(ItemID) FROM ServiceItems AS SI WHERE SI.ServiceID = RS.ServiceID), + RAND() + FROM ResourceServices AS RS + INNER JOIN Services AS S ON RS.ServiceID = S.ServiceID + WHERE RS.ResourceID = @ResourceID + + DECLARE @ServicesCount int + SET @ServicesCount = @@ROWCOUNT + IF @ServicesCount = 0 + BEGIN + SET @ServiceID = -4 -- The resource {name} of type {type} should contain atleast one service + RETURN + END + + -- try to return from UserServices + -- if it is a PDR + IF @ResourceID = @PrimaryResourceID + BEGIN + -- check in UserServices table + SELECT @ServiceID = US.ServiceID FROM ResourceServices AS RS + INNER JOIN UserServices AS US ON RS.ServiceID = US.ServiceID + WHERE RS.ResourceID = @ResourceID AND US.UserID = @UserID + + -- check validness of the current primary service id + IF @ServiceID IS NOT NULL + BEGIN + IF EXISTS(SELECT ResourceServiceID FROM ResourceServices + WHERE ResourceID = @ResourceID AND ServiceID = @ServiceID) + RETURN + ELSE -- invalidate service + DELETE FROM UserServices WHERE UserID = @UserID + END + END + + IF @ServicesCount = 1 + BEGIN + -- nothing to distribute + -- just remember this single service id + SET @ServiceID = (SELECT TOP 1 ServiceID FROM @UserServicesTable) + END + ELSE + BEGIN + -- the service should be distributed + DECLARE @DistributionTypeID int + DECLARE @BoundToPrimaryResource bit + SELECT @DistributionTypeID = R.DistributionTypeID, @BoundToPrimaryResource = R.BoundToPrimaryResource + FROM Resources AS R WHERE R.ResourceID = @ResourceID + + IF @BoundToPrimaryResource = 0 OR @ResourceID = @PrimaryResourceID + BEGIN + IF @ResourceID = @PrimaryResourceID -- it's PDR itself + BEGIN + -- check in UserServices table + SELECT @ServiceID = US.ServiceID FROM ResourceServices AS RS + INNER JOIN UserServices AS US ON RS.ServiceID = US.ServiceID + WHERE RS.ResourceID = @ResourceID AND US.UserID = @UserID + + -- check validness of the current primary service id + IF @ServiceID IS NOT NULL + BEGIN + IF EXISTS(SELECT ResourceServiceID FROM ResourceServices + WHERE ResourceID = @ResourceID AND ServiceID = @ServiceID) + RETURN + ELSE -- invalidate service + DELETE FROM UserServices WHERE UserID = @UserID + END + END + + -- distribute + IF @DistributionTypeID = 1 -- BALANCED distribution + SELECT @ServiceID = ServiceID FROM @UserServicesTable + ORDER BY ItemsNumber ASC + ELSE -- RANDOM distribution + SELECT @ServiceID = ServiceID FROM @UserServicesTable + ORDER BY Randomizer + END + ELSE -- BOUND to PDR resource + BEGIN + IF @PrimaryResourceID IS NULL + BEGIN + SET @ServiceID = -5 -- Requested resource marked as bound to primary distribution resource, + -- but there is no any resources in hosting plan marked as primary + RETURN + END + + -- get the type of primary resource + DECLARE @PrimaryTypeName nvarchar(200) + SELECT @PrimaryTypeName = ST.TypeName FROM Resources AS R + INNER JOIN ServiceTypes AS ST ON R.ServiceTypeID = ST.ServiceTypeID + WHERE R.ResourceID = @PrimaryResourceID + + + DECLARE @PrimaryServiceID int + EXEC GetUserServiceID @UserID, @PrimaryTypeName, @PrimaryServiceID OUTPUT + + IF @PrimaryServiceID < 0 + BEGIN + SET @ServiceID = @PrimaryServiceID + RETURN + END + + DECLARE @ServerID int + SET @ServerID = (SELECT ServerID FROM Services WHERE ServiceID = @PrimaryServiceID) + + -- try to get the service of the requested type on PDR server + SET @ServiceID = (SELECT ServiceID FROM @UserServicesTable WHERE ServerID = @ServerID) + + IF @ServiceID IS NULL + BEGIN + SET @ServiceID = -6 -- the server where PDR is located doesn't contain the service of requested resource type + END + END + END + + IF @ResourceID = @PrimaryResourceID -- it's PDR + BEGIN + DELETE FROM UserServices WHERE UserID = @UserID + + INSERT INTO UserServices (UserID, ServiceID) + VALUES (@UserID, @ServiceID) + END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemsByService] +( + @ActorID int, + @ServiceID int +) +AS + +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +WHERE SI.ServiceID = @ServiceID + + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + SIT.TypeName, + SI.ServiceID, + SI.PackageID, + P.PackageName, + S.ServiceID, + S.ServiceName, + SRV.ServerID, + SRV.ServerName, + RG.GroupName, + U.UserID, + U.Username, + (U.FirstName + U.LastName) AS UserFullName, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID +INNER JOIN Users AS U ON P.UserID = U.UserID +WHERE @IsAdmin = 1 + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID +WHERE @IsAdmin = 1 + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemsByPackage] +( + @ActorID int, + @PackageID int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +WHERE SI.PackageID = @PackageID + + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + SIT.TypeName, + SIT.DisplayName, + SI.ServiceID, + SI.PackageID, + P.PackageName, + S.ServiceID, + S.ServiceName, + SRV.ServerID, + SRV.ServerName, + RG.GroupName, + U.UserID, + U.Username, + (U.FirstName + U.LastName) AS UserFullName, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID +INNER JOIN Users AS U ON P.UserID = U.UserID + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemsByName] +( + @ActorID int, + @PackageID int, + @ItemName nvarchar(500) +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +WHERE SI.PackageID = @PackageID +AND SI.ItemName LIKE @ItemName + + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + SIT.TypeName, + SI.ServiceID, + SI.PackageID, + P.PackageName, + S.ServiceID, + S.ServiceName, + SRV.ServerID, + SRV.ServerName, + RG.GroupName, + U.UserID, + U.Username, + U.FullName AS UserFullName, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID + + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItems] +( + @ActorID int, + @PackageID int, + @ItemTypeName nvarchar(200), + @GroupName nvarchar(100) = NULL, + @Recursive bit +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON SI.PackageID = PT.PackageID +INNER JOIN ServiceItemTypes AS IT ON SI.ItemTypeID = IT.ItemTypeID +INNER JOIN ResourceGroups AS RG ON IT.GroupID = RG.GroupID +WHERE IT.TypeName = @ItemTypeName +AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) + + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + SIT.TypeName, + SI.ServiceID, + SI.PackageID, + P.PackageName, + S.ServiceID, + S.ServiceName, + SRV.ServerID, + SRV.ServerName, + RG.GroupName, + U.UserID, + U.Username, + (U.FirstName + U.LastName) AS UserFullName, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID +INNER JOIN Users AS U ON P.UserID = U.UserID + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemByName] +( + @ActorID int, + @PackageID int, + @ItemName nvarchar(500), + @GroupName nvarchar(100) = NULL, + @ItemTypeName nvarchar(200) +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID +WHERE SI.PackageID = @PackageID AND SIT.TypeName = @ItemTypeName +AND SI.ItemName = @ItemName +AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) + + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + SIT.TypeName, + SI.ServiceID, + SI.PackageID, + P.PackageName, + S.ServiceID, + S.ServiceName, + SRV.ServerID, + SRV.ServerName, + RG.GroupName, + U.UserID, + U.Username, + U.FullName AS UserFullName, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID + + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItem] +( + @ActorID int, + @ItemID int +) +AS + +DECLARE @Items TABLE +( + ItemID int +) + +-- find service items +INSERT INTO @Items +SELECT + SI.ItemID +FROM ServiceItems AS SI +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +WHERE + SI.ItemID = @ItemID + AND dbo.CheckActorPackageRights(@ActorID, SI.PackageID) = 1 + + +-- select service items +SELECT + SI.ItemID, + SI.ItemName, + SI.ItemTypeID, + SIT.TypeName, + SI.ServiceID, + SI.PackageID, + P.PackageName, + S.ServiceID, + S.ServiceName, + SRV.ServerID, + SRV.ServerName, + RG.GroupName, + U.UserID, + U.Username, + U.FullName AS UserFullName, + SI.CreatedDate +FROM @Items AS FI +INNER JOIN ServiceItems AS SI ON FI.ItemID = SI.ItemID +INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID +INNER JOIN Packages AS P ON SI.PackageID = P.PackageID +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID + +-- select item properties +-- get corresponding item properties +SELECT + IP.ItemID, + IP.PropertyName, + IP.PropertyValue +FROM ServiceItemProperties AS IP +INNER JOIN @Items AS FI ON IP.ItemID = FI.ItemID + + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[VirtualGroups]( + [VirtualGroupID] [int] IDENTITY(1,1) NOT NULL, + [ServerID] [int] NOT NULL, + [GroupID] [int] NOT NULL, + [DistributionType] [int] NULL, + [BindDistributionToPrimary] [bit] NULL, + CONSTRAINT [PK_VirtualGroups] PRIMARY KEY CLUSTERED +( + [VirtualGroupID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) @@ -30877,22 +27061,408 @@ GO -CREATE PROCEDURE GetClusters +CREATE PROCEDURE [dbo].[DistributePackageServices] ( - @ActorID int + @ActorID int, + @PackageID int +) +AS + +-- get primary distribution group +DECLARE @PrimaryGroupID int +DECLARE @VirtualServer bit +DECLARE @PlanID int +DECLARE @ServerID int +SELECT + @PrimaryGroupID = ISNULL(S.PrimaryGroupID, 0), + @VirtualServer = S.VirtualServer, + @PlanID = P.PlanID, + @ServerID = P.ServerID +FROM Packages AS P +INNER JOIN Servers AS S ON P.ServerID = S.ServerID +WHERE P.PackageID = @PackageID + + +-- get the list of available groups from hosting plan +DECLARE @Groups TABLE +( + GroupID int, + PrimaryGroup bit +) + +INSERT INTO @Groups (GroupID, PrimaryGroup) +SELECT + RG.GroupID, + CASE WHEN RG.GroupID = @PrimaryGroupID THEN 1 -- mark primary group + ELSE 0 + END +FROM ResourceGroups AS RG +WHERE dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, NULL) = 1 +AND RG.GroupID NOT IN +( + SELECT P.GroupID + FROM PackageServices AS PS + INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE PS.PackageID = @PackageID +) + +IF @VirtualServer <> 1 +BEGIN + -- PHYSICAL SERVER + -- just return the list of services based on the plan + INSERT INTO PackageServices (PackageID, ServiceID) + SELECT + @PackageID, + S.ServiceID + FROM Services AS S + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + INNER JOIN @Groups AS G ON P.GroupID = G.GroupID + WHERE S.ServerID = @ServerID + AND S.ServiceID NOT IN (SELECT ServiceID FROM PackageServices WHERE PackageID = @PackageID) +END +ELSE +BEGIN + -- VIRTUAL SERVER + + DECLARE @GroupID int, @PrimaryGroup int + DECLARE GroupsCursor CURSOR FOR + SELECT GroupID, PrimaryGroup FROM @Groups + ORDER BY PrimaryGroup DESC + + OPEN GroupsCursor + + WHILE (10 = 10) + BEGIN --LOOP 10: thru groups + FETCH NEXT FROM GroupsCursor + INTO @GroupID, @PrimaryGroup + + IF (@@fetch_status <> 0) + BEGIN + DEALLOCATE GroupsCursor + BREAK + END + + -- read group information + DECLARE @DistributionType int, @BindDistributionToPrimary int + SELECT + @DistributionType = DistributionType, + @BindDistributionToPrimary = BindDistributionToPrimary + FROM VirtualGroups AS VG + WHERE ServerID = @ServerID AND GroupID = @GroupID + + -- bind distribution to primary + IF @BindDistributionToPrimary = 1 AND @PrimaryGroup = 0 AND @PrimaryGroupID <> 0 + BEGIN + -- if only one service found just use it and do not distribute + IF (SELECT COUNT(*) FROM VirtualServices AS VS + INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID) = 1 + BEGIN + INSERT INTO PackageServices (PackageID, ServiceID) + SELECT + @PackageID, + VS.ServiceID + FROM VirtualServices AS VS + INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID + END + ELSE + BEGIN + DECLARE @PrimaryServerID int + -- try to get primary distribution server + SELECT + @PrimaryServerID = S.ServerID + FROM PackageServices AS PS + INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE PS.PackageID = @PackageID AND P.GroupID = @PrimaryGroupID + + INSERT INTO PackageServices (PackageID, ServiceID) + SELECT + @PackageID, + VS.ServiceID + FROM VirtualServices AS VS + INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID AND S.ServerID = @PrimaryServerID + END + END + ELSE + BEGIN + + -- DISTRIBUTION + DECLARE @Services TABLE + ( + ServiceID int, + ItemsNumber int, + RandomNumber int + ) + + DELETE FROM @Services + + INSERT INTO @Services (ServiceID, ItemsNumber, RandomNumber) + SELECT + VS.ServiceID, + (SELECT COUNT(ItemID) FROM ServiceItems WHERE ServiceID = VS.ServiceID), + RAND() + FROM VirtualServices AS VS + INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID + + -- BALANCED DISTRIBUTION + IF @DistributionType = 1 + BEGIN + -- get the less allocated service + INSERT INTO PackageServices (PackageID, ServiceID) + SELECT TOP 1 + @PackageID, + ServiceID + FROM @Services + ORDER BY ItemsNumber + END + ELSE + -- RANDOMIZED DISTRIBUTION + BEGIN + -- get the less allocated service + INSERT INTO PackageServices (PackageID, ServiceID) + SELECT TOP 1 + @PackageID, + ServiceID + FROM @Services + ORDER BY RandomNumber + END + END + + IF @PrimaryGroup = 1 + SET @PrimaryGroupID = @GroupID + + END -- while groups + +END -- end virtual server + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetPackageServiceID +( + @ActorID int, + @PackageID int, + @GroupName nvarchar(100), + @ServiceID int OUTPUT ) AS -- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) --- get the list +SET @ServiceID = 0 + +-- load group info +DECLARE @GroupID int +SELECT @GroupID = GroupID FROM ResourceGroups +WHERE GroupName = @GroupName + +-- check if user has this resource enabled +IF dbo.GetPackageAllocatedResource(@PackageID, @GroupID, NULL) = 0 +BEGIN + -- remove all resource services from the space + DELETE FROM PackageServices FROM PackageServices AS PS + INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID + INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID + WHERE P.GroupID = @GroupID AND PS.PackageID = @PackageID + RETURN +END + +-- check if the service is already distributed SELECT - ClusterID, - ClusterName -FROM Clusters -WHERE @IsAdmin = 1 + @ServiceID = PS.ServiceID +FROM PackageServices AS PS +INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID +INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID +WHERE PS.PackageID = @PackageID AND P.GroupID = @GroupID + +IF @ServiceID <> 0 +RETURN + +-- distribute services +EXEC DistributePackageServices @ActorID, @PackageID + +-- get distributed service again +SELECT + @ServiceID = PS.ServiceID +FROM PackageServices AS PS +INNER JOIN Services AS S ON PS.ServiceID = S.ServiceID +INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID +WHERE PS.PackageID = @PackageID AND P.GroupID = @GroupID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE CheckServiceItemExists +( + @Exists bit OUTPUT, + @ItemName nvarchar(500), + @ItemTypeName nvarchar(200), + @GroupName nvarchar(100) = NULL +) +AS + +SET @Exists = 0 + +DECLARE @ItemTypeID int +SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes +WHERE TypeName = @ItemTypeName + +IF EXISTS ( +SELECT ItemID FROM ServiceItems AS SI +INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +WHERE SI.ItemName = @ItemName AND SI.ItemTypeID = @ItemTypeID +AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName)) +) +SET @Exists = 1 RETURN @@ -30915,6 +27485,420 @@ RETURN + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecVoidCustomerInvoice] + @ActorID int, + @InvoiceID int +AS +BEGIN + -- load customer and reseller identities + DECLARE @ContractID nvarchar(50), @IssuerID int; + SELECT + @ContractID = [ContractID] FROM [dbo].[ecInvoice] + WHERE + [InvoiceID] = @InvoiceID; + SELECT + @IssuerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access the contract', 16, 1); + RETURN; + END + -- + SET NOCOUNT ON; + -- void invoice + DELETE FROM [dbo].[ecInvoice] WHERE [InvoiceID] = @InvoiceID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateTaxation] + @ActorID int, + @UserID int, + @TaxationID int, + @Country nvarchar(3), + @State nvarchar(50), + @Description nvarchar(50), + @TypeID int, + @Amount decimal(5,2), + @Active bit, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + -- + DECLARE @T_TaxationID int; + -- + SELECT @T_TaxationID = [TaxationID] FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID AND [Country] = @Country AND [State] = @State; + -- + SET @T_TaxationID = ISNULL(@T_TaxationID, @TaxationID); + -- + IF @T_TaxationID = @TaxationID + BEGIN + -- insert + UPDATE + [dbo].[ecTaxations] + SET + [Country] = @Country, + [State] = @State, + [Description] = @Description, + [TypeID] = @TypeID, + [Amount] = @Amount, + [Active] = @Active + WHERE + [ResellerID] = @UserID + AND + [TaxationID] = @TaxationID; + -- + SET @Result = 0; + -- + RETURN; + END + + -- taxation update error + SET @Result = -202; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateSystemTrigger] + @ActorID int, + @TriggerID nvarchar(50), + @TriggerHandler nvarchar(512), + @ReferenceID nvarchar(50), + @Namespace nvarchar(255), + @Status nvarchar(50) +AS +BEGIN + DECLARE @OwnerID int; + SELECT + @OwnerID = [OwnerID] FROM [dbo].[ecSystemTriggers] + WHERE + [TriggerID] = @TriggerID; + -- + IF [dbo].[CheckUserParent](@ActorID, @OwnerID) = 0 + BEGIN + RAISERROR('You are not allowed to perform this action', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + UPDATE [dbo].[ecSystemTriggers] SET + [TriggerHandler] = @TriggerHandler, + [ReferenceID] = @ReferenceID, + [Namespace] = @Namespace, + [Status] = @Status + WHERE + [TriggerID] = @TriggerID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddTaxation] + @ActorID int, + @UserID int, + @Country nvarchar(3), + @State nvarchar(50), + @Description nvarchar(50), + @TypeID int, + @Amount decimal(5,2), + @Active bit, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + -- check before insert + IF EXISTS (SELECT [TaxationID] FROM [dbo].[ecTaxations] + WHERE [ResellerID] = @UserID AND [Country] = @Country AND [State] = @State) + BEGIN + SET @Result = -202; + RETURN; + END + + -- insert + INSERT INTO [dbo].[ecTaxations] + ( + [ResellerID], + [Country], + [State], + [Description], + [TypeID], + [Amount], + [Active] + ) + VALUES + ( + @UserID, + @Country, + @State, + @Description, + @TypeID, + @Amount, + @Active + ); + -- + SET @Result = SCOPE_IDENTITY(); + +END + + + + + + + + + + + + + + + + + + + + @@ -30940,112 +27924,33 @@ GO - - - - - - - - - -CREATE PROCEDURE [dbo].[GetIPAddressesPaged] -( +CREATE PROCEDURE [dbo].[ecAddSystemTrigger] @ActorID int, - @PoolID int, - @ServerID int, - @FilterColumn nvarchar(50) = '', - @FilterValue nvarchar(50) = '', - @SortColumn nvarchar(50), - @StartRow int, - @MaximumRows int -) + @OwnerID int, + @TriggerHandler nvarchar(512), + @ReferenceID nvarchar(50), + @Namespace nvarchar(255), + @Status nvarchar(50) AS BEGIN + IF [dbo].[CheckUserParent](@ActorID, @OwnerID) = 0 + BEGIN + RAISERROR('You are not allowed to perform this action', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - --- start -DECLARE @condition nvarchar(700) -SET @condition = ' -@IsAdmin = 1 -AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID) -AND (@ServerID = 0 OR @ServerID <> 0 AND IP.ServerID = @ServerID) -' - -IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL -AND @FilterValue <> '' AND @FilterValue IS NOT NULL -SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' - -IF @SortColumn IS NULL OR @SortColumn = '' -SET @SortColumn = 'IP.ExternalIP ASC' - -DECLARE @sql nvarchar(3500) - -set @sql = ' -SELECT COUNT(IP.AddressID) -FROM dbo.IPAddresses AS IP -LEFT JOIN Servers AS S ON IP.ServerID = S.ServerID -LEFT JOIN PackageIPAddresses AS PA ON IP.AddressID = PA.AddressID -LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID -LEFT JOIN dbo.Packages P ON PA.PackageID = P.PackageID -LEFT JOIN dbo.Users U ON P.UserID = U.UserID -WHERE ' + @condition + ' - -DECLARE @Addresses AS TABLE -( - AddressID int -); - -WITH TempItems AS ( - SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, - IP.AddressID - FROM dbo.IPAddresses AS IP - LEFT JOIN Servers AS S ON IP.ServerID = S.ServerID - LEFT JOIN PackageIPAddresses AS PA ON IP.AddressID = PA.AddressID - LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID - LEFT JOIN dbo.Packages P ON PA.PackageID = P.PackageID - LEFT JOIN dbo.Users U ON U.UserID = P.UserID - WHERE ' + @condition + ' -) - -INSERT INTO @Addresses -SELECT AddressID FROM TempItems -WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows - -SELECT - IP.AddressID, - IP.PoolID, - IP.ExternalIP, - IP.InternalIP, - IP.SubnetMask, - IP.DefaultGateway, - IP.Comments, - - IP.ServerID, - S.ServerName, - - PA.ItemID, - SI.ItemName, - - PA.PackageID, - P.PackageName, - - P.UserID, - U.UserName -FROM @Addresses AS TA -INNER JOIN dbo.IPAddresses AS IP ON TA.AddressID = IP.AddressID -LEFT JOIN Servers AS S ON IP.ServerID = S.ServerID -LEFT JOIN PackageIPAddresses AS PA ON IP.AddressID = PA.AddressID -LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID -LEFT JOIN dbo.Packages P ON PA.PackageID = P.PackageID -LEFT JOIN dbo.Users U ON U.UserID = P.UserID -' - -exec sp_executesql @sql, N'@IsAdmin bit, @PoolID int, @ServerID int, @StartRow int, @MaximumRows int', -@IsAdmin, @PoolID, @ServerID, @StartRow, @MaximumRows + IF NOT EXISTS(SELECT * FROM [dbo].[ecSystemTriggers] WHERE [OwnerID] = @OwnerID AND + [TriggerHandler] = @TriggerHandler AND [ReferenceID] = @ReferenceID AND + [Namespace] = @Namespace AND [Status] = @Status) + BEGIN + INSERT INTO [dbo].[ecSystemTriggers] + ([OwnerID], [TriggerHandler], [ReferenceID], [Namespace], [Status]) + VALUES + (@OwnerID, @TriggerHandler, @ReferenceID, @Namespace, @Status); + END END @@ -31058,14 +27963,6 @@ END - - - - - - - - GO SET ANSI_NULLS ON GO @@ -31099,25 +27996,39 @@ GO - - -CREATE PROCEDURE GetDnsRecordsByGroup +CREATE PROCEDURE UpdateServer ( - @GroupID int + @ServerID int, + @ServerName nvarchar(100), + @ServerUrl nvarchar(100), + @Password nvarchar(100), + @Comments ntext, + @InstantDomainAlias nvarchar(200), + @PrimaryGroupID int, + @ADEnabled bit, + @ADRootDomain nvarchar(200), + @ADUsername nvarchar(100), + @ADPassword nvarchar(100), + @ADAuthenticationType varchar(50) ) AS -SELECT - RGR.RecordID, - RGR.RecordOrder, - RGR.GroupID, - RGR.RecordType, - RGR.RecordName, - RGR.RecordData, - RGR.MXPriority -FROM - ResourceGroupDnsRecords AS RGR -WHERE RGR.GroupID = @GroupID -ORDER BY RGR.RecordOrder + +IF @PrimaryGroupID = 0 +SET @PrimaryGroupID = NULL + +UPDATE Servers SET + ServerName = @ServerName, + ServerUrl = @ServerUrl, + Password = @Password, + Comments = @Comments, + InstantDomainAlias = @InstantDomainAlias, + PrimaryGroupID = @PrimaryGroupID, + ADEnabled = @ADEnabled, + ADRootDomain = @ADRootDomain, + ADUsername = @ADUsername, + ADPassword = @ADPassword, + ADAuthenticationType = @ADAuthenticationType +WHERE ServerID = @ServerID RETURN @@ -31150,6 +28061,9 @@ RETURN + + + @@ -31229,6 +28143,1300 @@ RETURN + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetUserSettings +( + @ActorID int, + @UserID int, + @SettingsName nvarchar(50) +) +AS + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +-- find which parent package has overriden NS +DECLARE @ParentUserID int, @TmpUserID int +SET @TmpUserID = @UserID + +WHILE 10 = 10 +BEGIN + + IF EXISTS + ( + SELECT PropertyName FROM UserSettings + WHERE SettingsName = @SettingsName AND UserID = @TmpUserID + ) + BEGIN + SELECT + UserID, + PropertyName, + PropertyValue + FROM + UserSettings + WHERE + UserID = @TmpUserID AND + SettingsName = @SettingsName + + BREAK + END + + SET @ParentUserID = NULL --reset var + + -- get owner + SELECT + @ParentUserID = OwnerID + FROM Users + WHERE UserID = @TmpUserID + + IF @ParentUserID IS NULL -- the last parent + BREAK + + SET @TmpUserID = @ParentUserID +END + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetUserParents] +( + @ActorID int, + @UserID int +) +AS + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +SELECT + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + U.FirstName, + U.LastName, + U.Email, + U.CompanyName, + U.EcommerceEnabled +FROM UserParents(@ActorID, @UserID) AS UP +INNER JOIN Users AS U ON UP.UserID = U.UserID +ORDER BY UP.UserOrder DESC +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetUsersSummary +( + @ActorID int, + @UserID int +) +AS +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +-- ALL users +SELECT COUNT(UserID) AS UsersNumber FROM Users +WHERE OwnerID = @UserID AND IsPeer = 0 + +-- BY STATUS users +SELECT StatusID, COUNT(UserID) AS UsersNumber FROM Users +WHERE OwnerID = @UserID AND IsPeer = 0 +GROUP BY StatusID +ORDER BY StatusID + +-- BY ROLE users +SELECT RoleID, COUNT(UserID) AS UsersNumber FROM Users +WHERE OwnerID = @UserID AND IsPeer = 0 +GROUP BY RoleID +ORDER BY RoleID DESC + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +CREATE PROCEDURE [dbo].[GetUserByUsername] +( + @ActorID int, + @Username nvarchar(50) +) +AS + + SELECT + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + CASE WHEN dbo.CanGetUserPassword(@ActorID, UserID) = 1 THEN U.Password + ELSE '' END AS Password, + U.FirstName, + U.LastName, + U.Email, + U.SecondaryEmail, + U.Address, + U.City, + U.State, + U.Country, + U.Zip, + U.PrimaryPhone, + U.SecondaryPhone, + U.Fax, + U.InstantMessenger, + U.HtmlMail, + U.CompanyName, + U.EcommerceEnabled, + U.[AdditionalParams] + FROM Users AS U + WHERE U.Username = @Username + AND dbo.CanGetUserDetails(@ActorID, UserID) = 1 -- actor user rights + + RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +CREATE PROCEDURE [dbo].[GetUserById] +( + @ActorID int, + @UserID int +) +AS + -- user can retrieve his own account, his users accounts + -- and his reseller account (without pasword) + SELECT + U.UserID, + U.RoleID, + U.StatusID, + U.OwnerID, + U.Created, + U.Changed, + U.IsDemo, + U.Comments, + U.IsPeer, + U.Username, + CASE WHEN dbo.CanGetUserPassword(@ActorID, @UserID) = 1 THEN U.Password + ELSE '' END AS Password, + U.FirstName, + U.LastName, + U.Email, + U.SecondaryEmail, + U.Address, + U.City, + U.State, + U.Country, + U.Zip, + U.PrimaryPhone, + U.SecondaryPhone, + U.Fax, + U.InstantMessenger, + U.HtmlMail, + U.CompanyName, + U.EcommerceEnabled, + U.[AdditionalParams] + FROM Users AS U + WHERE U.UserID = @UserID + AND dbo.CanGetUserDetails(@ActorID, @UserID) = 1 -- actor user rights + + RETURN + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemTypes] +AS +SELECT + [ItemTypeID], + [GroupID], + [DisplayName], + [TypeName], + [TypeOrder], + [CalculateDiskspace], + [CalculateBandwidth], + [Suspendable], + [Disposable], + [Searchable], + [Importable], + [Backupable] +FROM + [ServiceItemTypes] +ORDER BY TypeOrder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServiceItemType] +( + @ItemTypeID int +) +AS +SELECT + [ItemTypeID], + [GroupID], + [DisplayName], + [TypeName], + [TypeOrder], + [CalculateDiskspace], + [CalculateBandwidth], + [Suspendable], + [Disposable], + [Searchable], + [Importable], + [Backupable] +FROM + [ServiceItemTypes] +WHERE + [ItemTypeID] = @ItemTypeID + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServerShortDetails +( + @ServerID int +) +AS + +SELECT + ServerID, + ServerName, + Comments, + VirtualServer, + InstantDomainAlias +FROM Servers +WHERE + ServerID = @ServerID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServerInternal +( + @ServerID int +) +AS +SELECT + ServerID, + ServerName, + ServerUrl, + Password, + Comments, + VirtualServer, + InstantDomainAlias, + PrimaryGroupID, + ADEnabled, + ADRootDomain, + ADUsername, + ADPassword, + ADAuthenticationType +FROM Servers +WHERE + ServerID = @ServerID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServerByName +( + @ActorID int, + @ServerName nvarchar(100) +) +AS +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + ServerID, + ServerName, + ServerUrl, + Password, + Comments, + VirtualServer, + InstantDomainAlias, + PrimaryGroupID, + ADRootDomain, + ADUsername, + ADPassword, + ADAuthenticationType +FROM Servers +WHERE + ServerName = @ServerName + AND @IsAdmin = 1 + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetServer] +( + @ActorID int, + @ServerID int +) +AS +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + ServerID, + ServerName, + ServerUrl, + Password, + Comments, + VirtualServer, + InstantDomainAlias, + PrimaryGroupID, + ADEnabled, + ADRootDomain, + ADUsername, + ADPassword, + ADAuthenticationType +FROM Servers +WHERE + ServerID = @ServerID + AND @IsAdmin = 1 + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetSearchableServiceItemTypes + +AS +SELECT + ItemTypeID, + DisplayName +FROM + ServiceItemTypes +WHERE Searchable = 1 +ORDER BY TypeOrder +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + + + + + + + + + + + + +/****** Object: StoredProcedure [dbo].[GetScheduleTaskViewConfigurations] Script Date: 09/10/2007 17:53:56 ******/ + +CREATE PROCEDURE [dbo].[GetScheduleTaskViewConfigurations] +( + @TaskID nvarchar(100) +) +AS + +SELECT + @TaskID AS TaskID, + STVC.ConfigurationID, + STVC.Environment, + STVC.Description +FROM ScheduleTaskViewConfiguration AS STVC +WHERE STVC.TaskID = @TaskID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetProviders] +AS +SELECT + PROV.ProviderID, + PROV.GroupID, + PROV.ProviderName, + PROV.EditorControl, + PROV.DisplayName, + PROV.ProviderType, + RG.GroupName + ' - ' + PROV.DisplayName AS ProviderName, + PROV.DisableAutoDiscovery +FROM Providers AS PROV +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +ORDER BY RG.GroupOrder, PROV.DisplayName +RETURN + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetClusters +( + @ActorID int +) +AS + +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +-- get the list +SELECT + ClusterID, + ClusterName +FROM Clusters +WHERE @IsAdmin = 1 + +RETURN + + + + + + + + + + + + + + + + + + @@ -31383,6 +29591,7 @@ RETURN + GO SET ANSI_NULLS ON GO @@ -31481,6 +29690,7 @@ END + GO @@ -31565,6 +29775,7 @@ END + GO @@ -31650,6 +29861,7 @@ END + GO @@ -31674,86 +29886,142 @@ GO -CREATE PROCEDURE [dbo].[AddServiceItem] -( - @ActorID int, - @PackageID int, - @ServiceID int, - @ItemName nvarchar(500), - @ItemTypeName nvarchar(200), - @ItemID int OUTPUT, - @XmlProperties ntext, - @CreatedDate datetime -) + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetStorefrontProductsByType] + @UserID int, + @TypeID int AS -BEGIN TRAN +BEGIN + + SELECT + * + FROM + [dbo].[ecProduct] + WHERE + [ResellerID] = @UserID + AND + [TypeID] = @TypeID + AND + [Enabled] = 1 + ORDER BY + [ProductName] ASC; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetStorefrontProduct] + @ResellerID int, + @ProductID int +AS +BEGIN + + SET NOCOUNT ON; + + SELECT + * + FROM + [dbo].[ecProduct] + WHERE + [ProductID] = @ProductID + AND + [ResellerID] = @ResellerID + AND + [Enabled] = 1; + +END + + + --- check rights -IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 -RAISERROR('You are not allowed to access this package', 16, 1) --- get GroupID -DECLARE @GroupID int -SELECT - @GroupID = PROV.GroupID -FROM Services AS S -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -WHERE S.ServiceID = @ServiceID -DECLARE @ItemTypeID int -SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes -WHERE TypeName = @ItemTypeName -AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND GroupID = @GroupID)) --- add item -INSERT INTO ServiceItems -( - PackageID, - ServiceID, - ItemName, - ItemTypeID, - CreatedDate -) -VALUES -( - @PackageID, - @ServiceID, - @ItemName, - @ItemTypeID, - @CreatedDate -) -SET @ItemID = SCOPE_IDENTITY() -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlProperties --- Execute a SELECT statement that uses the OPENXML rowset provider. -DELETE FROM ServiceItemProperties -WHERE ItemID = @ItemID -INSERT INTO ServiceItemProperties -( - ItemID, - PropertyName, - PropertyValue -) -SELECT - @ItemID, - PropertyName, - PropertyValue -FROM OPENXML(@idoc, '/properties/property',1) WITH -( - PropertyName nvarchar(50) '@name', - PropertyValue nvarchar(3000) '@value' -) as PV --- remove document -exec sp_xml_removedocument @idoc -COMMIT TRAN -RETURN @@ -31911,6 +30179,7 @@ END + GO @@ -32035,6 +30304,7 @@ END + GO @@ -32125,6 +30395,7 @@ END + GO @@ -32222,6 +30493,7 @@ RETURN + GO @@ -32314,12 +30586,13 @@ END + GO SET ANSI_NULLS ON GO -SET QUOTED_IDENTIFIER ON +SET QUOTED_IDENTIFIER OFF GO @@ -32335,40 +30608,103 @@ GO - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetStorefrontProductsByType] - @UserID int, - @TypeID int +CREATE PROCEDURE [dbo].[GetIPAddressesPaged] +( + @ActorID int, + @PoolID int, + @ServerID int, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +) AS BEGIN - SELECT - * - FROM - [dbo].[ecProduct] - WHERE - [ResellerID] = @UserID - AND - [TypeID] = @TypeID - AND - [Enabled] = 1 - ORDER BY - [ProductName] ASC; +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +-- start +DECLARE @condition nvarchar(700) +SET @condition = ' +@IsAdmin = 1 +AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID) +AND (@ServerID = 0 OR @ServerID <> 0 AND IP.ServerID = @ServerID) +' + +IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL +AND @FilterValue <> '' AND @FilterValue IS NOT NULL +SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + '''' + +IF @SortColumn IS NULL OR @SortColumn = '' +SET @SortColumn = 'IP.ExternalIP ASC' + +DECLARE @sql nvarchar(3500) + +set @sql = ' +SELECT COUNT(IP.AddressID) +FROM dbo.IPAddresses AS IP +LEFT JOIN Servers AS S ON IP.ServerID = S.ServerID +LEFT JOIN PackageIPAddresses AS PA ON IP.AddressID = PA.AddressID +LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID +LEFT JOIN dbo.Packages P ON PA.PackageID = P.PackageID +LEFT JOIN dbo.Users U ON P.UserID = U.UserID +WHERE ' + @condition + ' + +DECLARE @Addresses AS TABLE +( + AddressID int +); + +WITH TempItems AS ( + SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row, + IP.AddressID + FROM dbo.IPAddresses AS IP + LEFT JOIN Servers AS S ON IP.ServerID = S.ServerID + LEFT JOIN PackageIPAddresses AS PA ON IP.AddressID = PA.AddressID + LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID + LEFT JOIN dbo.Packages P ON PA.PackageID = P.PackageID + LEFT JOIN dbo.Users U ON U.UserID = P.UserID + WHERE ' + @condition + ' +) + +INSERT INTO @Addresses +SELECT AddressID FROM TempItems +WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows + +SELECT + IP.AddressID, + IP.PoolID, + IP.ExternalIP, + IP.InternalIP, + IP.SubnetMask, + IP.DefaultGateway, + IP.Comments, + + IP.ServerID, + S.ServerName, + + PA.ItemID, + SI.ItemName, + + PA.PackageID, + P.PackageName, + + P.UserID, + U.UserName +FROM @Addresses AS TA +INNER JOIN dbo.IPAddresses AS IP ON TA.AddressID = IP.AddressID +LEFT JOIN Servers AS S ON IP.ServerID = S.ServerID +LEFT JOIN PackageIPAddresses AS PA ON IP.AddressID = PA.AddressID +LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID +LEFT JOIN dbo.Packages P ON PA.PackageID = P.PackageID +LEFT JOIN dbo.Users U ON U.UserID = P.UserID +' + +exec sp_executesql @sql, N'@IsAdmin bit, @PoolID int, @ServerID int, @StartRow int, @MaximumRows int', +@IsAdmin, @PoolID, @ServerID, @StartRow, @MaximumRows END @@ -32385,22 +30721,6 @@ END - - - - - - - - - - - - - - - - @@ -32440,26 +30760,28 @@ GO -CREATE PROCEDURE [dbo].[ecGetStorefrontProduct] - @ResellerID int, - @ProductID int + +CREATE PROCEDURE GetDnsRecordsByGroup +( + @GroupID int +) AS -BEGIN +SELECT + RGR.RecordID, + RGR.RecordOrder, + RGR.GroupID, + RGR.RecordType, + RGR.RecordName, + RGR.RecordData, + RGR.MXPriority +FROM + ResourceGroupDnsRecords AS RGR +WHERE RGR.GroupID = @GroupID +ORDER BY RGR.RecordOrder +RETURN - SET NOCOUNT ON; - SELECT - * - FROM - [dbo].[ecProduct] - WHERE - [ProductID] = @ProductID - AND - [ResellerID] = @ResellerID - AND - [Enabled] = 1; -END @@ -32638,6 +30960,7 @@ END + GO @@ -32742,6 +31065,7 @@ END + GO @@ -32868,6 +31192,7 @@ RETURN + GO @@ -32975,6 +31300,7 @@ END + GO @@ -33069,6 +31395,7 @@ RETURN + GO @@ -33196,6 +31523,7 @@ END + GO @@ -33269,6 +31597,7 @@ END + GO @@ -33342,6 +31671,7 @@ END + GO @@ -33431,6 +31761,7 @@ END + GO @@ -33511,6 +31842,7 @@ END + GO @@ -33594,6 +31926,7 @@ END + GO @@ -33699,6 +32032,7 @@ END + GO @@ -33793,6 +32127,7 @@ END + GO @@ -33874,6 +32209,7 @@ END + GO @@ -33957,6 +32293,7 @@ END + GO @@ -34059,6 +32396,7 @@ END + GO @@ -34132,6 +32470,7 @@ END + GO @@ -34219,6 +32558,7 @@ END + GO @@ -34300,6 +32640,7 @@ END + GO @@ -34398,6 +32739,7 @@ END + GO @@ -34498,6 +32840,7 @@ END + GO @@ -34581,6 +32924,7 @@ END + GO @@ -34655,6 +32999,7 @@ END + GO @@ -34743,6 +33088,7 @@ END + GO @@ -34819,6 +33165,7 @@ END + GO @@ -34913,6 +33260,7 @@ END + GO @@ -35032,6 +33380,7 @@ RETURN + GO @@ -35096,6 +33445,1696 @@ END + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomerInvoiceItems] + @ActorID int, + @InvoiceID int +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecInvoice] + WHERE + [InvoiceID] = @InvoiceID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID,@IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access the contract', 16, 1); + RETURN; + END + -- + SET NOCOUNT ON; + -- + SELECT + * FROM [dbo].[ecInvoiceItems] AS [II] + INNER JOIN + [ecInvoice] AS [I] ON [I].[InvoiceID] = [II].[InvoiceID] + WHERE + [I].[InvoiceID] = @InvoiceID; + +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomerInvoice] + @ActorID int, + @InvoiceID int +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecInvoice] + WHERE + [InvoiceID] = @InvoiceID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access the contract', 16, 1); + RETURN; + END + -- + SET NOCOUNT ON; + -- + SELECT + * FROM [dbo].[ContractsInvoicesDetailed] + WHERE + [InvoiceID] = @InvoiceID AND [ContractID] = @ContractID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ChangeUserPassword] +( + @ActorID int, + @UserID int, + @Password nvarchar(200) +) +AS + +-- check actor rights +IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0 +RETURN + +UPDATE Users +SET Password = @Password +WHERE UserID = @UserID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingPlansBillingCycles]( + [ProductID] [int] NOT NULL, + [CycleID] [int] NOT NULL, + [SetupFee] [money] NOT NULL, + [RecurringFee] [money] NOT NULL, + [SortOrder] [int] NOT NULL, + CONSTRAINT [PK_ecHostingPlansBillingCycles] PRIMARY KEY CLUSTERED +( + [ProductID] ASC, + [CycleID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingPlans]( + [ProductID] [int] NOT NULL, + [ResellerID] [int] NOT NULL, + [PlanID] [int] NOT NULL, + [UserRole] [int] NOT NULL, + [InitialStatus] [int] NOT NULL, + [DomainOption] [int] NOT NULL, + CONSTRAINT [PK_ecHostingPlans] PRIMARY KEY CLUSTERED +( + [ProductID] ASC, + [ResellerID] ASC, + [PlanID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecBulkServiceDelete] + @ActorID int, + @ContractID nvarchar(50), + @SvcsXml xml, + @Result int OUTPUT +AS +BEGIN + DECLARE @IssuerID int; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + DELETE + FROM [dbo].[ecService] + WHERE + [ServiceID] IN(SELECT [SXML].[Data].value('@id','int') FROM @SvcsXml.nodes('/Svcs/Svc') [SXML]([Data])); + -- + SET @Result = 0; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomersPaymentsPaged] + @ActorID int, + @UserID int, + @IsReseller bit, + @MaximumRows int, + @StartRowIndex int +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + DECLARE @EndIndex int; + + SET @EndIndex = @MaximumRows + @StartRowIndex; + SET @StartRowIndex = @StartRowIndex + 1; + + IF @IsReseller = 1 + BEGIN + WITH [PAYMENTS] AS ( + SELECT + ROW_NUMBER() OVER(ORDER BY [CP].[Created] DESC) AS [RowIndex], [CP].* FROM [dbo].[ecCustomersPayments] AS [CP] + INNER JOIN + [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] + WHERE + [C].[ResellerID] = @UserID + ) + + SELECT + [P].*, [INV].[InvoiceNumber], [SP].[DisplayName] AS [ProviderName] FROM [PAYMENTS] AS [P] + LEFT OUTER JOIN + [dbo].[ecSupportedPlugins] AS [SP] ON [SP].[PluginID] = [P].[PluginID] + LEFT OUTER JOIN + [dbo].[ecInvoice] AS [INV] ON [INV].[InvoiceID] = [P].[InvoiceID] + WHERE + [RowIndex] BETWEEN @StartRowIndex AND @EndIndex + ORDER BY + [Created] DESC; + + RETURN; + END; + + WITH [PAYMENTS] AS ( + SELECT + ROW_NUMBER() OVER(ORDER BY [CP].[Created] DESC) AS [RowIndex], [CP].* FROM [dbo].[ecCustomersPayments] AS [CP] + INNER JOIN + [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] + WHERE + [C].[CustomerID] = @UserID + ) + + SELECT + [P].*, [INV].[InvoiceNumber], [SP].[DisplayName] AS [ProviderName] FROM [PAYMENTS] AS [P] + LEFT OUTER JOIN + [dbo].[ecSupportedPlugins] AS [SP] ON [SP].[PluginID] = [P].[PluginID] + LEFT OUTER JOIN + [dbo].[ecInvoice] AS [INV] ON [INV].[InvoiceID] = [P].[InvoiceID] + WHERE + [RowIndex] BETWEEN @StartRowIndex AND @EndIndex + ORDER BY + [Created] DESC; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomersPaymentsCount] + @ActorID int, + @UserID int, + @IsReseller bit, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + IF @IsReseller = 1 + BEGIN + SELECT + @Result = COUNT([CP].[PaymentID]) FROM [dbo].[ecCustomersPayments] AS [CP] + INNER JOIN + [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] + WHERE + [C].[ResellerID] = @UserID; + RETURN; + END + + SELECT + @Result = COUNT([CP].[PaymentID]) FROM [dbo].[ecCustomersPayments] AS [CP] + INNER JOIN + [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID] + WHERE + [C].[CustomerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomersInvoicesPaged] + @ActorID int, + @UserID int, + @IsReseller bit, + @MaximumRows int, + @StartRowIndex int +AS +BEGIN + -- check actor rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + + SET NOCOUNT ON; + + DECLARE @EndIndex int; + + SET @EndIndex = @MaximumRows + @StartRowIndex; + SET @StartRowIndex = @StartRowIndex + 1; + + IF @IsReseller = 1 + BEGIN + -- get reseller invoices + WITH [INVOICES] AS ( + SELECT + ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsInvoicesDetailed] + WHERE + [ResellerID] = @UserID + ) + + SELECT * FROM [INVOICES] + WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex + ORDER BY [Created] DESC; + + RETURN; + END; + + -- get customer invoices + WITH [INVOICES] AS ( + SELECT + ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsInvoicesDetailed] + WHERE + [CustomerID] = @UserID + ) + + SELECT * FROM [INVOICES] + WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex + ORDER BY [Created] DESC; + + RETURN; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomersInvoicesCount] + @ActorID int, + @UserID int, + @IsReseller bit, + @Result int OUTPUT +AS +BEGIN + + -- check user parent + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + + SET NOCOUNT ON; + + IF @IsReseller = 1 + BEGIN + SELECT + @Result = COUNT([InvoiceID]) FROM [dbo].[ContractsInvoicesDetailed] + WHERE + [ResellerID] = @UserID; + RETURN; + END + + SELECT + @Result = COUNT([InvoiceID]) FROM [dbo].[ContractsInvoicesDetailed] + WHERE + [CustomerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetCustomerService] + @ActorID int, + @ServiceID int +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecService] + WHERE + [ServiceID] = @ServiceID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + + SELECT * FROM [dbo].[ecService] WHERE [ServiceID] = @ServiceID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecSetPaymentMethod] + @ActorID int, + @UserID int, + @MethodName nvarchar(50), + @DisplayName nvarchar(50), + @PluginID int, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + -- cleanup + DELETE FROM [dbo].[ecPaymentMethods] + WHERE [ResellerID] = @UserID AND [MethodName] = @MethodName; + -- add + INSERT INTO [dbo].[ecPaymentMethods] + ( + [ResellerID], + [MethodName], + [PluginID], + [DisplayName], + [SupportedItems] + ) + SELECT + @UserID, + @MethodName, + @PluginID, + @DisplayName, + [SupportedItems] + FROM + [dbo].[ecSupportedPlugins] + WHERE + [PluginID] = @PluginID; + -- + SET @Result = 0; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecSetInvoiceItemProcessed] + @InvoiceID int, + @ItemID int, + @Result int OUTPUT +AS +BEGIN + + SET NOCOUNT ON; + + SET @Result = 0; + + UPDATE + [dbo].[ecInvoiceItems] + SET + [Processed] = 1 + WHERE + [InvoiceID] = @InvoiceID + AND + [ItemID] = @ItemID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecPaymentProfileExists] + @ActorID int, + @ContractID nvarchar(50), + @Result bit OUTPUT +AS +BEGIN + DECLARE @IssuerID int; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + IF EXISTS (SELECT [ContractID] FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID) + BEGIN + SET @Result = 1; + RETURN; + END + -- + SET @Result = 0; +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecIsSupportedPluginActive] + @ActorID int, + @ResellerID int, + @PluginID int, + @Active bit OUTPUT +AS +BEGIN + -- check user parent + IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + IF EXISTS(SELECT * FROM [dbo].[ecPluginsProperties] + WHERE [ResellerID] = @ResellerID AND [PluginID] = @PluginID) + BEGIN + SET @Active = 1; + RETURN; + END + + SET @Active = 0; + RETURN; +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE VIEW [dbo].[ContractsServicesDetailed] +AS +SELECT dbo.ecService.ServiceID, ISNULL(dbo.Users.Username, dbo.ecContracts.AccountName) AS Username, dbo.ecContracts.CustomerID, dbo.ecService.ContractID, +dbo.ecContracts.ResellerID, dbo.ecService.ServiceName, dbo.ecService.TypeID, dbo.ecService.Status, dbo.ecService.Created, dbo.ecService.Modified, +dbo.ecService.ParentID +FROM dbo.ecContracts INNER JOIN +dbo.ecService ON dbo.ecContracts.ContractID = dbo.ecService.ContractID LEFT OUTER JOIN +dbo.Users ON dbo.ecContracts.CustomerID = dbo.Users.UserID + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateCategory] + @ActorID int, + @UserID int, + @CategoryID int, + @CategoryName nvarchar(255), + @CategorySku nvarchar(50), + @ParentID int, + @ShortDescription ntext, + @FullDescription ntext, + @Result int OUTPUT +AS +BEGIN + -- check actor rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + + SET NOCOUNT ON; + + SET @Result = 0; + + DECLARE @Level int; + + IF @ParentID <= 0 + SET @ParentID = NULL; + + -- check whether a category exists + IF NOT EXISTS( + SELECT + [CategoryName] + FROM + [dbo].[ecCategory] + WHERE + [CategoryID] = @CategoryID + AND + [ResellerID] = @UserID + ) + BEGIN + SET @Result = -1; + RETURN; + END + + -- check whether the update is correct + IF @ParentID = @CategoryID + BEGIN + SET @Result = -1; + RETURN; + END + + -- check consistency: sub-categories won't include a parent category + IF @ParentID IN ( + SELECT + [CategoryID] + FROM + [dbo].[ecCategory] + WHERE + [ParentID] = @CategoryID + AND + [ResellerID] = @UserID + ) + BEGIN + SET @Result = -1; + RETURN; + END + + -- category level updates + IF @ParentID = 0 + BEGIN + SET @ParentID = NULL; + SET @Level = 0; + END + ELSE + BEGIN + -- identify parent level + SELECT + @Level = [Level] + FROM + [dbo].[ecCategory] + WHERE + [CategoryID] = @ParentID + AND + [ResellerID] = @UserID; + + -- increase if necessary + IF @Level >= 0 + SET @Level = @Level + 1; + ELSE + SET @Level = 0; + END + + -- update a category + UPDATE + [dbo].[ecCategory] + SET + [CategoryName] = @CategoryName, + [CategorySku] = @CategorySku, + [ParentID] = @ParentID, + [Level] = @Level, + [ShortDescription] = @ShortDescription, + [FullDescription] = @FullDescription, + [Modified] = GETUTCDATE(), + [ModifierID] = @ActorID + WHERE + [CategoryID] = @CategoryID + AND + [ResellerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateBillingCycle] + @ActorID int, + @UserID int, + @CycleID int, + @CycleName nvarchar(255), + @BillingPeriod nvarchar(50), + @PeriodLength int, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- update cycle details + UPDATE + [dbo].[ecBillingCycles] + SET + [CycleName] = @CycleName, + [BillingPeriod] = @BillingPeriod, + [PeriodLength] = @PeriodLength + WHERE + [ResellerID] = @UserID + AND + [CycleID] = @CycleID; + + SET @Result = 0; + RETURN; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecTopLevelDomainsCycles]( + [ProductID] [int] NOT NULL, + [CycleID] [int] NOT NULL, + [SetupFee] [money] NOT NULL, + [RecurringFee] [money] NOT NULL, + [TransferFee] [money] NULL, + [SortOrder] [int] NOT NULL +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecTopLevelDomains]( + [TopLevelDomain] [nvarchar](10) COLLATE Latin1_General_CI_AS NOT NULL, + [ProductID] [int] NOT NULL, + [PluginID] [int] NOT NULL, + [ResellerID] [int] NOT NULL, + [WhoisEnabled] [bit] NULL, + CONSTRAINT [PK_ecTopLevelDomains] PRIMARY KEY CLUSTERED +( + [TopLevelDomain] ASC, + [ResellerID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingPackageSvcsCycles]( + [SvcCycleID] [int] IDENTITY(1,1) NOT NULL, + [ServiceID] [int] NOT NULL, + [CycleName] [nvarchar](255) COLLATE Latin1_General_CI_AS NOT NULL, + [BillingPeriod] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PeriodLength] [int] NOT NULL, + [SetupFee] [money] NULL, + [RecurringFee] [money] NOT NULL, + [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ecPackagesSvcsCycles] PRIMARY KEY CLUSTERED +( + [SvcCycleID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingPackageSvcs]( + [ServiceID] [int] NOT NULL, + [ProductID] [int] NOT NULL, + [PlanID] [int] NOT NULL, + [PackageID] [int] NULL, + [UserRole] [int] NOT NULL, + [InitialStatus] [int] NOT NULL, + [SvcCycleID] [int] NOT NULL, + CONSTRAINT [PK_ecPackagesSvcs] PRIMARY KEY CLUSTERED +( + [ServiceID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingAddonSvcsCycles]( + [SvcCycleID] [int] IDENTITY(1,1) NOT NULL, + [ServiceID] [int] NOT NULL, + [CycleName] [nvarchar](255) COLLATE Latin1_General_CI_AS NULL, + [BillingPeriod] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL, + [PeriodLength] [int] NULL, + [SetupFee] [money] NULL, + [CyclePrice] [money] NOT NULL, + [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL, + CONSTRAINT [PK_ecAddonPackagesSvcsCycles] PRIMARY KEY CLUSTERED +( + [SvcCycleID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingAddonSvcs]( + [ServiceID] [int] NOT NULL, + [ProductID] [int] NOT NULL, + [PlanID] [int] NULL, + [PackageAddonID] [int] NULL, + [Quantity] [int] NOT NULL, + [Recurring] [bit] NOT NULL, + [DummyAddon] [bit] NOT NULL, + [SvcCycleID] [int] NOT NULL, + CONSTRAINT [PK_ecAddonPackagesSvcs] PRIMARY KEY CLUSTERED +( + [ServiceID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ecHostingAddonsCycles]( + [ProductID] [int] NOT NULL, + [CycleID] [int] NOT NULL, + [SetupFee] [money] NOT NULL, + [RecurringFee] [money] NOT NULL, + [SortOrder] [int] NOT NULL, + CONSTRAINT [PK_ecHostingAddonsCycles] PRIMARY KEY CLUSTERED +( + [ProductID] ASC, + [CycleID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) GO SET ANSI_NULLS ON @@ -35158,6 +35197,7 @@ END + GO SET ANSI_NULLS ON GO @@ -35255,6 +35295,7 @@ BEGIN END END + GO SET ANSI_NULLS ON GO @@ -35319,6 +35360,7 @@ END + GO SET ANSI_NULLS ON GO @@ -35384,6 +35426,7 @@ END + GO SET ANSI_NULLS ON GO @@ -35439,6 +35482,7 @@ RETURN + GO SET ANSI_NULLS ON GO @@ -35521,6 +35565,7 @@ END + GO SET ANSI_NULLS ON GO @@ -35691,6 +35736,7 @@ RETURN + GO @@ -35792,6 +35838,7 @@ RETURN + GO @@ -35893,6 +35940,7 @@ RETURN + GO @@ -35997,6 +36045,7 @@ RETURN + GO @@ -36050,6 +36099,286 @@ DELETE FROM IPAddresses WHERE AddressID = @AddressID RETURN + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecDeleteBillingCycle] + @ActorID int, + @UserID int, + @CycleID int, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + + DELETE FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID AND [CycleID] = @CycleID; + + SET @Result = 0; + RETURN; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateCustomerPayment] + @ActorID int, + @PaymentID int, + @InvoiceID int, + @TransactionID nvarchar(255), + @Total money, + @Currency nvarchar(3), + @MethodName nvarchar(50), + @PluginID int, + @StatusID int, + @Result int OUTPUT +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecCustomersPayments] + WHERE + [PaymentID] = @PaymentID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SET @Result = 0; + + UPDATE [dbo].[ecCustomersPayments] + SET + [InvoiceID] = @InvoiceID, + [TransactionID] = @TransactionID, + [Total] = @Total, + [Currency] = @Currency, + [MethodName] = @MethodName, + [PluginID] = @PluginID, + [StatusID] = @StatusID + WHERE + [PaymentID] = @PaymentID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetGroupProviders +( + @GroupID int +) +AS +SELECT + PROV.ProviderID, + PROV.GroupID, + PROV.ProviderName, + PROV.DisplayName, + PROV.ProviderType, + RG.GroupName + ' - ' + PROV.DisplayName AS ProviderName +FROM Providers AS PROV +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +WHERE RG.GroupID = @GroupId +ORDER BY RG.GroupOrder, PROV.DisplayName +RETURN + + + + + + + + + + + + + + + + + + + + @@ -36267,6 +36596,7 @@ RETURN + GO @@ -36377,6 +36707,7 @@ RETURN + GO @@ -36497,6 +36828,7 @@ RETURN + GO @@ -36555,78 +36887,6 @@ END - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecSetSvcsUsageRecordsClosed] - @ActorID int, - @XmlSvcs xml, - @Result int OUTPUT -AS -BEGIN - - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - -- result is ok - SET @Result = 0; - -- update all svc records - UPDATE - [dbo].[ecSvcsUsageLog] - SET - [PeriodClosed] = 1 - WHERE - [ServiceID] IN ( - SELECT [SXML].[Data].value('@id','int') FROM @XmlSvcs.nodes('/records/record') [SXML]([Data])); - -END - - - - - - - - - - - - - - - - - - - - @@ -36657,2067 +36917,56 @@ GO - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetStorefrontProductsInCategory] - @ResellerID int, - @CategoryID int -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - [P].* - FROM - [dbo].[ecProduct] AS [P] - INNER JOIN - [dbo].[ecProductCategories] AS [PC] - ON - [P].[ProductID] = [PC].[ProductID] - WHERE - [PC].[CategoryID] = @CategoryID - AND - [P].[ResellerID] = @ResellerID - AND - [P].[Enabled] = 1; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetStorefrontHostingPlanAddons] - @ResellerID int, - @PlanID int -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - [P].*, - [HA].*, - [HA].[2COID] AS [TCOID] - FROM - [dbo].[ecHostingAddons] AS [HA] - INNER JOIN - [dbo].[ecProduct] AS [P] - ON - [P].[ProductID] = [HA].[ProductID] - INNER JOIN - [dbo].[ecAddonProducts] AS [AP] - ON - [P].[ProductID] = [AP].[AddonID] - WHERE - [AP].[ResellerID] = @ResellerID - AND - [P].[Enabled] = 1 - AND - [AP].[ProductID] = @PlanID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetServiceHandlersResponsesByReseller] - @ResellerID int -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - * FROM [ServiceHandlersResponsesDetailed] - WHERE - [ResellerID] = @ResellerID AND [ErrorMessage] IS NULL -END - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetResellerTopLevelDomain] - @ResellerID int, - @TLD nvarchar(10) -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - [P].*, - [Tlds].[PluginID], - [Tlds].[WhoisEnabled] - FROM - [dbo].[ecProduct] AS [P] - INNER JOIN - [dbo].[ecTopLevelDomains] AS [Tlds] - ON - [Tlds].[ProductID] = [P].[ProductID] - WHERE - [P].[ResellerID] = @ResellerID - AND - [Tlds].[TopLevelDomain] = @TLD; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetServiceSuspendDate] - @ActorID int, - @ServiceID int, - @SuspendDate datetime OUTPUT -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecService] - WHERE - [ServiceID] = @ServiceID; - SELECT - @IssuerID = [ResellerID] FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - - SET NOCOUNT ON; - - SELECT @SuspendDate = ISNULL(MAX([EndDate]), GETDATE()) FROM [dbo].[ecSvcsUsageLog] - WHERE [ServiceID] = @ServiceID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetServicesToInvoice] - @ActorID int, - @ResellerID int, - @TodayDate datetime, - @DaysOffset int -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - - SET NOCOUNT ON; - - DECLARE @Svcs TABLE( - [ServiceID] int NOT NULL, - [MaxStartDate] datetime NOT NULL, - [MaxEndDate] datetime NOT NULL - ); - - -- filter service that don't have corresponding unpaid invoice and expired - INSERT INTO - @Svcs ([ServiceID], [MaxStartDate], [MaxEndDate]) - SELECT - [SUL].[ServiceID], MAX([SUL].[StartDate]), MAX([SUL].[EndDate]) FROM [dbo].[ecSvcsUsageLog] AS [SUL] - INNER JOIN - [dbo].[ecService] AS [S] ON [SUL].[ServiceID] = [S].[ServiceID] - INNER JOIN - [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [S].[ContractID] - WHERE - [C].[ResellerID] = @ResellerID - AND - ISNULL([SUL].[PeriodClosed], 0) = 0 - GROUP BY - [SUL].[ServiceID]; - - SELECT - [S].* FROM [dbo].[ecService] AS [S] - INNER JOIN - @Svcs AS [SVCS] ON [S].[ServiceID] = [SVCS].[ServiceID] - WHERE - [S].[Status] = 1 AND @DaysOffset >= DATEDIFF(d, @TodayDate, [SVCS].[MaxEndDate]) - ORDER BY - [ContractID]; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetProductHighlights] - @ResellerID int, - @ProductID int -AS -BEGIN - - SELECT - [PH].[HighlightText] - FROM - [dbo].[ecProductsHighlights] AS [PH] - INNER JOIN - [dbo].[ecProduct] AS [P] - ON - [PH].[ProductID] = [P].[ProductID] - WHERE - [P].[ProductID] = @ProductID - AND - [P].[ResellerID] = @ResellerID - ORDER BY - [SortOrder]; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetProductCategoriesIds] - @UserID int, - @ProductID int -AS -BEGIN - - SELECT [CategoryID] FROM [dbo].[ecProductCategories] WHERE [ResellerID] = @UserID AND [ProductID] = @ProductID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetProductCategories] - @UserID int, - @ProductID int -AS -BEGIN - - SELECT - [C].* - FROM - [dbo].[ecCategories] AS [C] - INNER JOIN - [dbo].[ecProductCategories] AS [PC] - ON - [C].[CategoryID] = [PC].[CategoryID] - WHERE - [PC].[ProductID] = @ProductID - AND - [PC].[ResellerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetHostingPlansTaken] - @ActorID int, - @UserID int -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - - SELECT [PlanID] FROM [dbo].[ecHostingPlans] WHERE [ResellerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetHostingPlanCycles] - @UserID int, - @ProductID int -AS -BEGIN - - SELECT - [BC].*, [HPC].[ProductID], [HPC].[SetupFee], [HPC].[RecurringFee] FROM [dbo].[ecHostingPlansBillingCycles] AS [HPC] - INNER JOIN - [dbo].[ecBillingCycles] AS [BC] ON [BC].[CycleID] = [HPC].[CycleID] - INNER JOIN - [dbo].[ecProduct] AS [PR] ON [HPC].[ProductID] = [PR].[ProductID] - WHERE - [PR].[ResellerID] = @UserID AND [HPC].[ProductID] = @ProductID - ORDER BY - [HPC].[SortOrder]; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetHostingPlan] - @UserID int, - @ProductID int -AS -BEGIN - - SELECT - [PR].*, - [HP].[PlanID], - [HP].[UserRole], - [HP].[InitialStatus], - [HP].[DomainOption] - FROM - [dbo].[ecHostingPlans] AS [HP] - INNER JOIN - [dbo].[ecProduct] AS [PR] - ON - [PR].[ProductID] = [HP].[ProductID] - WHERE - [HP].[ResellerID] = @UserID - AND - [HP].[ProductID] = @ProductID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetHostingPackageSvcHistory] - @ActorID int, - @ServiceID int -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecService] - WHERE - [ServiceID] = @ServiceID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - [HPC].[CycleName], - [HPC].[BillingPeriod], - [HPC].[PeriodLength], - [HPC].[SetupFee], - [HPC].[RecurringFee], - [HPC].[Currency], - [SUL].[StartDate], - [SUL].[EndDate] - FROM - [dbo].[ecHostingPackageSvcsCycles] AS [HPC] - INNER JOIN - [dbo].[ecSvcsUsageLog] AS [SUL] - ON - [SUL].[ServiceID] = [HPC].[ServiceID] - AND - [SUL].[SvcCycleID] = [HPC].[SvcCycleID] - WHERE - [HPC].[ServiceID] = @ServiceID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetHostingPackageSvc] - @ActorID int, - @ServiceID int -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecService] - WHERE - [ServiceID] = @ServiceID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - - -- - SET NOCOUNT ON; - - SELECT - [SVC].*, - [HPSVC].[ProductID], - [HPSVC].[PlanID], - [HPSVC].[PackageID], - [HPSVC].[UserRole], - [HPSVC].[InitialStatus], - [HPSVC].[SvcCycleID], - [HPSC].[CycleName], - [HPSC].[BillingPeriod], - [HPSC].[PeriodLength], - [HPSC].[SetupFee], - [HPSC].[RecurringFee], - [HPSC].[Currency] - FROM - [dbo].[ecService] AS [SVC] - INNER JOIN - [dbo].[ecHostingPackageSvcs] AS [HPSVC] - ON - [HPSVC].[ServiceID] = [SVC].[ServiceID] - INNER JOIN - [dbo].[ecHostingPackageSvcsCycles] AS [HPSC] - ON - [HPSC].[SvcCycleID] = [HPSVC].[SvcCycleID] - WHERE - [SVC].[ServiceID] = @ServiceID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetHostingAddonSvcHistory] - @ActorID int, - @ServiceID int -AS -BEGIN - DECLARE @IssuerID int, @ContractID nvarchar(50); - SELECT - @ContractID = [ContractID] FROM [dbo].[ecService] - WHERE - [ServiceID] = @ServiceID; - SELECT - @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - [HAC].[CycleName], - [HAC].[BillingPeriod], - [HAC].[PeriodLength], - [HAC].[SetupFee], - [HAC].[CyclePrice] AS [RecurringFee], - [HAC].[Currency], - [SUL].[StartDate], - [SUL].[EndDate] - FROM - [dbo].[ecHostingAddonSvcsCycles] AS [HAC] - INNER JOIN - [dbo].[ecSvcsUsageLog] AS [SUL] - ON - [SUL].[ServiceID] = [HAC].[ServiceID] - AND - [SUL].[SvcCycleID] = [HAC].[SvcCycleID] - WHERE - [HAC].[ServiceID] = @ServiceID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetAddonProductsIds] - @UserID int, - @ProductID int -AS -BEGIN - - SELECT - [P].[ProductID] - FROM - [dbo].[ecProduct] AS [P] - INNER JOIN [dbo].[ecAddonProducts] AS [ATP] - ON [P].[ProductID] = [ATP].[ProductID] - WHERE - [ATP].[AddonID] = @ProductID - AND - [P].[ResellerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetAddonProducts] - @UserID int, - @ProductID int -AS -BEGIN - - SELECT - [P].* - FROM - [dbo].[ecProduct] AS [P] - INNER JOIN [dbo].[ecAddonProducts] AS [ATP] - ON [P].[ProductID] = [ATP].[ProductID] - WHERE - [ATP].[AddonID] = @ProductID - AND - [P].[ResellerID] = @UserID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecDeleteProduct] - @ActorID int, - @UserID int, - @ProductID int, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -BEGIN TRAN RMV_PRODUCT - -- remove product - DELETE FROM [dbo].[ecProduct] WHERE [ProductID] = @ProductID AND [ResellerID] = @UserID; - -- check errors - IF @@ERROR <> 0 - GOTO ERROR_HANDLE; - -- workaround for cyclic cascades - DELETE FROM [dbo].[ecAddonProducts] WHERE [ProductID] = @ProductID AND [ResellerID] = @UserID; - -- check errors - IF @@ERROR <> 0 - GOTO ERROR_HANDLE; - -- set result ok - SET @Result = 0; - -- commit actions - COMMIT TRAN RMV_PRODUCT; - -- exit routine - RETURN; - -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN RMV_PRODUCT; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[AddIPAddress] -( - @AddressID int OUTPUT, - @ServerID int, - @ExternalIP varchar(24), - @InternalIP varchar(24), - @PoolID int, - @SubnetMask varchar(15), - @DefaultGateway varchar(15), - @Comments ntext -) -AS -BEGIN - IF @ServerID = 0 - SET @ServerID = NULL - - INSERT INTO IPAddresses (ServerID, ExternalIP, InternalIP, PoolID, SubnetMask, DefaultGateway, Comments) - VALUES (@ServerID, @ExternalIP, @InternalIP, @PoolID, @SubnetMask, @DefaultGateway, @Comments) - - SET @AddressID = SCOPE_IDENTITY() - - RETURN -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddDomainNameSvc] - @ContractID nvarchar(50), - @ParentID int, - @ProductID int, - @FQDN nvarchar(64), - @CycleID int, - @Currency nvarchar(10), - @PropertyNames ntext, - @PropertyValues ntext, - @Result int OUTPUT -AS -BEGIN - DECLARE @ResellerID int; - SELECT - @ResellerID = [ResellerID] FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -BEGIN TRAN ADD_TLD_SVC - -- add service - INSERT INTO [dbo].[ecService] - ([ContractID], [ParentID], [ServiceName], [TypeID], [Status], [Created]) - VALUES - (@ContractID, @ParentID, @FQDN, 3, 0, GETDATE()); - -- check error - IF @@ERROR <> 0 - GOTO ERROR_HANDLE; - -- obtain result - SET @Result = SCOPE_IDENTITY(); - - -- if product and cycle are defined - IF @ProductID > 0 OR @CycleID > 0 - BEGIN - DECLARE @SvcCycleID int; - -- insert svc life-cycle - INSERT INTO [dbo].[ecDomainSvcsCycles] - ( - [ServiceID], - [CycleName], - [BillingPeriod], - [PeriodLength], - [SetupFee], - [RecurringFee], - [Currency] - ) - SELECT - @Result, - [BC].[CycleName], - [BC].[BillingPeriod], - [BC].[PeriodLength], - [TLDC].[SetupFee], - [TLDC].[RecurringFee], - @Currency - FROM - [dbo].[ecTopLevelDomainsCycles] AS [TLDC] - INNER JOIN - [dbo].[ecBillingCycles] AS [BC] - ON - [BC].[CycleID] = [TLDC].[CycleID] - WHERE - [TLDC].[CycleID] = @CycleID - AND - [TLDC].[ProductID] = @ProductID - AND - [BC].[ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - -- obtain result - SET @SvcCycleID = SCOPE_IDENTITY(); - - -- add domain details - INSERT INTO [dbo].[ecDomainSvcs] - ( - [ServiceID], - [ProductID], - [PluginID], - [FQDN], - [SvcCycleID], - [PropertyNames], - [PropertyValues] - ) - SELECT - @Result, - @ProductID, - [PluginID], - @FQDN, - @SvcCycleID, - @PropertyNames, - @PropertyValues - FROM - [dbo].[ecTopLevelDomains] - WHERE - [ProductID] = @ProductID - AND - [ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - END - ELSE - BEGIN - INSERT INTO [dbo].[ecDomainSvcs] - ( - [ServiceID], - [ProductID], - [FQDN], - [SvcCycleID], - [PropertyNames], - [PropertyValues] - ) - SELECT @Result, NULL, @FQDN, NULL, @PropertyNames, @PropertyValues; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - END - - -- commit - COMMIT TRAN ADD_TLD_SVC; - -- exit - RETURN; - --- error handler -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN ADD_TLD_SVC; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetSvcsSuspendDateAligned] - @ResellerID int, - @SvcsXml xml, - @DefaultValue datetime, - @Result datetime OUTPUT -AS -BEGIN - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SELECT - @Result = MAX([SUL].[EndDate]) FROM [dbo].[ecSvcsUsageLog] AS [SUL] - INNER JOIN - [dbo].[ecService] AS [S] ON [SUL].[ServiceID] = [S].[ServiceID] - INNER JOIn - [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [S].[ContractID] - WHERE - [C].[ResellerID] = @ResellerID - AND - [S].[ServiceID] IN (SELECT [SXML].[Data].value('@id','int') FROM @SvcsXml.nodes('/Svcs/Svc') [SXML]([Data])); - - -- result is empty - SET @Result = ISNULL(@Result, @DefaultValue); - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetTopLevelDomainsPaged] +CREATE PROCEDURE [dbo].[ecGetCustomersServicesPaged] @ActorID int, @UserID int, + @IsReseller bit, @MaximumRows int, @StartRowIndex int AS BEGIN + -- check user parent + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + + SET NOCOUNT ON; DECLARE @EndIndex int; SET @EndIndex = @MaximumRows + @StartRowIndex; SET @StartRowIndex = @StartRowIndex + 1; - WITH [TldsCTE] AS ( + IF @IsReseller = 1 + BEGIN + WITH [SERVICES] AS ( + SELECT + ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsServicesDetailed] + WHERE + [ResellerID] = @UserID + ) + SELECT - ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], - * - FROM - [dbo].[ecProduct] + * FROM [SERVICES] WHERE - [ResellerID] = @UserID - AND - [TypeID] = 3 -- Top Level Domain + [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [Created] DESC; + -- exit + RETURN; + END; + + WITH [SERVICES] AS ( + SELECT + ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsServicesDetailed] + WHERE + [CustomerID] = @UserID ) - SELECT - [TldsCTE].*, - [Tlds].[PluginId], - [PLG].[DisplayName] - FROM - [TldsCTE] - INNER JOIN - [dbo].[ecTopLevelDomains] AS [Tlds] - ON - [Tlds].[ProductID] = [TldsCTE].[ProductID] - INNER JOIN - [dbo].[ecSupportedPlugins] AS [PLG] - ON - [PLG].[PluginID] = [Tlds].[PluginID] - WHERE - [TldsCTE].[RowIndex] BETWEEN @StartRowIndex AND @EndIndex; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecGetTopLevelDomainCycles] - @UserID int, - @ProductID int -AS -BEGIN - SELECT - [BC].*, - [TLDC].[ProductID], - [TLDC].[SetupFee], - [TLDC].[RecurringFee], - [TLDC].[TransferFee] - FROM - [dbo].[ecTopLevelDomainsCycles] AS [TLDC] - INNER JOIN - [dbo].[ecBillingCycles] AS [BC] - ON - [BC].[CycleID] = [TLDC].[CycleID] - INNER JOIN - [dbo].[ecProduct] AS [PR] - ON - [TLDC].[ProductID] = [PR].[ProductID] + * FROM [SERVICES] WHERE - [PR].[ResellerID] = @UserID - AND - [TLDC].[ProductID] = @ProductID - ORDER BY - [TLDC].[SortOrder]; + [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [Created] DESC; END @@ -38743,6 +36992,7 @@ END + GO @@ -38770,2058 +37020,35 @@ GO - - - - - - -CREATE PROCEDURE [dbo].[ecGetTopLevelDomain] +CREATE PROCEDURE [dbo].[ecGetCustomersServicesCount] @ActorID int, @UserID int, - @ProductID int + @IsReseller bit, + @Result int OUTPUT AS BEGIN - -- check actor user rights + -- check user parent IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 BEGIN - RAISERROR('You are not allowed to access this account', 16, 1); + RAISERROR('You are not allowed to access this information', 16, 1); RETURN; END - SELECT - [P].*, - [Tlds].[PluginID], - [Tlds].[WhoisEnabled], - [PLG].[DisplayName] - FROM - [dbo].[ecProduct] AS [P] - INNER JOIN - [dbo].[ecTopLevelDomains] AS [Tlds] - ON - [Tlds].[ProductID] = [P].[ProductID] - INNER JOIN - [dbo].[ecSupportedPlugins] AS [PLG] - ON - [PLG].[PluginID] = [Tlds].[PluginID] - WHERE - [P].[ResellerID] = @UserID - AND - [P].[ProductID] = @ProductID; - -END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[ServiceProperties]( - [ServiceID] [int] NOT NULL, - [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, - [PropertyValue] [nvarchar](1000) COLLATE Latin1_General_CI_AS NULL, - CONSTRAINT [PK_ServiceProperties_1] PRIMARY KEY CLUSTERED -( - [ServiceID] ASC, - [PropertyName] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE AddService -( - @ServiceID int OUTPUT, - @ServerID int, - @ProviderID int, - @ServiceQuotaValue int, - @ServiceName nvarchar(50), - @ClusterID int, - @Comments ntext -) -AS -BEGIN - -BEGIN TRAN -IF @ClusterID = 0 SET @ClusterID = NULL - -INSERT INTO Services -( - ServerID, - ProviderID, - ServiceName, - ServiceQuotaValue, - ClusterID, - Comments -) -VALUES -( - @ServerID, - @ProviderID, - @ServiceName, - @ServiceQuotaValue, - @ClusterID, - @Comments -) - -SET @ServiceID = SCOPE_IDENTITY() - --- copy default service settings -INSERT INTO ServiceProperties (ServiceID, PropertyName, PropertyValue) -SELECT @ServiceID, PropertyName, PropertyValue -FROM ServiceDefaultProperties -WHERE ProviderID = @ProviderID - --- copy all default DNS records for the given service -DECLARE @GroupID int -SELECT @GroupID = GroupID FROM Providers -WHERE ProviderID = @ProviderID - --- default IP address for added records -DECLARE @AddressID int -SELECT TOP 1 @AddressID = AddressID FROM IPAddresses -WHERE ServerID = @ServerID - -INSERT INTO GlobalDnsRecords -( - RecordType, - RecordName, - RecordData, - MXPriority, - IPAddressID, - ServiceID, - ServerID, - PackageID -) -SELECT - RecordType, - RecordName, - CASE WHEN RecordData = '[ip]' THEN '' - ELSE RecordData END, - MXPriority, - CASE WHEN RecordData = '[ip]' THEN @AddressID - ELSE NULL END, - @ServiceID, - NULL, -- server - NULL -- package -FROM - ResourceGroupDnsRecords -WHERE GroupID = @GroupID -ORDER BY RecordOrder -COMMIT TRAN - -END -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[UpdateIPAddresses] -( - @xml ntext, - @PoolID int, - @ServerID int, - @SubnetMask varchar(15), - @DefaultGateway varchar(15), - @Comments ntext -) -AS -BEGIN SET NOCOUNT ON; - IF @ServerID = 0 - SET @ServerID = NULL - - DECLARE @idoc int - --Create an internal representation of the XML document. - EXEC sp_xml_preparedocument @idoc OUTPUT, @xml - - -- update - UPDATE IPAddresses SET - ServerID = @ServerID, - PoolID = @PoolID, - SubnetMask = @SubnetMask, - DefaultGateway = @DefaultGateway, - Comments = @Comments - FROM IPAddresses AS IP - INNER JOIN OPENXML(@idoc, '/items/item', 1) WITH - ( - AddressID int '@id' - ) as PV ON IP.AddressID = PV.AddressID - - -- remove document - exec sp_xml_removedocument @idoc -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER OFF -GO - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[UpdateIPAddress] -( - @AddressID int, - @ServerID int, - @ExternalIP varchar(24), - @InternalIP varchar(24), - @PoolID int, - @SubnetMask varchar(15), - @DefaultGateway varchar(15), - @Comments ntext -) -AS -BEGIN - IF @ServerID = 0 - SET @ServerID = NULL - - UPDATE IPAddresses SET - ExternalIP = @ExternalIP, - InternalIP = @InternalIP, - ServerID = @ServerID, - PoolID = @PoolID, - SubnetMask = @SubnetMask, - DefaultGateway = @DefaultGateway, - Comments = @Comments - WHERE AddressID = @AddressID - - RETURN -END - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetRawServicesByServerID -( - @ActorID int, - @ServerID int -) -AS - --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - --- resource groups -SELECT - GroupID, - GroupName -FROM ResourceGroups -WHERE @IsAdmin = 1 -ORDER BY GroupOrder - --- services -SELECT - S.ServiceID, - S.ServerID, - S.ServiceName, - S.Comments, - RG.GroupID, - PROV.DisplayName AS ProviderName -FROM Services AS S -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -WHERE - S.ServerID = @ServerID - AND @IsAdmin = 1 -ORDER BY RG.GroupOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetQuotas -AS -SELECT - Q.GroupID, - Q.QuotaID, - RG.GroupName, - Q.QuotaDescription, - Q.QuotaTypeID -FROM Quotas AS Q -INNER JOIN ResourceGroups AS RG ON Q.GroupID = RG.GroupID -ORDER BY RG.GroupOrder, Q.QuotaOrder -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetProviderServiceQuota -( - @ProviderID int -) -AS - -SELECT TOP 1 - Q.QuotaID, - Q.GroupID, - Q.QuotaName, - Q.QuotaDescription, - Q.QuotaTypeID, - Q.ServiceQuota -FROM Providers AS P -INNER JOIN Quotas AS Q ON P.GroupID = Q.GroupID -WHERE P.ProviderID = @ProviderID AND Q.ServiceQuota = 1 - - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - -CREATE PROCEDURE [dbo].[GetService] -( - @ActorID int, - @ServiceID int -) -AS - -SELECT - ServiceID, - Services.ServerID, - ProviderID, - ServiceName, - ServiceQuotaValue, - ClusterID, - Services.Comments, - Servers.ServerName -FROM Services INNER JOIN Servers ON Services.ServerID = Servers.ServerID -WHERE - ServiceID = @ServiceID - -RETURN - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetProviderByServiceID -( - @ServiceID int -) -AS -SELECT - P.ProviderID, - P.GroupID, - P.DisplayName, - P.EditorControl, - P.ProviderType -FROM Services AS S -INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID -WHERE - S.ServiceID = @ServiceID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServers -( - @ActorID int -) -AS --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - S.ServerID, - S.ServerName, - S.ServerUrl, - (SELECT COUNT(SRV.ServiceID) FROM Services AS SRV WHERE S.ServerID = SRV.ServerID) AS ServicesNumber, - S.Comments, - PrimaryGroupID, - S.ADEnabled -FROM Servers AS S -WHERE VirtualServer = 0 -AND @IsAdmin = 1 -ORDER BY S.ServerName - --- services -SELECT - S.ServiceID, - S.ServerID, - S.ProviderID, - S.ServiceName, - S.Comments -FROM Services AS S -INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID -INNER JOIN ResourceGroups AS RG ON P.GroupID = RG.GroupID -WHERE @IsAdmin = 1 -ORDER BY RG.GroupOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServicesByServerIDGroupName -( - @ActorID int, - @ServerID int, - @GroupName nvarchar(50) -) -AS - --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - S.ServiceID, - S.ServerID, - S.ServiceName, - S.Comments, - S.ServiceQuotaValue, - RG.GroupName, - PROV.DisplayName AS ProviderName -FROM Services AS S -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -WHERE - S.ServerID = @ServerID AND RG.GroupName = @GroupName - AND @IsAdmin = 1 -ORDER BY RG.GroupOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServicesByServerID -( - @ActorID int, - @ServerID int -) -AS - --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - - -SELECT - S.ServiceID, - S.ServerID, - S.ServiceName, - S.Comments, - S.ServiceQuotaValue, - RG.GroupName, - S.ProviderID, - PROV.DisplayName AS ProviderName -FROM Services AS S -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -WHERE - S.ServerID = @ServerID - AND @IsAdmin = 1 -ORDER BY RG.GroupOrder - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - -CREATE PROCEDURE [dbo].[GetServicesByGroupName] -( - @ActorID int, - @GroupName nvarchar(100) -) -AS --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - S.ServiceID, - S.ServiceName, - S.ServerID, - S.ServiceQuotaValue, - SRV.ServerName, - S.ProviderID, - PROV.ProviderName, - S.ServiceName + ' on ' + SRV.ServerName AS FullServiceName -FROM Services AS S -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID -WHERE - RG.GroupName = @GroupName - AND @IsAdmin = 1 -RETURN - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE GetServicesByGroupID -( - @ActorID int, - @GroupID int -) -AS --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - S.ServiceID, - S.ServiceName, - S.ServerID, - S.ServiceQuotaValue, - SRV.ServerName, - S.ProviderID, - S.ServiceName+' on '+SRV.ServerName AS FullServiceName -FROM Services AS S -INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID -INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID -WHERE - PROV.GroupID = @GroupID - AND @IsAdmin = 1 -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdateVirtualGroups -( - @ServerID int, - @Xml ntext -) -AS - - -/* -XML Format: - - - - - -*/ - -BEGIN TRAN -DECLARE @idoc int ---Create an internal representation of the XML document. -EXEC sp_xml_preparedocument @idoc OUTPUT, @xml - --- delete old virtual groups -DELETE FROM VirtualGroups -WHERE ServerID = @ServerID - --- update HP resources -INSERT INTO VirtualGroups -( - ServerID, - GroupID, - DistributionType, - BindDistributionToPrimary -) -SELECT - @ServerID, - GroupID, - DistributionType, - BindDistributionToPrimary -FROM OPENXML(@idoc, '/groups/group',1) WITH -( - GroupID int '@id', - DistributionType int '@distributionType', - BindDistributionToPrimary bit '@bindDistributionToPrimary' -) as XRG - --- remove document -exec sp_xml_removedocument @idoc - -COMMIT TRAN -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE UpdateService -( - @ServiceID int, - @ServiceName nvarchar(50), - @Comments ntext, - @ServiceQuotaValue int, - @ClusterID int -) -AS - -IF @ClusterID = 0 SET @ClusterID = NULL - -UPDATE Services -SET - ServiceName = @ServiceName, - ServiceQuotaValue = @ServiceQuotaValue, - Comments = @Comments, - ClusterID = @ClusterID -WHERE ServiceID = @ServiceID - -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE DeleteCluster -( - @ClusterID int -) -AS - --- reset cluster in services -UPDATE Services -SET ClusterID = NULL -WHERE ClusterID = @ClusterID - --- delete cluster -DELETE FROM Clusters -WHERE ClusterID = @ClusterID -RETURN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddHostingPlanSvc] - @ContractID nvarchar(50), - @ProductID int, - @PlanName nvarchar(255), - @CycleID int, - @Currency nvarchar(10), - @Result int OUTPUT -AS -BEGIN - DECLARE @ResellerID int; - SELECT - @ResellerID = [ResellerID] FROM [dbo].[ecContracts] - WHERE - [ContractID] = @ContractID; - -BEGIN TRAN ADD_HPLAN_SVC - -- add service - INSERT INTO [dbo].[ecService] - ([ContractID], [ServiceName], [TypeID], [Status], [Created]) - VALUES - (@ContractID, @PlanName, 1, 0, GETDATE()); - -- check error - IF @@ERROR <> 0 - GOTO ERROR_HANDLE; - -- obtain result - SET @Result = SCOPE_IDENTITY(); - - DECLARE @SvcCycleID int; - -- insert svc life-cycle - INSERT INTO [dbo].[ecHostingPackageSvcsCycles] - ( - [ServiceID], - [CycleName], - [BillingPeriod], - [PeriodLength], - [SetupFee], - [RecurringFee], - [Currency] - ) - SELECT - @Result, - [BC].[CycleName], - [BC].[BillingPeriod], - [BC].[PeriodLength], - [HPBC].[SetupFee], - [HPBC].[RecurringFee], - @Currency - FROM - [dbo].[ecHostingPlansBillingCycles] AS [HPBC] - INNER JOIN - [dbo].[ecBillingCycles] AS [BC] - ON - [BC].[CycleID] = [HPBC].[CycleID] - WHERE - [HPBC].[CycleID] = @CycleID - AND - [HPBC].[ProductID] = @ProductID - AND - [BC].[ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - -- obtain result - SET @SvcCycleID = SCOPE_IDENTITY(); - - -- add plan details - INSERT INTO [dbo].[ecHostingPackageSvcs] - ( - [ServiceID], - [ProductID], - [PlanID], - [UserRole], - [InitialStatus], - [SvcCycleID] - ) - SELECT - @Result, - @ProductID, - [PlanID], - [UserRole], - [InitialStatus], - @SvcCycleID - FROM - [dbo].[ecHostingPlans] - WHERE - [ProductID] = @ProductID - AND - [ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - - - -- commit tran - COMMIT TRAN ADD_HPLAN_SVC; - -- exit - RETURN; --- error handler -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN ADD_HPLAN_SVC; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddHostingPlan] - @ActorID int, - @UserID int, - @PlanName nvarchar(255), - @ProductSku nvarchar(50), - @TaxInclusive bit, - @PlanID int, - @UserRole int, - @InitialStatus int, - @DomainOption int, - @Enabled bit, - @PlanDescription ntext, - @PlanCyclesXml xml, - @PlanHighlightsXml xml, - @PlanCategoriesXml xml, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + IF @IsReseller = 1 BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); + SELECT + @Result = COUNT([ServiceID]) FROM [dbo].[ContractsServicesDetailed] + WHERE + [ResellerID] = @UserID; RETURN; END - -BEGIN TRAN ADD_PLAN - -- insert product first - INSERT INTO [dbo].[ecProduct] - ([ProductName], [ProductSKU], [TypeID], [TaxInclusive], [Description], [Created], [Enabled], [ResellerID]) - VALUES - (@PlanName, @ProductSku, 1, @TaxInclusive, @PlanDescription, GETDATE(), @Enabled, @UserID); - -- set product id created - SET @Result = SCOPE_IDENTITY(); - -- save hosting plan details - INSERT INTO [dbo].[ecHostingPlans] - ([ProductID], [ResellerID], [PlanID], [UserRole], [InitialStatus], [DomainOption]) - VALUES - (@Result, @UserID, @PlanID, @UserRole, @InitialStatus, @DomainOption); - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END - -/* -XML Format: - - - - -*/ - -- insert cycles - INSERT INTO [dbo].[ecHostingPlansBillingCycles] - ([ProductID], [CycleID], [SetupFee], [RecurringFee], [SortOrder]) + SELECT - @Result, [SXML].[Data].value('@ID','int'), [SXML].[Data].value('@SetupFee','money'), - [SXML].[Data].value('@RecurringFee','money'), [SXML].[Data].value('@SortOrder','int') - FROM @PlanCyclesXml.nodes('/PlanCycles/Cycle') [SXML]([Data]) - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END - -/* -XML Format: - - - - -*/ - -- insert cycles - INSERT INTO [dbo].[ecProductsHighlights] - ([ProductID], [HighlightText], [SortOrder]) - SELECT - @Result, [SXML].[Data].value('@Text','nvarchar(255)'), [SXML].[Data].value('@SortOrder','int') - FROM @PlanHighlightsXml.nodes('/PlanHighlights/Item') [SXML]([Data]) - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END -/* -XML Format: - - - - -*/ - -- insert categories - INSERT INTO [dbo].[ecProductCategories] - ([ProductID], [CategoryID], [ResellerID]) - SELECT - @Result, [SXML].[Data].value('@ID','int'), @UserID FROM @PlanCategoriesXml.nodes('/PlanCategories/Category') [SXML]([Data]) - -- check errors - IF @@ERROR <> 0 - GOTO ERROR_HANDLE; - -- commit changes - COMMIT TRAN ADD_PLAN; - -- return result - RETURN; - -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN ADD_PLAN; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddHostingAddonSvc] - @ContractID nvarchar(50), - @ParentID int, - @ProductID int, - @Quantity int, - @AddonName nvarchar(255), - @CycleID int, - @Currency nvarchar(10), - @Result int OUTPUT -AS -BEGIN - DECLARE @ResellerID int; - SELECT - @ResellerID = [ResellerID] FROM [dbo].[ecContracts] + @Result = COUNT([ServiceID]) FROM [dbo].[ContractsServicesDetailed] WHERE - [ContractID] = @ContractID; - -BEGIN TRAN ADD_ADDON_SVC - -- - INSERT INTO [dbo].[ecService] - ([ContractID], [ParentID], [ServiceName], [TypeID], [Status], [Created]) - VALUES - (@ContractID, @ParentID, @AddonName, 2, 0, GETDATE()); - -- obtain result - SET @Result = SCOPE_IDENTITY(); - - DECLARE @SvcCycleID int; - -- insert svc life-cycle - IF @CycleID > 0 - BEGIN - INSERT INTO [dbo].[ecHostingAddonSvcsCycles] - ( - [ServiceID], - [CycleName], - [BillingPeriod], - [PeriodLength], - [SetupFee], - [CyclePrice], - [Currency] - ) - SELECT - @Result, - [BC].[CycleName], - [BC].[BillingPeriod], - [BC].[PeriodLength], - [HAC].[SetupFee], - [HAC].[RecurringFee], - @Currency - FROM - [dbo].[ecHostingAddonsCycles] AS [HAC] - INNER JOIN - [dbo].[ecBillingCycles] AS [BC] - ON - [BC].[CycleID] = [HAC].[CycleID] - WHERE - [HAC].[CycleID] = @CycleID - AND - [HAC].[ProductID] = @ProductID - AND - [BC].[ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - -- obtain result - SET @SvcCycleID = SCOPE_IDENTITY(); - END - ELSE - BEGIN - INSERT INTO [dbo].[ecHostingAddonSvcsCycles] - ( - [ServiceID], - [CycleName], - [BillingPeriod], - [PeriodLength], - [SetupFee], - [CyclePrice], - [Currency] - ) - SELECT - @Result, - NULL, - NULL, - NULL, - [SetupFee], - [OneTimeFee], - @Currency - FROM - [dbo].[ecHostingAddons] - WHERE - [ProductID] = @ProductID - AND - [ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - -- obtain result - SET @SvcCycleID = SCOPE_IDENTITY(); - END - - -- insert addon svc details - INSERT INTO [dbo].[ecHostingAddonSvcs] - ( - [ServiceID], - [ProductID], - [PlanID], - [Quantity], - [Recurring], - [DummyAddon], - [SvcCycleID] - ) - SELECT - @Result, - @ProductID, - [PlanID], - @Quantity, - [Recurring], - [DummyAddon], - @SvcCycleID - FROM - [dbo].[ecHostingAddons] - WHERE - [ProductID] = @ProductID - AND - [ResellerID] = @ResellerID; - -- check error - IF @@ROWCOUNT = 0 - GOTO ERROR_HANDLE; - - -- commit tran - COMMIT TRAN ADD_ADDON_SVC; - -- exit - RETURN; --- error handler -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN ADD_ADDON_SVC; - RETURN; -END + [CustomerID] = @UserID; END @@ -40836,274 +37063,6 @@ END - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddHostingAddon] - @ActorID int, - @UserID int, - @AddonName nvarchar(255), - @ProductSku nvarchar(50), - @TaxInclusive bit, - @Enabled bit, - @PlanID int, - @Recurring bit, - @DummyAddon bit, - @Countable bit, - @Description ntext, - @AddonCyclesXml xml, - @AssignedProductsXml xml, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -- dummy addon clause - IF @DummyAddon = 1 - SET @PlanID = NULL; - -BEGIN TRAN ADD_ADDON - DECLARE @XmlDocID int; - SET @XmlDocID = NULL; - - -- insert product first - INSERT INTO [dbo].[ecProduct] - ([ProductName], [ProductSKU], [TypeID], [TaxInclusive], [Description], [Created], [Enabled], [ResellerID]) - VALUES - (@AddonName, @ProductSku, 2, @TaxInclusive, @Description, GETDATE(), @Enabled, @UserID); - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END - -- set product id created - SET @Result = SCOPE_IDENTITY(); - -- insert hosting addon details - INSERT INTO [dbo].[ecHostingAddons] - ([ProductID], [PlanID], [Recurring], [ResellerID], [DummyAddon], [Countable]) - VALUES - (@Result, @PlanID, @Recurring, @UserID, @DummyAddon, @Countable); - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END -/* -XML Format: - - - - -*/ - -- save hosting addon cycles - IF @Recurring = 1 - -- insert cycles - INSERT INTO [dbo].[ecHostingAddonsCycles] - ([ProductID], [CycleID], [SetupFee], [RecurringFee], [SortOrder]) - SELECT - @Result, [SXML].[Data].value('@ID','int'), [SXML].[Data].value('@SetupFee','money'), - [SXML].[Data].value('@RecurringFee','money'), [SXML].[Data].value('@SortOrder','int') - FROM @AddonCyclesXml.nodes('/PlanCycles/Cycle') [SXML]([Data]) - ELSE - UPDATE - [dbo].[ecHostingAddons] - SET - [SetupFee] = [SXML].[Data].value('@SetupFee','money'), - [OneTimeFee] = [SXML].[Data].value('@RecurringFee','money') - FROM - @AddonCyclesXml.nodes('/PlanCycles/Cycle') [SXML]([Data]) - WHERE - [ResellerID] = @UserID AND [ProductID] = @Result; - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END -/* -XML Format: - - - - -*/ - -- insert cycles - INSERT INTO [dbo].[ecAddonProducts] - ([AddonID], [ProductID], [ResellerID]) - SELECT - @Result, [SXML].[Data].value('@ID','int'), @UserID - FROM - @AssignedProductsXml.nodes('/AssignedProducts/Product') [SXML]([Data]) - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END - -- - COMMIT TRAN ADD_ADDON; - -- - RETURN; - - -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN ADD_ADDON; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddServiceUsageRecord] - @ActorID int, - @ServiceID int, - @SvcCycleID int, - @StartDate datetime, - @EndDate datetime, - @Result int OUTPUT -AS -BEGIN - - -- SET NOCOUNT ON added to prevent extra result sets from - -- interfering with SELECT statements. - SET NOCOUNT ON; - - SET @Result = 0; - - INSERT INTO [dbo].[ecSvcsUsageLog] - ( - [ServiceID], - [SvcCycleID], - [StartDate], - [EndDate] - ) - VALUES - ( - @ServiceID, - @SvcCycleID, - @StartDate, - @EndDate - ); - -END - - - - - - - - - - - - - - - - - - - - @@ -41259,6 +37218,7 @@ END + GO @@ -41441,6 +37401,7 @@ END + GO @@ -41567,6 +37528,7 @@ END + GO @@ -41704,6 +37666,7 @@ END + GO @@ -41800,6 +37763,7 @@ END + GO @@ -41880,6 +37844,7 @@ END + GO @@ -41948,6 +37913,7 @@ END + GO @@ -42038,6 +38004,7 @@ END + GO @@ -42132,6 +38099,7 @@ END + GO @@ -42241,6 +38209,7 @@ END + GO @@ -42268,16 +38237,439 @@ GO -CREATE PROCEDURE [dbo].[ecGetCustomersServicesPaged] +CREATE PROCEDURE [dbo].[ecSetSvcsUsageRecordsClosed] @ActorID int, - @UserID int, - @IsReseller bit, - @MaximumRows int, - @StartRowIndex int + @XmlSvcs xml, + @Result int OUTPUT AS BEGIN - -- check user parent - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + -- result is ok + SET @Result = 0; + -- update all svc records + UPDATE + [dbo].[ecSvcsUsageLog] + SET + [PeriodClosed] = 1 + WHERE + [ServiceID] IN ( + SELECT [SXML].[Data].value('@id','int') FROM @XmlSvcs.nodes('/records/record') [SXML]([Data])); + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetStorefrontProductsInCategory] + @ResellerID int, + @CategoryID int +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + [P].* + FROM + [dbo].[ecProduct] AS [P] + INNER JOIN + [dbo].[ecProductCategories] AS [PC] + ON + [P].[ProductID] = [PC].[ProductID] + WHERE + [PC].[CategoryID] = @CategoryID + AND + [P].[ResellerID] = @ResellerID + AND + [P].[Enabled] = 1; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetStorefrontHostingPlanAddons] + @ResellerID int, + @PlanID int +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + [P].*, + [HA].*, + [HA].[2COID] AS [TCOID] + FROM + [dbo].[ecHostingAddons] AS [HA] + INNER JOIN + [dbo].[ecProduct] AS [P] + ON + [P].[ProductID] = [HA].[ProductID] + INNER JOIN + [dbo].[ecAddonProducts] AS [AP] + ON + [P].[ProductID] = [AP].[AddonID] + WHERE + [AP].[ResellerID] = @ResellerID + AND + [P].[Enabled] = 1 + AND + [AP].[ProductID] = @PlanID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetServiceHandlersResponsesByReseller] + @ResellerID int +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + * FROM [ServiceHandlersResponsesDetailed] + WHERE + [ResellerID] = @ResellerID AND [ErrorMessage] IS NULL +END + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetResellerTopLevelDomain] + @ResellerID int, + @TLD nvarchar(10) +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + [P].*, + [Tlds].[PluginID], + [Tlds].[WhoisEnabled] + FROM + [dbo].[ecProduct] AS [P] + INNER JOIN + [dbo].[ecTopLevelDomains] AS [Tlds] + ON + [Tlds].[ProductID] = [P].[ProductID] + WHERE + [P].[ResellerID] = @ResellerID + AND + [Tlds].[TopLevelDomain] = @TLD; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetServiceSuspendDate] + @ActorID int, + @ServiceID int, + @SuspendDate datetime OUTPUT +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecService] + WHERE + [ServiceID] = @ServiceID; + SELECT + @IssuerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 BEGIN RAISERROR('You are not allowed to access this information', 16, 1); RETURN; @@ -42285,40 +38677,1843 @@ BEGIN SET NOCOUNT ON; + SELECT @SuspendDate = ISNULL(MAX([EndDate]), GETDATE()) FROM [dbo].[ecSvcsUsageLog] + WHERE [ServiceID] = @ServiceID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetServicesToInvoice] + @ActorID int, + @ResellerID int, + @TodayDate datetime, + @DaysOffset int +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + + SET NOCOUNT ON; + + DECLARE @Svcs TABLE( + [ServiceID] int NOT NULL, + [MaxStartDate] datetime NOT NULL, + [MaxEndDate] datetime NOT NULL + ); + + -- filter service that don't have corresponding unpaid invoice and expired + INSERT INTO + @Svcs ([ServiceID], [MaxStartDate], [MaxEndDate]) + SELECT + [SUL].[ServiceID], MAX([SUL].[StartDate]), MAX([SUL].[EndDate]) FROM [dbo].[ecSvcsUsageLog] AS [SUL] + INNER JOIN + [dbo].[ecService] AS [S] ON [SUL].[ServiceID] = [S].[ServiceID] + INNER JOIN + [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [S].[ContractID] + WHERE + [C].[ResellerID] = @ResellerID + AND + ISNULL([SUL].[PeriodClosed], 0) = 0 + GROUP BY + [SUL].[ServiceID]; + + SELECT + [S].* FROM [dbo].[ecService] AS [S] + INNER JOIN + @Svcs AS [SVCS] ON [S].[ServiceID] = [SVCS].[ServiceID] + WHERE + [S].[Status] = 1 AND @DaysOffset >= DATEDIFF(d, @TodayDate, [SVCS].[MaxEndDate]) + ORDER BY + [ContractID]; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetProductHighlights] + @ResellerID int, + @ProductID int +AS +BEGIN + + SELECT + [PH].[HighlightText] + FROM + [dbo].[ecProductsHighlights] AS [PH] + INNER JOIN + [dbo].[ecProduct] AS [P] + ON + [PH].[ProductID] = [P].[ProductID] + WHERE + [P].[ProductID] = @ProductID + AND + [P].[ResellerID] = @ResellerID + ORDER BY + [SortOrder]; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetProductCategoriesIds] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT [CategoryID] FROM [dbo].[ecProductCategories] WHERE [ResellerID] = @UserID AND [ProductID] = @ProductID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetProductCategories] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT + [C].* + FROM + [dbo].[ecCategories] AS [C] + INNER JOIN + [dbo].[ecProductCategories] AS [PC] + ON + [C].[CategoryID] = [PC].[CategoryID] + WHERE + [PC].[ProductID] = @ProductID + AND + [PC].[ResellerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetHostingPlansTaken] + @ActorID int, + @UserID int +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + + SELECT [PlanID] FROM [dbo].[ecHostingPlans] WHERE [ResellerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetHostingPlanCycles] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT + [BC].*, [HPC].[ProductID], [HPC].[SetupFee], [HPC].[RecurringFee] FROM [dbo].[ecHostingPlansBillingCycles] AS [HPC] + INNER JOIN + [dbo].[ecBillingCycles] AS [BC] ON [BC].[CycleID] = [HPC].[CycleID] + INNER JOIN + [dbo].[ecProduct] AS [PR] ON [HPC].[ProductID] = [PR].[ProductID] + WHERE + [PR].[ResellerID] = @UserID AND [HPC].[ProductID] = @ProductID + ORDER BY + [HPC].[SortOrder]; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetHostingPlan] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT + [PR].*, + [HP].[PlanID], + [HP].[UserRole], + [HP].[InitialStatus], + [HP].[DomainOption] + FROM + [dbo].[ecHostingPlans] AS [HP] + INNER JOIN + [dbo].[ecProduct] AS [PR] + ON + [PR].[ProductID] = [HP].[ProductID] + WHERE + [HP].[ResellerID] = @UserID + AND + [HP].[ProductID] = @ProductID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetHostingPackageSvcHistory] + @ActorID int, + @ServiceID int +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecService] + WHERE + [ServiceID] = @ServiceID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + [HPC].[CycleName], + [HPC].[BillingPeriod], + [HPC].[PeriodLength], + [HPC].[SetupFee], + [HPC].[RecurringFee], + [HPC].[Currency], + [SUL].[StartDate], + [SUL].[EndDate] + FROM + [dbo].[ecHostingPackageSvcsCycles] AS [HPC] + INNER JOIN + [dbo].[ecSvcsUsageLog] AS [SUL] + ON + [SUL].[ServiceID] = [HPC].[ServiceID] + AND + [SUL].[SvcCycleID] = [HPC].[SvcCycleID] + WHERE + [HPC].[ServiceID] = @ServiceID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetHostingPackageSvc] + @ActorID int, + @ServiceID int +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecService] + WHERE + [ServiceID] = @ServiceID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + + -- + SET NOCOUNT ON; + + SELECT + [SVC].*, + [HPSVC].[ProductID], + [HPSVC].[PlanID], + [HPSVC].[PackageID], + [HPSVC].[UserRole], + [HPSVC].[InitialStatus], + [HPSVC].[SvcCycleID], + [HPSC].[CycleName], + [HPSC].[BillingPeriod], + [HPSC].[PeriodLength], + [HPSC].[SetupFee], + [HPSC].[RecurringFee], + [HPSC].[Currency] + FROM + [dbo].[ecService] AS [SVC] + INNER JOIN + [dbo].[ecHostingPackageSvcs] AS [HPSVC] + ON + [HPSVC].[ServiceID] = [SVC].[ServiceID] + INNER JOIN + [dbo].[ecHostingPackageSvcsCycles] AS [HPSC] + ON + [HPSC].[SvcCycleID] = [HPSVC].[SvcCycleID] + WHERE + [SVC].[ServiceID] = @ServiceID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetHostingAddonSvcHistory] + @ActorID int, + @ServiceID int +AS +BEGIN + DECLARE @IssuerID int, @ContractID nvarchar(50); + SELECT + @ContractID = [ContractID] FROM [dbo].[ecService] + WHERE + [ServiceID] = @ServiceID; + SELECT + @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0 + BEGIN + RAISERROR('You are not allowed to access this information', 16, 1); + RETURN; + END + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + [HAC].[CycleName], + [HAC].[BillingPeriod], + [HAC].[PeriodLength], + [HAC].[SetupFee], + [HAC].[CyclePrice] AS [RecurringFee], + [HAC].[Currency], + [SUL].[StartDate], + [SUL].[EndDate] + FROM + [dbo].[ecHostingAddonSvcsCycles] AS [HAC] + INNER JOIN + [dbo].[ecSvcsUsageLog] AS [SUL] + ON + [SUL].[ServiceID] = [HAC].[ServiceID] + AND + [SUL].[SvcCycleID] = [HAC].[SvcCycleID] + WHERE + [HAC].[ServiceID] = @ServiceID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetAddonProductsIds] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT + [P].[ProductID] + FROM + [dbo].[ecProduct] AS [P] + INNER JOIN [dbo].[ecAddonProducts] AS [ATP] + ON [P].[ProductID] = [ATP].[ProductID] + WHERE + [ATP].[AddonID] = @ProductID + AND + [P].[ResellerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetAddonProducts] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT + [P].* + FROM + [dbo].[ecProduct] AS [P] + INNER JOIN [dbo].[ecAddonProducts] AS [ATP] + ON [P].[ProductID] = [ATP].[ProductID] + WHERE + [ATP].[AddonID] = @ProductID + AND + [P].[ResellerID] = @UserID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecDeleteProduct] + @ActorID int, + @UserID int, + @ProductID int, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + +BEGIN TRAN RMV_PRODUCT + -- remove product + DELETE FROM [dbo].[ecProduct] WHERE [ProductID] = @ProductID AND [ResellerID] = @UserID; + -- check errors + IF @@ERROR <> 0 + GOTO ERROR_HANDLE; + -- workaround for cyclic cascades + DELETE FROM [dbo].[ecAddonProducts] WHERE [ProductID] = @ProductID AND [ResellerID] = @UserID; + -- check errors + IF @@ERROR <> 0 + GOTO ERROR_HANDLE; + -- set result ok + SET @Result = 0; + -- commit actions + COMMIT TRAN RMV_PRODUCT; + -- exit routine + RETURN; + +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN RMV_PRODUCT; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[AddIPAddress] +( + @AddressID int OUTPUT, + @ServerID int, + @ExternalIP varchar(24), + @InternalIP varchar(24), + @PoolID int, + @SubnetMask varchar(15), + @DefaultGateway varchar(15), + @Comments ntext +) +AS +BEGIN + IF @ServerID = 0 + SET @ServerID = NULL + + INSERT INTO IPAddresses (ServerID, ExternalIP, InternalIP, PoolID, SubnetMask, DefaultGateway, Comments) + VALUES (@ServerID, @ExternalIP, @InternalIP, @PoolID, @SubnetMask, @DefaultGateway, @Comments) + + SET @AddressID = SCOPE_IDENTITY() + + RETURN +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddDomainNameSvc] + @ContractID nvarchar(50), + @ParentID int, + @ProductID int, + @FQDN nvarchar(64), + @CycleID int, + @Currency nvarchar(10), + @PropertyNames ntext, + @PropertyValues ntext, + @Result int OUTPUT +AS +BEGIN + DECLARE @ResellerID int; + SELECT + @ResellerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + +BEGIN TRAN ADD_TLD_SVC + -- add service + INSERT INTO [dbo].[ecService] + ([ContractID], [ParentID], [ServiceName], [TypeID], [Status], [Created]) + VALUES + (@ContractID, @ParentID, @FQDN, 3, 0, GETDATE()); + -- check error + IF @@ERROR <> 0 + GOTO ERROR_HANDLE; + -- obtain result + SET @Result = SCOPE_IDENTITY(); + + -- if product and cycle are defined + IF @ProductID > 0 OR @CycleID > 0 + BEGIN + DECLARE @SvcCycleID int; + -- insert svc life-cycle + INSERT INTO [dbo].[ecDomainSvcsCycles] + ( + [ServiceID], + [CycleName], + [BillingPeriod], + [PeriodLength], + [SetupFee], + [RecurringFee], + [Currency] + ) + SELECT + @Result, + [BC].[CycleName], + [BC].[BillingPeriod], + [BC].[PeriodLength], + [TLDC].[SetupFee], + [TLDC].[RecurringFee], + @Currency + FROM + [dbo].[ecTopLevelDomainsCycles] AS [TLDC] + INNER JOIN + [dbo].[ecBillingCycles] AS [BC] + ON + [BC].[CycleID] = [TLDC].[CycleID] + WHERE + [TLDC].[CycleID] = @CycleID + AND + [TLDC].[ProductID] = @ProductID + AND + [BC].[ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + -- obtain result + SET @SvcCycleID = SCOPE_IDENTITY(); + + -- add domain details + INSERT INTO [dbo].[ecDomainSvcs] + ( + [ServiceID], + [ProductID], + [PluginID], + [FQDN], + [SvcCycleID], + [PropertyNames], + [PropertyValues] + ) + SELECT + @Result, + @ProductID, + [PluginID], + @FQDN, + @SvcCycleID, + @PropertyNames, + @PropertyValues + FROM + [dbo].[ecTopLevelDomains] + WHERE + [ProductID] = @ProductID + AND + [ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + END + ELSE + BEGIN + INSERT INTO [dbo].[ecDomainSvcs] + ( + [ServiceID], + [ProductID], + [FQDN], + [SvcCycleID], + [PropertyNames], + [PropertyValues] + ) + SELECT @Result, NULL, @FQDN, NULL, @PropertyNames, @PropertyValues; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + END + + -- commit + COMMIT TRAN ADD_TLD_SVC; + -- exit + RETURN; + +-- error handler +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN ADD_TLD_SVC; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetRawServicesByServerID +( + @ActorID int, + @ServerID int +) +AS + +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +-- resource groups +SELECT + GroupID, + GroupName +FROM ResourceGroups +WHERE @IsAdmin = 1 +ORDER BY GroupOrder + +-- services +SELECT + S.ServiceID, + S.ServerID, + S.ServiceName, + S.Comments, + RG.GroupID, + PROV.DisplayName AS ProviderName +FROM Services AS S +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +WHERE + S.ServerID = @ServerID + AND @IsAdmin = 1 +ORDER BY RG.GroupOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetQuotas +AS +SELECT + Q.GroupID, + Q.QuotaID, + RG.GroupName, + Q.QuotaDescription, + Q.QuotaTypeID +FROM Quotas AS Q +INNER JOIN ResourceGroups AS RG ON Q.GroupID = RG.GroupID +ORDER BY RG.GroupOrder, Q.QuotaOrder +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetProviderServiceQuota +( + @ProviderID int +) +AS + +SELECT TOP 1 + Q.QuotaID, + Q.GroupID, + Q.QuotaName, + Q.QuotaDescription, + Q.QuotaTypeID, + Q.ServiceQuota +FROM Providers AS P +INNER JOIN Quotas AS Q ON P.GroupID = Q.GroupID +WHERE P.ProviderID = @ProviderID AND Q.ServiceQuota = 1 + + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetTopLevelDomainsPaged] + @ActorID int, + @UserID int, + @MaximumRows int, + @StartRowIndex int +AS +BEGIN + DECLARE @EndIndex int; SET @EndIndex = @MaximumRows + @StartRowIndex; SET @StartRowIndex = @StartRowIndex + 1; - IF @IsReseller = 1 - BEGIN - WITH [SERVICES] AS ( - SELECT - ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsServicesDetailed] - WHERE - [ResellerID] = @UserID - ) - + WITH [TldsCTE] AS ( SELECT - * FROM [SERVICES] + ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], + * + FROM + [dbo].[ecProduct] WHERE - [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [Created] DESC; - -- exit - RETURN; - END; - - WITH [SERVICES] AS ( - SELECT - ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex], * FROM [dbo].[ContractsServicesDetailed] - WHERE - [CustomerID] = @UserID + [ResellerID] = @UserID + AND + [TypeID] = 3 -- Top Level Domain ) - SELECT - * FROM [SERVICES] + SELECT + [TldsCTE].*, + [Tlds].[PluginId], + [PLG].[DisplayName] + FROM + [TldsCTE] + INNER JOIN + [dbo].[ecTopLevelDomains] AS [Tlds] + ON + [Tlds].[ProductID] = [TldsCTE].[ProductID] + INNER JOIN + [dbo].[ecSupportedPlugins] AS [PLG] + ON + [PLG].[PluginID] = [Tlds].[PluginID] WHERE - [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [Created] DESC; - + [TldsCTE].[RowIndex] BETWEEN @StartRowIndex AND @EndIndex; + END @@ -42335,6 +40530,15 @@ END + + + + + + + + + @@ -42370,35 +40574,1071 @@ GO -CREATE PROCEDURE [dbo].[ecGetCustomersServicesCount] +CREATE PROCEDURE [dbo].[ecGetTopLevelDomainCycles] + @UserID int, + @ProductID int +AS +BEGIN + + SELECT + [BC].*, + [TLDC].[ProductID], + [TLDC].[SetupFee], + [TLDC].[RecurringFee], + [TLDC].[TransferFee] + FROM + [dbo].[ecTopLevelDomainsCycles] AS [TLDC] + INNER JOIN + [dbo].[ecBillingCycles] AS [BC] + ON + [BC].[CycleID] = [TLDC].[CycleID] + INNER JOIN + [dbo].[ecProduct] AS [PR] + ON + [TLDC].[ProductID] = [PR].[ProductID] + WHERE + [PR].[ResellerID] = @UserID + AND + [TLDC].[ProductID] = @ProductID + ORDER BY + [TLDC].[SortOrder]; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetTopLevelDomain] @ActorID int, @UserID int, - @IsReseller bit, + @ProductID int +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + + SELECT + [P].*, + [Tlds].[PluginID], + [Tlds].[WhoisEnabled], + [PLG].[DisplayName] + FROM + [dbo].[ecProduct] AS [P] + INNER JOIN + [dbo].[ecTopLevelDomains] AS [Tlds] + ON + [Tlds].[ProductID] = [P].[ProductID] + INNER JOIN + [dbo].[ecSupportedPlugins] AS [PLG] + ON + [PLG].[PluginID] = [Tlds].[PluginID] + WHERE + [P].[ResellerID] = @UserID + AND + [P].[ProductID] = @ProductID; + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecGetSvcsSuspendDateAligned] + @ResellerID int, + @SvcsXml xml, + @DefaultValue datetime, + @Result datetime OUTPUT +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + SELECT + @Result = MAX([SUL].[EndDate]) FROM [dbo].[ecSvcsUsageLog] AS [SUL] + INNER JOIN + [dbo].[ecService] AS [S] ON [SUL].[ServiceID] = [S].[ServiceID] + INNER JOIn + [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [S].[ContractID] + WHERE + [C].[ResellerID] = @ResellerID + AND + [S].[ServiceID] IN (SELECT [SXML].[Data].value('@id','int') FROM @SvcsXml.nodes('/Svcs/Svc') [SXML]([Data])); + + -- result is empty + SET @Result = ISNULL(@Result, @DefaultValue); + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + +CREATE PROCEDURE [dbo].[GetService] +( + @ActorID int, + @ServiceID int +) +AS + +SELECT + ServiceID, + Services.ServerID, + ProviderID, + ServiceName, + ServiceQuotaValue, + ClusterID, + Services.Comments, + Servers.ServerName +FROM Services INNER JOIN Servers ON Services.ServerID = Servers.ServerID +WHERE + ServiceID = @ServiceID + +RETURN + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetProviderByServiceID +( + @ServiceID int +) +AS +SELECT + P.ProviderID, + P.GroupID, + P.DisplayName, + P.EditorControl, + P.ProviderType +FROM Services AS S +INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID +WHERE + S.ServiceID = @ServiceID + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServers +( + @ActorID int +) +AS +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + S.ServerID, + S.ServerName, + S.ServerUrl, + (SELECT COUNT(SRV.ServiceID) FROM Services AS SRV WHERE S.ServerID = SRV.ServerID) AS ServicesNumber, + S.Comments, + PrimaryGroupID, + S.ADEnabled +FROM Servers AS S +WHERE VirtualServer = 0 +AND @IsAdmin = 1 +ORDER BY S.ServerName + +-- services +SELECT + S.ServiceID, + S.ServerID, + S.ProviderID, + S.ServiceName, + S.Comments +FROM Services AS S +INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID +INNER JOIN ResourceGroups AS RG ON P.GroupID = RG.GroupID +WHERE @IsAdmin = 1 +ORDER BY RG.GroupOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServicesByServerIDGroupName +( + @ActorID int, + @ServerID int, + @GroupName nvarchar(50) +) +AS + +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + S.ServiceID, + S.ServerID, + S.ServiceName, + S.Comments, + S.ServiceQuotaValue, + RG.GroupName, + PROV.DisplayName AS ProviderName +FROM Services AS S +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +WHERE + S.ServerID = @ServerID AND RG.GroupName = @GroupName + AND @IsAdmin = 1 +ORDER BY RG.GroupOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServicesByServerID +( + @ActorID int, + @ServerID int +) +AS + +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + + +SELECT + S.ServiceID, + S.ServerID, + S.ServiceName, + S.Comments, + S.ServiceQuotaValue, + RG.GroupName, + S.ProviderID, + PROV.DisplayName AS ProviderName +FROM Services AS S +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +WHERE + S.ServerID = @ServerID + AND @IsAdmin = 1 +ORDER BY RG.GroupOrder + +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + +CREATE PROCEDURE [dbo].[GetServicesByGroupName] +( + @ActorID int, + @GroupName nvarchar(100) +) +AS +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + S.ServiceID, + S.ServiceName, + S.ServerID, + S.ServiceQuotaValue, + SRV.ServerName, + S.ProviderID, + PROV.ProviderName, + S.ServiceName + ' on ' + SRV.ServerName AS FullServiceName +FROM Services AS S +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +INNER JOIN ResourceGroups AS RG ON PROV.GroupID = RG.GroupID +WHERE + RG.GroupName = @GroupName + AND @IsAdmin = 1 +RETURN + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE GetServicesByGroupID +( + @ActorID int, + @GroupID int +) +AS +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + S.ServiceID, + S.ServiceName, + S.ServerID, + S.ServiceQuotaValue, + SRV.ServerName, + S.ProviderID, + S.ServiceName+' on '+SRV.ServerName AS FullServiceName +FROM Services AS S +INNER JOIN Providers AS PROV ON S.ProviderID = PROV.ProviderID +INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +WHERE + PROV.GroupID = @GroupID + AND @IsAdmin = 1 +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddServiceUsageRecord] + @ActorID int, + @ServiceID int, + @SvcCycleID int, + @StartDate datetime, + @EndDate datetime, @Result int OUTPUT AS BEGIN - -- check user parent - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - RAISERROR('You are not allowed to access this information', 16, 1); - RETURN; - END - + + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. SET NOCOUNT ON; - IF @IsReseller = 1 + SET @Result = 0; + + INSERT INTO [dbo].[ecSvcsUsageLog] + ( + [ServiceID], + [SvcCycleID], + [StartDate], + [EndDate] + ) + VALUES + ( + @ServiceID, + @SvcCycleID, + @StartDate, + @EndDate + ); + +END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecUpdateTopLevelDomain] + @ActorID int, + @UserID int, + @ProductID int, + @TopLevelDomain nvarchar(10), + @ProductSku nvarchar(50), + @TaxInclusive bit, + @PluginID int, + @Enabled bit, + @WhoisEnabled bit, + @DomainCyclesXml xml, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 BEGIN - SELECT - @Result = COUNT([ServiceID]) FROM [dbo].[ContractsServicesDetailed] - WHERE - [ResellerID] = @UserID; + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); RETURN; END - - SELECT - @Result = COUNT([ServiceID]) FROM [dbo].[ContractsServicesDetailed] + +BEGIN TRAN UPDATE_DOMAIN + -- insert product first + UPDATE + [dbo].[ecProduct] + SET + [ProductName] = @TopLevelDomain, + [ProductSKU] = @ProductSku, + [Enabled] = @Enabled, + [TaxInclusive] = @TaxInclusive WHERE - [CustomerID] = @UserID; + [ResellerID] = @UserID + AND + [ProductID] = @ProductID; + + -- save top level domain details + UPDATE + [dbo].[ecTopLevelDomains] + SET + [TopLevelDomain] = @TopLevelDomain, + [PluginID] = @PluginID, + [WhoisEnabled] = @WhoisEnabled + WHERE + [ResellerID] = @UserID + AND + [ProductID] = @ProductID; + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END + +/* +XML Format: + + + + +*/ + -- cleanup cycles + DELETE FROM [dbo].[ecTopLevelDomainsCycles] WHERE [ProductID] = @ProductID; + -- insert cycles + INSERT INTO [dbo].[ecTopLevelDomainsCycles] + ( + [ProductID], + [CycleID], + [SetupFee], + [RecurringFee], + [TransferFee], + [SortOrder] + ) + SELECT + @ProductID, + [SXML].[Data].value('@ID','int'), + [SXML].[Data].value('@SetupFee','money'), + [SXML].[Data].value('@RecurringFee','money'), + [SXML].[Data].value('@TransferFee','money'), + [SXML].[Data].value('@SortOrder','int') + FROM @DomainCyclesXml.nodes('/DomainCycles/Cycle') [SXML]([Data]); + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END + -- + SET @Result = 0; + -- + COMMIT TRAN UPDATE_DOMAIN; + -- + RETURN; + +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN UPDATE_DOMAIN; + RETURN; +END END @@ -42407,6 +41647,476 @@ END + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdateVirtualGroups +( + @ServerID int, + @Xml ntext +) +AS + + +/* +XML Format: + + + + + +*/ + +BEGIN TRAN +DECLARE @idoc int +--Create an internal representation of the XML document. +EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + +-- delete old virtual groups +DELETE FROM VirtualGroups +WHERE ServerID = @ServerID + +-- update HP resources +INSERT INTO VirtualGroups +( + ServerID, + GroupID, + DistributionType, + BindDistributionToPrimary +) +SELECT + @ServerID, + GroupID, + DistributionType, + BindDistributionToPrimary +FROM OPENXML(@idoc, '/groups/group',1) WITH +( + GroupID int '@id', + DistributionType int '@distributionType', + BindDistributionToPrimary bit '@bindDistributionToPrimary' +) as XRG + +-- remove document +exec sp_xml_removedocument @idoc + +COMMIT TRAN +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddTopLevelDomain] + @ActorID int, + @UserID int, + @TopLevelDomain nvarchar(10), + @ProductSku nvarchar(50), + @TaxInclusive bit, + @PluginID int, + @Enabled bit, + @WhoisEnabled bit, + @DomainCyclesXml xml, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + +BEGIN TRAN ADD_DOMAIN + -- insert product first + INSERT INTO [dbo].[ecProduct] + ( + [ProductName], + [ProductSKU], + [TypeID], + [Description], + [Created], + [Enabled], + [ResellerID], + [TaxInclusive] + ) + VALUES + ( + @TopLevelDomain, + @ProductSku, + 3, -- Domain Name type + NULL, + GETDATE(), + @Enabled, + @UserID, + @TaxInclusive + ); + + -- set product id created + SET @Result = SCOPE_IDENTITY(); + + -- save top level domain details + INSERT INTO [dbo].[ecTopLevelDomains] + ( + [ProductID], + [ResellerID], + [TopLevelDomain], + [PluginID], + [WhoisEnabled] + ) + VALUES + ( + @Result, + @UserID, + @TopLevelDomain, + @PluginID, + @WhoisEnabled + ); + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END + +/* +XML Format: + + + + +*/ + -- insert cycles + INSERT INTO [dbo].[ecTopLevelDomainsCycles] + ( + [ProductID], + [CycleID], + [SetupFee], + [RecurringFee], + [TransferFee], + [SortOrder] + ) + SELECT + @Result, + [SXML].[Data].value('@ID','int'), + [SXML].[Data].value('@SetupFee','money'), + [SXML].[Data].value('@RecurringFee','money'), + [SXML].[Data].value('@TransferFee','money'), + [SXML].[Data].value('@SortOrder','int') + FROM @DomainCyclesXml.nodes('/DomainCycles/Cycle') [SXML]([Data]); + -- check errors + IF @@ERROR <> 0 + GOTO ERROR_HANDLE; + -- + COMMIT TRAN ADD_DOMAIN; + -- + RETURN; + +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN ADD_DOMAIN; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE DeleteCluster +( + @ClusterID int +) +AS + +-- reset cluster in services +UPDATE Services +SET ClusterID = NULL +WHERE ClusterID = @ClusterID + +-- delete cluster +DELETE FROM Clusters +WHERE ClusterID = @ClusterID +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE UpdateService +( + @ServiceID int, + @ServiceName nvarchar(50), + @Comments ntext, + @ServiceQuotaValue int, + @ClusterID int +) +AS + +IF @ClusterID = 0 SET @ClusterID = NULL + +UPDATE Services +SET + ServiceName = @ServiceName, + ServiceQuotaValue = @ServiceQuotaValue, + Comments = @Comments, + ClusterID = @ClusterID +WHERE ServiceID = @ServiceID + +RETURN + + + + + + + + + + + + + + + + + + + + @@ -42551,6 +42261,7 @@ END + GO @@ -42729,6 +42440,7 @@ END + GO @@ -42851,6 +42563,7 @@ END + GO SET ANSI_NULLS ON @@ -42877,222 +42590,202 @@ GO -CREATE PROCEDURE [dbo].[ecUpdateTopLevelDomain] - @ActorID int, - @UserID int, +CREATE PROCEDURE [dbo].[ecAddHostingPlanSvc] + @ContractID nvarchar(50), @ProductID int, - @TopLevelDomain nvarchar(10), - @ProductSku nvarchar(50), - @TaxInclusive bit, - @PluginID int, - @Enabled bit, - @WhoisEnabled bit, - @DomainCyclesXml xml, + @PlanName nvarchar(255), + @CycleID int, + @Currency nvarchar(10), @Result int OUTPUT AS BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -BEGIN TRAN UPDATE_DOMAIN - -- insert product first - UPDATE - [dbo].[ecProduct] - SET - [ProductName] = @TopLevelDomain, - [ProductSKU] = @ProductSku, - [Enabled] = @Enabled, - [TaxInclusive] = @TaxInclusive - WHERE - [ResellerID] = @UserID - AND - [ProductID] = @ProductID; - - -- save top level domain details - UPDATE - [dbo].[ecTopLevelDomains] - SET - [TopLevelDomain] = @TopLevelDomain, - [PluginID] = @PluginID, - [WhoisEnabled] = @WhoisEnabled - WHERE - [ResellerID] = @UserID - AND - [ProductID] = @ProductID; - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END - -/* -XML Format: - - - - -*/ - -- cleanup cycles - DELETE FROM [dbo].[ecTopLevelDomainsCycles] WHERE [ProductID] = @ProductID; - -- insert cycles - INSERT INTO [dbo].[ecTopLevelDomainsCycles] - ( - [ProductID], - [CycleID], - [SetupFee], - [RecurringFee], - [TransferFee], - [SortOrder] - ) + DECLARE @ResellerID int; SELECT - @ProductID, - [SXML].[Data].value('@ID','int'), - [SXML].[Data].value('@SetupFee','money'), - [SXML].[Data].value('@RecurringFee','money'), - [SXML].[Data].value('@TransferFee','money'), - [SXML].[Data].value('@SortOrder','int') - FROM @DomainCyclesXml.nodes('/DomainCycles/Cycle') [SXML]([Data]); - -- check errors - IF @@ERROR <> 0 - BEGIN - GOTO ERROR_HANDLE; - END - -- - SET @Result = 0; - -- - COMMIT TRAN UPDATE_DOMAIN; - -- - RETURN; + @ResellerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; -ERROR_HANDLE: -BEGIN - SET @Result = -1; - ROLLBACK TRAN UPDATE_DOMAIN; - RETURN; -END - -END - - - - - - - - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[ecAddTopLevelDomain] - @ActorID int, - @UserID int, - @TopLevelDomain nvarchar(10), - @ProductSku nvarchar(50), - @TaxInclusive bit, - @PluginID int, - @Enabled bit, - @WhoisEnabled bit, - @DomainCyclesXml xml, - @Result int OUTPUT -AS -BEGIN - -- check actor user rights - IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 - BEGIN - SET @Result = -1; - RAISERROR('You are not allowed to access this account', 16, 1); - RETURN; - END - -BEGIN TRAN ADD_DOMAIN - -- insert product first - INSERT INTO [dbo].[ecProduct] - ( - [ProductName], - [ProductSKU], - [TypeID], - [Description], - [Created], - [Enabled], - [ResellerID], - [TaxInclusive] - ) +BEGIN TRAN ADD_HPLAN_SVC + -- add service + INSERT INTO [dbo].[ecService] + ([ContractID], [ServiceName], [TypeID], [Status], [Created]) VALUES - ( - @TopLevelDomain, - @ProductSku, - 3, -- Domain Name type - NULL, - GETDATE(), - @Enabled, - @UserID, - @TaxInclusive - ); - - -- set product id created + (@ContractID, @PlanName, 1, 0, GETDATE()); + -- check error + IF @@ERROR <> 0 + GOTO ERROR_HANDLE; + -- obtain result SET @Result = SCOPE_IDENTITY(); - -- save top level domain details - INSERT INTO [dbo].[ecTopLevelDomains] + DECLARE @SvcCycleID int; + -- insert svc life-cycle + INSERT INTO [dbo].[ecHostingPackageSvcsCycles] ( - [ProductID], - [ResellerID], - [TopLevelDomain], - [PluginID], - [WhoisEnabled] + [ServiceID], + [CycleName], + [BillingPeriod], + [PeriodLength], + [SetupFee], + [RecurringFee], + [Currency] ) - VALUES - ( + SELECT @Result, - @UserID, - @TopLevelDomain, - @PluginID, - @WhoisEnabled - ); + [BC].[CycleName], + [BC].[BillingPeriod], + [BC].[PeriodLength], + [HPBC].[SetupFee], + [HPBC].[RecurringFee], + @Currency + FROM + [dbo].[ecHostingPlansBillingCycles] AS [HPBC] + INNER JOIN + [dbo].[ecBillingCycles] AS [BC] + ON + [BC].[CycleID] = [HPBC].[CycleID] + WHERE + [HPBC].[CycleID] = @CycleID + AND + [HPBC].[ProductID] = @ProductID + AND + [BC].[ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + -- obtain result + SET @SvcCycleID = SCOPE_IDENTITY(); + + -- add plan details + INSERT INTO [dbo].[ecHostingPackageSvcs] + ( + [ServiceID], + [ProductID], + [PlanID], + [UserRole], + [InitialStatus], + [SvcCycleID] + ) + SELECT + @Result, + @ProductID, + [PlanID], + [UserRole], + [InitialStatus], + @SvcCycleID + FROM + [dbo].[ecHostingPlans] + WHERE + [ProductID] = @ProductID + AND + [ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + + + -- commit tran + COMMIT TRAN ADD_HPLAN_SVC; + -- exit + RETURN; +-- error handler +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN ADD_HPLAN_SVC; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddHostingPlan] + @ActorID int, + @UserID int, + @PlanName nvarchar(255), + @ProductSku nvarchar(50), + @TaxInclusive bit, + @PlanID int, + @UserRole int, + @InitialStatus int, + @DomainOption int, + @Enabled bit, + @PlanDescription ntext, + @PlanCyclesXml xml, + @PlanHighlightsXml xml, + @PlanCategoriesXml xml, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + +BEGIN TRAN ADD_PLAN + -- insert product first + INSERT INTO [dbo].[ecProduct] + ([ProductName], [ProductSKU], [TypeID], [TaxInclusive], [Description], [Created], [Enabled], [ResellerID]) + VALUES + (@PlanName, @ProductSku, 1, @TaxInclusive, @PlanDescription, GETDATE(), @Enabled, @UserID); + -- set product id created + SET @Result = SCOPE_IDENTITY(); + -- save hosting plan details + INSERT INTO [dbo].[ecHostingPlans] + ([ProductID], [ResellerID], [PlanID], [UserRole], [InitialStatus], [DomainOption]) + VALUES + (@Result, @UserID, @PlanID, @UserRole, @InitialStatus, @DomainOption); -- check errors IF @@ERROR <> 0 BEGIN @@ -43102,40 +42795,65 @@ BEGIN TRAN ADD_DOMAIN /* XML Format: - - - + + + */ -- insert cycles - INSERT INTO [dbo].[ecTopLevelDomainsCycles] - ( - [ProductID], - [CycleID], - [SetupFee], - [RecurringFee], - [TransferFee], - [SortOrder] - ) + INSERT INTO [dbo].[ecHostingPlansBillingCycles] + ([ProductID], [CycleID], [SetupFee], [RecurringFee], [SortOrder]) SELECT - @Result, - [SXML].[Data].value('@ID','int'), - [SXML].[Data].value('@SetupFee','money'), - [SXML].[Data].value('@RecurringFee','money'), - [SXML].[Data].value('@TransferFee','money'), - [SXML].[Data].value('@SortOrder','int') - FROM @DomainCyclesXml.nodes('/DomainCycles/Cycle') [SXML]([Data]); + @Result, [SXML].[Data].value('@ID','int'), [SXML].[Data].value('@SetupFee','money'), + [SXML].[Data].value('@RecurringFee','money'), [SXML].[Data].value('@SortOrder','int') + FROM @PlanCyclesXml.nodes('/PlanCycles/Cycle') [SXML]([Data]) + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END + +/* +XML Format: + + + + +*/ + -- insert cycles + INSERT INTO [dbo].[ecProductsHighlights] + ([ProductID], [HighlightText], [SortOrder]) + SELECT + @Result, [SXML].[Data].value('@Text','nvarchar(255)'), [SXML].[Data].value('@SortOrder','int') + FROM @PlanHighlightsXml.nodes('/PlanHighlights/Item') [SXML]([Data]) + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END +/* +XML Format: + + + + +*/ + -- insert categories + INSERT INTO [dbo].[ecProductCategories] + ([ProductID], [CategoryID], [ResellerID]) + SELECT + @Result, [SXML].[Data].value('@ID','int'), @UserID FROM @PlanCategoriesXml.nodes('/PlanCategories/Category') [SXML]([Data]) -- check errors IF @@ERROR <> 0 GOTO ERROR_HANDLE; - -- - COMMIT TRAN ADD_DOMAIN; - -- + -- commit changes + COMMIT TRAN ADD_PLAN; + -- return result RETURN; ERROR_HANDLE: BEGIN SET @Result = -1; - ROLLBACK TRAN ADD_DOMAIN; + ROLLBACK TRAN ADD_PLAN; RETURN; END @@ -43148,6 +42866,777 @@ END + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddHostingAddonSvc] + @ContractID nvarchar(50), + @ParentID int, + @ProductID int, + @Quantity int, + @AddonName nvarchar(255), + @CycleID int, + @Currency nvarchar(10), + @Result int OUTPUT +AS +BEGIN + DECLARE @ResellerID int; + SELECT + @ResellerID = [ResellerID] FROM [dbo].[ecContracts] + WHERE + [ContractID] = @ContractID; + +BEGIN TRAN ADD_ADDON_SVC + -- + INSERT INTO [dbo].[ecService] + ([ContractID], [ParentID], [ServiceName], [TypeID], [Status], [Created]) + VALUES + (@ContractID, @ParentID, @AddonName, 2, 0, GETDATE()); + -- obtain result + SET @Result = SCOPE_IDENTITY(); + + DECLARE @SvcCycleID int; + -- insert svc life-cycle + IF @CycleID > 0 + BEGIN + INSERT INTO [dbo].[ecHostingAddonSvcsCycles] + ( + [ServiceID], + [CycleName], + [BillingPeriod], + [PeriodLength], + [SetupFee], + [CyclePrice], + [Currency] + ) + SELECT + @Result, + [BC].[CycleName], + [BC].[BillingPeriod], + [BC].[PeriodLength], + [HAC].[SetupFee], + [HAC].[RecurringFee], + @Currency + FROM + [dbo].[ecHostingAddonsCycles] AS [HAC] + INNER JOIN + [dbo].[ecBillingCycles] AS [BC] + ON + [BC].[CycleID] = [HAC].[CycleID] + WHERE + [HAC].[CycleID] = @CycleID + AND + [HAC].[ProductID] = @ProductID + AND + [BC].[ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + -- obtain result + SET @SvcCycleID = SCOPE_IDENTITY(); + END + ELSE + BEGIN + INSERT INTO [dbo].[ecHostingAddonSvcsCycles] + ( + [ServiceID], + [CycleName], + [BillingPeriod], + [PeriodLength], + [SetupFee], + [CyclePrice], + [Currency] + ) + SELECT + @Result, + NULL, + NULL, + NULL, + [SetupFee], + [OneTimeFee], + @Currency + FROM + [dbo].[ecHostingAddons] + WHERE + [ProductID] = @ProductID + AND + [ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + -- obtain result + SET @SvcCycleID = SCOPE_IDENTITY(); + END + + -- insert addon svc details + INSERT INTO [dbo].[ecHostingAddonSvcs] + ( + [ServiceID], + [ProductID], + [PlanID], + [Quantity], + [Recurring], + [DummyAddon], + [SvcCycleID] + ) + SELECT + @Result, + @ProductID, + [PlanID], + @Quantity, + [Recurring], + [DummyAddon], + @SvcCycleID + FROM + [dbo].[ecHostingAddons] + WHERE + [ProductID] = @ProductID + AND + [ResellerID] = @ResellerID; + -- check error + IF @@ROWCOUNT = 0 + GOTO ERROR_HANDLE; + + -- commit tran + COMMIT TRAN ADD_ADDON_SVC; + -- exit + RETURN; +-- error handler +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN ADD_ADDON_SVC; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[ecAddHostingAddon] + @ActorID int, + @UserID int, + @AddonName nvarchar(255), + @ProductSku nvarchar(50), + @TaxInclusive bit, + @Enabled bit, + @PlanID int, + @Recurring bit, + @DummyAddon bit, + @Countable bit, + @Description ntext, + @AddonCyclesXml xml, + @AssignedProductsXml xml, + @Result int OUTPUT +AS +BEGIN + -- check actor user rights + IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0 + BEGIN + SET @Result = -1; + RAISERROR('You are not allowed to access this account', 16, 1); + RETURN; + END + -- dummy addon clause + IF @DummyAddon = 1 + SET @PlanID = NULL; + +BEGIN TRAN ADD_ADDON + DECLARE @XmlDocID int; + SET @XmlDocID = NULL; + + -- insert product first + INSERT INTO [dbo].[ecProduct] + ([ProductName], [ProductSKU], [TypeID], [TaxInclusive], [Description], [Created], [Enabled], [ResellerID]) + VALUES + (@AddonName, @ProductSku, 2, @TaxInclusive, @Description, GETDATE(), @Enabled, @UserID); + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END + -- set product id created + SET @Result = SCOPE_IDENTITY(); + -- insert hosting addon details + INSERT INTO [dbo].[ecHostingAddons] + ([ProductID], [PlanID], [Recurring], [ResellerID], [DummyAddon], [Countable]) + VALUES + (@Result, @PlanID, @Recurring, @UserID, @DummyAddon, @Countable); + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END +/* +XML Format: + + + + +*/ + -- save hosting addon cycles + IF @Recurring = 1 + -- insert cycles + INSERT INTO [dbo].[ecHostingAddonsCycles] + ([ProductID], [CycleID], [SetupFee], [RecurringFee], [SortOrder]) + SELECT + @Result, [SXML].[Data].value('@ID','int'), [SXML].[Data].value('@SetupFee','money'), + [SXML].[Data].value('@RecurringFee','money'), [SXML].[Data].value('@SortOrder','int') + FROM @AddonCyclesXml.nodes('/PlanCycles/Cycle') [SXML]([Data]) + ELSE + UPDATE + [dbo].[ecHostingAddons] + SET + [SetupFee] = [SXML].[Data].value('@SetupFee','money'), + [OneTimeFee] = [SXML].[Data].value('@RecurringFee','money') + FROM + @AddonCyclesXml.nodes('/PlanCycles/Cycle') [SXML]([Data]) + WHERE + [ResellerID] = @UserID AND [ProductID] = @Result; + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END +/* +XML Format: + + + + +*/ + -- insert cycles + INSERT INTO [dbo].[ecAddonProducts] + ([AddonID], [ProductID], [ResellerID]) + SELECT + @Result, [SXML].[Data].value('@ID','int'), @UserID + FROM + @AssignedProductsXml.nodes('/AssignedProducts/Product') [SXML]([Data]) + -- check errors + IF @@ERROR <> 0 + BEGIN + GOTO ERROR_HANDLE; + END + -- + COMMIT TRAN ADD_ADDON; + -- + RETURN; + + +ERROR_HANDLE: +BEGIN + SET @Result = -1; + ROLLBACK TRAN ADD_ADDON; + RETURN; +END + +END + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[UpdateIPAddresses] +( + @xml ntext, + @PoolID int, + @ServerID int, + @SubnetMask varchar(15), + @DefaultGateway varchar(15), + @Comments ntext +) +AS +BEGIN + SET NOCOUNT ON; + + IF @ServerID = 0 + SET @ServerID = NULL + + DECLARE @idoc int + --Create an internal representation of the XML document. + EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + + -- update + UPDATE IPAddresses SET + ServerID = @ServerID, + PoolID = @PoolID, + SubnetMask = @SubnetMask, + DefaultGateway = @DefaultGateway, + Comments = @Comments + FROM IPAddresses AS IP + INNER JOIN OPENXML(@idoc, '/items/item', 1) WITH + ( + AddressID int '@id' + ) as PV ON IP.AddressID = PV.AddressID + + -- remove document + exec sp_xml_removedocument @idoc +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER OFF +GO + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[UpdateIPAddress] +( + @AddressID int, + @ServerID int, + @ExternalIP varchar(24), + @InternalIP varchar(24), + @PoolID int, + @SubnetMask varchar(15), + @DefaultGateway varchar(15), + @Comments ntext +) +AS +BEGIN + IF @ServerID = 0 + SET @ServerID = NULL + + UPDATE IPAddresses SET + ExternalIP = @ExternalIP, + InternalIP = @InternalIP, + ServerID = @ServerID, + PoolID = @PoolID, + SubnetMask = @SubnetMask, + DefaultGateway = @DefaultGateway, + Comments = @Comments + WHERE AddressID = @AddressID + + RETURN +END + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +CREATE TABLE [dbo].[ServiceProperties]( + [ServiceID] [int] NOT NULL, + [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValue] [nvarchar](1000) COLLATE Latin1_General_CI_AS NULL, + CONSTRAINT [PK_ServiceProperties_1] PRIMARY KEY CLUSTERED +( + [ServiceID] ASC, + [PropertyName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE AddService +( + @ServiceID int OUTPUT, + @ServerID int, + @ProviderID int, + @ServiceQuotaValue int, + @ServiceName nvarchar(50), + @ClusterID int, + @Comments ntext +) +AS +BEGIN + +BEGIN TRAN +IF @ClusterID = 0 SET @ClusterID = NULL + +INSERT INTO Services +( + ServerID, + ProviderID, + ServiceName, + ServiceQuotaValue, + ClusterID, + Comments +) +VALUES +( + @ServerID, + @ProviderID, + @ServiceName, + @ServiceQuotaValue, + @ClusterID, + @Comments +) + +SET @ServiceID = SCOPE_IDENTITY() + +-- copy default service settings +INSERT INTO ServiceProperties (ServiceID, PropertyName, PropertyValue) +SELECT @ServiceID, PropertyName, PropertyValue +FROM ServiceDefaultProperties +WHERE ProviderID = @ProviderID + +-- copy all default DNS records for the given service +DECLARE @GroupID int +SELECT @GroupID = GroupID FROM Providers +WHERE ProviderID = @ProviderID + +-- default IP address for added records +DECLARE @AddressID int +SELECT TOP 1 @AddressID = AddressID FROM IPAddresses +WHERE ServerID = @ServerID + +INSERT INTO GlobalDnsRecords +( + RecordType, + RecordName, + RecordData, + MXPriority, + IPAddressID, + ServiceID, + ServerID, + PackageID +) +SELECT + RecordType, + RecordName, + CASE WHEN RecordData = '[ip]' THEN '' + ELSE RecordData END, + MXPriority, + CASE WHEN RecordData = '[ip]' THEN @AddressID + ELSE NULL END, + @ServiceID, + NULL, -- server + NULL -- package +FROM + ResourceGroupDnsRecords +WHERE GroupID = @GroupID +ORDER BY RecordOrder +COMMIT TRAN + +END +RETURN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CREATE PROCEDURE [dbo].[GetAllServers] +( + @ActorID int +) +AS + +-- check rights +DECLARE @IsAdmin bit +SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) + +SELECT + S.ServerID, + S.ServerName, + S.ServerUrl, + (SELECT COUNT(SRV.ServiceID) FROM VirtualServices AS SRV WHERE S.ServerID = SRV.ServerID) AS ServicesNumber, + S.Comments +FROM Servers AS S +WHERE @IsAdmin = 1 +ORDER BY S.VirtualServer, S.ServerName + + + + + + + + + + + + + + + + + + + + @@ -43277,6 +43766,7 @@ RETURN + GO @@ -43374,6 +43864,7 @@ RETURN + GO @@ -43485,6 +43976,7 @@ RETURN + GO @@ -43594,6 +44086,7 @@ RETURN + GO @@ -43680,6 +44173,7 @@ RETURN + GO @@ -43771,97 +44265,6 @@ RETURN - - - - - - - - - - - - - - - - - - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CREATE PROCEDURE [dbo].[GetAllServers] -( - @ActorID int -) -AS - --- check rights -DECLARE @IsAdmin bit -SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID) - -SELECT - S.ServerID, - S.ServerName, - S.ServerUrl, - (SELECT COUNT(SRV.ServiceID) FROM VirtualServices AS SRV WHERE S.ServerID = SRV.ServerID) AS ServicesNumber, - S.Comments -FROM Servers AS S -WHERE @IsAdmin = 1 -ORDER BY S.VirtualServer, S.ServerName - - - - - - - - - - - - - - - - - @@ -43988,6 +44391,7 @@ RETURN + GO @@ -43997,6 +44401,30 @@ ON DELETE CASCADE GO ALTER TABLE [dbo].[ScheduleParameters] CHECK CONSTRAINT [FK_ScheduleParameters_Schedule] GO +ALTER TABLE [dbo].[ExchangeAccounts] WITH CHECK ADD CONSTRAINT [FK_ExchangeAccounts_ServiceItems] FOREIGN KEY([ItemID]) +REFERENCES [dbo].[ServiceItems] ([ItemID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ExchangeAccounts] CHECK CONSTRAINT [FK_ExchangeAccounts_ServiceItems] +GO +ALTER TABLE [dbo].[ExchangeAccounts] ADD CONSTRAINT [DF__ExchangeA__Creat__59B045BD] DEFAULT (getdate()) FOR [CreatedDate] +GO +ALTER TABLE [dbo].[HostingPlans] WITH CHECK ADD CONSTRAINT [FK_HostingPlans_Packages] FOREIGN KEY([PackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[HostingPlans] CHECK CONSTRAINT [FK_HostingPlans_Packages] +GO +ALTER TABLE [dbo].[HostingPlans] WITH CHECK ADD CONSTRAINT [FK_HostingPlans_Servers] FOREIGN KEY([ServerID]) +REFERENCES [dbo].[Servers] ([ServerID]) +GO +ALTER TABLE [dbo].[HostingPlans] CHECK CONSTRAINT [FK_HostingPlans_Servers] +GO +ALTER TABLE [dbo].[HostingPlans] WITH CHECK ADD CONSTRAINT [FK_HostingPlans_Users] FOREIGN KEY([UserID]) +REFERENCES [dbo].[Users] ([UserID]) +GO +ALTER TABLE [dbo].[HostingPlans] CHECK CONSTRAINT [FK_HostingPlans_Users] +GO ALTER TABLE [dbo].[Users] WITH CHECK ADD CONSTRAINT [FK_Users_Users] FOREIGN KEY([OwnerID]) REFERENCES [dbo].[Users] ([UserID]) GO @@ -44072,28 +44500,6 @@ ALTER TABLE [dbo].[Domains] ADD CONSTRAINT [DF_Domains_SubDomainID] DEFAULT (( GO ALTER TABLE [dbo].[Domains] ADD CONSTRAINT [DF_Domains_IsInstantAlias] DEFAULT ((0)) FOR [IsInstantAlias] GO -ALTER TABLE [dbo].[ExchangeOrganizations] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizations_ServiceItems] FOREIGN KEY([ItemID]) -REFERENCES [dbo].[ServiceItems] ([ItemID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ExchangeOrganizations] CHECK CONSTRAINT [FK_ExchangeOrganizations_ServiceItems] -GO -ALTER TABLE [dbo].[ExchangeOrganizationDomains] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizationDomains_ServiceItems] FOREIGN KEY([ItemID]) -REFERENCES [dbo].[ServiceItems] ([ItemID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ExchangeOrganizationDomains] CHECK CONSTRAINT [FK_ExchangeOrganizationDomains_ServiceItems] -GO -ALTER TABLE [dbo].[ExchangeOrganizationDomains] ADD CONSTRAINT [DF_ExchangeOrganizationDomains_IsHost] DEFAULT ((0)) FOR [IsHost] -GO -ALTER TABLE [dbo].[ExchangeAccounts] WITH CHECK ADD CONSTRAINT [FK_ExchangeAccounts_ServiceItems] FOREIGN KEY([ItemID]) -REFERENCES [dbo].[ServiceItems] ([ItemID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ExchangeAccounts] CHECK CONSTRAINT [FK_ExchangeAccounts_ServiceItems] -GO -ALTER TABLE [dbo].[ExchangeAccounts] ADD CONSTRAINT [DF__ExchangeA__Creat__59B045BD] DEFAULT (getdate()) FOR [CreatedDate] -GO ALTER TABLE [dbo].[Schedule] WITH CHECK ADD CONSTRAINT [FK_Schedule_Packages] FOREIGN KEY([PackageID]) REFERENCES [dbo].[Packages] ([PackageID]) ON DELETE CASCADE @@ -44105,74 +44511,6 @@ REFERENCES [dbo].[ScheduleTasks] ([TaskID]) GO ALTER TABLE [dbo].[Schedule] CHECK CONSTRAINT [FK_Schedule_ScheduleTasks] GO -ALTER TABLE [dbo].[PrivateIPAddresses] WITH CHECK ADD CONSTRAINT [FK_PrivateIPAddresses_ServiceItems] FOREIGN KEY([ItemID]) -REFERENCES [dbo].[ServiceItems] ([ItemID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[PrivateIPAddresses] CHECK CONSTRAINT [FK_PrivateIPAddresses_ServiceItems] -GO -ALTER TABLE [dbo].[PackagesTreeCache] WITH CHECK ADD CONSTRAINT [FK_PackagesTreeCache_Packages] FOREIGN KEY([ParentPackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -GO -ALTER TABLE [dbo].[PackagesTreeCache] CHECK CONSTRAINT [FK_PackagesTreeCache_Packages] -GO -ALTER TABLE [dbo].[PackagesTreeCache] WITH CHECK ADD CONSTRAINT [FK_PackagesTreeCache_Packages1] FOREIGN KEY([PackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -GO -ALTER TABLE [dbo].[PackagesTreeCache] CHECK CONSTRAINT [FK_PackagesTreeCache_Packages1] -GO -ALTER TABLE [dbo].[CRMUsers] WITH CHECK ADD CONSTRAINT [FK_CRMUsers_ExchangeAccounts] FOREIGN KEY([AccountID]) -REFERENCES [dbo].[ExchangeAccounts] ([AccountID]) -GO -ALTER TABLE [dbo].[CRMUsers] CHECK CONSTRAINT [FK_CRMUsers_ExchangeAccounts] -GO -ALTER TABLE [dbo].[CRMUsers] ADD CONSTRAINT [DF_Table_1_CreateDate] DEFAULT (getdate()) FOR [CreatedDate] -GO -ALTER TABLE [dbo].[CRMUsers] ADD CONSTRAINT [DF_CRMUsers_ChangedDate] DEFAULT (getdate()) FOR [ChangedDate] -GO -ALTER TABLE [dbo].[BlackBerryUsers] WITH CHECK ADD CONSTRAINT [FK_BlackBerryUsers_ExchangeAccounts] FOREIGN KEY([AccountId]) -REFERENCES [dbo].[ExchangeAccounts] ([AccountID]) -GO -ALTER TABLE [dbo].[BlackBerryUsers] CHECK CONSTRAINT [FK_BlackBerryUsers_ExchangeAccounts] -GO -ALTER TABLE [dbo].[BlackBerryUsers] ADD CONSTRAINT [DF_BlackBerryUsers_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] -GO -ALTER TABLE [dbo].[HostingPlans] WITH CHECK ADD CONSTRAINT [FK_HostingPlans_Packages] FOREIGN KEY([PackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[HostingPlans] CHECK CONSTRAINT [FK_HostingPlans_Packages] -GO -ALTER TABLE [dbo].[HostingPlans] WITH CHECK ADD CONSTRAINT [FK_HostingPlans_Servers] FOREIGN KEY([ServerID]) -REFERENCES [dbo].[Servers] ([ServerID]) -GO -ALTER TABLE [dbo].[HostingPlans] CHECK CONSTRAINT [FK_HostingPlans_Servers] -GO -ALTER TABLE [dbo].[HostingPlans] WITH CHECK ADD CONSTRAINT [FK_HostingPlans_Users] FOREIGN KEY([UserID]) -REFERENCES [dbo].[Users] ([UserID]) -GO -ALTER TABLE [dbo].[HostingPlans] CHECK CONSTRAINT [FK_HostingPlans_Users] -GO -ALTER TABLE [dbo].[PackageQuotas] WITH CHECK ADD CONSTRAINT [FK_PackageQuotas_Packages] FOREIGN KEY([PackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -GO -ALTER TABLE [dbo].[PackageQuotas] CHECK CONSTRAINT [FK_PackageQuotas_Packages] -GO -ALTER TABLE [dbo].[PackageQuotas] WITH CHECK ADD CONSTRAINT [FK_PackageQuotas_Quotas] FOREIGN KEY([QuotaID]) -REFERENCES [dbo].[Quotas] ([QuotaID]) -GO -ALTER TABLE [dbo].[PackageQuotas] CHECK CONSTRAINT [FK_PackageQuotas_Quotas] -GO -ALTER TABLE [dbo].[PackageResources] WITH CHECK ADD CONSTRAINT [FK_PackageResources_Packages] FOREIGN KEY([PackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -GO -ALTER TABLE [dbo].[PackageResources] CHECK CONSTRAINT [FK_PackageResources_Packages] -GO -ALTER TABLE [dbo].[PackageResources] WITH CHECK ADD CONSTRAINT [FK_PackageResources_ResourceGroups] FOREIGN KEY([GroupID]) -REFERENCES [dbo].[ResourceGroups] ([GroupID]) -GO -ALTER TABLE [dbo].[PackageResources] CHECK CONSTRAINT [FK_PackageResources_ResourceGroups] -GO ALTER TABLE [dbo].[ExchangeAccountEmailAddresses] WITH CHECK ADD CONSTRAINT [FK_ExchangeAccountEmailAddresses_ExchangeAccounts] FOREIGN KEY([AccountID]) REFERENCES [dbo].[ExchangeAccounts] ([AccountID]) ON DELETE CASCADE @@ -44234,12 +44572,78 @@ REFERENCES [dbo].[Quotas] ([QuotaID]) GO ALTER TABLE [dbo].[HostingPlanQuotas] CHECK CONSTRAINT [FK_HostingPlanQuotas_Quotas] GO +ALTER TABLE [dbo].[PackageQuotas] WITH CHECK ADD CONSTRAINT [FK_PackageQuotas_Packages] FOREIGN KEY([PackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +GO +ALTER TABLE [dbo].[PackageQuotas] CHECK CONSTRAINT [FK_PackageQuotas_Packages] +GO +ALTER TABLE [dbo].[PackageQuotas] WITH CHECK ADD CONSTRAINT [FK_PackageQuotas_Quotas] FOREIGN KEY([QuotaID]) +REFERENCES [dbo].[Quotas] ([QuotaID]) +GO +ALTER TABLE [dbo].[PackageQuotas] CHECK CONSTRAINT [FK_PackageQuotas_Quotas] +GO +ALTER TABLE [dbo].[PackagesTreeCache] WITH CHECK ADD CONSTRAINT [FK_PackagesTreeCache_Packages] FOREIGN KEY([ParentPackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +GO +ALTER TABLE [dbo].[PackagesTreeCache] CHECK CONSTRAINT [FK_PackagesTreeCache_Packages] +GO +ALTER TABLE [dbo].[PackagesTreeCache] WITH CHECK ADD CONSTRAINT [FK_PackagesTreeCache_Packages1] FOREIGN KEY([PackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +GO +ALTER TABLE [dbo].[PackagesTreeCache] CHECK CONSTRAINT [FK_PackagesTreeCache_Packages1] +GO ALTER TABLE [dbo].[ServiceItemProperties] WITH CHECK ADD CONSTRAINT [FK_ServiceItemProperties_ServiceItems] FOREIGN KEY([ItemID]) REFERENCES [dbo].[ServiceItems] ([ItemID]) ON DELETE CASCADE GO ALTER TABLE [dbo].[ServiceItemProperties] CHECK CONSTRAINT [FK_ServiceItemProperties_ServiceItems] GO +ALTER TABLE [dbo].[CRMUsers] WITH CHECK ADD CONSTRAINT [FK_CRMUsers_ExchangeAccounts] FOREIGN KEY([AccountID]) +REFERENCES [dbo].[ExchangeAccounts] ([AccountID]) +GO +ALTER TABLE [dbo].[CRMUsers] CHECK CONSTRAINT [FK_CRMUsers_ExchangeAccounts] +GO +ALTER TABLE [dbo].[CRMUsers] ADD CONSTRAINT [DF_Table_1_CreateDate] DEFAULT (getdate()) FOR [CreatedDate] +GO +ALTER TABLE [dbo].[CRMUsers] ADD CONSTRAINT [DF_CRMUsers_ChangedDate] DEFAULT (getdate()) FOR [ChangedDate] +GO +ALTER TABLE [dbo].[BlackBerryUsers] WITH CHECK ADD CONSTRAINT [FK_BlackBerryUsers_ExchangeAccounts] FOREIGN KEY([AccountId]) +REFERENCES [dbo].[ExchangeAccounts] ([AccountID]) +GO +ALTER TABLE [dbo].[BlackBerryUsers] CHECK CONSTRAINT [FK_BlackBerryUsers_ExchangeAccounts] +GO +ALTER TABLE [dbo].[BlackBerryUsers] ADD CONSTRAINT [DF_BlackBerryUsers_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] +GO +ALTER TABLE [dbo].[ExchangeOrganizations] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizations_ServiceItems] FOREIGN KEY([ItemID]) +REFERENCES [dbo].[ServiceItems] ([ItemID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ExchangeOrganizations] CHECK CONSTRAINT [FK_ExchangeOrganizations_ServiceItems] +GO +ALTER TABLE [dbo].[ExchangeOrganizationDomains] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizationDomains_ServiceItems] FOREIGN KEY([ItemID]) +REFERENCES [dbo].[ServiceItems] ([ItemID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ExchangeOrganizationDomains] CHECK CONSTRAINT [FK_ExchangeOrganizationDomains_ServiceItems] +GO +ALTER TABLE [dbo].[ExchangeOrganizationDomains] ADD CONSTRAINT [DF_ExchangeOrganizationDomains_IsHost] DEFAULT ((0)) FOR [IsHost] +GO +ALTER TABLE [dbo].[PrivateIPAddresses] WITH CHECK ADD CONSTRAINT [FK_PrivateIPAddresses_ServiceItems] FOREIGN KEY([ItemID]) +REFERENCES [dbo].[ServiceItems] ([ItemID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[PrivateIPAddresses] CHECK CONSTRAINT [FK_PrivateIPAddresses_ServiceItems] +GO +ALTER TABLE [dbo].[PackagesDiskspace] WITH CHECK ADD CONSTRAINT [FK_PackagesDiskspace_Packages] FOREIGN KEY([PackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +GO +ALTER TABLE [dbo].[PackagesDiskspace] CHECK CONSTRAINT [FK_PackagesDiskspace_Packages] +GO +ALTER TABLE [dbo].[PackagesDiskspace] WITH CHECK ADD CONSTRAINT [FK_PackagesDiskspace_ResourceGroups] FOREIGN KEY([GroupID]) +REFERENCES [dbo].[ResourceGroups] ([GroupID]) +GO +ALTER TABLE [dbo].[PackagesDiskspace] CHECK CONSTRAINT [FK_PackagesDiskspace_ResourceGroups] +GO ALTER TABLE [dbo].[HostingPlanResources] WITH CHECK ADD CONSTRAINT [FK_HostingPlanResources_HostingPlans] FOREIGN KEY([PlanID]) REFERENCES [dbo].[HostingPlans] ([PlanID]) ON DELETE CASCADE @@ -44251,16 +44655,6 @@ REFERENCES [dbo].[ResourceGroups] ([GroupID]) GO ALTER TABLE [dbo].[HostingPlanResources] CHECK CONSTRAINT [FK_HostingPlanResources_ResourceGroups] GO -ALTER TABLE [dbo].[PackagesDiskspace] WITH CHECK ADD CONSTRAINT [FK_PackagesDiskspace_Packages] FOREIGN KEY([PackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -GO -ALTER TABLE [dbo].[PackagesDiskspace] CHECK CONSTRAINT [FK_PackagesDiskspace_Packages] -GO -ALTER TABLE [dbo].[PackagesDiskspace] WITH CHECK ADD CONSTRAINT [FK_PackagesDiskspace_ResourceGroups] FOREIGN KEY([GroupID]) -REFERENCES [dbo].[ResourceGroups] ([GroupID]) -GO -ALTER TABLE [dbo].[PackagesDiskspace] CHECK CONSTRAINT [FK_PackagesDiskspace_ResourceGroups] -GO ALTER TABLE [dbo].[PackagesBandwidth] WITH CHECK ADD CONSTRAINT [FK_PackagesBandwidth_Packages] FOREIGN KEY([PackageID]) REFERENCES [dbo].[Packages] ([PackageID]) GO @@ -44271,13 +44665,27 @@ REFERENCES [dbo].[ResourceGroups] ([GroupID]) GO ALTER TABLE [dbo].[PackagesBandwidth] CHECK CONSTRAINT [FK_PackagesBandwidth_ResourceGroups] GO +ALTER TABLE [dbo].[PackageResources] WITH CHECK ADD CONSTRAINT [FK_PackageResources_Packages] FOREIGN KEY([PackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +GO +ALTER TABLE [dbo].[PackageResources] CHECK CONSTRAINT [FK_PackageResources_Packages] +GO +ALTER TABLE [dbo].[PackageResources] WITH CHECK ADD CONSTRAINT [FK_PackageResources_ResourceGroups] FOREIGN KEY([GroupID]) +REFERENCES [dbo].[ResourceGroups] ([GroupID]) +GO +ALTER TABLE [dbo].[PackageResources] CHECK CONSTRAINT [FK_PackageResources_ResourceGroups] +GO ALTER TABLE [dbo].[ecBillingCycles] ADD CONSTRAINT [DF_ecBillingCycles_Created] DEFAULT (getdate()) FOR [Created] GO +ALTER TABLE [dbo].[ResourceGroups] ADD CONSTRAINT [DF_ResourceGroups_GroupOrder] DEFAULT ((1)) FOR [GroupOrder] +GO ALTER TABLE [dbo].[OCSUsers] ADD CONSTRAINT [DF_OCSUsers_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] GO ALTER TABLE [dbo].[OCSUsers] ADD CONSTRAINT [DF_OCSUsers_ChangedDate] DEFAULT (getdate()) FOR [ModifiedDate] GO -ALTER TABLE [dbo].[ResourceGroups] ADD CONSTRAINT [DF_ResourceGroups_GroupOrder] DEFAULT ((1)) FOR [GroupOrder] +ALTER TABLE [dbo].[ecSupportedPluginLog] ADD CONSTRAINT [DF_ecSpacePluginLog_Created] DEFAULT (getdate()) FOR [Created] +GO +ALTER TABLE [dbo].[ecProductType] ADD CONSTRAINT [DF_ecProductType_Created] DEFAULT (getutcdate()) FOR [Created] GO ALTER TABLE [dbo].[ecCategory] WITH CHECK ADD CONSTRAINT [FK_ecCategory_ecCategory] FOREIGN KEY([ParentID]) REFERENCES [dbo].[ecCategory] ([CategoryID]) @@ -44290,12 +44698,14 @@ ALTER TABLE [dbo].[ecCategory] ADD CONSTRAINT [DF_ecCategory_Created] DEFAULT GO ALTER TABLE [dbo].[ecCategory] ADD CONSTRAINT [DF_EC_Categories_CategoryOrder] DEFAULT ((0)) FOR [ItemOrder] GO -ALTER TABLE [dbo].[ecServiceHandlersResponses] ADD CONSTRAINT [DF_ecServiceHandlerResponses_Received] DEFAULT (getdate()) FOR [Received] +ALTER TABLE [dbo].[ecSystemTriggers] ADD CONSTRAINT [DF_ecSystemTriggers_TriggerID] DEFAULT (newid()) FOR [TriggerID] GO ALTER TABLE [dbo].[ecContracts] ADD CONSTRAINT [DF__ecContrac__Opene__668030F6] DEFAULT (getdate()) FOR [OpenedDate] GO ALTER TABLE [dbo].[ecContracts] ADD CONSTRAINT [DF__ecContrac__Balan__6774552F] DEFAULT ((0)) FOR [Balance] GO +ALTER TABLE [dbo].[ecServiceHandlersResponses] ADD CONSTRAINT [DF_ecServiceHandlerResponses_Received] DEFAULT (getdate()) FOR [Received] +GO ALTER TABLE [dbo].[ecPaymentProfiles] ADD CONSTRAINT [DF_ecPaymentProfiles_Created] DEFAULT (getdate()) FOR [Created] GO ALTER TABLE [dbo].[ecCustomersPayments] ADD CONSTRAINT [DF_EC_Payments_PaymentDate] DEFAULT (getdate()) FOR [Created] @@ -44310,17 +44720,6 @@ ALTER TABLE [dbo].[ecInvoice] ADD CONSTRAINT [DF_ecInvoice_SubTotal] DEFAULT ( GO ALTER TABLE [dbo].[ecInvoice] ADD CONSTRAINT [DF__ecInvoice__Taxat__4119A21D] DEFAULT ((0)) FOR [TaxationID] GO -ALTER TABLE [dbo].[ecSystemTriggers] ADD CONSTRAINT [DF_ecSystemTriggers_TriggerID] DEFAULT (newid()) FOR [TriggerID] -GO -ALTER TABLE [dbo].[ecProductType] ADD CONSTRAINT [DF_ecProductType_Created] DEFAULT (getutcdate()) FOR [Created] -GO -ALTER TABLE [dbo].[ecSupportedPluginLog] ADD CONSTRAINT [DF_ecSpacePluginLog_Created] DEFAULT (getdate()) FOR [Created] -GO -ALTER TABLE [dbo].[ScheduleTaskViewConfiguration] WITH CHECK ADD CONSTRAINT [FK_ScheduleTaskViewConfiguration_ScheduleTaskViewConfiguration] FOREIGN KEY([TaskID]) -REFERENCES [dbo].[ScheduleTasks] ([TaskID]) -GO -ALTER TABLE [dbo].[ScheduleTaskViewConfiguration] CHECK CONSTRAINT [FK_ScheduleTaskViewConfiguration_ScheduleTaskViewConfiguration] -GO ALTER TABLE [dbo].[ScheduleTaskParameters] WITH CHECK ADD CONSTRAINT [FK_ScheduleTaskParameters_ScheduleTasks] FOREIGN KEY([TaskID]) REFERENCES [dbo].[ScheduleTasks] ([TaskID]) GO @@ -44328,68 +44727,10 @@ ALTER TABLE [dbo].[ScheduleTaskParameters] CHECK CONSTRAINT [FK_ScheduleTaskPara GO ALTER TABLE [dbo].[ScheduleTaskParameters] ADD CONSTRAINT [DF_ScheduleTaskParameters_ParameterOrder] DEFAULT ((0)) FOR [ParameterOrder] GO -ALTER TABLE [dbo].[Servers] WITH CHECK ADD CONSTRAINT [FK_Servers_ResourceGroups] FOREIGN KEY([PrimaryGroupID]) -REFERENCES [dbo].[ResourceGroups] ([GroupID]) +ALTER TABLE [dbo].[ScheduleTaskViewConfiguration] WITH CHECK ADD CONSTRAINT [FK_ScheduleTaskViewConfiguration_ScheduleTaskViewConfiguration] FOREIGN KEY([TaskID]) +REFERENCES [dbo].[ScheduleTasks] ([TaskID]) GO -ALTER TABLE [dbo].[Servers] CHECK CONSTRAINT [FK_Servers_ResourceGroups] -GO -ALTER TABLE [dbo].[Servers] ADD CONSTRAINT [DF_Servers_DisplayName] DEFAULT ('') FOR [ServerUrl] -GO -ALTER TABLE [dbo].[Servers] ADD CONSTRAINT [DF_Servers_VirtualServer] DEFAULT ((0)) FOR [VirtualServer] -GO -ALTER TABLE [dbo].[Servers] ADD CONSTRAINT [DF_Servers_ADEnabled] DEFAULT ((0)) FOR [ADEnabled] -GO -ALTER TABLE [dbo].[Comments] WITH CHECK ADD CONSTRAINT [FK_Comments_Users] FOREIGN KEY([UserID]) -REFERENCES [dbo].[Users] ([UserID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[Comments] CHECK CONSTRAINT [FK_Comments_Users] -GO -ALTER TABLE [dbo].[Comments] ADD CONSTRAINT [DF_Comments_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] -GO -ALTER TABLE [dbo].[Providers] WITH CHECK ADD CONSTRAINT [FK_Providers_ResourceGroups] FOREIGN KEY([GroupID]) -REFERENCES [dbo].[ResourceGroups] ([GroupID]) -GO -ALTER TABLE [dbo].[Providers] CHECK CONSTRAINT [FK_Providers_ResourceGroups] -GO -ALTER TABLE [dbo].[ServiceItemTypes] WITH CHECK ADD CONSTRAINT [FK_ServiceItemTypes_ResourceGroups] FOREIGN KEY([GroupID]) -REFERENCES [dbo].[ResourceGroups] ([GroupID]) -GO -ALTER TABLE [dbo].[ServiceItemTypes] CHECK CONSTRAINT [FK_ServiceItemTypes_ResourceGroups] -GO -ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_TypeOrder] DEFAULT ((1)) FOR [TypeOrder] -GO -ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_Importable] DEFAULT ((1)) FOR [Importable] -GO -ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_Backup] DEFAULT ((1)) FOR [Backupable] -GO -ALTER TABLE [dbo].[UserSettings] WITH CHECK ADD CONSTRAINT [FK_UserSettings_Users] FOREIGN KEY([UserID]) -REFERENCES [dbo].[Users] ([UserID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[UserSettings] CHECK CONSTRAINT [FK_UserSettings_Users] -GO -ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_IPAddresses] FOREIGN KEY([IPAddressID]) -REFERENCES [dbo].[IPAddresses] ([AddressID]) -GO -ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_IPAddresses] -GO -ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_Packages] FOREIGN KEY([PackageID]) -REFERENCES [dbo].[Packages] ([PackageID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_Packages] -GO -ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_Servers] FOREIGN KEY([ServerID]) -REFERENCES [dbo].[Servers] ([ServerID]) -GO -ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_Servers] -GO -ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_Services] FOREIGN KEY([ServiceID]) -REFERENCES [dbo].[Services] ([ServiceID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_Services] +ALTER TABLE [dbo].[ScheduleTaskViewConfiguration] CHECK CONSTRAINT [FK_ScheduleTaskViewConfiguration_ScheduleTaskViewConfiguration] GO ALTER TABLE [dbo].[ecInvoiceItems] WITH CHECK ADD CONSTRAINT [FK_ecInvoiceItems_ecInvoice] FOREIGN KEY([InvoiceID]) REFERENCES [dbo].[ecInvoice] ([InvoiceID]) @@ -44421,6 +44762,36 @@ ALTER TABLE [dbo].[ecService] ADD CONSTRAINT [DF_SpaceInstance_CreatedDate] DE GO ALTER TABLE [dbo].[ecService] ADD CONSTRAINT [DF_SpaceInstance_ModifiedDate] DEFAULT (getutcdate()) FOR [Modified] GO +ALTER TABLE [dbo].[Comments] WITH CHECK ADD CONSTRAINT [FK_Comments_Users] FOREIGN KEY([UserID]) +REFERENCES [dbo].[Users] ([UserID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[Comments] CHECK CONSTRAINT [FK_Comments_Users] +GO +ALTER TABLE [dbo].[Comments] ADD CONSTRAINT [DF_Comments_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] +GO +ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_IPAddresses] FOREIGN KEY([IPAddressID]) +REFERENCES [dbo].[IPAddresses] ([AddressID]) +GO +ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_IPAddresses] +GO +ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_Packages] FOREIGN KEY([PackageID]) +REFERENCES [dbo].[Packages] ([PackageID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_Packages] +GO +ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_Servers] FOREIGN KEY([ServerID]) +REFERENCES [dbo].[Servers] ([ServerID]) +GO +ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_Servers] +GO +ALTER TABLE [dbo].[GlobalDnsRecords] WITH CHECK ADD CONSTRAINT [FK_GlobalDnsRecords_Services] FOREIGN KEY([ServiceID]) +REFERENCES [dbo].[Services] ([ServiceID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[GlobalDnsRecords] CHECK CONSTRAINT [FK_GlobalDnsRecords_Services] +GO ALTER TABLE [dbo].[PackageServices] WITH CHECK ADD CONSTRAINT [FK_PackageServices_Packages] FOREIGN KEY([PackageID]) REFERENCES [dbo].[Packages] ([PackageID]) ON DELETE CASCADE @@ -44433,12 +44804,16 @@ ON DELETE CASCADE GO ALTER TABLE [dbo].[PackageServices] CHECK CONSTRAINT [FK_PackageServices_Services] GO -ALTER TABLE [dbo].[ecProduct] WITH CHECK ADD CONSTRAINT [FK_ecProduct_ecProductType] FOREIGN KEY([TypeID]) -REFERENCES [dbo].[ecProductType] ([TypeID]) +ALTER TABLE [dbo].[Servers] WITH CHECK ADD CONSTRAINT [FK_Servers_ResourceGroups] FOREIGN KEY([PrimaryGroupID]) +REFERENCES [dbo].[ResourceGroups] ([GroupID]) GO -ALTER TABLE [dbo].[ecProduct] CHECK CONSTRAINT [FK_ecProduct_ecProductType] +ALTER TABLE [dbo].[Servers] CHECK CONSTRAINT [FK_Servers_ResourceGroups] GO -ALTER TABLE [dbo].[ecProduct] ADD CONSTRAINT [DF_ecProduct_Created] DEFAULT (getutcdate()) FOR [Created] +ALTER TABLE [dbo].[Servers] ADD CONSTRAINT [DF_Servers_DisplayName] DEFAULT ('') FOR [ServerUrl] +GO +ALTER TABLE [dbo].[Servers] ADD CONSTRAINT [DF_Servers_VirtualServer] DEFAULT ((0)) FOR [VirtualServer] +GO +ALTER TABLE [dbo].[Servers] ADD CONSTRAINT [DF_Servers_ADEnabled] DEFAULT ((0)) FOR [ADEnabled] GO ALTER TABLE [dbo].[ResourceGroupDnsRecords] WITH CHECK ADD CONSTRAINT [FK_ResourceGroupDnsRecords_ResourceGroups] FOREIGN KEY([GroupID]) REFERENCES [dbo].[ResourceGroups] ([GroupID]) @@ -44448,16 +44823,52 @@ ALTER TABLE [dbo].[ResourceGroupDnsRecords] CHECK CONSTRAINT [FK_ResourceGroupDn GO ALTER TABLE [dbo].[ResourceGroupDnsRecords] ADD CONSTRAINT [DF_ResourceGroupDnsRecords_RecordOrder] DEFAULT ((1)) FOR [RecordOrder] GO -ALTER TABLE [dbo].[VirtualServices] WITH CHECK ADD CONSTRAINT [FK_VirtualServices_Servers] FOREIGN KEY([ServerID]) -REFERENCES [dbo].[Servers] ([ServerID]) +ALTER TABLE [dbo].[ecProduct] WITH CHECK ADD CONSTRAINT [FK_ecProduct_ecProductType] FOREIGN KEY([TypeID]) +REFERENCES [dbo].[ecProductType] ([TypeID]) +GO +ALTER TABLE [dbo].[ecProduct] CHECK CONSTRAINT [FK_ecProduct_ecProductType] +GO +ALTER TABLE [dbo].[ecProduct] ADD CONSTRAINT [DF_ecProduct_Created] DEFAULT (getutcdate()) FOR [Created] +GO +ALTER TABLE [dbo].[UserSettings] WITH CHECK ADD CONSTRAINT [FK_UserSettings_Users] FOREIGN KEY([UserID]) +REFERENCES [dbo].[Users] ([UserID]) ON DELETE CASCADE GO -ALTER TABLE [dbo].[VirtualServices] CHECK CONSTRAINT [FK_VirtualServices_Servers] +ALTER TABLE [dbo].[UserSettings] CHECK CONSTRAINT [FK_UserSettings_Users] GO -ALTER TABLE [dbo].[VirtualServices] WITH CHECK ADD CONSTRAINT [FK_VirtualServices_Services] FOREIGN KEY([ServiceID]) -REFERENCES [dbo].[Services] ([ServiceID]) +ALTER TABLE [dbo].[ServiceItemTypes] WITH CHECK ADD CONSTRAINT [FK_ServiceItemTypes_ResourceGroups] FOREIGN KEY([GroupID]) +REFERENCES [dbo].[ResourceGroups] ([GroupID]) GO -ALTER TABLE [dbo].[VirtualServices] CHECK CONSTRAINT [FK_VirtualServices_Services] +ALTER TABLE [dbo].[ServiceItemTypes] CHECK CONSTRAINT [FK_ServiceItemTypes_ResourceGroups] +GO +ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_TypeOrder] DEFAULT ((1)) FOR [TypeOrder] +GO +ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_Importable] DEFAULT ((1)) FOR [Importable] +GO +ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_Backup] DEFAULT ((1)) FOR [Backupable] +GO +ALTER TABLE [dbo].[Providers] WITH CHECK ADD CONSTRAINT [FK_Providers_ResourceGroups] FOREIGN KEY([GroupID]) +REFERENCES [dbo].[ResourceGroups] ([GroupID]) +GO +ALTER TABLE [dbo].[Providers] CHECK CONSTRAINT [FK_Providers_ResourceGroups] +GO +ALTER TABLE [dbo].[ecProductsHighlights] WITH CHECK ADD CONSTRAINT [FK_ecProductsHighlights_ecProduct] FOREIGN KEY([ProductID]) +REFERENCES [dbo].[ecProduct] ([ProductID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecProductsHighlights] CHECK CONSTRAINT [FK_ecProductsHighlights_ecProduct] +GO +ALTER TABLE [dbo].[ecProductCategories] WITH CHECK ADD CONSTRAINT [FK_EC_ProductsToCategories_EC_Categories] FOREIGN KEY([CategoryID]) +REFERENCES [dbo].[ecCategory] ([CategoryID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecProductCategories] CHECK CONSTRAINT [FK_EC_ProductsToCategories_EC_Categories] +GO +ALTER TABLE [dbo].[ecProductCategories] WITH CHECK ADD CONSTRAINT [FK_EC_ProductsToCategories_EC_Products] FOREIGN KEY([ProductID]) +REFERENCES [dbo].[ecProduct] ([ProductID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecProductCategories] CHECK CONSTRAINT [FK_EC_ProductsToCategories_EC_Products] GO ALTER TABLE [dbo].[Services] WITH CHECK ADD CONSTRAINT [FK_Services_Clusters] FOREIGN KEY([ClusterID]) REFERENCES [dbo].[Clusters] ([ClusterID]) @@ -44474,6 +44885,28 @@ REFERENCES [dbo].[Servers] ([ServerID]) GO ALTER TABLE [dbo].[Services] CHECK CONSTRAINT [FK_Services_Servers] GO +ALTER TABLE [dbo].[ServiceDefaultProperties] WITH CHECK ADD CONSTRAINT [FK_ServiceDefaultProperties_Providers] FOREIGN KEY([ProviderID]) +REFERENCES [dbo].[Providers] ([ProviderID]) +GO +ALTER TABLE [dbo].[ServiceDefaultProperties] CHECK CONSTRAINT [FK_ServiceDefaultProperties_Providers] +GO +ALTER TABLE [dbo].[ecAddonProducts] WITH CHECK ADD CONSTRAINT [FK_ecAddonProducts_ecProduct] FOREIGN KEY([AddonID]) +REFERENCES [dbo].[ecProduct] ([ProductID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecAddonProducts] CHECK CONSTRAINT [FK_ecAddonProducts_ecProduct] +GO +ALTER TABLE [dbo].[VirtualServices] WITH CHECK ADD CONSTRAINT [FK_VirtualServices_Servers] FOREIGN KEY([ServerID]) +REFERENCES [dbo].[Servers] ([ServerID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[VirtualServices] CHECK CONSTRAINT [FK_VirtualServices_Servers] +GO +ALTER TABLE [dbo].[VirtualServices] WITH CHECK ADD CONSTRAINT [FK_VirtualServices_Services] FOREIGN KEY([ServiceID]) +REFERENCES [dbo].[Services] ([ServiceID]) +GO +ALTER TABLE [dbo].[VirtualServices] CHECK CONSTRAINT [FK_VirtualServices_Services] +GO ALTER TABLE [dbo].[IPAddresses] WITH CHECK ADD CONSTRAINT [FK_IPAddresses_Servers] FOREIGN KEY([ServerID]) REFERENCES [dbo].[Servers] ([ServerID]) ON DELETE CASCADE @@ -44491,6 +44924,30 @@ ON DELETE CASCADE GO ALTER TABLE [dbo].[VirtualGroups] CHECK CONSTRAINT [FK_VirtualGroups_Servers] GO +ALTER TABLE [dbo].[ecSvcsUsageLog] WITH CHECK ADD CONSTRAINT [FK_ecSvcsUsageLog_ecService] FOREIGN KEY([ServiceID]) +REFERENCES [dbo].[ecService] ([ServiceID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecSvcsUsageLog] CHECK CONSTRAINT [FK_ecSvcsUsageLog_ecService] +GO +ALTER TABLE [dbo].[ecHostingAddons] WITH CHECK ADD CONSTRAINT [FK_ecHostingAddons_ecProduct] FOREIGN KEY([ProductID]) +REFERENCES [dbo].[ecProduct] ([ProductID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecHostingAddons] CHECK CONSTRAINT [FK_ecHostingAddons_ecProduct] +GO +ALTER TABLE [dbo].[ecDomainSvcsCycles] WITH CHECK ADD CONSTRAINT [FK_ecDomainsSvcsCycles_ecService] FOREIGN KEY([ServiceID]) +REFERENCES [dbo].[ecService] ([ServiceID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecDomainSvcsCycles] CHECK CONSTRAINT [FK_ecDomainsSvcsCycles_ecService] +GO +ALTER TABLE [dbo].[ecDomainSvcs] WITH CHECK ADD CONSTRAINT [FK_ecDomainsSvcs_ecService] FOREIGN KEY([ServiceID]) +REFERENCES [dbo].[ecService] ([ServiceID]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[ecDomainSvcs] CHECK CONSTRAINT [FK_ecDomainsSvcs_ecService] +GO ALTER TABLE [dbo].[ecHostingPlansBillingCycles] WITH CHECK ADD CONSTRAINT [FK_ecHostingPlansBillingCycles_ecBillingCycles] FOREIGN KEY([CycleID]) REFERENCES [dbo].[ecBillingCycles] ([CycleID]) ON DELETE CASCADE @@ -44561,59 +45018,6 @@ ON DELETE CASCADE GO ALTER TABLE [dbo].[ecHostingAddonsCycles] CHECK CONSTRAINT [FK_ecHostingAddonsCycles_ecProduct] GO -ALTER TABLE [dbo].[ecAddonProducts] WITH CHECK ADD CONSTRAINT [FK_ecAddonProducts_ecProduct] FOREIGN KEY([AddonID]) -REFERENCES [dbo].[ecProduct] ([ProductID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecAddonProducts] CHECK CONSTRAINT [FK_ecAddonProducts_ecProduct] -GO -ALTER TABLE [dbo].[ServiceDefaultProperties] WITH CHECK ADD CONSTRAINT [FK_ServiceDefaultProperties_Providers] FOREIGN KEY([ProviderID]) -REFERENCES [dbo].[Providers] ([ProviderID]) -GO -ALTER TABLE [dbo].[ServiceDefaultProperties] CHECK CONSTRAINT [FK_ServiceDefaultProperties_Providers] -GO -ALTER TABLE [dbo].[ecProductsHighlights] WITH CHECK ADD CONSTRAINT [FK_ecProductsHighlights_ecProduct] FOREIGN KEY([ProductID]) -REFERENCES [dbo].[ecProduct] ([ProductID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecProductsHighlights] CHECK CONSTRAINT [FK_ecProductsHighlights_ecProduct] -GO -ALTER TABLE [dbo].[ecProductCategories] WITH CHECK ADD CONSTRAINT [FK_EC_ProductsToCategories_EC_Categories] FOREIGN KEY([CategoryID]) -REFERENCES [dbo].[ecCategory] ([CategoryID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecProductCategories] CHECK CONSTRAINT [FK_EC_ProductsToCategories_EC_Categories] -GO -ALTER TABLE [dbo].[ecProductCategories] WITH CHECK ADD CONSTRAINT [FK_EC_ProductsToCategories_EC_Products] FOREIGN KEY([ProductID]) -REFERENCES [dbo].[ecProduct] ([ProductID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecProductCategories] CHECK CONSTRAINT [FK_EC_ProductsToCategories_EC_Products] -GO -ALTER TABLE [dbo].[ecSvcsUsageLog] WITH CHECK ADD CONSTRAINT [FK_ecSvcsUsageLog_ecService] FOREIGN KEY([ServiceID]) -REFERENCES [dbo].[ecService] ([ServiceID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecSvcsUsageLog] CHECK CONSTRAINT [FK_ecSvcsUsageLog_ecService] -GO -ALTER TABLE [dbo].[ecHostingAddons] WITH CHECK ADD CONSTRAINT [FK_ecHostingAddons_ecProduct] FOREIGN KEY([ProductID]) -REFERENCES [dbo].[ecProduct] ([ProductID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecHostingAddons] CHECK CONSTRAINT [FK_ecHostingAddons_ecProduct] -GO -ALTER TABLE [dbo].[ecDomainSvcsCycles] WITH CHECK ADD CONSTRAINT [FK_ecDomainsSvcsCycles_ecService] FOREIGN KEY([ServiceID]) -REFERENCES [dbo].[ecService] ([ServiceID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecDomainSvcsCycles] CHECK CONSTRAINT [FK_ecDomainsSvcsCycles_ecService] -GO -ALTER TABLE [dbo].[ecDomainSvcs] WITH CHECK ADD CONSTRAINT [FK_ecDomainsSvcs_ecService] FOREIGN KEY([ServiceID]) -REFERENCES [dbo].[ecService] ([ServiceID]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[ecDomainSvcs] CHECK CONSTRAINT [FK_ecDomainsSvcs_ecService] -GO ALTER TABLE [dbo].[ServiceProperties] WITH CHECK ADD CONSTRAINT [FK_ServiceProperties_Services] FOREIGN KEY([ServiceID]) REFERENCES [dbo].[Services] ([ServiceID]) ON DELETE CASCADE diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index a9f7a9e1..a949fd61 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -11,31 +11,3 @@ BEGIN INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (@build_version, @build_date) END GO - --- registering MySQL 5.5 provider -IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'MySQL Server 5.5') -BEGIN - -- provider - INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (301, 11, N'MySQL', N'MySQL Server 5.5', N'WebsitePanel.Providers.Database.MySqlServer55, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) - -- properties - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (301, N'ExternalAddress', N'localhost') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (301, N'InstallFolder', N'%PROGRAMFILES%\MySQL\MySQL Server 5.5') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (301, N'InternalAddress', N'localhost,3306') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (301, N'RootLogin', N'root') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (301, N'RootPassword', N'') -END -GO - --- registering SmarterMail 9.x provider -IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'SmarterMail 9.x') -BEGIN - -- provider - INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL) - -- properties - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (65, N'AdminPassword', N'') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (65, N'AdminUsername', N'admin') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (65, N'DomainsPath', N'%SYSTEMDRIVE%\SmarterMail') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (65, N'ServerIPAddress', N'127.0.0.1;127.0.0.1') - INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (65, N'ServiceUrl', N'http://localhost:9998/services/') -END -GO \ No newline at end of file