diff --git a/WebsitePanel/Database/install_db.sql b/WebsitePanel/Database/install_db.sql
index 6d7a094e..35401f46 100644
--- a/WebsitePanel/Database/install_db.sql
+++ b/WebsitePanel/Database/install_db.sql
@@ -20,455 +20,6 @@ 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
@@ -502,6 +53,7 @@ CREATE TABLE [dbo].[Users](
[HtmlMail] [bit] NULL,
[CompanyName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
[EcommerceEnabled] [bit] NULL,
+ [AdditionalParams] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[UserID] ASC
@@ -516,7 +68,7 @@ GO
SET IDENTITY_INSERT [dbo].[Users] ON
GO
-INSERT [dbo].[Users] ([UserID], [OwnerID], [RoleID], [StatusID], [IsDemo], [IsPeer], [Username], [Password], [FirstName], [LastName], [Email], [Created], [Changed], [Comments], [SecondaryEmail], [Address], [City], [State], [Country], [Zip], [PrimaryPhone], [SecondaryPhone], [Fax], [InstantMessenger], [HtmlMail], [CompanyName], [EcommerceEnabled]) VALUES (1, NULL, 1, 1, 0, 0, N'serveradmin', N'', N'Enterprise', N'Administrator', N'serveradmin@myhosting.com', CAST(0x00009DB500D45270 AS DateTime), CAST(0x00009DB500D45270 AS DateTime), N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', 1, NULL, 1)
+INSERT [dbo].[Users] ([UserID], [OwnerID], [RoleID], [StatusID], [IsDemo], [IsPeer], [Username], [Password], [FirstName], [LastName], [Email], [Created], [Changed], [Comments], [SecondaryEmail], [Address], [City], [State], [Country], [Zip], [PrimaryPhone], [SecondaryPhone], [Fax], [InstantMessenger], [HtmlMail], [CompanyName], [EcommerceEnabled], [AdditionalParams]) VALUES (1, NULL, 1, 1, 0, 0, N'serveradmin', N'', N'Enterprise', N'Administrator', N'serveradmin@myhosting.com', CAST(0x00009DB500D45270 AS DateTime), CAST(0x00009DB500D45270 AS DateTime), N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', 1, NULL, 1, NULL)
GO
SET IDENTITY_INSERT [dbo].[Users] OFF
GO
@@ -603,6 +155,7 @@ END
+
GO
@@ -739,6 +292,7 @@ END
+
GO
@@ -868,6 +422,7 @@ END
+
GO
@@ -896,19 +451,43 @@ GO
-CREATE PROCEDURE [dbo].[GetExchangeAccountsPaged]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE SearchExchangeAccounts
(
@ActorID int,
@ItemID int,
- @AccountTypes nvarchar(30),
+ @IncludeMailboxes bit,
+ @IncludeContacts bit,
+ @IncludeDistributionLists bit,
+ @IncludeRooms bit,
+ @IncludeEquipment bit,
@FilterColumn nvarchar(50) = '',
@FilterValue nvarchar(50) = '',
- @SortColumn nvarchar(50),
- @StartRow int,
- @MaximumRows int
+ @SortColumn nvarchar(50)
)
AS
-
DECLARE @PackageID int
SELECT @PackageID = PackageID FROM ServiceItems
WHERE ItemID = @ItemID
@@ -920,22 +499,17 @@ RAISERROR('You are not allowed to access this package', 16, 1)
-- start
DECLARE @condition nvarchar(700)
SET @condition = '
-EA.AccountType IN (' + @AccountTypes + ')
+((@IncludeMailboxes = 1 AND EA.AccountType = 1)
+OR (@IncludeContacts = 1 AND EA.AccountType = 2)
+OR (@IncludeDistributionLists = 1 AND EA.AccountType = 3)
+OR (@IncludeRooms = 1 AND EA.AccountType = 5)
+OR (@IncludeEquipment = 1 AND EA.AccountType = 6))
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
+SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
IF @SortColumn IS NULL OR @SortColumn = ''
SET @SortColumn = 'EA.DisplayName ASC'
@@ -943,30 +517,22 @@ 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
-'
+SELECT
+ EA.AccountID,
+ EA.ItemID,
+ EA.AccountType,
+ EA.AccountName,
+ EA.DisplayName,
+ EA.PrimaryEmailAddress,
+ EA.MailEnabledPublicFolder
+FROM ExchangeAccounts AS EA
+WHERE ' + @condition
print @sql
-exec sp_executesql @sql, N'@ItemID int, @StartRow int, @MaximumRows int',
-@ItemID, @StartRow, @MaximumRows
+exec sp_executesql @sql, N'@ItemID int, @IncludeMailboxes int, @IncludeContacts int,
+ @IncludeDistributionLists int, @IncludeRooms bit, @IncludeEquipment bit',
+@ItemID, @IncludeMailboxes, @IncludeContacts, @IncludeDistributionLists, @IncludeRooms, @IncludeEquipment
RETURN
@@ -976,6 +542,29 @@ RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
GO
SET ANSI_NULLS ON
GO
@@ -988,110 +577,31 @@ GO
-
-
-
-
-CREATE PROCEDURE [dbo].[GetDomainsPaged]
+CREATE PROCEDURE [dbo].[MoveServiceItem]
(
@ActorID int,
- @PackageID int,
- @ServerID int,
- @Recursive bit,
- @FilterColumn nvarchar(50) = '',
- @FilterValue nvarchar(50) = '',
- @SortColumn nvarchar(50),
- @StartRow int,
- @MaximumRows int
+ @ItemID int,
+ @DestinationServiceID int
)
AS
-SET NOCOUNT ON
-- 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)
--- build query and run it to the temporary table
-DECLARE @sql nvarchar(2000)
+BEGIN TRAN
-IF @SortColumn = '' OR @SortColumn IS NULL
-SET @SortColumn = 'DomainName'
+UPDATE ServiceItems
+SET ServiceID = @DestinationServiceID
+WHERE ItemID = @ItemID
-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
+COMMIT TRAN
+RETURN
@@ -1130,6 +640,24 @@ 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
@@ -1147,15 +675,46 @@ GO
-CREATE PROCEDURE [dbo].[DeleteOrganizationUsers]
- @ItemID int
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddExchangeOrganization
+(
+ @ItemID int,
+ @OrganizationID nvarchar(10)
+)
AS
-BEGIN
- SET NOCOUNT ON;
- DELETE FROM ExchangeAccounts WHERE ItemID = @ItemID
+IF NOT EXISTS(SELECT * FROM ExchangeOrganizations WHERE OrganizationID = @OrganizationID)
+BEGIN
+ INSERT INTO ExchangeOrganizations
+ (ItemID, OrganizationID)
+ VALUES
+ (@ItemID, @OrganizationID)
END
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1207,47 +766,19 @@ GO
-CREATE PROCEDURE [dbo].[AddExchangeAccount]
+
+
+CREATE PROCEDURE ExchangeOrganizationExists
(
- @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)
+ @OrganizationID nvarchar(10),
+ @Exists bit OUTPUT
)
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()
+SET @Exists = 0
+IF EXISTS(SELECT * FROM ExchangeOrganizations WHERE OrganizationID = @OrganizationID)
+BEGIN
+ SET @Exists = 1
+END
RETURN
@@ -1276,6 +807,9 @@ RETURN
+
+
+
@@ -1283,7 +817,27 @@ RETURN
GO
SET ANSI_NULLS ON
GO
-SET QUOTED_IDENTIFIER OFF
+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
@@ -1296,58 +850,265 @@ GO
-CREATE PROCEDURE AddDomain
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddExchangeOrganizationDomain
(
- @DomainID int OUTPUT,
- @ActorID int,
- @PackageID int,
- @ZoneItemID int,
- @DomainName nvarchar(200),
- @HostingAllowed bit,
- @WebSiteID int,
- @MailDomainID int,
- @IsSubDomain bit,
- @IsInstantAlias bit,
- @IsDomainPointer bit
+ @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
--- check rights
+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)
-IF @ZoneItemID = 0 SET @ZoneItemID = NULL
-IF @WebSiteID = 0 SET @WebSiteID = NULL
-IF @MailDomainID = 0 SET @MailDomainID = NULL
+SELECT
+ AccountID,
+ ItemID,
+ @PackageID AS PackageID,
+ AccountType,
+ AccountName,
+ DisplayName,
+ PrimaryEmailAddress,
+ MailEnabledPublicFolder,
+ MailboxManagerActions,
+ SamAccountName,
+ AccountPassword
+FROM ExchangeAccounts
+WHERE AccountID = @AccountID
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- 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
@@ -1430,99 +1191,463 @@ GO
-CREATE PROCEDURE AddSchedule
+CREATE PROCEDURE DeleteSchedule
(
@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
+ @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 [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)
--- insert record
-BEGIN TRAN
-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
-)
+-- start
+DECLARE @condition nvarchar(700)
+SET @condition = '
+(EA.AccountType = 7 OR (EA.AccountType = 1 AND @IncludeMailboxes = 1) )
+AND EA.ItemID = @ItemID
+'
-SET @ScheduleID = SCOPE_IDENTITY()
+IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
+AND @FilterValue <> '' AND @FilterValue IS NOT NULL
+SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
-DECLARE @idoc int
---Create an internal representation of the XML document.
-EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters
+IF @SortColumn IS NULL OR @SortColumn = ''
+SET @SortColumn = 'EA.DisplayName ASC'
--- Execute a SELECT statement that uses the OPENXML rowset provider.
-DELETE FROM ScheduleParameters
-WHERE ScheduleID = @ScheduleID
+DECLARE @sql nvarchar(3500)
-INSERT INTO ScheduleParameters
-(
- ScheduleID,
- ParameterID,
- ParameterValue
-)
+set @sql = '
SELECT
- @ScheduleID,
- ParameterID,
- ParameterValue
-FROM OPENXML(@idoc, '/parameters/parameter',1) WITH
+ 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
(
- ParameterID nvarchar(50) '@id',
- ParameterValue nvarchar(3000) '@value'
-) as PV
+ [PrivateAddressID] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+)
--- remove document
-exec sp_xml_removedocument @idoc
+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
@@ -1531,6 +1656,144 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1588,61 +1851,14 @@ GO
-
-
-
-
-CREATE PROCEDURE CheckDomain
+CREATE PROCEDURE [dbo].[GetOrganizationStatistics]
(
- @PackageID int,
- @DomainName nvarchar(100),
- @Result int OUTPUT
+ @ItemID int
)
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
-
+ (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
@@ -1664,6 +1880,89 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1829,6 +2128,153 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1913,118 +2359,6 @@ 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
@@ -2144,6 +2478,7 @@ END
+
GO
@@ -2151,17 +2486,2304 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-CREATE TABLE [dbo].[ExchangeAccountEmailAddresses](
- [AddressID] [int] IDENTITY(1,1) NOT NULL,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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 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
+
+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,
- [EmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL,
- CONSTRAINT [PK_ExchangeAccountEmailAddresses] PRIMARY KEY CLUSTERED
+ [CreatedDate] [datetime] NOT NULL,
+ [ChangedDate] [datetime] NOT NULL,
+ [CRMUserGuid] [uniqueidentifier] NULL,
+ [BusinessUnitID] [uniqueidentifier] NULL,
+ CONSTRAINT [PK_CRMUsers] 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
+ [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
(
- [EmailAddress] ASC
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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 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]
+(
+ @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
+
+
+
+
+
+
+
+
+
+
+
+
+
+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 [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 [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 [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].[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),
+ @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)
)
@@ -2198,19 +4820,197 @@ GO
-CREATE PROCEDURE GetExchangeAccountEmailAddresses
+
+
+CREATE PROCEDURE GetHostingPlan
(
- @AccountID int
+ @ActorID int,
+ @PlanID int
)
AS
+
SELECT
- AddressID,
- AccountID,
- EmailAddress
-FROM
- ExchangeAccountEmailAddresses
-WHERE
- AccountID = @AccountID
+ 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
+(
+ @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
+)
+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
+
+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
@@ -2242,32 +5042,89 @@ RETURN
+
GO
SET ANSI_NULLS ON
GO
-SET QUOTED_IDENTIFIER ON
+SET QUOTED_IDENTIFIER OFF
GO
-CREATE PROCEDURE [dbo].[ExchangeAccountEmailAddressExists]
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddDomain
(
- @EmailAddress nvarchar(300),
- @Exists bit OUTPUT
+ @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
- 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
+-- 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
+
+
+
+
+
+
+
+
+
+
+
- RETURN
GO
SET ANSI_NULLS ON
@@ -2296,19 +5153,54 @@ GO
--- =============================================
--- Description: Delete user email addresses except primary email
--- =============================================
-CREATE PROCEDURE [dbo].[DeleteUserEmailAddresses]
- @AccountId int,
- @PrimaryEmailAddress nvarchar(300)
+
+
+
+
+
+
+
+
+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
-DELETE FROM
- ExchangeAccountEmailAddresses
-WHERE
- AccountID = @AccountID AND LOWER(EmailAddress) <> LOWER(@PrimaryEmailAddress)
+ IF @TmpParentPackageID = @ParentPackageID
+ RETURN 1
+
+ SET @TmpPackageID = @TmpParentPackageID
+END
+
+
+RETURN 0
END
@@ -2326,6 +5218,17 @@ END
+
+
+
+
+
+
+
+
+
+
+
@@ -2369,22 +5272,59 @@ GO
-CREATE PROCEDURE AddExchangeAccountEmailAddress
+
+
+CREATE PROCEDURE CheckDomain
(
- @AccountID int,
- @EmailAddress nvarchar(300)
+ @PackageID int,
+ @DomainName nvarchar(100),
+ @Result int OUTPUT
)
AS
-INSERT INTO ExchangeAccountEmailAddresses
-(
- AccountID,
- EmailAddress
-)
-VALUES
-(
- @AccountID,
- @EmailAddress
+
+/*
+@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
@@ -2404,6 +5344,207 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2581,6 +5722,7 @@ RETURN
+
GO
@@ -2738,6 +5880,740 @@ 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
+
+
+
+
+
+
+
+
@@ -2851,6 +6727,7 @@ END
+
GO
@@ -2889,6 +6766,258 @@ 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,
@@ -2923,6 +7052,7 @@ END
+
GO
SET ANSI_NULLS ON
GO
@@ -3038,6 +7168,7 @@ RETURN
+
GO
@@ -3139,37 +7270,288 @@ RETURN
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[HostingPlanQuotas](
- [PlanID] [int] NOT NULL,
- [QuotaID] [int] NOT NULL,
- [QuotaValue] [int] NOT NULL,
- CONSTRAINT [PK_HostingPlanQuotas_1] PRIMARY KEY CLUSTERED
-(
- [PlanID] 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].[PackageQuotas](
- [PackageID] [int] NOT NULL,
- [QuotaID] [int] NOT NULL,
- [QuotaValue] [int] NOT NULL,
- CONSTRAINT [PK_PackageQuotas] PRIMARY KEY CLUSTERED
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE DeletePackageAddon
(
- [PackageID] ASC,
- [QuotaID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ @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 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 [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
@@ -3306,7 +7688,7 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (69, 11, 2, N'MySQL5.Users', N'Users', 2, 0, 24)
GO
-INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (70, 11, 3, N'MySQL5.Backup', N'Database Backups', 1, 0, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (70, 11, 4, N'MySQL5.Backup', N'Database Backups', 1, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (71, 1, 9, N'OS.ScheduledTasks', N'Scheduled Tasks', 2, 0, NULL)
GO
@@ -3362,6 +7744,18 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (102, 4, 8, N'Mail.DisableSizeEdit', N'Disable Mailbox Size Edit', 1, 0, NULL)
GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (103, 6, 3, N'MySQL4.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (104, 6, 5, N'MySQL4.Restore', N'Database Restores', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (105, 6, 6, N'MySQL4.Truncate', N'Database Truncate', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (106, 11, 3, N'MySQL5.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (107, 11, 5, N'MySQL5.Restore', N'Database Restores', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (108, 11, 6, N'MySQL5.Truncate', N'Database Truncate', 1, 0, NULL)
+GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (200, 20, 1, N'HostedSharePoint.Sites', N'SharePoint Site Collections', 3, 0, 200)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (203, 10, 4, N'MsSQL2005.MaxLogSize', N'Max Log Size', 3, 0, NULL)
@@ -3469,6 +7863,62 @@ GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (342, 33, 3, N'ExchangeHostedEdition.Contacts', N'Contacts', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (343, 33, 4, N'ExchangeHostedEdition.DistributionLists', N'Distribution Lists', 3, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (344, 2, 9, N'Web.Htaccess', N'htaccess', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (345, 40, 1, N'VPSForPC.ServersNumber', N'Number of VPS', 2, 0, 35)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (346, 40, 2, N'VPSForPC.ManagingAllowed', N'Allow user to create VPS', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (347, 40, 3, N'VPSForPC.CpuNumber', N'Number of CPU cores', 3, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (348, 40, 7, N'VPSForPC.BootCdAllowed', N'Boot from CD allowed', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (349, 40, 7, N'VPSForPC.BootCdEnabled', N'Boot from CD', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (350, 40, 4, N'VPSForPC.Ram', N'RAM size, MB', 2, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (351, 40, 5, N'VPSForPC.Hdd', N'Hard Drive size, GB', 2, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (352, 40, 6, N'VPSForPC.DvdEnabled', N'DVD drive', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (353, 40, 10, N'VPSForPC.ExternalNetworkEnabled', N'External Network', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (354, 40, 11, N'VPSForPC.ExternalIPAddressesNumber', N'Number of External IP addresses', 2, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (355, 40, 13, N'VPSForPC.PrivateNetworkEnabled', N'Private Network', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (356, 40, 14, N'VPSForPC.PrivateIPAddressesNumber', N'Number of Private IP addresses per VPS', 3, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (357, 40, 9, N'VPSForPC.SnapshotsNumber', N'Number of Snaphots', 3, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (358, 40, 15, N'VPSForPC.StartShutdownAllowed', N'Allow user to Start, Turn off and Shutdown VPS', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (359, 40, 16, N'VPSForPC.PauseResumeAllowed', N'Allow user to Pause, Resume VPS', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (360, 40, 17, N'VPSForPC.RebootAllowed', N'Allow user to Reboot VPS', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (361, 40, 18, N'VPSForPC.ResetAlowed', N'Allow user to Reset VPS', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (362, 40, 19, N'VPSForPC.ReinstallAllowed', N'Allow user to Re-install VPS', 1, 0, NULL)
+GO
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (363, 40, 12, N'VPSForPC.Bandwidth', N'Monthly bandwidth, GB', 2, 0, NULL)
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[HostingPlanQuotas](
+ [PlanID] [int] NOT NULL,
+ [QuotaID] [int] NOT NULL,
+ [QuotaValue] [int] NOT NULL,
+ CONSTRAINT [PK_HostingPlanQuotas_1] PRIMARY KEY CLUSTERED
+(
+ [PlanID] 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
@@ -3640,6 +8090,7 @@ END
+
GO
@@ -3716,1067 +8167,6 @@ 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 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].[HostingPlanResources](
- [PlanID] [int] NOT NULL,
- [GroupID] [int] NOT NULL,
- [CalculateDiskSpace] [bit] NULL,
- [CalculateBandwidth] [bit] NULL,
- CONSTRAINT [PK_HostingPlanResources] PRIMARY KEY CLUSTERED
-(
- [PlanID] 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 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 FUNCTION CalculatePackageDiskspace
-(
- @PackageID int
-)
-RETURNS int
-AS
-BEGIN
-
-DECLARE @Diskspace int
-
-SELECT
- @Diskspace = ROUND(CONVERT(float, SUM(ISNULL(PD.DiskSpace, 0))) / 1024 / 1024, 0) -- in megabytes
-FROM PackagesTreeCache AS PT
-INNER JOIN Packages AS P ON PT.PackageID = P.PackageID
-INNER JOIN PackagesDiskspace AS PD ON P.PackageID = PD.PackageID
-INNER JOIN HostingPlanResources AS HPR ON PD.GroupID = HPR.GroupID
- AND HPR.PlanID = P.PlanID AND HPR.CalculateDiskspace = 1
-WHERE PT.ParentPackageID = @PackageID
-
-RETURN @Diskspace
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[PackagesBandwidth](
- [PackageID] [int] NOT NULL,
- [GroupID] [int] NOT NULL,
- [LogDate] [datetime] NOT NULL,
- [BytesSent] [bigint] NOT NULL,
- [BytesReceived] [bigint] NOT NULL,
- CONSTRAINT [PK_PackagesBandwidth] PRIMARY KEY CLUSTERED
-(
- [PackageID] ASC,
- [GroupID] ASC,
- [LogDate] 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 CalculatePackageBandwidth
-(
- @PackageID int
-)
-RETURNS int
-AS
-BEGIN
-
-DECLARE @d datetime, @StartDate datetime, @EndDate datetime
-SET @d = GETDATE()
-SET @StartDate = DATEADD(Day, -DAY(@d) + 1, @d)
-SET @EndDate = DATEADD(Day, -1, DATEADD(Month, 1, @StartDate))
---SET @EndDate = GETDATE()
---SET @StartDate = DATEADD(month, -1, @EndDate)
-
--- remove hours and minutes
-SET @StartDate = CONVERT(datetime, CONVERT(nvarchar, @StartDate, 112))
-SET @EndDate = CONVERT(datetime, CONVERT(nvarchar, @EndDate, 112))
-
-DECLARE @Bandwidth int
-SELECT
- @Bandwidth = ROUND(CONVERT(float, SUM(ISNULL(PB.BytesSent + PB.BytesReceived, 0))) / 1024 / 1024, 0) -- in megabytes
-FROM PackagesTreeCache AS PT
-INNER JOIN Packages AS P ON PT.PackageID = P.PackageID
-INNER JOIN PackagesBandwidth AS PB ON PT.PackageID = PB.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
-
-IF @Bandwidth IS NULL
-SET @Bandwidth = 0
-
-RETURN @Bandwidth
-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].[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
@@ -4839,6 +8229,206 @@ 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
GO
@@ -4969,6 +8559,7 @@ RETURN
+
GO
@@ -5103,6 +8694,178 @@ RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetPackageBandwidthUpdate
+(
+ @PackageID int,
+ @UpdateDate datetime OUTPUT
+)
+AS
+ SELECT @UpdateDate = BandwidthUpdated FROM Packages
+ WHERE PackageID = @PackageID
+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
+
@@ -5194,6 +8957,7 @@ RETURN
+
GO
@@ -5249,6 +9013,7 @@ RETURN
+
GO
SET ANSI_NULLS ON
GO
@@ -5265,472 +9030,6 @@ CREATE TABLE [dbo].[ServiceItemProperties](
)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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 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
@@ -5841,150 +9140,6 @@ 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -6008,12 +9163,28 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-CREATE TABLE [dbo].[PackageResources](
+CREATE TABLE [dbo].[HostingPlanResources](
+ [PlanID] [int] NOT NULL,
+ [GroupID] [int] NOT NULL,
+ [CalculateDiskSpace] [bit] NULL,
+ [CalculateBandwidth] [bit] NULL,
+ CONSTRAINT [PK_HostingPlanResources] PRIMARY KEY CLUSTERED
+(
+ [PlanID] 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 TABLE [dbo].[PackagesDiskspace](
[PackageID] [int] NOT NULL,
[GroupID] [int] NOT NULL,
- [CalculateDiskspace] [bit] NOT NULL,
- [CalculateBandwidth] [bit] NOT NULL,
- CONSTRAINT [PK_PackageResources_1] PRIMARY KEY CLUSTERED
+ [DiskSpace] [bigint] NOT NULL,
+ CONSTRAINT [PK_PackagesDiskspace] PRIMARY KEY CLUSTERED
(
[PackageID] ASC,
[GroupID] ASC
@@ -6053,956 +9224,26 @@ GO
-
-
-CREATE PROCEDURE UpdatePackageQuotas
+CREATE FUNCTION CalculatePackageDiskspace
(
- @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 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 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].[MoveServiceItem]
-(
- @ActorID int,
- @ItemID int,
- @DestinationServiceID 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 ServiceItems
-SET ServiceID = @DestinationServiceID
-WHERE ItemID = @ItemID
-
-COMMIT TRAN
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetResellerDomains
-(
- @ActorID int,
@PackageID int
)
+RETURNS int
AS
+BEGIN
--- 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
+DECLARE @Diskspace int
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 GetPackageBandwidthUpdate
-(
- @PackageID int,
- @UpdateDate datetime OUTPUT
-)
-AS
- SELECT @UpdateDate = BandwidthUpdated FROM Packages
- WHERE PackageID = @PackageID
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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
+ @Diskspace = ROUND(CONVERT(float, SUM(ISNULL(PD.DiskSpace, 0))) / 1024 / 1024, 0) -- in megabytes
+FROM PackagesTreeCache AS PT
+INNER JOIN Packages AS P ON PT.PackageID = P.PackageID
+INNER JOIN PackagesDiskspace AS PD ON P.PackageID = PD.PackageID
+INNER JOIN HostingPlanResources AS HPR ON PD.GroupID = HPR.GroupID
+ AND HPR.PlanID = P.PlanID AND HPR.CalculateDiskspace = 1
+WHERE PT.ParentPackageID = @PackageID
+
+RETURN @Diskspace
END
@@ -7024,71 +9265,6 @@ 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -7106,177 +9282,17 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE AddExchangeOrganization
+CREATE TABLE [dbo].[PackagesBandwidth](
+ [PackageID] [int] NOT NULL,
+ [GroupID] [int] NOT NULL,
+ [LogDate] [datetime] NOT NULL,
+ [BytesSent] [bigint] NOT NULL,
+ [BytesReceived] [bigint] NOT NULL,
+ CONSTRAINT [PK_PackagesBandwidth] PRIMARY KEY CLUSTERED
(
- @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
+ [PackageID] ASC,
+ [GroupID] ASC,
+ [LogDate] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
@@ -7311,1471 +9327,45 @@ GO
-CREATE PROCEDURE [dbo].[GetExchangeOrganizationStatistics]
+
+
+CREATE FUNCTION CalculatePackageBandwidth
(
- @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].[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 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 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 FUNCTION [dbo].[CheckPackageParent]
-(
- @ParentPackageID int,
@PackageID int
)
-RETURNS bit
+RETURNS int
AS
BEGIN
--- check if the user requests hiself
-IF @ParentPackageID = @PackageID
-BEGIN
- RETURN 1
+DECLARE @d datetime, @StartDate datetime, @EndDate datetime
+SET @d = GETDATE()
+SET @StartDate = DATEADD(Day, -DAY(@d) + 1, @d)
+SET @EndDate = DATEADD(Day, -1, DATEADD(Month, 1, @StartDate))
+--SET @EndDate = GETDATE()
+--SET @StartDate = DATEADD(month, -1, @EndDate)
+
+-- remove hours and minutes
+SET @StartDate = CONVERT(datetime, CONVERT(nvarchar, @StartDate, 112))
+SET @EndDate = CONVERT(datetime, CONVERT(nvarchar, @EndDate, 112))
+
+DECLARE @Bandwidth int
+SELECT
+ @Bandwidth = ROUND(CONVERT(float, SUM(ISNULL(PB.BytesSent + PB.BytesReceived, 0))) / 1024 / 1024, 0) -- in megabytes
+FROM PackagesTreeCache AS PT
+INNER JOIN Packages AS P ON PT.PackageID = P.PackageID
+INNER JOIN PackagesBandwidth AS PB ON PT.PackageID = PB.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
+
+IF @Bandwidth IS NULL
+SET @Bandwidth = 0
+
+RETURN @Bandwidth
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
-
-
-
-
-
@@ -8812,333 +9402,18 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[SearchOrganizationAccounts]
+CREATE TABLE [dbo].[ecBillingCycles](
+ [CycleID] [int] IDENTITY(1,1) NOT NULL,
+ [ResellerID] [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,
+ [Created] [datetime] NOT NULL,
+ CONSTRAINT [PK_ecBillingCycles] PRIMARY KEY CLUSTERED
(
- @ActorID int,
- @ItemID int,
- @FilterColumn nvarchar(50) = '',
- @FilterValue nvarchar(50) = '',
- @SortColumn nvarchar(50),
- @IncludeMailboxes bit
+ [CycleID] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
-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 PROCEDURE SearchExchangeAccounts
-(
- @ActorID int,
- @ItemID int,
- @IncludeMailboxes bit,
- @IncludeContacts bit,
- @IncludeDistributionLists bit,
- @IncludeRooms bit,
- @IncludeEquipment bit,
- @FilterColumn nvarchar(50) = '',
- @FilterValue nvarchar(50) = '',
- @SortColumn nvarchar(50)
-)
-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 = '
-((@IncludeMailboxes = 1 AND EA.AccountType = 1)
-OR (@IncludeContacts = 1 AND EA.AccountType = 2)
-OR (@IncludeDistributionLists = 1 AND EA.AccountType = 3)
-OR (@IncludeRooms = 1 AND EA.AccountType = 5)
-OR (@IncludeEquipment = 1 AND EA.AccountType = 6))
-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,
- EA.MailEnabledPublicFolder
-FROM ExchangeAccounts AS EA
-WHERE ' + @condition
-
-print @sql
-
-exec sp_executesql @sql, N'@ItemID int, @IncludeMailboxes int, @IncludeContacts int,
- @IncludeDistributionLists int, @IncludeRooms bit, @IncludeEquipment bit',
-@ItemID, @IncludeMailboxes, @IncludeContacts, @IncludeDistributionLists, @IncludeRooms, @IncludeEquipment
-
-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
@@ -9214,6 +9489,7 @@ RETURN
+
GO
@@ -9288,6 +9564,7 @@ WHERE
+
GO
SET ANSI_NULLS ON
GO
@@ -9422,10 +9699,137 @@ DROP TABLE #TempOCSUsers
+
GO
SET ANSI_NULLS ON
GO
-SET QUOTED_IDENTIFIER ON
+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
@@ -9442,40 +9846,72 @@ GO
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE VIEW [dbo].[UsersDetailed]
+CREATE PROCEDURE [dbo].[GetPackagePrivateIPAddressesPaged]
+ @PackageID int,
+ @FilterColumn nvarchar(50) = '',
+ @FilterValue nvarchar(50) = '',
+ @SortColumn nvarchar(50),
+ @StartRow int,
+ @MaximumRows int
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
+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
@@ -9593,6 +10029,7 @@ RETURN
+
GO
@@ -9600,16 +10037,787 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-CREATE TABLE [dbo].[ecBillingCycles](
- [CycleID] [int] IDENTITY(1,1) NOT NULL,
- [ResellerID] [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,
- [Created] [datetime] NOT NULL,
- CONSTRAINT [PK_ecBillingCycles] PRIMARY KEY CLUSTERED
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE FUNCTION [dbo].[CanUpdatePackageDetails]
(
- [CycleID] ASC
+ @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)
)
@@ -9646,14 +10854,27 @@ GO
-CREATE PROCEDURE DeleteAllLogRecords
+
+
+CREATE FUNCTION GetFullIPAddress
+(
+ @ExternalIP varchar(24),
+ @InternalIP varchar(24)
+)
+RETURNS varchar(60)
AS
+BEGIN
+DECLARE @IP varchar(60)
+SET @IP = ''
-DELETE FROM Log
-
-RETURN
+IF @ExternalIP IS NOT NULL AND @ExternalIP <> ''
+SET @IP = @ExternalIP
+IF @InternalIP IS NOT NULL AND @InternalIP <> ''
+SET @IP = @IP + ' (' + @InternalIP + ')'
+RETURN @IP
+END
@@ -10238,6 +11459,80 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -10294,1125 +11589,6 @@ 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', 5, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (6, N'MySQL4', 7, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (7, N'DNS', 10, N'WebsitePanel.EnterpriseServer.DnsServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (8, N'Statistics', 11, N'WebsitePanel.EnterpriseServer.StatisticsServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (9, N'SharePoint', 9, N'WebsitePanel.EnterpriseServer.SharePointServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (10, N'MsSQL2005', 6, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (11, N'MySQL5', 8, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (12, N'Exchange', 4, NULL)
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (13, N'Hosted Organizations', 4, NULL)
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (20, N'Hosted SharePoint', 9, N'WebsitePanel.EnterpriseServer.HostedSharePointServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (21, N'Hosted CRM', 10, NULL)
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (22, N'MsSQL2008', 7, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (30, N'VPS', 12, NULL)
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (31, N'BlackBerry', 13, NULL)
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (32, N'OCS', 14, NULL)
-GO
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (33, N'ExchangeHostedEdition', 4, N'WebsitePanel.EnterpriseServer.ExchangeHostedEditionController')
-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 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
-
-
-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 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 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -11569,6 +11745,277 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -11725,6 +12172,36 @@ 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
@@ -11877,6 +12354,345 @@ 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
@@ -12583,416 +13399,6 @@ GO
INSERT [dbo].[ecStoreDefaultSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SystemSettings', N'SvcCancelThreshold', N'3')
GO
INSERT [dbo].[ecStoreDefaultSettings] ([SettingsName], [PropertyName], [PropertyValue]) VALUES (N'SystemSettings', N'SvcInvoiceThreshold', N'7')
-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].[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.2.0.0', CAST(0x00009E4700000000 AS DateTime))
-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].[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].[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].[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 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
@@ -13026,154 +13432,10 @@ 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
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetPackageSettings
-(
- @ActorID int,
- @PackageID int,
- @SettingsName nvarchar(50)
-)
+CREATE PROCEDURE DeleteAllLogRecords
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
+DELETE FROM Log
RETURN
@@ -13213,6 +13475,32 @@ RETURN
+GO
+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))
GO
SET ANSI_NULLS ON
GO
@@ -13251,6 +13539,8 @@ INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE
GO
INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'WebsitePanel.EnterpriseServer.HostedSolutionReportTask, WebsitePanel.EnterpriseServer', 2)
GO
+INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WebsitePanel.EnterpriseServer.NotifyOverusedDatabasesTask, WebsitePanel.EnterpriseServer', 2)
+GO
INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_RUN_PAYMENT_QUEUE', N'WebsitePanel.Ecommerce.EnterpriseServer.RunPaymentQueueTask, WebsitePanel.EnterpriseServer', 2)
GO
INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'WebsitePanel.EnterpriseServer.RunSystemCommandTask, WebsitePanel.EnterpriseServer', 1)
@@ -13358,6 +13648,3750 @@ RETURN
+
+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 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].[ScheduleTaskParameters](
+ [TaskID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL,
+ [ParameterID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL,
+ [DataTypeID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
+ [DefaultValue] [nvarchar](140) COLLATE Latin1_General_CI_AS NULL,
+ [ParameterOrder] [int] NOT NULL,
+ CONSTRAINT [PK_ScheduleTaskParameters] PRIMARY KEY CLUSTERED
+(
+ [TaskID] ASC,
+ [ParameterID] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+)
+
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'BACKUP_FILE_NAME', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'DELETE_TEMP_BACKUP', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'STORE_PACKAGE_FOLDER', N'String', N'\', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'STORE_PACKAGE_ID', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'STORE_SERVER_FOLDER', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'BACKUP_FOLDER', N'String', N'\backups', 3)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'BACKUP_NAME', N'String', N'database_backup.bak', 4)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_GROUP', N'List', N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_NAME', N'String', N'', 2)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'ZIP_BACKUP', N'List', N'true=Yes;false=No', 5)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_BODY', N'MultiString', N'', 10)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_FROM', N'String', N'admin@mysite.com', 7)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_SUBJECT', N'String', N'Web Site is unavailable', 9)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_TO', N'String', N'admin@mysite.com', 8)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'PASSWORD', N'String', NULL, 3)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'RESPONSE_CONTAIN', N'String', NULL, 5)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'RESPONSE_DOESNT_CONTAIN', N'String', NULL, 6)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'RESPONSE_STATUS', N'String', N'500', 4)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'URL', N'String', N'http://', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USE_RESPONSE_CONTAIN', N'Boolean', N'false', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USE_RESPONSE_DOESNT_CONTAIN', N'Boolean', N'false', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USE_RESPONSE_STATUS', N'Boolean', N'false', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USERNAME', N'String', NULL, 2)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FILE_PATH', N'String', N'\', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_FOLDER', N'String', NULL, 5)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_PASSWORD', N'String', NULL, 4)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_SERVER', N'String', N'ftp.myserver.com', 2)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_USERNAME', N'String', NULL, 3)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'CRM_REPORT', N'Boolean', N'true', 3)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'EMAIL', N'String', NULL, 5)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'EXCHANGE_REPORT', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'ORGANIZATION_REPORT', N'Boolean', N'true', 4)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'SHAREPOINT_REPORT', N'Boolean', N'true', 2)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'MSSQL_OVERUSED', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'MYSQL_OVERUSED', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_BCC', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_BODY', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_FROM', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_SUBJECT', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_USAGE_THRESHOLD', N'String', N'100', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'SEND_OVERUSED_EMAIL', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'SEND_WARNING_EMAIL', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_BCC', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_BODY', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_FROM', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_SUBJECT', N'String', N'', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_USAGE_THRESHOLD', N'String', N'80', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'EXECUTABLE_PARAMS', N'String', N'', 3)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'EXECUTABLE_PATH', N'String', N'Executable.exe', 2)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'SERVER_NAME', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_BODY', N'MultiString', NULL, 4)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_FROM', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_SUBJECT', N'String', NULL, 3)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_TO', N'String', NULL, 2)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'BANDWIDTH_OVERUSED', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'DISKSPACE_OVERUSED', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SEND_SUSPENSION_EMAIL', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SEND_WARNING_EMAIL', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPEND_OVERUSED', N'Boolean', N'true', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_BCC', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_BODY', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_FROM', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_SUBJECT', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_USAGE_THRESHOLD', N'String', N'100', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_BCC', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_BODY', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_FROM', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_SUBJECT', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_USAGE_THRESHOLD', N'String', N'80', 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_ZIP_FILES', N'FOLDER', N'String', NULL, 1)
+GO
+INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_ZIP_FILES', N'ZIP_FILE', N'String', N'\archive.zip', 2)
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetSchedules
+(
+ @ActorID int,
+ @PackageID int,
+ @Recursive bit
+)
+AS
+
+-- check rights
+IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
+RAISERROR('You are not allowed to access this package', 16, 1)
+
+DECLARE @Schedules TABLE
+(
+ ScheduleID int
+)
+
+INSERT INTO @Schedules (ScheduleID)
+SELECT
+ S.ScheduleID
+FROM Schedule AS S
+INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
+ORDER BY S.Enabled DESC, S.NextRun
+
+
+-- select schedules
+SELECT
+ S.ScheduleID,
+ S.TaskID,
+ ST.TaskType,
+ ST.RoleID,
+ S.PackageID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ 1 AS StatusID,
+ S.PriorityID,
+ S.MaxExecutionTime,
+ S.WeekMonthDay,
+ ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = 'SCHEDULER' ORDER BY StartDate DESC)) AS LastResult,
+
+ U.Username,
+ U.FirstName,
+ U.LastName,
+ U.FullName,
+ U.RoleID,
+ U.Email
+FROM @Schedules AS STEMP
+INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
+INNER JOIN Packages AS P ON S.PackageID = P.PackageID
+INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
+INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
+
+-- select schedule parameters
+SELECT
+ S.ScheduleID,
+ STP.ParameterID,
+ STP.DataTypeID,
+ ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
+FROM @Schedules AS STEMP
+INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
+INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
+LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[GetScheduleParameters]
+(
+ @ActorID int,
+ @TaskID nvarchar(100),
+ @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)
+
+SELECT
+ @ScheduleID AS ScheduleID,
+ STP.ParameterID,
+ STP.DataTypeID,
+ SP.ParameterValue,
+ STP.DefaultValue
+FROM ScheduleTaskParameters AS STP
+LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = @ScheduleID
+WHERE STP.TaskID = @TaskID
+ORDER BY STP.ParameterOrder
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetSchedule
+(
+ @ActorID int,
+ @ScheduleID int
+)
+AS
+
+-- select schedule
+SELECT TOP 1
+ S.ScheduleID,
+ S.TaskID,
+ S.PackageID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ S.HistoriesNumber,
+ S.PriorityID,
+ S.MaxExecutionTime,
+ S.WeekMonthDay,
+ 1 AS StatusID
+FROM Schedule AS S
+WHERE
+ S.ScheduleID = @ScheduleID
+ AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
+
+-- select task
+SELECT
+ ST.TaskID,
+ ST.TaskType,
+ ST.RoleID
+FROM Schedule AS S
+INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
+WHERE
+ S.ScheduleID = @ScheduleID
+ AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
+
+-- select schedule parameters
+SELECT
+ S.ScheduleID,
+ STP.ParameterID,
+ STP.DataTypeID,
+ ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
+FROM Schedule AS S
+INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
+LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
+WHERE
+ S.ScheduleID = @ScheduleID
+ AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetNextSchedule
+AS
+
+-- find next schedule
+DECLARE @ScheduleID int
+DECLARE @TaskID nvarchar(100)
+SELECT TOP 1
+ @ScheduleID = ScheduleID,
+ @TaskID = TaskID
+FROM Schedule AS S
+WHERE Enabled = 1
+ORDER BY NextRun ASC
+
+-- select schedule
+SELECT TOP 1
+ S.ScheduleID,
+ S.TaskID,
+ S.PackageID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ S.HistoriesNumber,
+ S.PriorityID,
+ S.MaxExecutionTime,
+ S.WeekMonthDay,
+ 1 AS StatusID
+FROM Schedule AS S
+WHERE S.ScheduleID = @ScheduleID
+ORDER BY NextRun ASC
+
+-- select task
+SELECT
+ TaskID,
+ TaskType,
+ RoleID
+FROM ScheduleTasks
+WHERE TaskID = @TaskID
+
+-- select schedule parameters
+SELECT
+ S.ScheduleID,
+ STP.ParameterID,
+ STP.DataTypeID,
+ ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
+FROM Schedule AS S
+INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
+LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
+WHERE S.ScheduleID = @ScheduleID
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE UpdateHostingPlanQuotas
+(
+ @ActorID int,
+ @PlanID int,
+ @Xml ntext
+)
+AS
+
+/*
+XML Format:
+
+
+
+
+
+
+
+
+
+
+*/
+
+-- check rights
+DECLARE @UserID int
+SELECT @UserID = UserID FROM HostingPlans
+WHERE PlanID = @PlanID
+
+-- check rights
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
+
+DECLARE @idoc int
+--Create an internal representation of the XML document.
+EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
+
+-- delete old HP resources
+DELETE FROM HostingPlanResources
+WHERE PlanID = @PlanID
+
+-- delete old HP quotas
+DELETE FROM HostingPlanQuotas
+WHERE PlanID = @PlanID
+
+-- update HP resources
+INSERT INTO HostingPlanResources
+(
+ PlanID,
+ GroupID,
+ CalculateDiskSpace,
+ CalculateBandwidth
+)
+SELECT
+ @PlanID,
+ GroupID,
+ CalculateDiskSpace,
+ CalculateBandwidth
+FROM OPENXML(@idoc, '/plan/groups/group',1) WITH
+(
+ GroupID int '@id',
+ CalculateDiskSpace bit '@calculateDiskSpace',
+ CalculateBandwidth bit '@calculateBandwidth'
+) as XRG
+
+-- update HP quotas
+INSERT INTO HostingPlanQuotas
+(
+ PlanID,
+ QuotaID,
+ QuotaValue
+)
+SELECT
+ @PlanID,
+ 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
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddHostingPlan
+(
+ @ActorID int,
+ @PlanID int OUTPUT,
+ @UserID int,
+ @PackageID int,
+ @PlanName nvarchar(200),
+ @PlanDescription ntext,
+ @Available bit,
+ @ServerID int,
+ @SetupPrice money,
+ @RecurringPrice money,
+ @RecurrenceLength int,
+ @RecurrenceUnit int,
+ @IsAddon bit,
+ @QuotasXml ntext
+)
+AS
+
+-- check rights
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
+
+BEGIN TRAN
+
+IF @ServerID = 0
+SELECT @ServerID = ServerID FROM Packages
+WHERE PackageID = @PackageID
+
+IF @IsAddon = 1
+SET @ServerID = NULL
+
+IF @PackageID = 0 SET @PackageID = NULL
+
+INSERT INTO HostingPlans
+(
+ UserID,
+ PackageID,
+ PlanName,
+ PlanDescription,
+ Available,
+ ServerID,
+ SetupPrice,
+ RecurringPrice,
+ RecurrenceLength,
+ RecurrenceUnit,
+ IsAddon
+)
+VALUES
+(
+ @UserID,
+ @PackageID,
+ @PlanName,
+ @PlanDescription,
+ @Available,
+ @ServerID,
+ @SetupPrice,
+ @RecurringPrice,
+ @RecurrenceLength,
+ @RecurrenceUnit,
+ @IsAddon
+)
+
+SET @PlanID = SCOPE_IDENTITY()
+
+-- save quotas
+EXEC UpdateHostingPlanQuotas @ActorID, @PlanID, @QuotasXml
+
+COMMIT TRAN
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetSupportedPluginsByGroup]
+ @GroupName nvarchar(50)
+AS
+BEGIN
+
+ SELECT * FROM [dbo].[ecSupportedPlugins]
+ WHERE [PluginGroup] = @GroupName
+ ORDER BY [DisplayName];
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetSupportedPluginByID]
+ @PluginID int
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SELECT * FROM [dbo].[ecSupportedPlugins] WHERE [PluginID] = @PluginID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetSupportedPlugin]
+ @PluginName nvarchar(50),
+ @GroupName nvarchar(50)
+AS
+BEGIN
+
+ SELECT * FROM [dbo].[ecSupportedPlugins]
+ WHERE [PluginName] = @PluginName AND [PluginGroup] = @GroupName;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetStoreSettings]
+ @ResellerID int,
+ @SettingsName nvarchar(50)
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ SELECT * FROM [dbo].[ecStoreSettings]
+ WHERE [SettingsName] = @SettingsName AND [ResellerID] = @ResellerID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetStorefrontPath]
+ @ResellerID int,
+ @CategoryID int
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ WITH [PathCTE] ([CategoryID]) AS (
+ SELECT [ParentID] FROM [dbo].[ecCategory]
+ WHERE [CategoryID] = @CategoryID AND [ResellerID] = @ResellerID
+ UNION ALL
+ SELECT [ParentID] FROM [dbo].[ecCategory] AS [C]
+ INNER JOIN [PathCTE] AS [P] ON [C].[CategoryID] = [P].[CategoryID]
+ WHERE [ParentID] IS NOT NULL AND [ResellerID] = @ResellerID
+ )
+
+ SELECT
+ [CategoryID], [CategoryName]
+ FROM
+ [dbo].[ecCategory]
+ WHERE
+ (
+ [CategoryID] IN (
+ SELECT [CategoryID] FROM [PathCTE]
+ )
+ OR
+ [CategoryID] = @CategoryID
+ )
+ AND
+ [ResellerID] = @ResellerID
+ ORDER BY
+ [Level];
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetStorefrontCategory]
+ @ResellerID int,
+ @CategoryID int
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ SELECT
+ *
+ FROM
+ [dbo].[ecCategory]
+ WHERE
+ [ResellerID] = @ResellerID
+ AND
+ [CategoryID] = @CategoryID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetStorefrontCategories]
+ @ResellerID int,
+ @ParentID int
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ IF @ParentID < 1 OR @ParentID IS NULL
+ SET @ParentID = 0;
+
+ SELECT
+ *
+ FROM
+ [dbo].[ecCategory]
+ WHERE
+ [ResellerID] = @ResellerID
+ AND
+ ISNULL([ParentID], 0) = @ParentID
+ ORDER BY
+ [ItemOrder] ASC;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetStoreDefaultSettings]
+ @SettingsName nvarchar(50)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SELECT * FROM [dbo].[ecStoreDefaultSettings]
+ WHERE [SettingsName] = @SettingsName;
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetCategory]
+ @ActorID int,
+ @UserID int,
+ @CategoryID int
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ SELECT
+ *
+ FROM
+ [dbo].[ecCategory]
+ WHERE
+ [CategoryID] = @CategoryID
+ AND
+ [ResellerID] = @UserID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetProductTypeControl]
+ @TypeID int,
+ @ControlKey nvarchar(50),
+ @ControlSrc nvarchar(512) OUTPUT
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ SELECT
+ @ControlSrc = [ControlSrc]
+ FROM
+ [dbo].[ecProductTypeControls]
+ WHERE
+ [TypeID] = @TypeID
+ AND
+ [ControlKey] = @ControlKey;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetProductType]
+ @TypeID int
+AS
+BEGIN
+
+ SELECT * FROM [dbo].[ecProductType] WHERE [TypeID] = @TypeID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetCategoriesCount]
+ @ActorID int,
+ @UserID int,
+ @ParentID int,
+ @Count int OUTPUT
+AS
+ IF @ParentID > 0
+ BEGIN
+ SELECT
+ @Count = COUNT([CategoryID])
+ FROM
+ [ecCategory]
+ WHERE
+ [ParentID] = @ParentID
+ AND
+ [ResellerID] = @UserID;
+ END
+ ELSE
+ BEGIN
+ SELECT
+ @Count = COUNT([CategoryID])
+ FROM
+ [ecCategory]
+ WHERE
+ [ParentID] IS NULL
+ AND
+ [ResellerID] = @UserID;
+ END
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE UpdateHostingPlan
+(
+ @ActorID int,
+ @PlanID int,
+ @PackageID int,
+ @ServerID int,
+ @PlanName nvarchar(200),
+ @PlanDescription ntext,
+ @Available bit,
+ @SetupPrice money,
+ @RecurringPrice money,
+ @RecurrenceLength int,
+ @RecurrenceUnit int,
+ @QuotasXml ntext
+)
+AS
+
+-- check rights
+DECLARE @UserID int
+SELECT @UserID = UserID FROM HostingPlans
+WHERE PlanID = @PlanID
+
+-- check rights
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
+
+IF @ServerID = 0
+SELECT @ServerID = ServerID FROM Packages
+WHERE PackageID = @PackageID
+
+IF @PackageID = 0 SET @PackageID = NULL
+IF @ServerID = 0 SET @ServerID = NULL
+
+-- update record
+UPDATE HostingPlans SET
+ PackageID = @PackageID,
+ ServerID = @ServerID,
+ PlanName = @PlanName,
+ PlanDescription = @PlanDescription,
+ Available = @Available,
+ SetupPrice = @SetupPrice,
+ RecurringPrice = @RecurringPrice,
+ RecurrenceLength = @RecurrenceLength,
+ RecurrenceUnit = @RecurrenceUnit
+WHERE PlanID = @PlanID
+
+BEGIN TRAN
+
+-- update quotas
+EXEC UpdateHostingPlanQuotas @ActorID, @PlanID, @QuotasXml
+
+DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int)
+INSERT INTO @ExceedingQuotas
+SELECT * FROM dbo.GetPackageExceedingQuotas(@PackageID) 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 ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetUserAvailableHostingPlans
+(
+ @ActorID int,
+ @UserID int
+)
+AS
+
+-- user should see the plans only of his reseller
+-- also user can create packages based on his own plans (admins and resellers)
+
+DECLARE @Plans TABLE
+(
+ PlanID int
+)
+
+-- check rights
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
+
+DECLARE @OwnerID int
+SELECT @OwnerID = OwnerID FROM Users
+WHERE UserID = @UserID
+
+SELECT
+ HP.PlanID,
+ HP.PackageID,
+ HP.PlanName,
+ HP.PlanDescription,
+ HP.Available,
+ HP.ServerID,
+ HP.SetupPrice,
+ HP.RecurringPrice,
+ HP.RecurrenceLength,
+ HP.RecurrenceUnit,
+ HP.IsAddon
+FROM
+ HostingPlans AS HP
+WHERE HP.UserID = @OwnerID
+AND HP.IsAddon = 0
+ORDER BY PlanName
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetUserAvailableHostingAddons
+(
+ @ActorID int,
+ @UserID int
+)
+AS
+
+-- user should see the plans only of his reseller
+-- also user can create packages based on his own plans (admins and resellers)
+
+DECLARE @Plans TABLE
+(
+ PlanID int
+)
+
+-- check rights
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
+
+DECLARE @OwnerID int
+SELECT @OwnerID = OwnerID FROM Users
+WHERE UserID = @UserID
+
+SELECT
+ HP.PlanID,
+ HP.PackageID,
+ HP.PlanName,
+ HP.PlanDescription,
+ HP.Available,
+ HP.ServerID,
+ HP.SetupPrice,
+ HP.RecurringPrice,
+ HP.RecurrenceLength,
+ HP.RecurrenceUnit,
+ HP.IsAddon
+FROM
+ HostingPlans AS HP
+WHERE HP.UserID = @OwnerID
+AND HP.IsAddon = 1
+ORDER BY PlanName
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[Servers](
+ [ServerID] [int] IDENTITY(1,1) NOT NULL,
+ [ServerName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL,
+ [ServerUrl] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
+ [Password] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
+ [Comments] [ntext] COLLATE Latin1_General_CI_AS NULL,
+ [VirtualServer] [bit] NOT NULL,
+ [InstantDomainAlias] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
+ [PrimaryGroupID] [int] NULL,
+ [ADRootDomain] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
+ [ADUsername] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
+ [ADPassword] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
+ [ADAuthenticationType] [varchar](50) COLLATE Latin1_General_CI_AS NULL,
+ [ADEnabled] [bit] NULL,
+ CONSTRAINT [PK_Servers] PRIMARY KEY CLUSTERED
+(
+ [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
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+CREATE PROCEDURE GetMyPackages
+(
+ @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
+ P.PackageID,
+ P.ParentPackageID,
+ P.PackageName,
+ P.StatusID,
+ P.PlanID,
+ P.PurchaseDate,
+
+ dbo.GetItemComments(P.PackageID, 'PACKAGE', @ActorID) AS Comments,
+
+ -- 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
+ HP.PlanName,
+
+ -- user
+ P.UserID,
+ U.Username,
+ U.FirstName,
+ U.LastName,
+ U.FullName,
+ U.RoleID,
+ U.Email
+FROM Packages AS P
+INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
+LEFT OUTER JOIN Servers AS S ON P.ServerID = S.ServerID
+LEFT OUTER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID
+WHERE P.UserID = @UserID
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[GetHostingPlans]
+(
+ @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
+ HP.PlanID,
+ HP.UserID,
+ HP.PackageID,
+ HP.PlanName,
+ HP.PlanDescription,
+ HP.Available,
+ HP.SetupPrice,
+ HP.RecurringPrice,
+ HP.RecurrenceLength,
+ HP.RecurrenceUnit,
+ HP.IsAddon,
+
+ (SELECT COUNT(P.PackageID) FROM Packages AS P WHERE P.PlanID = HP.PlanID) AS PackagesNumber,
+
+ -- server
+ ISNULL(HP.ServerID, 0) AS ServerID,
+ ISNULL(S.ServerName, 'None') AS ServerName,
+ ISNULL(S.Comments, '') AS ServerComments,
+ ISNULL(S.VirtualServer, 1) AS VirtualServer,
+
+ -- package
+ ISNULL(HP.PackageID, 0) AS PackageID,
+ ISNULL(P.PackageName, 'None') AS PackageName
+
+FROM HostingPlans AS HP
+LEFT OUTER JOIN Servers AS S ON HP.ServerID = S.ServerID
+LEFT OUTER JOIN Packages AS P ON HP.PackageID = P.PackageID
+WHERE
+ HP.UserID = @UserID
+ AND HP.IsAddon = 0
+ORDER BY HP.PlanName
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[GetHostingAddons]
+(
+ @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
+ PlanID,
+ UserID,
+ PackageID,
+ PlanName,
+ PlanDescription,
+ Available,
+ SetupPrice,
+ RecurringPrice,
+ RecurrenceLength,
+ RecurrenceUnit,
+ IsAddon,
+ (SELECT COUNT(P.PackageID) FROM PackageAddons AS P WHERE P.PlanID = HP.PlanID) AS PackagesNumber
+FROM
+ HostingPlans AS HP
+WHERE
+ UserID = @UserID
+ AND IsAddon = 1
+ORDER BY PlanName
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+CREATE PROCEDURE [dbo].[AddOCSUser]
+ @AccountID int,
+ @InstanceID nvarchar(50)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+INSERT INTO
+ dbo.OCSUsers
+ (
+
+ AccountID,
+ InstanceID,
+ CreatedDate,
+ ModifiedDate)
+VALUES
+(
+ @AccountID,
+ @InstanceID,
+ getdate(),
+ getdate()
+)
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[AddAuditLogRecord]
+(
+ @RecordID varchar(32),
+ @SeverityID int,
+ @UserID int,
+ @PackageID int,
+ @Username nvarchar(50),
+ @ItemID int,
+ @StartDate datetime,
+ @FinishDate datetime,
+ @SourceName varchar(50),
+ @TaskName varchar(50),
+ @ItemName nvarchar(50),
+ @ExecutionLog ntext
+)
+AS
+
+IF @ItemID = 0 SET @ItemID = NULL
+IF @UserID = 0 OR @UserID = -1 SET @UserID = NULL
+
+
+INSERT INTO AuditLog
+(
+ RecordID,
+ SeverityID,
+ UserID,
+ PackageID,
+ Username,
+ ItemID,
+ SourceName,
+ StartDate,
+ FinishDate,
+ TaskName,
+ ItemName,
+ ExecutionLog
+)
+VALUES
+(
+ @RecordID,
+ @SeverityID,
+ @UserID,
+ @PackageID,
+ @Username,
+ @ItemID,
+ @SourceName,
+ @StartDate,
+ @FinishDate,
+ @TaskName,
+ @ItemName,
+ @ExecutionLog
+)
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+CREATE PROCEDURE [dbo].[DeleteOCSUser]
+(
+ @InstanceId nvarchar(50)
+)
+AS
+
+DELETE FROM
+ OCSUsers
+WHERE
+ InstanceId = @InstanceId
+
+RETURN
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecDeleteContract]
+ @ContractID nvarchar(50),
+ @Result int OUTPUT
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ IF NOT EXISTS (SELECT * FROM [dbo].[ecContracts] WHERE [ContractID] = @ContractID)
+ BEGIN
+ SET @Result = -1;
+ RETURN;
+ END
+
+ SET @Result = 0;
+ DELETE FROM [dbo].[ecContracts] WHERE [ContractID] = @ContractID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddCluster
+(
+ @ClusterID int OUTPUT,
+ @ClusterName nvarchar(100)
+)
+AS
+INSERT INTO Clusters
+(
+ ClusterName
+)
+VALUES
+(
+ @ClusterName
+)
+
+SET @ClusterID = SCOPE_IDENTITY()
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecAddContract]
+ @ContractID nvarchar(50) OUTPUT,
+ @CustomerID int,
+ @ResellerID int,
+ @AccountName nvarchar(50),
+ @Status int,
+ @Balance money,
+ @FirstName nvarchar(50),
+ @LastName nvarchar(50),
+ @Email nvarchar(255),
+ @CompanyName nvarchar(50),
+ @PropertyNames ntext,
+ @PropertyValues ntext
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ IF @CustomerID < 1
+ SET @CustomerID = NULL;
+
+ SET @ContractID = CAST(NEWID() as nvarchar(50));
+
+ INSERT INTO [ecContracts]
+ ([ContractID],[CustomerID],[ResellerID],[AccountName],[Status],[Balance],
+ [FirstName],[LastName],[Email],[CompanyName],[PropertyNames],[PropertyValues])
+ VALUES
+ (@ContractID, @CustomerID, @ResellerID, @AccountName, @Status, @Balance, @FirstName,
+ @LastName, @Email, @CompanyName, @PropertyNames, @PropertyValues);
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[SetSystemSettings]
+ @SettingsName nvarchar(50),
+ @Xml ntext
+AS
+BEGIN
+/*
+XML Format:
+
+
+
+*/
+ SET NOCOUNT ON;
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetSystemTrigger]
+ @ActorID int,
+ @ReferenceID nvarchar(50),
+ @Namespace nvarchar(255)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SELECT
+ * FROM [dbo].[ecSystemTriggers]
+ WHERE
+ [OwnerID] = @ActorID AND [ReferenceID] = @ReferenceID AND [Namespace] = @Namespace;
+
+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 (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 (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
@@ -13445,6 +17479,10 @@ INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeNa
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)
@@ -13558,6 +17596,7 @@ RETURN
+
GO
@@ -13697,6 +17736,7 @@ RETURN
+
GO
@@ -13864,6 +17904,7 @@ RETURN
+
GO
SET ANSI_NULLS ON
GO
@@ -13962,6 +18003,7 @@ RETURN
+
GO
@@ -14024,6 +18066,7 @@ RETURN
+
GO
SET ANSI_NULLS ON
GO
@@ -14109,6 +18152,7 @@ RETURN
+
GO
@@ -14145,3150 +18189,89 @@ GO
-
-CREATE PROCEDURE UpdateHostingPlanQuotas
+CREATE PROCEDURE CheckUserExists
(
- @ActorID int,
- @PlanID int,
- @Xml ntext
+ @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
/*
-XML Format:
-
-
-
-
-
-
-
-
-
-
+@Result values:
+ 0 - OK
+ -1 - already exists
*/
--- check rights
-DECLARE @UserID int
-SELECT @UserID = UserID FROM HostingPlans
-WHERE PlanID = @PlanID
+SET @Result = 0 -- OK
--- check rights
-IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
-RAISERROR('You are not allowed to access this account', 16, 1)
-
-DECLARE @idoc int
---Create an internal representation of the XML document.
-EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
-
--- delete old HP resources
-DELETE FROM HostingPlanResources
-WHERE PlanID = @PlanID
-
--- delete old HP quotas
-DELETE FROM HostingPlanQuotas
-WHERE PlanID = @PlanID
-
--- update HP resources
-INSERT INTO HostingPlanResources
-(
- PlanID,
- GroupID,
- CalculateDiskSpace,
- CalculateBandwidth
+-- check if a SSL Certificate is installed for domain
+IF EXISTS(SELECT [ID] FROM [dbo].[SSLCertificates] WHERE [SiteID] = @siteID
+--AND SerialNumber=@SerialNumber
)
-SELECT
- @PlanID,
- GroupID,
- CalculateDiskSpace,
- CalculateBandwidth
-FROM OPENXML(@idoc, '/plan/groups/group',1) WITH
-(
- GroupID int '@id',
- CalculateDiskSpace bit '@calculateDiskSpace',
- CalculateBandwidth bit '@calculateBandwidth'
-) as XRG
-
--- update HP quotas
-INSERT INTO HostingPlanQuotas
-(
- PlanID,
- QuotaID,
- QuotaValue
-)
-SELECT
- @PlanID,
- 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
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE AddHostingPlan
-(
- @ActorID int,
- @PlanID int OUTPUT,
- @UserID int,
- @PackageID int,
- @PlanName nvarchar(200),
- @PlanDescription ntext,
- @Available bit,
- @ServerID int,
- @SetupPrice money,
- @RecurringPrice money,
- @RecurrenceLength int,
- @RecurrenceUnit int,
- @IsAddon bit,
- @QuotasXml ntext
-)
-AS
-
--- check rights
-IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
-RAISERROR('You are not allowed to access this account', 16, 1)
-
-BEGIN TRAN
-
-IF @ServerID = 0
-SELECT @ServerID = ServerID FROM Packages
-WHERE PackageID = @PackageID
-
-IF @IsAddon = 1
-SET @ServerID = NULL
-
-IF @PackageID = 0 SET @PackageID = NULL
-
-INSERT INTO HostingPlans
-(
- UserID,
- PackageID,
- PlanName,
- PlanDescription,
- Available,
- ServerID,
- SetupPrice,
- RecurringPrice,
- RecurrenceLength,
- RecurrenceUnit,
- IsAddon
-)
-VALUES
-(
- @UserID,
- @PackageID,
- @PlanName,
- @PlanDescription,
- @Available,
- @ServerID,
- @SetupPrice,
- @RecurringPrice,
- @RecurrenceLength,
- @RecurrenceUnit,
- @IsAddon
-)
-
-SET @PlanID = SCOPE_IDENTITY()
-
--- save quotas
-EXEC UpdateHostingPlanQuotas @ActorID, @PlanID, @QuotasXml
-
-COMMIT TRAN
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[ScheduleTaskParameters](
- [TaskID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL,
- [ParameterID] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL,
- [DataTypeID] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
- [DefaultValue] [nvarchar](140) COLLATE Latin1_General_CI_AS NULL,
- [ParameterOrder] [int] NOT NULL,
- CONSTRAINT [PK_ScheduleTaskParameters] PRIMARY KEY CLUSTERED
-(
- [TaskID] ASC,
- [ParameterID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
-)
-
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'BACKUP_FILE_NAME', N'String', N'', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'DELETE_TEMP_BACKUP', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'STORE_PACKAGE_FOLDER', N'String', N'\', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'STORE_PACKAGE_ID', N'String', N'', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP', N'STORE_SERVER_FOLDER', N'String', N'', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'BACKUP_FOLDER', N'String', N'\backups', 3)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'BACKUP_NAME', N'String', N'database_backup.bak', 4)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_GROUP', N'List', N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_NAME', N'String', N'', 2)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'ZIP_BACKUP', N'List', N'true=Yes;false=No', 5)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_BODY', N'MultiString', N'', 10)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_FROM', N'String', N'admin@mysite.com', 7)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_SUBJECT', N'String', N'Web Site is unavailable', 9)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'MAIL_TO', N'String', N'admin@mysite.com', 8)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'PASSWORD', N'String', NULL, 3)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'RESPONSE_CONTAIN', N'String', NULL, 5)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'RESPONSE_DOESNT_CONTAIN', N'String', NULL, 6)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'RESPONSE_STATUS', N'String', N'500', 4)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'URL', N'String', N'http://', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USE_RESPONSE_CONTAIN', N'Boolean', N'false', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USE_RESPONSE_DOESNT_CONTAIN', N'Boolean', N'false', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USE_RESPONSE_STATUS', N'Boolean', N'false', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_CHECK_WEBSITE', N'USERNAME', N'String', NULL, 2)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FILE_PATH', N'String', N'\', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_FOLDER', N'String', NULL, 5)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_PASSWORD', N'String', NULL, 4)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_SERVER', N'String', N'ftp.myserver.com', 2)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_FTP_FILES', N'FTP_USERNAME', N'String', NULL, 3)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'CRM_REPORT', N'Boolean', N'true', 3)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'EMAIL', N'String', NULL, 5)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'EXCHANGE_REPORT', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'ORGANIZATION_REPORT', N'Boolean', N'true', 4)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_HOSTED_SOLUTION_REPORT', N'SHAREPOINT_REPORT', N'Boolean', N'true', 2)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'EXECUTABLE_PARAMS', N'String', N'', 3)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'EXECUTABLE_PATH', N'String', N'Executable.exe', 2)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_RUN_SYSTEM_COMMAND', N'SERVER_NAME', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_BODY', N'MultiString', NULL, 4)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_FROM', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_SUBJECT', N'String', NULL, 3)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SEND_MAIL', N'MAIL_TO', N'String', NULL, 2)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'BANDWIDTH_OVERUSED', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'DISKSPACE_OVERUSED', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SEND_SUSPENSION_EMAIL', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SEND_WARNING_EMAIL', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPEND_OVERUSED', N'Boolean', N'true', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_BCC', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_BODY', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_FROM', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_MAIL_SUBJECT', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'SUSPENSION_USAGE_THRESHOLD', N'String', N'100', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_BCC', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_BODY', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_FROM', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_MAIL_SUBJECT', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_SUSPEND_PACKAGES', N'WARNING_USAGE_THRESHOLD', N'String', N'80', 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_ZIP_FILES', N'FOLDER', N'String', NULL, 1)
-GO
-INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_ZIP_FILES', N'ZIP_FILE', N'String', N'\archive.zip', 2)
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetSchedules
-(
- @ActorID int,
- @PackageID int,
- @Recursive bit
-)
-AS
-
--- check rights
-IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
-RAISERROR('You are not allowed to access this package', 16, 1)
-
-DECLARE @Schedules TABLE
-(
- ScheduleID int
-)
-
-INSERT INTO @Schedules (ScheduleID)
-SELECT
- S.ScheduleID
-FROM Schedule AS S
-INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
-ORDER BY S.Enabled DESC, S.NextRun
-
-
--- select schedules
-SELECT
- S.ScheduleID,
- S.TaskID,
- ST.TaskType,
- ST.RoleID,
- S.PackageID,
- S.ScheduleName,
- S.ScheduleTypeID,
- S.Interval,
- S.FromTime,
- S.ToTime,
- S.StartTime,
- S.LastRun,
- S.NextRun,
- S.Enabled,
- 1 AS StatusID,
- S.PriorityID,
- S.MaxExecutionTime,
- S.WeekMonthDay,
- ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = 'SCHEDULER' ORDER BY StartDate DESC)) AS LastResult,
-
- U.Username,
- U.FirstName,
- U.LastName,
- U.FullName,
- U.RoleID,
- U.Email
-FROM @Schedules AS STEMP
-INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
-INNER JOIN Packages AS P ON S.PackageID = P.PackageID
-INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
-INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
-
--- select schedule parameters
-SELECT
- S.ScheduleID,
- STP.ParameterID,
- STP.DataTypeID,
- ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
-FROM @Schedules AS STEMP
-INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
-INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
-LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[GetScheduleParameters]
-(
- @ActorID int,
- @TaskID nvarchar(100),
- @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)
-
-SELECT
- @ScheduleID AS ScheduleID,
- STP.ParameterID,
- STP.DataTypeID,
- SP.ParameterValue,
- STP.DefaultValue
-FROM ScheduleTaskParameters AS STP
-LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = @ScheduleID
-WHERE STP.TaskID = @TaskID
-ORDER BY STP.ParameterOrder
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetSchedule
-(
- @ActorID int,
- @ScheduleID int
-)
-AS
-
--- select schedule
-SELECT TOP 1
- S.ScheduleID,
- S.TaskID,
- S.PackageID,
- S.ScheduleName,
- S.ScheduleTypeID,
- S.Interval,
- S.FromTime,
- S.ToTime,
- S.StartTime,
- S.LastRun,
- S.NextRun,
- S.Enabled,
- S.HistoriesNumber,
- S.PriorityID,
- S.MaxExecutionTime,
- S.WeekMonthDay,
- 1 AS StatusID
-FROM Schedule AS S
-WHERE
- S.ScheduleID = @ScheduleID
- AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
-
--- select task
-SELECT
- ST.TaskID,
- ST.TaskType,
- ST.RoleID
-FROM Schedule AS S
-INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
-WHERE
- S.ScheduleID = @ScheduleID
- AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
-
--- select schedule parameters
-SELECT
- S.ScheduleID,
- STP.ParameterID,
- STP.DataTypeID,
- ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
-FROM Schedule AS S
-INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
-LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
-WHERE
- S.ScheduleID = @ScheduleID
- AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetNextSchedule
-AS
-
--- find next schedule
-DECLARE @ScheduleID int
-DECLARE @TaskID nvarchar(100)
-SELECT TOP 1
- @ScheduleID = ScheduleID,
- @TaskID = TaskID
-FROM Schedule AS S
-WHERE Enabled = 1
-ORDER BY NextRun ASC
-
--- select schedule
-SELECT TOP 1
- S.ScheduleID,
- S.TaskID,
- S.PackageID,
- S.ScheduleName,
- S.ScheduleTypeID,
- S.Interval,
- S.FromTime,
- S.ToTime,
- S.StartTime,
- S.LastRun,
- S.NextRun,
- S.Enabled,
- S.HistoriesNumber,
- S.PriorityID,
- S.MaxExecutionTime,
- S.WeekMonthDay,
- 1 AS StatusID
-FROM Schedule AS S
-WHERE S.ScheduleID = @ScheduleID
-ORDER BY NextRun ASC
-
--- select task
-SELECT
- TaskID,
- TaskType,
- RoleID
-FROM ScheduleTasks
-WHERE TaskID = @TaskID
-
--- select schedule parameters
-SELECT
- S.ScheduleID,
- STP.ParameterID,
- STP.DataTypeID,
- ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
-FROM Schedule AS S
-INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
-LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
-WHERE S.ScheduleID = @ScheduleID
-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 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 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 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 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 PROCEDURE [dbo].[ecGetSupportedPluginsByGroup]
- @GroupName nvarchar(50)
-AS
-BEGIN
-
- SELECT * FROM [dbo].[ecSupportedPlugins]
- WHERE [PluginGroup] = @GroupName
- ORDER BY [DisplayName];
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetSupportedPluginByID]
- @PluginID int
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SELECT * FROM [dbo].[ecSupportedPlugins] WHERE [PluginID] = @PluginID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetSupportedPlugin]
- @PluginName nvarchar(50),
- @GroupName nvarchar(50)
-AS
-BEGIN
-
- SELECT * FROM [dbo].[ecSupportedPlugins]
- WHERE [PluginName] = @PluginName AND [PluginGroup] = @GroupName;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetStoreSettings]
- @ResellerID int,
- @SettingsName nvarchar(50)
-AS
-BEGIN
-
- SET NOCOUNT ON;
-
- SELECT * FROM [dbo].[ecStoreSettings]
- WHERE [SettingsName] = @SettingsName AND [ResellerID] = @ResellerID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetStorefrontPath]
- @ResellerID int,
- @CategoryID int
-AS
-BEGIN
-
- SET NOCOUNT ON;
-
- WITH [PathCTE] ([CategoryID]) AS (
- SELECT [ParentID] FROM [dbo].[ecCategory]
- WHERE [CategoryID] = @CategoryID AND [ResellerID] = @ResellerID
- UNION ALL
- SELECT [ParentID] FROM [dbo].[ecCategory] AS [C]
- INNER JOIN [PathCTE] AS [P] ON [C].[CategoryID] = [P].[CategoryID]
- WHERE [ParentID] IS NOT NULL AND [ResellerID] = @ResellerID
- )
-
- SELECT
- [CategoryID], [CategoryName]
- FROM
- [dbo].[ecCategory]
- WHERE
- (
- [CategoryID] IN (
- SELECT [CategoryID] FROM [PathCTE]
- )
- OR
- [CategoryID] = @CategoryID
- )
- AND
- [ResellerID] = @ResellerID
- ORDER BY
- [Level];
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetStorefrontCategory]
- @ResellerID int,
- @CategoryID int
-AS
-BEGIN
-
- SET NOCOUNT ON;
-
- SELECT
- *
- FROM
- [dbo].[ecCategory]
- WHERE
- [ResellerID] = @ResellerID
- AND
- [CategoryID] = @CategoryID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetStorefrontCategories]
- @ResellerID int,
- @ParentID int
-AS
-BEGIN
-
- SET NOCOUNT ON;
-
- IF @ParentID < 1 OR @ParentID IS NULL
- SET @ParentID = 0;
-
- SELECT
- *
- FROM
- [dbo].[ecCategory]
- WHERE
- [ResellerID] = @ResellerID
- AND
- ISNULL([ParentID], 0) = @ParentID
- ORDER BY
- [ItemOrder] ASC;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetStoreDefaultSettings]
- @SettingsName nvarchar(50)
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SELECT * FROM [dbo].[ecStoreDefaultSettings]
- WHERE [SettingsName] = @SettingsName;
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetCategory]
- @ActorID int,
- @UserID int,
- @CategoryID int
-AS
-BEGIN
-
- SET NOCOUNT ON;
-
- SELECT
- *
- FROM
- [dbo].[ecCategory]
- WHERE
- [CategoryID] = @CategoryID
- AND
- [ResellerID] = @UserID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetProductTypeControl]
- @TypeID int,
- @ControlKey nvarchar(50),
- @ControlSrc nvarchar(512) OUTPUT
-AS
-BEGIN
-
- SET NOCOUNT ON;
-
- SELECT
- @ControlSrc = [ControlSrc]
- FROM
- [dbo].[ecProductTypeControls]
- WHERE
- [TypeID] = @TypeID
- AND
- [ControlKey] = @ControlKey;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetProductType]
- @TypeID int
-AS
-BEGIN
-
- SELECT * FROM [dbo].[ecProductType] WHERE [TypeID] = @TypeID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetCategoriesCount]
- @ActorID int,
- @UserID int,
- @ParentID int,
- @Count int OUTPUT
-AS
- IF @ParentID > 0
- BEGIN
- SELECT
- @Count = COUNT([CategoryID])
- FROM
- [ecCategory]
- WHERE
- [ParentID] = @ParentID
- AND
- [ResellerID] = @UserID;
- END
- ELSE
- BEGIN
- SELECT
- @Count = COUNT([CategoryID])
- FROM
- [ecCategory]
- WHERE
- [ParentID] IS NULL
- AND
- [ResellerID] = @UserID;
- END
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE UpdateHostingPlan
-(
- @ActorID int,
- @PlanID int,
- @PackageID int,
- @ServerID int,
- @PlanName nvarchar(200),
- @PlanDescription ntext,
- @Available bit,
- @SetupPrice money,
- @RecurringPrice money,
- @RecurrenceLength int,
- @RecurrenceUnit int,
- @QuotasXml ntext
-)
-AS
-
--- check rights
-DECLARE @UserID int
-SELECT @UserID = UserID FROM HostingPlans
-WHERE PlanID = @PlanID
-
--- check rights
-IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
-RAISERROR('You are not allowed to access this account', 16, 1)
-
-IF @ServerID = 0
-SELECT @ServerID = ServerID FROM Packages
-WHERE PackageID = @PackageID
-
-IF @PackageID = 0 SET @PackageID = NULL
-IF @ServerID = 0 SET @ServerID = NULL
-
--- update record
-UPDATE HostingPlans SET
- PackageID = @PackageID,
- ServerID = @ServerID,
- PlanName = @PlanName,
- PlanDescription = @PlanDescription,
- Available = @Available,
- SetupPrice = @SetupPrice,
- RecurringPrice = @RecurringPrice,
- RecurrenceLength = @RecurrenceLength,
- RecurrenceUnit = @RecurrenceUnit
-WHERE PlanID = @PlanID
-
-BEGIN TRAN
-
--- update quotas
-EXEC UpdateHostingPlanQuotas @ActorID, @PlanID, @QuotasXml
-
-DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int)
-INSERT INTO @ExceedingQuotas
-SELECT * FROM dbo.GetPackageExceedingQuotas(@PackageID) WHERE QuotaValue > 0
-
-SELECT * FROM @ExceedingQuotas
-
-IF EXISTS(SELECT * FROM @ExceedingQuotas)
-BEGIN
- ROLLBACK TRAN
+ SET @Result = 1
RETURN
END
-COMMIT TRAN
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+RETURN
+SET ANSI_NULLS ON
GO
@@ -17298,107 +18281,34 @@ SET QUOTED_IDENTIFIER ON
GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetUserAvailableHostingPlans
+CREATE PROCEDURE [dbo].[CheckSSL]
(
- @ActorID int,
- @UserID int
+ @siteID int,
+ @Renewal bit = 0,
+ @Result int OUTPUT
)
AS
--- user should see the plans only of his reseller
--- also user can create packages based on his own plans (admins and resellers)
+/*
+@Result values:
+ 0 - OK
+ -1 - already exists
+*/
-DECLARE @Plans TABLE
-(
- PlanID int
-)
+SET @Result = 0 -- OK
--- check rights
-IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
-RAISERROR('You are not allowed to access this account', 16, 1)
+-- 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
-DECLARE @OwnerID int
-SELECT @OwnerID = OwnerID FROM Users
-WHERE UserID = @UserID
+--To Do add renewal stuff
-SELECT
- HP.PlanID,
- HP.PackageID,
- HP.PlanName,
- HP.PlanDescription,
- HP.Available,
- HP.ServerID,
- HP.SetupPrice,
- HP.RecurringPrice,
- HP.RecurrenceLength,
- HP.RecurrenceUnit,
- HP.IsAddon
-FROM
- HostingPlans AS HP
-WHERE HP.UserID = @OwnerID
-AND HP.IsAddon = 0
-ORDER BY PlanName
RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+SET ANSI_NULLS ON
GO
@@ -17415,3399 +18325,16 @@ GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetUserAvailableHostingAddons
-(
- @ActorID int,
- @UserID int
-)
-AS
-
--- user should see the plans only of his reseller
--- also user can create packages based on his own plans (admins and resellers)
-
-DECLARE @Plans TABLE
-(
- PlanID int
-)
-
--- check rights
-IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
-RAISERROR('You are not allowed to access this account', 16, 1)
-
-DECLARE @OwnerID int
-SELECT @OwnerID = OwnerID FROM Users
-WHERE UserID = @UserID
-
-SELECT
- HP.PlanID,
- HP.PackageID,
- HP.PlanName,
- HP.PlanDescription,
- HP.Available,
- HP.ServerID,
- HP.SetupPrice,
- HP.RecurringPrice,
- HP.RecurrenceLength,
- HP.RecurrenceUnit,
- HP.IsAddon
-FROM
- HostingPlans AS HP
-WHERE HP.UserID = @OwnerID
-AND HP.IsAddon = 1
-ORDER BY PlanName
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Servers](
- [ServerID] [int] IDENTITY(1,1) NOT NULL,
- [ServerName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL,
- [ServerUrl] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
- [Password] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
- [Comments] [ntext] COLLATE Latin1_General_CI_AS NULL,
- [VirtualServer] [bit] NOT NULL,
- [InstantDomainAlias] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
- [PrimaryGroupID] [int] NULL,
- [ADRootDomain] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
- [ADUsername] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
- [ADPassword] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
- [ADAuthenticationType] [varchar](50) COLLATE Latin1_General_CI_AS NULL,
- [ADEnabled] [bit] NULL,
- CONSTRAINT [PK_Servers] PRIMARY KEY CLUSTERED
-(
- [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 PROCEDURE [dbo].[GetHostingPlans]
-(
- @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
- HP.PlanID,
- HP.UserID,
- HP.PackageID,
- HP.PlanName,
- HP.PlanDescription,
- HP.Available,
- HP.SetupPrice,
- HP.RecurringPrice,
- HP.RecurrenceLength,
- HP.RecurrenceUnit,
- HP.IsAddon,
-
- (SELECT COUNT(P.PackageID) FROM Packages AS P WHERE P.PlanID = HP.PlanID) AS PackagesNumber,
-
- -- server
- ISNULL(HP.ServerID, 0) AS ServerID,
- ISNULL(S.ServerName, 'None') AS ServerName,
- ISNULL(S.Comments, '') AS ServerComments,
- ISNULL(S.VirtualServer, 1) AS VirtualServer,
-
- -- package
- ISNULL(HP.PackageID, 0) AS PackageID,
- ISNULL(P.PackageName, 'None') AS PackageName
-
-FROM HostingPlans AS HP
-LEFT OUTER JOIN Servers AS S ON HP.ServerID = S.ServerID
-LEFT OUTER JOIN Packages AS P ON HP.PackageID = P.PackageID
-WHERE
- HP.UserID = @UserID
- AND HP.IsAddon = 0
-ORDER BY HP.PlanName
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[GetHostingAddons]
-(
- @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
- PlanID,
- UserID,
- PackageID,
- PlanName,
- PlanDescription,
- Available,
- SetupPrice,
- RecurringPrice,
- RecurrenceLength,
- RecurrenceUnit,
- IsAddon,
- (SELECT COUNT(P.PackageID) FROM PackageAddons AS P WHERE P.PlanID = HP.PlanID) AS PackagesNumber
-FROM
- HostingPlans AS HP
-WHERE
- UserID = @UserID
- AND IsAddon = 1
-ORDER BY PlanName
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-CREATE PROCEDURE [dbo].[AddOCSUser]
- @AccountID int,
- @InstanceID nvarchar(50)
+CREATE PROCEDURE [dbo].[CheckOCSUserExists]
+ @AccountID int
AS
BEGIN
- SET NOCOUNT ON;
-
-INSERT INTO
- dbo.OCSUsers
- (
-
- AccountID,
- InstanceID,
- CreatedDate,
- ModifiedDate)
-VALUES
-(
- @AccountID,
- @InstanceID,
- getdate(),
- getdate()
-)
+ SELECT
+ COUNT(AccountID)
+ FROM
+ dbo.OCSUsers
+ WHERE AccountID = @AccountID
END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER OFF
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[AddAuditLogRecord]
-(
- @RecordID varchar(32),
- @SeverityID int,
- @UserID int,
- @PackageID int,
- @Username nvarchar(50),
- @ItemID int,
- @StartDate datetime,
- @FinishDate datetime,
- @SourceName varchar(50),
- @TaskName varchar(50),
- @ItemName nvarchar(50),
- @ExecutionLog ntext
-)
-AS
-
-IF @ItemID = 0 SET @ItemID = NULL
-IF @UserID = 0 OR @UserID = -1 SET @UserID = NULL
-
-
-INSERT INTO AuditLog
-(
- RecordID,
- SeverityID,
- UserID,
- PackageID,
- Username,
- ItemID,
- SourceName,
- StartDate,
- FinishDate,
- TaskName,
- ItemName,
- ExecutionLog
-)
-VALUES
-(
- @RecordID,
- @SeverityID,
- @UserID,
- @PackageID,
- @Username,
- @ItemID,
- @SourceName,
- @StartDate,
- @FinishDate,
- @TaskName,
- @ItemName,
- @ExecutionLog
-)
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-CREATE PROCEDURE [dbo].[DeleteOCSUser]
-(
- @InstanceId nvarchar(50)
-)
-AS
-
-DELETE FROM
- OCSUsers
-WHERE
- InstanceId = @InstanceId
-
-RETURN
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecDeleteContract]
- @ContractID nvarchar(50),
- @Result int OUTPUT
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- IF NOT EXISTS (SELECT * FROM [dbo].[ecContracts] WHERE [ContractID] = @ContractID)
- BEGIN
- SET @Result = -1;
- RETURN;
- END
-
- SET @Result = 0;
- DELETE FROM [dbo].[ecContracts] WHERE [ContractID] = @ContractID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE AddCluster
-(
- @ClusterID int OUTPUT,
- @ClusterName nvarchar(100)
-)
-AS
-INSERT INTO Clusters
-(
- ClusterName
-)
-VALUES
-(
- @ClusterName
-)
-
-SET @ClusterID = SCOPE_IDENTITY()
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecAddContract]
- @ContractID nvarchar(50) OUTPUT,
- @CustomerID int,
- @ResellerID int,
- @AccountName nvarchar(50),
- @Status int,
- @Balance money,
- @FirstName nvarchar(50),
- @LastName nvarchar(50),
- @Email nvarchar(255),
- @CompanyName nvarchar(50),
- @PropertyNames ntext,
- @PropertyValues ntext
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- IF @CustomerID < 1
- SET @CustomerID = NULL;
-
- SET @ContractID = CAST(NEWID() as nvarchar(50));
-
- INSERT INTO [ecContracts]
- ([ContractID],[CustomerID],[ResellerID],[AccountName],[Status],[Balance],
- [FirstName],[LastName],[Email],[CompanyName],[PropertyNames],[PropertyValues])
- VALUES
- (@ContractID, @CustomerID, @ResellerID, @AccountName, @Status, @Balance, @FirstName,
- @LastName, @Email, @CompanyName, @PropertyNames, @PropertyValues);
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 [dbo].[ecGetSystemTrigger]
- @ActorID int,
- @ReferenceID nvarchar(50),
- @Namespace nvarchar(255)
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SELECT
- * FROM [dbo].[ecSystemTriggers]
- WHERE
- [OwnerID] = @ActorID AND [ReferenceID] = @ReferenceID AND [Namespace] = @Namespace;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-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 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
-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
-FROM Users AS U
-WHERE U.Username = @Username
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 (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
-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 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].[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 PROCEDURE [dbo].[SetSystemSettings]
- @SettingsName nvarchar(50),
- @Xml ntext
-AS
-BEGIN
-/*
-XML Format:
-
-
-
-*/
- SET NOCOUNT ON;
-
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 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 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -20923,225 +18450,6 @@ RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-CREATE PROCEDURE GetMyPackages
-(
- @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
- P.PackageID,
- P.ParentPackageID,
- P.PackageName,
- P.StatusID,
- P.PlanID,
- P.PurchaseDate,
-
- dbo.GetItemComments(P.PackageID, 'PACKAGE', @ActorID) AS Comments,
-
- -- 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
- HP.PlanName,
-
- -- user
- P.UserID,
- U.Username,
- U.FirstName,
- U.LastName,
- U.FullName,
- U.RoleID,
- U.Email
-FROM Packages AS P
-INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
-LEFT OUTER JOIN Servers AS S ON P.ServerID = S.ServerID
-LEFT OUTER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID
-WHERE P.UserID = @UserID
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-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 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -22451,6 +19759,49 @@ INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [Property
GO
INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'WebPolicy', N'PhpInstalled', N'')
GO
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'WebPolicy', N'PublishingProfile', N'
+
+
+ SQLServerDBConnectionString="server=#MsSqlServerExternalAddress#;database=#MsSqlDatabase.Name#;uid=#MsSqlUser.Name#;pwd=#MsSqlUser.Password#"
+ mySQLDBConnectionString="server=#MySqlAddress#;database=#MySqlDatabase.Name#;uid=#MySqlUser.Name#;pwd=#MySqlUser.Password#"
+ hostingProviderForumLink="http://support.acmehosting.com/"
+ controlPanelLink="http://cp.acmehosting.com/"
+ />
+
+
+ SQLServerDBConnectionString="server=#MsSqlServerExternalAddress#;database=#MsSqlDatabase.Name#;uid=#MsSqlUser.Name#;pwd=#MsSqlUser.Password#"
+ mySQLDBConnectionString="server=#MySqlAddress#;database=#MySqlDatabase.Name#;uid=#MySqlUser.Name#;pwd=#MySqlUser.Password#"
+ hostingProviderForumLink="http://support.acmehosting.com/"
+ controlPanelLink="http://cp.acmehosting.com/"
+ />
+
+
+
+')
+GO
INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'WebPolicy', N'PythonInstalled', N'False')
GO
INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'WebPolicy', N'SecuredGroupNamePolicy', N'True;;1;20;;;')
@@ -22481,241 +19832,22 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE CheckUserExists
+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
(
- @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
-
-
-
-
-
-
-
-
-
-
-
-
-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
+ [RecordID] 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_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
@@ -22825,6 +19957,7 @@ RETURN
+
GO
@@ -22931,6 +20064,7 @@ RETURN
+
GO
@@ -23028,6 +20162,7 @@ RETURN
+
GO
@@ -23161,6 +20296,7 @@ RETURN
+
GO
@@ -23168,15 +20304,1413 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-CREATE TABLE [dbo].[Services](
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+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)
+)
+
+GO
+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](
+ [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,
- [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
+ [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)
@@ -23205,68 +21739,118 @@ GO
-CREATE PROCEDURE [dbo].[GetServiceItemsByService]
+
+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
(
@ActorID int,
- @ServiceID int
+ @UserID int,
+ @ItemTypeID varchar(50),
+ @ItemID int
)
AS
-- check rights
-DECLARE @IsAdmin bit
-SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID)
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
-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,
+ C.CommentID,
+ C.ItemTypeID,
+ C.ItemID,
+ C.UserID,
+ C.CreatedDate,
+ C.CommentText,
+ C.SeverityID,
+
+ -- user
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
-
+ 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
@@ -23288,101 +21872,6 @@ 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
-
-
-
-
-
-
-
-
@@ -23399,7 +21888,7 @@ RETURN
GO
SET ANSI_NULLS ON
GO
-SET QUOTED_IDENTIFIER ON
+SET QUOTED_IDENTIFIER OFF
GO
@@ -23415,408 +21904,51 @@ 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]
+CREATE PROCEDURE [dbo].[DeleteServiceItem]
(
@ActorID int,
@ItemID int
)
AS
-DECLARE @Items TABLE
-(
- ItemID int
-)
+-- check rights
+DECLARE @PackageID int
+SELECT PackageID = @PackageID FROM ServiceItems
+WHERE ItemID = @ItemID
--- 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
+IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
+RAISERROR('You are not allowed to access this package', 16, 1)
+BEGIN TRAN
--- 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
+UPDATE Domains
+SET ZoneItemID = NULL
+WHERE ZoneItemID = @ItemID
--- 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
+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
@@ -23836,6 +21968,1967 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE VIEW [dbo].[ServiceHandlersResponsesDetailed]
+AS
+SELECT dbo.ecServiceHandlersResponses.ResponseID, dbo.ecServiceHandlersResponses.ServiceID, dbo.ecContracts.ResellerID,
+ dbo.ecServiceHandlersResponses.ContractID, dbo.ecServiceHandlersResponses.TextResponse, dbo.ecServiceHandlersResponses.Received,
+ dbo.ecServiceHandlersResponses.ErrorMessage, dbo.ecPaymentMethods.MethodName, dbo.ecServiceHandlersResponses.InvoiceID
+FROM dbo.ecContracts RIGHT OUTER JOIN
+ dbo.ecPaymentMethods INNER JOIN
+ dbo.ecSupportedPlugins ON dbo.ecPaymentMethods.PluginID = dbo.ecSupportedPlugins.PluginID RIGHT OUTER JOIN
+ dbo.ecServiceHandlersResponses ON dbo.ecSupportedPlugins.UniqueID = dbo.ecServiceHandlersResponses.ServiceID ON
+ dbo.ecContracts.ContractID = dbo.ecServiceHandlersResponses.ContractID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -23861,6 +23954,25 @@ 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
@@ -24018,6 +24130,1557 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
@@ -24294,6 +25957,7 @@ RETURN
+
GO
@@ -24419,6 +26083,7 @@ RETURN
+
GO
@@ -24512,6 +26177,7 @@ RETURN
+
GO
@@ -24536,85 +26202,2825 @@ GO
-CREATE PROCEDURE [dbo].[AddServiceItem]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ChangeUserPassword]
(
@ActorID int,
- @PackageID int,
- @ServiceID int,
- @ItemName nvarchar(500),
- @ItemTypeName nvarchar(200),
- @ItemID int OUTPUT,
- @XmlProperties ntext,
- @CreatedDate datetime
+ @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
-BEGIN TRAN
-- check rights
-IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
-RAISERROR('You are not allowed to access this package', 16, 1)
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 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 @IsAdmin bit
+SET @IsAdmin = 0
+IF EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND RoleID = 1)
+SET @IsAdmin = 1
-DECLARE @ItemTypeID int
-SELECT @ItemTypeID = ItemTypeID FROM ServiceItemTypes
-WHERE TypeName = @ItemTypeName
-AND ((@GroupID IS NULL) OR (@GroupID IS NOT NULL AND GroupID = @GroupID))
+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))
--- add item
-INSERT INTO ServiceItems
+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
(
- PackageID,
- ServiceID,
- ItemName,
- ItemTypeID,
- CreatedDate
+ [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
(
- @PackageID,
- @ServiceID,
- @ItemName,
- @ItemTypeID,
- @CreatedDate
+ @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 @ItemID = SCOPE_IDENTITY()
+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, @XmlProperties
+EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
-- Execute a SELECT statement that uses the OPENXML rowset provider.
-DELETE FROM ServiceItemProperties
-WHERE ItemID = @ItemID
+DELETE FROM UserSettings
+WHERE UserID = @UserID AND SettingsName = @SettingsName
-INSERT INTO ServiceItemProperties
+INSERT INTO UserSettings
(
- ItemID,
+ UserID,
+ SettingsName,
PropertyName,
PropertyValue
)
SELECT
- @ItemID,
+ @UserID,
+ @SettingsName,
PropertyName,
PropertyValue
FROM OPENXML(@idoc, '/properties/property',1) WITH
(
PropertyName nvarchar(50) '@name',
- PropertyValue nvarchar(3000) '@value'
+ PropertyValue ntext '@value'
) as PV
-- remove document
exec sp_xml_removedocument @idoc
COMMIT TRAN
+
RETURN
@@ -24636,6 +29042,1283 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
GO
SET ANSI_NULLS ON
GO
@@ -25107,187 +30790,6 @@ GO
INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (300, N'StopAction', N'shutDown')
GO
INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (300, N'VirtualDiskType', N'dynamic')
-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
@@ -25321,20 +30823,4255 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetClusters
(
- [AddressID] ASC
+ @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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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
+
+-- 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetDnsRecordsByGroup
+(
+ @GroupID int
+)
+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
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE GetProvider
+(
+ @ProviderID int
+)
+AS
+SELECT
+ ProviderID,
+ GroupID,
+ ProviderName,
+ EditorControl,
+ DisplayName,
+ ProviderType
+FROM Providers
+WHERE
+ ProviderID = @ProviderID
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[GetAuditLogRecordsPaged]
+(
+ @ActorID int,
+ @UserID int,
+ @PackageID int,
+ @ItemID int,
+ @ItemName nvarchar(100),
+ @StartDate datetime,
+ @EndDate datetime,
+ @SeverityID int,
+ @SourceName varchar(100),
+ @TaskName varchar(100),
+ @SortColumn nvarchar(50),
+ @StartRow int,
+ @MaximumRows int
+)
+AS
+
+-- check rights
+IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
+RAISERROR('You are not allowed to access this account', 16, 1)
+
+IF @SourceName IS NULL SET @SourceName = ''
+IF @TaskName IS NULL SET @TaskName = ''
+IF @ItemName IS NULL SET @ItemName = ''
+
+IF @SortColumn IS NULL OR @SortColumn = ''
+SET @SortColumn = 'L.StartDate DESC'
+
+-- build query and run it to the temporary table
+DECLARE @sql nvarchar(2000)
+
+SET @sql = '
+DECLARE @IsAdmin bit
+SET @IsAdmin = 0
+IF EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND RoleID = 1)
+SET @IsAdmin = 1
+
+DECLARE @EndRow int
+SET @EndRow = @StartRow + @MaximumRows
+DECLARE @Records TABLE
+(
+ ItemPosition int IDENTITY(1,1),
+ RecordID varchar(32)
+)
+INSERT INTO @Records (RecordID)
+SELECT
+ L.RecordID
+FROM AuditLog AS L
+WHERE
+((@PackageID = 0 AND dbo.CheckUserParent(@UserID, L.UserID) = 1 OR (L.UserID IS NULL AND @IsAdmin = 1))
+ OR (@PackageID > 0 AND L.PackageID = @PackageID))
+AND L.StartDate BETWEEN @StartDate AND @EndDate
+AND ((@SourceName = '''') OR (@SourceName <> '''' AND L.SourceName = @SourceName))
+AND ((@TaskName = '''') OR (@TaskName <> '''' AND L.TaskName = @TaskName))
+AND ((@ItemID = 0) OR (@ItemID > 0 AND L.ItemID = @ItemID))
+AND ((@ItemName = '''') OR (@ItemName <> '''' AND L.ItemName LIKE @ItemName))
+AND ((@SeverityID = -1) OR (@SeverityID > -1 AND L.SeverityID = @SeverityID)) '
+
+IF @SortColumn <> '' AND @SortColumn IS NOT NULL
+SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' '
+
+SET @sql = @sql + ' SELECT COUNT(RecordID) FROM @Records;
+SELECT
+ TL.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,
+ CASE U.IsPeer
+ WHEN 1 THEN U.OwnerID
+ ELSE U.UserID
+ END EffectiveUserID
+FROM @Records AS TL
+INNER JOIN AuditLog AS L ON TL.RecordID = L.RecordID
+LEFT OUTER JOIN UsersDetailed AS U ON L.UserID = U.UserID
+WHERE TL.ItemPosition BETWEEN @StartRow + 1 AND @EndRow'
+
+exec sp_executesql @sql, N'@TaskName varchar(100), @SourceName varchar(100), @PackageID int, @ItemID int, @ItemName nvarchar(100), @StartDate datetime,
+@EndDate datetime, @StartRow int, @MaximumRows int, @UserID int, @ActorID int, @SeverityID int',
+@TaskName, @SourceName, @PackageID, @ItemID, @ItemName, @StartDate, @EndDate, @StartRow, @MaximumRows, @UserID, @ActorID,
+@SeverityID
+
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetTaxationsPaged]
+ @ActorID int,
+ @UserID int,
+ @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 account', 16, 1);
+ RETURN;
+ END
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+ -- do some calculations
+ DECLARE @EndIndex int;
+ --
+ SET @EndIndex = @MaximumRows + @StartRowIndex;
+ SET @StartRowIndex = @StartRowIndex + 1;
+ --
+ WITH [TaxesCTE] AS (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY [TaxationID] ASC) AS [RowIndex],
+ *
+ FROM
+ [dbo].[ecTaxations]
+ WHERE
+ [ResellerID] = @UserID
+ )
+ --
+ SELECT * FROM [TaxesCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetTaxationsCount]
+ @ActorID int,
+ @UserID int,
+ @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;
+
+ SELECT @Result = COUNT([TaxationID]) FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetTaxation]
+ @ActorID int,
+ @UserID int,
+ @TaxationID int
+AS
+BEGIN
+ --
+ 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;
+
+ --
+ SELECT * FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID AND [TaxationID] = @TaxationID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[AddServiceItem]
+(
+ @ActorID 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.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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[ecSvcsUsageLog](
+ [ServiceID] [int] NOT NULL,
+ [StartDate] [datetime] NOT NULL,
+ [EndDate] [datetime] NOT NULL,
+ [SvcCycleID] [int] NOT NULL,
+ [PeriodClosed] [bit] NULL,
+ CONSTRAINT [PK_ecServicesLifeCyclesLog] PRIMARY KEY CLUSTERED
+(
+ [ServiceID] ASC,
+ [SvcCycleID] ASC,
+ [StartDate] ASC,
+ [EndDate] 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].[ecSetStoreSettings]
+ @ActorID int,
+ @UserID int,
+ @SettingsName nvarchar(50),
+ @Xml ntext,
+ @Result int OUTPUT
+AS
+BEGIN
+/*
+XML Format:
+
+
+
+
+*/
+ -- 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 @Result = 0;
+
+ DECLARE @docid int;
+ --Create an internal representation of the XML document.
+ EXEC sp_xml_preparedocument @docid OUTPUT, @Xml;
+
+ -- cleanup
+ DELETE FROM [dbo].[ecStoreSettings]
+ WHERE [SettingsName] = @SettingsName AND [ResellerID] = @UserID;
+
+ INSERT INTO [dbo].[ecStoreSettings]
+ (
+ [ResellerID],
+ [SettingsName],
+ [PropertyName],
+ [PropertyValue]
+ )
+ SELECT
+ @UserID,
+ @SettingsName,
+ [XML].[PropertyName],
+ [XML].[PropertyValue]
+ FROM OPENXML(@docid, '/settings/setting', 1) WITH
+ (
+ [PropertyName] nvarchar(50) '@name',
+ [PropertyValue] ntext '@value'
+ ) AS [XML];
+
+ -- remove document
+ EXEC sp_xml_removedocument @docid;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecSetPluginProperties]
+ @ActorID int,
+ @UserID int,
+ @PluginID int,
+ @Xml ntext,
+ @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;
+
+/*
+XML Format:
+
+
+
+*/
+ -- result is ok
+ SET @Result = 0;
+ --
+ DECLARE @XmlDocID int;
+ --Create an internal representation of the XML document.
+ EXEC sp_xml_preparedocument @XmlDocID OUTPUT, @xml;
+ -- cleanup
+ DELETE FROM [dbo].[ecPluginsProperties]
+ WHERE [ResellerID] = @UserID AND [PluginID] = @PluginID;
+ -- insert
+ INSERT INTO [dbo].[ecPluginsProperties]
+ (
+ [PluginID],
+ [ResellerID],
+ [PropertyName],
+ [PropertyValue]
+ )
+ SELECT
+ @PluginID,
+ @UserID,
+ [XML].[PropertyName],
+ [XML].[PropertyValue]
+ FROM OPENXML(@XmlDocID, '/properties/property',1) WITH
+ (
+ [PropertyName] nvarchar(50) '@name',
+ [PropertyValue] ntext '@value'
+ ) AS [XML];
+
+ -- remove document
+ EXEC sp_xml_removedocument @XmlDocID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecSetPaymentProfile]
+ @ActorID int,
+ @ContractID nvarchar(50),
+ @PropertyNames ntext,
+ @PropertyValues ntext
+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;
+
+ -- cleanup first
+ DELETE FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID;
+
+ --
+ INSERT INTO [dbo].[ecPaymentProfiles]
+ (
+ [ContractID],
+ [PropertyNames],
+ [PropertyValues]
+ )
+ VALUES
+ (
+ @ContractID,
+ @PropertyNames,
+ @PropertyValues
+ );
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[ecHostingAddons](
+ [ProductID] [int] NOT NULL,
+ [PlanID] [int] NULL,
+ [Recurring] [bit] NOT NULL,
+ [DummyAddon] [bit] NOT NULL,
+ [Countable] [bit] NOT NULL,
+ [SetupFee] [money] NULL,
+ [OneTimeFee] [money] NULL,
+ [2COID] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL,
+ [ResellerID] [int] NOT NULL
+)
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetWholeCategoriesSet]
+ @ActorID int,
+ @UserID int
+AS
+ IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0
+ BEGIN
+ RAISERROR('You are not allowed to access this account', 16, 1);
+ RETURN;
+ END
+
+ SELECT * FROM [dbo].[ecCategory] WHERE [ResellerID] = @UserID ORDER BY [CategoryName];
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetUnpaidInvoices]
+ @ActorID int,
+ @ResellerID 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 added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ -- lookup for paid invoices
+ WITH [UNPAID_INVOICES] ([InvoiceID]) AS
+ (
+ SELECT
+ [I].[InvoiceID]
+ FROM
+ [dbo].[ecInvoice] AS [I]
+ INNER JOIN
+ [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [I].[ContractID]
+ WHERE
+ [C].[ResellerID] = @ResellerID
+ EXCEPT
+ SELECT
+ [InvoiceID]
+ FROM
+ [dbo].[ecCustomersPayments] AS [CP]
+ INNER JOIN
+ [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID]
+ WHERE
+ [C].[ResellerID] = @ResellerID
+ )
+ -- select unpaid invoices
+ SELECT * FROM [dbo].[ecInvoice] WHERE [InvoiceID] IN (
+ SELECT [InvoiceID] FROM [UNPAID_INVOICES]
+ );
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetStorefrontProductsByType]
+ @UserID int,
+ @TypeID int
+AS
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecAddCategory]
+ @ActorID int,
+ @UserID int,
+ @CategoryName nvarchar(255),
+ @CategorySku nvarchar(50),
+ @ParentID int,
+ @ShortDescription ntext,
+ @FullDescription ntext,
+ @Result int OUTPUT
+AS
+BEGIN
+ 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;
+
+ DECLARE @Level int;
+
+ IF @ParentID = -1
+ SET @ParentID = NULL;
+
+ -- identify category level
+ SELECT @Level = [Level] FROM [dbo].[ecCategory] WHERE [CategoryID] = @ParentID AND [ResellerID] = @UserID;
+ IF @Level >= 0
+ SET @Level = @Level + 1;
+ ELSE
+ SET @Level = 0;
+
+ INSERT INTO [dbo].[ecCategory]
+ (
+ [CategoryName],
+ [CategorySku],
+ [ParentID],
+ [Level],
+ [ShortDescription],
+ [FullDescription],
+ [CreatorID],
+ [ResellerID]
+ )
+ VALUES
+ (
+ @CategoryName,
+ @CategorySku,
+ @ParentID,
+ @Level,
+ @ShortDescription,
+ @FullDescription,
+ @ActorID,
+ @UserID
+ )
+
+ SET @Result = SCOPE_IDENTITY();
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecAddBillingCycle]
+ @ActorID int,
+ @UserID 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
+
+ INSERT INTO [dbo].[ecBillingCycles]
+ (
+ [ResellerID],
+ [CycleName],
+ [BillingPeriod],
+ [PeriodLength],
+ [Created]
+ )
+ VALUES
+ (
+ @UserID,
+ @CycleName,
+ @BillingPeriod,
+ @PeriodLength,
+ GETDATE()
+ );
+ -- return result
+ SET @Result = SCOPE_IDENTITY();
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddServer
+(
+ @ServerID int OUTPUT,
+ @ServerName nvarchar(100),
+ @ServerUrl nvarchar(100),
+ @Password nvarchar(100),
+ @Comments ntext,
+ @VirtualServer bit,
+ @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
+
+INSERT INTO Servers
+(
+ ServerName,
+ ServerUrl,
+ Password,
+ Comments,
+ VirtualServer,
+ InstantDomainAlias,
+ PrimaryGroupID,
+ ADEnabled,
+ ADRootDomain,
+ ADUsername,
+ ADPassword,
+ ADAuthenticationType
+)
+VALUES
+(
+ @ServerName,
+ @ServerUrl,
+ @Password,
+ @Comments,
+ @VirtualServer,
+ @InstantDomainAlias,
+ @PrimaryGroupID,
+ @ADEnabled,
+ @ADRootDomain,
+ @ADUsername,
+ @ADPassword,
+ @ADAuthenticationType
+)
+
+SET @ServerID = SCOPE_IDENTITY()
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecAddCustomerPayment]
+ @ActorID int,
+ @ContractID nvarchar(50),
+ @InvoiceID int,
+ @TransactionID nvarchar(255),
+ @Total money,
+ @Currency nvarchar(3),
+ @MethodName nvarchar(50),
+ @StatusID int,
+ @Result int OUTPUT
+AS
+BEGIN
+ DECLARE @ResellerID int, @IssuerID int;
+ SELECT
+ @ResellerID = [ResellerID],
+ @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts]
+ WHERE
+ [ContractID] = @ContractID;
+ --
+ IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0
+ BEGIN
+ RAISERROR('You are not allowed to perform this action', 16, 1);
+ RETURN;
+ END
+
+ SET NOCOUNT ON;
+
+ INSERT INTO [dbo].[ecCustomersPayments]
+ (
+ [ContractID],
+ [InvoiceID],
+ [TransactionID],
+ [Total],
+ [Currency],
+ [MethodName],
+ [PluginID],
+ [StatusID]
+ )
+ SELECT
+ @ContractID,
+ @InvoiceID,
+ @TransactionID,
+ @Total,
+ @Currency,
+ @MethodName,
+ [PluginID],
+ @StatusID
+ FROM
+ [dbo].[ecPaymentMethods]
+ WHERE
+ [MethodName] = @MethodName
+ AND
+ [ResellerID] = @ResellerID;
+
+ SET @Result = SCOPE_IDENTITY();
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE AddComment
+(
+ @ActorID int,
+ @ItemTypeID varchar(50),
+ @ItemID int,
+ @CommentText nvarchar(1000),
+ @SeverityID int
+)
+AS
+INSERT INTO Comments
+(
+ ItemTypeID,
+ ItemID,
+ UserID,
+ CreatedDate,
+ CommentText,
+ SeverityID
+)
+VALUES
+(
+ @ItemTypeID,
+ @ItemID,
+ @ActorID,
+ GETDATE(),
+ @CommentText,
+ @SeverityID
+)
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[ecDomainSvcsCycles](
+ [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] NOT NULL,
+ [RecurringFee] [money] NOT NULL,
+ [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL,
+ CONSTRAINT [PK_ecDomainsSvcsCycles] 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].[ecDomainSvcs](
+ [ServiceID] [int] NOT NULL,
+ [ProductID] [int] NULL,
+ [DomainID] [int] NULL,
+ [PluginID] [int] NULL,
+ [FQDN] [nvarchar](64) COLLATE Latin1_General_CI_AS NOT NULL,
+ [SvcCycleID] [int] NULL,
+ [PropertyNames] [ntext] COLLATE Latin1_General_CI_AS NULL,
+ [PropertyValues] [ntext] COLLATE Latin1_General_CI_AS NULL,
+ CONSTRAINT [PK_ecDomainsSvcs] 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].[ecDeleteTaxation]
+ @ActorID int,
+ @UserID int,
+ @TaxationID int,
+ @Result int OUTPUT
+AS
+BEGIN
+ --
+ 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;
+ --
+ DELETE FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID AND [TaxationID] = @TaxationID;
+ --
+ SET @Result = 0;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecDeleteSystemTrigger]
+ @ActorID int,
+ @TriggerID 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;
+
+ DELETE FROM [dbo].[ecSystemTriggers] WHERE [TriggerID] = @TriggerID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecDeletePaymentProfile]
+ @ActorID int,
+ @ContractID nvarchar(50),
+ @Result int OUTPUT
+AS
+BEGIN
+ DECLARE @CustomerID int;
+ SELECT
+ @CustomerID = [CustomerID] FROM [dbo].[ecContracts]
+ WHERE
+ [ContractID] = @ContractID;
+ -- check actor user rights
+ IF [dbo].[CheckUserParent](@ActorID, @CustomerID) = 0
+ BEGIN
+ RAISERROR('You are not allowed to perform this action', 16, 1);
+ RETURN;
+ END
+
+ SET @Result = 0;
+
+ DELETE FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecDeletePaymentMethod]
+ @ActorID int,
+ @UserID int,
+ @MethodName nvarchar(50),
+ @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;
+ --
+ SET @Result = 0;
+ -- remove
+ DELETE FROM [dbo].[ecPaymentMethods]
+ WHERE [ResellerID] = @UserID AND [MethodName] = @MethodName;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecDeleteCustomerService]
+ @ActorID int,
+ @ServiceID int,
+ @Result int 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 user rights
+ IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0
+ BEGIN
+ RAISERROR('You are not allowed to access this action', 16, 1);
+ RETURN;
+ END
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SET @Result = 0;
+
+ DELETE FROM [dbo].[ecService] WHERE [ServiceID] = @ServiceID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecDeleteCustomerPayment]
+ @ActorID int,
+ @PaymentID int,
+ @Result int OUTPUT
+AS
+BEGIN
+ DECLARE @IssuerID int, @ContractID nvarchar(50);
+ SELECT
+ @ContractID = [ContractID] FROM [dbo].[ecCustomersPayments]
+ WHERE
+ [PaymentID] = @PaymentID
+ 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 action', 16, 1);
+ RETURN;
+ END
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SET @Result = 0;
+
+ DELETE
+ FROM [dbo].[ecCustomersPayments]
+ WHERE
+ [PaymentID] = @PaymentID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetBillingCyclesPaged]
+ @ActorID int,
+ @UserID int,
+ @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 account', 16, 1);
+ RETURN;
+ END
+
+ DECLARE @EndIndex int;
+
+ SET @EndIndex = @MaximumRows + @StartRowIndex;
+ SET @StartRowIndex = @StartRowIndex + 1;
+
+ WITH [BillingCyclesCTE] AS (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
+ *
+ FROM
+ [dbo].[ecBillingCycles]
+ WHERE
+ [ResellerID] = @UserID
+ )
+
+ SELECT
+ *
+ FROM
+ [BillingCyclesCTE]
+ WHERE
+ [RowIndex] BETWEEN @StartRowIndex AND @EndIndex;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetBillingCyclesFree]
+ @ActorID int,
+ @UserID int,
+ @CyclesTakenXml ntext
+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
+
+ DECLARE @DocID int;
+
+ EXEC sp_xml_preparedocument @DocID OUTPUT, @CyclesTakenXml;
+
+ SELECT * FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID AND [CycleID] NOT IN (
+ SELECT [CycleTakenID] FROM OPENXML(@DocID, '/CyclesTaken/Cycle',1) WITH
+ (
+ [CycleTakenID] int '@id'
+ )
+ );
+
+ EXEC sp_xml_removedocument @DocID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetBillingCyclesCount]
+ @ActorID int,
+ @UserID int,
+ @Count 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
+
+ SELECT @Count = COUNT(*) FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetBillingCycle]
+ @ActorID int,
+ @UserID int,
+ @CycleID 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 * FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID AND [CycleID] = @CycleID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetPluginProperties]
+ @ActorID int,
+ @UserID int,
+ @PluginID 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
+
+ SET NOCOUNT ON;
+
+ SELECT [PropertyName], [PropertyValue] FROM [dbo].[ecPluginsProperties]
+ WHERE [PluginID] = @PluginID AND [ResellerID] = @UserID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetPaymentProfile]
+ @ActorID int,
+ @ContractID nvarchar(50)
+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;
+ --
+ SELECT * FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetPaymentMethod]
+ @ActorID int,
+ @UserID int,
+ @MethodName nvarchar(50)
+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;
+
+ SELECT * FROM [dbo].[ecPaymentMethods]
+ WHERE [MethodName] = @MethodName AND [ResellerID] = @UserID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetInvoicesItemsToActivate]
+ @ActorID int,
+ @ResellerID int
+AS
+BEGIN
+
+ IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 0
+ BEGIN
+ RAISERROR('You are not allowed to access this information', 16, 1);
+ RETURN;
+ END
+
+ SET NOCOUNT ON;
+
+ -- lookup for paid invoices
+ WITH [PAID_INVOICES] ([InvoiceID]) AS
+ (
+ SELECT
+ [InvoiceID] FROM [dbo].[ecCustomersPayments] AS [CP]
+ INNER JOIN
+ [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID]
+ WHERE
+ [C].[ResellerID] = @ResellerID AND [StatusID] = 1 -- Approved Payments Only
+ )
+ SELECT
+ * FROM [dbo].[ecInvoiceItems]
+ WHERE
+ [ServiceID] IS NOT NULL AND [Processed] = 0 AND [InvoiceID] IN (SELECT [InvoiceID] FROM [PAID_INVOICES]);
+
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetInvoicesItemsOverdue]
+ @ActorID int,
+ @ResellerID int,
+ @DateOverdue datetime
+AS
+BEGIN
+ -- check user parent
+ IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 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;
+
+ -- lookup for paid invoices
+ WITH [OVERDUE_INVOICES] ([InvoiceID]) AS
+ (
+ SELECT
+ [I].[InvoiceID]
+ FROM
+ [dbo].[ecInvoice] AS [I]
+ INNER JOIN
+ [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [I].[ContractID]
+ WHERE
+ [C].[ResellerID] = @ResellerID
+ AND
+ DATEDIFF(second, [DueDate], @DateOverdue) >= 0
+ EXCEPT
+ SELECT
+ [InvoiceID]
+ FROM
+ [dbo].[ecCustomersPayments] AS [CP]
+ INNER JOIN
+ [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID]
+ WHERE
+ [C].[ResellerID] = @ResellerID
+ AND
+ [CP].[StatusID] = 1 -- Approved payments only
+ )
+ SELECT * FROM [dbo].[ecInvoiceItems]
+ WHERE [ServiceID] IS NOT NULL
+ AND [InvoiceID] IN (
+ SELECT [InvoiceID] FROM [OVERDUE_INVOICES]
+ );
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetProductsPagedByType]
+ @ActorID int,
+ @UserID int,
+ @TypeID int,
+ @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 account', 16, 1);
+ RETURN;
+ END
+
+ DECLARE @EndIndex int;
+
+ SET @EndIndex = @MaximumRows + @StartRowIndex;
+ SET @StartRowIndex = @StartRowIndex + 1;
+
+ WITH [ProductsCTE] AS (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
+ *
+ FROM
+ [dbo].[ecProduct]
+ WHERE
+ [ResellerID] = @UserID
+ AND
+ [TypeID] = @TypeID
+ )
+
+ SELECT * FROM [ProductsCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetProductsCountByType]
+ @ActorID int,
+ @UserID int,
+ @TypeID int,
+ @Count 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
+
+ SELECT @Count = COUNT(*) FROM [dbo].[ecProduct] WHERE [TypeID] = @TypeID AND [ResellerID] = @UserID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetProductsByType]
+ @UserID int,
+ @TypeID int
+AS
+BEGIN
+
+ SELECT * FROM [dbo].[ecProduct] WHERE [ResellerID] = @UserID AND [TypeID] = @TypeID ORDER BY [ProductName];
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetResellerPMPlugin]
+ @ResellerID int,
+ @MethodName nvarchar(50)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SELECT
+ [SP].*
+ FROM
+ [dbo].[ecPaymentMethods] AS [PM]
+ INNER JOIN
+ [dbo].[ecSupportedPlugins] AS [SP]
+ ON
+ [SP].[PluginID] = [PM].[PluginID]
+ WHERE
+ [PM].[MethodName] = @MethodName
+ AND
+ [PM].[ResellerID] = @ResellerID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetResellerPaymentMethods]
+ @ResellerID int
+AS
+BEGIN
+
+ SELECT * FROM [dbo].[ecPaymentMethods]
+ WHERE [ResellerID] = @ResellerID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetResellerPaymentMethod]
+ @ResellerID int,
+ @MethodName nvarchar(50)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ SELECT
+ [PM].[ResellerID],
+ [PM].[MethodName],
+ [PM].[DisplayName],
+ [PM].[SupportedItems],
+ [SP].[Interactive]
+ FROM
+ [dbo].[ecPaymentMethods] AS [PM]
+ INNER JOIN
+ [dbo].[ecSupportedPlugins] AS [SP]
+ ON
+ [SP].[PluginID] = [PM].[PluginID]
+ WHERE
+ [PM].[ResellerID] = @ResellerID
+ AND
+ [PM].[MethodName] = @MethodName;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetCategoriesPaged]
+ @ActorID int,
+ @UserID int,
+ @ParentID int,
+ @MaximumRows int,
+ @StartRowIndex int
+AS
+ -- check actor user rights
+ IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0
+ BEGIN
+ RAISERROR('You are not allowed to access this account', 16, 1);
+ RETURN;
+ END
+
+ DECLARE @EndIndex int;
+
+ SET @EndIndex = @MaximumRows + @StartRowIndex;
+ SET @StartRowIndex = @StartRowIndex + 1;
+
+ IF @ParentID > 0
+ BEGIN
+ WITH [CategoryCTE] AS (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
+ *
+ FROM
+ [dbo].[ecCategory]
+ WHERE
+ [ParentID] = @ParentID
+ AND
+ [ResellerID] = @UserID
+ )
+
+ SELECT * FROM [CategoryCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [CategoryName];
+ END
+ ELSE
+ BEGIN
+ WITH [CategoryCTE] AS (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
+ *
+ FROM
+ [dbo].[ecCategory]
+ WHERE
+ [ParentID] IS NULL
+ AND
+ [ResellerID] = @UserID
+ )
+
+ SELECT * FROM [CategoryCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [CategoryID], [CategoryName];
+ END
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[ecGetServiceItemType]
+ @ServiceID int
+AS
+BEGIN
+
+ SELECT
+ [PT].* FROM [dbo].[ecProductType] AS [PT]
+ INNER JOIN
+ [dbo].[ecService] AS [S] ON [PT].[TypeID] = [S].[TypeID]
+ WHERE
+ [S].[ServiceID] = @ServiceID;
+
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
GO
SET ANSI_NULLS ON
@@ -25396,6 +35133,104 @@ END
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
+CREATE PROCEDURE [dbo].[GetUnallottedIPAddresses]
+ @PackageID int,
+ @ServiceID int,
+ @PoolID int = 0
+AS
+BEGIN
+
+ DECLARE @ParentPackageID int
+ DECLARE @ServerID int
+
+ SELECT
+ @ParentPackageID = ParentPackageID,
+ @ServerID = ServerID
+ FROM Packages
+ WHERE PackageID = @PackageId
+
+ IF (@ParentPackageID = 1 OR @PoolID = 4 /* management network */) -- "System" space
+ BEGIN
+ -- check if server is physical
+ IF EXISTS(SELECT * FROM Servers WHERE ServerID = @ServerID AND VirtualServer = 0)
+ BEGIN
+ -- physical server
+ SELECT
+ IP.AddressID,
+ IP.ExternalIP,
+ IP.InternalIP,
+ IP.ServerID,
+ IP.PoolID,
+ IP.SubnetMask,
+ IP.DefaultGateway
+ FROM dbo.IPAddresses AS IP
+ WHERE
+ IP.ServerID = @ServerID
+ AND IP.AddressID NOT IN (SELECT PIP.AddressID FROM dbo.PackageIPAddresses AS PIP)
+ AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
+ ORDER BY IP.DefaultGateway, IP.ExternalIP
+ END
+ ELSE
+ BEGIN
+ -- virtual server
+ -- get resource group by service
+ DECLARE @GroupID int
+ SELECT @GroupID = P.GroupID FROM Services AS S
+ INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID
+ WHERE S.ServiceID = @ServiceID
+
+ SELECT
+ IP.AddressID,
+ IP.ExternalIP,
+ IP.InternalIP,
+ IP.ServerID,
+ IP.PoolID,
+ IP.SubnetMask,
+ IP.DefaultGateway
+ FROM dbo.IPAddresses AS IP
+ WHERE
+ IP.ServerID IN (
+ SELECT SVC.ServerID FROM [dbo].[Services] AS SVC
+ INNER JOIN [dbo].[Providers] AS P ON SVC.ProviderID = P.ProviderID
+ WHERE [SVC].[ServiceID] = @ServiceId AND P.GroupID = @GroupID
+ )
+ AND IP.AddressID NOT IN (SELECT PIP.AddressID FROM dbo.PackageIPAddresses AS PIP)
+ AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
+ ORDER BY IP.DefaultGateway, IP.ExternalIP
+ END
+ END
+ ELSE -- 2rd level space and below
+ BEGIN
+ -- get service location
+ SELECT @ServerID = S.ServerID FROM Services AS S
+ WHERE S.ServiceID = @ServiceID
+
+ SELECT
+ IP.AddressID,
+ IP.ExternalIP,
+ IP.InternalIP,
+ IP.ServerID,
+ IP.PoolID,
+ IP.SubnetMask,
+ IP.DefaultGateway
+ FROM dbo.PackageIPAddresses AS PIP
+ INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
+ WHERE
+ PIP.PackageID = @ParentPackageID
+ AND PIP.ItemID IS NULL
+ AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
+ AND IP.ServerID = @ServerID
+ ORDER BY IP.DefaultGateway, IP.ExternalIP
+ END
+END
+
GO
SET ANSI_NULLS ON
GO
@@ -25459,6 +35294,7 @@ END
+
GO
SET ANSI_NULLS ON
GO
@@ -25523,6 +35359,7 @@ END
+
GO
SET ANSI_NULLS ON
GO
@@ -25577,6 +35414,7 @@ RETURN
+
GO
SET ANSI_NULLS ON
GO
@@ -25658,6 +35496,7 @@ END
+
GO
SET ANSI_NULLS ON
GO
@@ -25827,6 +35666,7 @@ RETURN
+
GO
@@ -25927,6 +35767,7 @@ RETURN
+
GO
@@ -26027,6 +35868,7 @@ RETURN
+
GO
@@ -26132,8798 +35974,6 @@ 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].[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
-)
-AS
-
--- check actor rights
-IF dbo.CanUpdateUserDetails(@ActorID, @UserID) = 0
-RETURN
-
-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
-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 VIEW [dbo].[ServiceHandlersResponsesDetailed]
-AS
-SELECT dbo.ecServiceHandlersResponses.ResponseID, dbo.ecServiceHandlersResponses.ServiceID, dbo.ecContracts.ResellerID,
- dbo.ecServiceHandlersResponses.ContractID, dbo.ecServiceHandlersResponses.TextResponse, dbo.ecServiceHandlersResponses.Received,
- dbo.ecServiceHandlersResponses.ErrorMessage, dbo.ecPaymentMethods.MethodName, dbo.ecServiceHandlersResponses.InvoiceID
-FROM dbo.ecContracts RIGHT OUTER JOIN
- dbo.ecPaymentMethods INNER JOIN
- dbo.ecSupportedPlugins ON dbo.ecPaymentMethods.PluginID = dbo.ecSupportedPlugins.PluginID RIGHT OUTER JOIN
- dbo.ecServiceHandlersResponses ON dbo.ecSupportedPlugins.UniqueID = dbo.ecServiceHandlersResponses.ServiceID ON
- dbo.ecContracts.ContractID = dbo.ecServiceHandlersResponses.ContractID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 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].[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].[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].[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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 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 GetProvider
-(
- @ProviderID int
-)
-AS
-SELECT
- ProviderID,
- GroupID,
- ProviderName,
- EditorControl,
- DisplayName,
- ProviderType
-FROM Providers
-WHERE
- ProviderID = @ProviderID
-
-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
-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
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER OFF
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[GetAuditLogRecordsPaged]
-(
- @ActorID int,
- @UserID int,
- @PackageID int,
- @ItemID int,
- @ItemName nvarchar(100),
- @StartDate datetime,
- @EndDate datetime,
- @SeverityID int,
- @SourceName varchar(100),
- @TaskName varchar(100),
- @SortColumn nvarchar(50),
- @StartRow int,
- @MaximumRows int
-)
-AS
-
--- check rights
-IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
-RAISERROR('You are not allowed to access this account', 16, 1)
-
-IF @SourceName IS NULL SET @SourceName = ''
-IF @TaskName IS NULL SET @TaskName = ''
-IF @ItemName IS NULL SET @ItemName = ''
-
-IF @SortColumn IS NULL OR @SortColumn = ''
-SET @SortColumn = 'L.StartDate DESC'
-
--- build query and run it to the temporary table
-DECLARE @sql nvarchar(2000)
-
-SET @sql = '
-DECLARE @IsAdmin bit
-SET @IsAdmin = 0
-IF EXISTS(SELECT UserID FROM Users WHERE UserID = @ActorID AND RoleID = 1)
-SET @IsAdmin = 1
-
-DECLARE @EndRow int
-SET @EndRow = @StartRow + @MaximumRows
-DECLARE @Records TABLE
-(
- ItemPosition int IDENTITY(1,1),
- RecordID varchar(32)
-)
-INSERT INTO @Records (RecordID)
-SELECT
- L.RecordID
-FROM AuditLog AS L
-WHERE
-((@PackageID = 0 AND dbo.CheckUserParent(@UserID, L.UserID) = 1 OR (L.UserID IS NULL AND @IsAdmin = 1))
- OR (@PackageID > 0 AND L.PackageID = @PackageID))
-AND L.StartDate BETWEEN @StartDate AND @EndDate
-AND ((@SourceName = '''') OR (@SourceName <> '''' AND L.SourceName = @SourceName))
-AND ((@TaskName = '''') OR (@TaskName <> '''' AND L.TaskName = @TaskName))
-AND ((@ItemID = 0) OR (@ItemID > 0 AND L.ItemID = @ItemID))
-AND ((@ItemName = '''') OR (@ItemName <> '''' AND L.ItemName LIKE @ItemName))
-AND ((@SeverityID = -1) OR (@SeverityID > -1 AND L.SeverityID = @SeverityID)) '
-
-IF @SortColumn <> '' AND @SortColumn IS NOT NULL
-SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' '
-
-SET @sql = @sql + ' SELECT COUNT(RecordID) FROM @Records;
-SELECT
- TL.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,
- CASE U.IsPeer
- WHEN 1 THEN U.OwnerID
- ELSE U.UserID
- END EffectiveUserID
-FROM @Records AS TL
-INNER JOIN AuditLog AS L ON TL.RecordID = L.RecordID
-LEFT OUTER JOIN UsersDetailed AS U ON L.UserID = U.UserID
-WHERE TL.ItemPosition BETWEEN @StartRow + 1 AND @EndRow'
-
-exec sp_executesql @sql, N'@TaskName varchar(100), @SourceName varchar(100), @PackageID int, @ItemID int, @ItemName nvarchar(100), @StartDate datetime,
-@EndDate datetime, @StartRow int, @MaximumRows int, @UserID int, @ActorID int, @SeverityID int',
-@TaskName, @SourceName, @PackageID, @ItemID, @ItemName, @StartDate, @EndDate, @StartRow, @MaximumRows, @UserID, @ActorID,
-@SeverityID
-
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetTaxationsPaged]
- @ActorID int,
- @UserID int,
- @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 account', 16, 1);
- RETURN;
- END
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
- -- do some calculations
- DECLARE @EndIndex int;
- --
- SET @EndIndex = @MaximumRows + @StartRowIndex;
- SET @StartRowIndex = @StartRowIndex + 1;
- --
- WITH [TaxesCTE] AS (
- SELECT
- ROW_NUMBER() OVER(ORDER BY [TaxationID] ASC) AS [RowIndex],
- *
- FROM
- [dbo].[ecTaxations]
- WHERE
- [ResellerID] = @UserID
- )
- --
- SELECT * FROM [TaxesCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetTaxationsCount]
- @ActorID int,
- @UserID int,
- @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;
-
- SELECT @Result = COUNT([TaxationID]) FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetTaxation]
- @ActorID int,
- @UserID int,
- @TaxationID int
-AS
-BEGIN
- --
- 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;
-
- --
- SELECT * FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID AND [TaxationID] = @TaxationID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetStorefrontProductsByType]
- @UserID int,
- @TypeID int
-AS
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[ecSvcsUsageLog](
- [ServiceID] [int] NOT NULL,
- [StartDate] [datetime] NOT NULL,
- [EndDate] [datetime] NOT NULL,
- [SvcCycleID] [int] NOT NULL,
- [PeriodClosed] [bit] NULL,
- CONSTRAINT [PK_ecServicesLifeCyclesLog] PRIMARY KEY CLUSTERED
-(
- [ServiceID] ASC,
- [SvcCycleID] ASC,
- [StartDate] ASC,
- [EndDate] 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].[ecSetStoreSettings]
- @ActorID int,
- @UserID int,
- @SettingsName nvarchar(50),
- @Xml ntext,
- @Result int OUTPUT
-AS
-BEGIN
-/*
-XML Format:
-
-
-
-
-*/
- -- 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 @Result = 0;
-
- DECLARE @docid int;
- --Create an internal representation of the XML document.
- EXEC sp_xml_preparedocument @docid OUTPUT, @Xml;
-
- -- cleanup
- DELETE FROM [dbo].[ecStoreSettings]
- WHERE [SettingsName] = @SettingsName AND [ResellerID] = @UserID;
-
- INSERT INTO [dbo].[ecStoreSettings]
- (
- [ResellerID],
- [SettingsName],
- [PropertyName],
- [PropertyValue]
- )
- SELECT
- @UserID,
- @SettingsName,
- [XML].[PropertyName],
- [XML].[PropertyValue]
- FROM OPENXML(@docid, '/settings/setting', 1) WITH
- (
- [PropertyName] nvarchar(50) '@name',
- [PropertyValue] ntext '@value'
- ) AS [XML];
-
- -- remove document
- EXEC sp_xml_removedocument @docid;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecSetPluginProperties]
- @ActorID int,
- @UserID int,
- @PluginID int,
- @Xml ntext,
- @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;
-
-/*
-XML Format:
-
-
-
-*/
- -- result is ok
- SET @Result = 0;
- --
- DECLARE @XmlDocID int;
- --Create an internal representation of the XML document.
- EXEC sp_xml_preparedocument @XmlDocID OUTPUT, @xml;
- -- cleanup
- DELETE FROM [dbo].[ecPluginsProperties]
- WHERE [ResellerID] = @UserID AND [PluginID] = @PluginID;
- -- insert
- INSERT INTO [dbo].[ecPluginsProperties]
- (
- [PluginID],
- [ResellerID],
- [PropertyName],
- [PropertyValue]
- )
- SELECT
- @PluginID,
- @UserID,
- [XML].[PropertyName],
- [XML].[PropertyValue]
- FROM OPENXML(@XmlDocID, '/properties/property',1) WITH
- (
- [PropertyName] nvarchar(50) '@name',
- [PropertyValue] ntext '@value'
- ) AS [XML];
-
- -- remove document
- EXEC sp_xml_removedocument @XmlDocID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecSetPaymentProfile]
- @ActorID int,
- @ContractID nvarchar(50),
- @PropertyNames ntext,
- @PropertyValues ntext
-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;
-
- -- cleanup first
- DELETE FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID;
-
- --
- INSERT INTO [dbo].[ecPaymentProfiles]
- (
- [ContractID],
- [PropertyNames],
- [PropertyValues]
- )
- VALUES
- (
- @ContractID,
- @PropertyNames,
- @PropertyValues
- );
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[ecHostingAddons](
- [ProductID] [int] NOT NULL,
- [PlanID] [int] NULL,
- [Recurring] [bit] NOT NULL,
- [DummyAddon] [bit] NOT NULL,
- [Countable] [bit] NOT NULL,
- [SetupFee] [money] NULL,
- [OneTimeFee] [money] NULL,
- [2COID] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL,
- [ResellerID] [int] NOT NULL
-)
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetWholeCategoriesSet]
- @ActorID int,
- @UserID int
-AS
- IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0
- BEGIN
- RAISERROR('You are not allowed to access this account', 16, 1);
- RETURN;
- END
-
- SELECT * FROM [dbo].[ecCategory] WHERE [ResellerID] = @UserID ORDER BY [CategoryName];
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetUnpaidInvoices]
- @ActorID int,
- @ResellerID 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 added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- -- lookup for paid invoices
- WITH [UNPAID_INVOICES] ([InvoiceID]) AS
- (
- SELECT
- [I].[InvoiceID]
- FROM
- [dbo].[ecInvoice] AS [I]
- INNER JOIN
- [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [I].[ContractID]
- WHERE
- [C].[ResellerID] = @ResellerID
- EXCEPT
- SELECT
- [InvoiceID]
- FROM
- [dbo].[ecCustomersPayments] AS [CP]
- INNER JOIN
- [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID]
- WHERE
- [C].[ResellerID] = @ResellerID
- )
- -- select unpaid invoices
- SELECT * FROM [dbo].[ecInvoice] WHERE [InvoiceID] IN (
- SELECT [InvoiceID] FROM [UNPAID_INVOICES]
- );
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER OFF
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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
-
--- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetDnsRecordsByGroup
-(
- @GroupID int
-)
-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
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecAddCategory]
- @ActorID int,
- @UserID int,
- @CategoryName nvarchar(255),
- @CategorySku nvarchar(50),
- @ParentID int,
- @ShortDescription ntext,
- @FullDescription ntext,
- @Result int OUTPUT
-AS
-BEGIN
- 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;
-
- DECLARE @Level int;
-
- IF @ParentID = -1
- SET @ParentID = NULL;
-
- -- identify category level
- SELECT @Level = [Level] FROM [dbo].[ecCategory] WHERE [CategoryID] = @ParentID AND [ResellerID] = @UserID;
- IF @Level >= 0
- SET @Level = @Level + 1;
- ELSE
- SET @Level = 0;
-
- INSERT INTO [dbo].[ecCategory]
- (
- [CategoryName],
- [CategorySku],
- [ParentID],
- [Level],
- [ShortDescription],
- [FullDescription],
- [CreatorID],
- [ResellerID]
- )
- VALUES
- (
- @CategoryName,
- @CategorySku,
- @ParentID,
- @Level,
- @ShortDescription,
- @FullDescription,
- @ActorID,
- @UserID
- )
-
- SET @Result = SCOPE_IDENTITY();
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecAddBillingCycle]
- @ActorID int,
- @UserID 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
-
- INSERT INTO [dbo].[ecBillingCycles]
- (
- [ResellerID],
- [CycleName],
- [BillingPeriod],
- [PeriodLength],
- [Created]
- )
- VALUES
- (
- @UserID,
- @CycleName,
- @BillingPeriod,
- @PeriodLength,
- GETDATE()
- );
- -- return result
- SET @Result = SCOPE_IDENTITY();
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE AddServer
-(
- @ServerID int OUTPUT,
- @ServerName nvarchar(100),
- @ServerUrl nvarchar(100),
- @Password nvarchar(100),
- @Comments ntext,
- @VirtualServer bit,
- @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
-
-INSERT INTO Servers
-(
- ServerName,
- ServerUrl,
- Password,
- Comments,
- VirtualServer,
- InstantDomainAlias,
- PrimaryGroupID,
- ADEnabled,
- ADRootDomain,
- ADUsername,
- ADPassword,
- ADAuthenticationType
-)
-VALUES
-(
- @ServerName,
- @ServerUrl,
- @Password,
- @Comments,
- @VirtualServer,
- @InstantDomainAlias,
- @PrimaryGroupID,
- @ADEnabled,
- @ADRootDomain,
- @ADUsername,
- @ADPassword,
- @ADAuthenticationType
-)
-
-SET @ServerID = SCOPE_IDENTITY()
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecAddCustomerPayment]
- @ActorID int,
- @ContractID nvarchar(50),
- @InvoiceID int,
- @TransactionID nvarchar(255),
- @Total money,
- @Currency nvarchar(3),
- @MethodName nvarchar(50),
- @StatusID int,
- @Result int OUTPUT
-AS
-BEGIN
- DECLARE @ResellerID int, @IssuerID int;
- SELECT
- @ResellerID = [ResellerID],
- @IssuerID = ISNULL([CustomerID],[ResellerID]) FROM [dbo].[ecContracts]
- WHERE
- [ContractID] = @ContractID;
- --
- IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0
- BEGIN
- RAISERROR('You are not allowed to perform this action', 16, 1);
- RETURN;
- END
-
- SET NOCOUNT ON;
-
- INSERT INTO [dbo].[ecCustomersPayments]
- (
- [ContractID],
- [InvoiceID],
- [TransactionID],
- [Total],
- [Currency],
- [MethodName],
- [PluginID],
- [StatusID]
- )
- SELECT
- @ContractID,
- @InvoiceID,
- @TransactionID,
- @Total,
- @Currency,
- @MethodName,
- [PluginID],
- @StatusID
- FROM
- [dbo].[ecPaymentMethods]
- WHERE
- [MethodName] = @MethodName
- AND
- [ResellerID] = @ResellerID;
-
- SET @Result = SCOPE_IDENTITY();
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE AddComment
-(
- @ActorID int,
- @ItemTypeID varchar(50),
- @ItemID int,
- @CommentText nvarchar(1000),
- @SeverityID int
-)
-AS
-INSERT INTO Comments
-(
- ItemTypeID,
- ItemID,
- UserID,
- CreatedDate,
- CommentText,
- SeverityID
-)
-VALUES
-(
- @ItemTypeID,
- @ItemID,
- @ActorID,
- GETDATE(),
- @CommentText,
- @SeverityID
-)
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[ecDomainSvcsCycles](
- [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] NOT NULL,
- [RecurringFee] [money] NOT NULL,
- [Currency] [nvarchar](3) COLLATE Latin1_General_CI_AS NOT NULL,
- CONSTRAINT [PK_ecDomainsSvcsCycles] 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].[ecDomainSvcs](
- [ServiceID] [int] NOT NULL,
- [ProductID] [int] NULL,
- [DomainID] [int] NULL,
- [PluginID] [int] NULL,
- [FQDN] [nvarchar](64) COLLATE Latin1_General_CI_AS NOT NULL,
- [SvcCycleID] [int] NULL,
- [PropertyNames] [ntext] COLLATE Latin1_General_CI_AS NULL,
- [PropertyValues] [ntext] COLLATE Latin1_General_CI_AS NULL,
- CONSTRAINT [PK_ecDomainsSvcs] 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].[ecDeleteTaxation]
- @ActorID int,
- @UserID int,
- @TaxationID int,
- @Result int OUTPUT
-AS
-BEGIN
- --
- 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;
- --
- DELETE FROM [dbo].[ecTaxations] WHERE [ResellerID] = @UserID AND [TaxationID] = @TaxationID;
- --
- SET @Result = 0;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecDeleteSystemTrigger]
- @ActorID int,
- @TriggerID 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;
-
- DELETE FROM [dbo].[ecSystemTriggers] WHERE [TriggerID] = @TriggerID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecDeletePaymentProfile]
- @ActorID int,
- @ContractID nvarchar(50),
- @Result int OUTPUT
-AS
-BEGIN
- DECLARE @CustomerID int;
- SELECT
- @CustomerID = [CustomerID] FROM [dbo].[ecContracts]
- WHERE
- [ContractID] = @ContractID;
- -- check actor user rights
- IF [dbo].[CheckUserParent](@ActorID, @CustomerID) = 0
- BEGIN
- RAISERROR('You are not allowed to perform this action', 16, 1);
- RETURN;
- END
-
- SET @Result = 0;
-
- DELETE FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecDeletePaymentMethod]
- @ActorID int,
- @UserID int,
- @MethodName nvarchar(50),
- @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;
- --
- SET @Result = 0;
- -- remove
- DELETE FROM [dbo].[ecPaymentMethods]
- WHERE [ResellerID] = @UserID AND [MethodName] = @MethodName;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecDeleteCustomerService]
- @ActorID int,
- @ServiceID int,
- @Result int 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 user rights
- IF [dbo].[CheckUserParent](@ActorID, @IssuerID) = 0
- BEGIN
- RAISERROR('You are not allowed to access this action', 16, 1);
- RETURN;
- END
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SET @Result = 0;
-
- DELETE FROM [dbo].[ecService] WHERE [ServiceID] = @ServiceID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecDeleteCustomerPayment]
- @ActorID int,
- @PaymentID int,
- @Result int OUTPUT
-AS
-BEGIN
- DECLARE @IssuerID int, @ContractID nvarchar(50);
- SELECT
- @ContractID = [ContractID] FROM [dbo].[ecCustomersPayments]
- WHERE
- [PaymentID] = @PaymentID
- 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 action', 16, 1);
- RETURN;
- END
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SET @Result = 0;
-
- DELETE
- FROM [dbo].[ecCustomersPayments]
- WHERE
- [PaymentID] = @PaymentID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetBillingCyclesPaged]
- @ActorID int,
- @UserID int,
- @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 account', 16, 1);
- RETURN;
- END
-
- DECLARE @EndIndex int;
-
- SET @EndIndex = @MaximumRows + @StartRowIndex;
- SET @StartRowIndex = @StartRowIndex + 1;
-
- WITH [BillingCyclesCTE] AS (
- SELECT
- ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
- *
- FROM
- [dbo].[ecBillingCycles]
- WHERE
- [ResellerID] = @UserID
- )
-
- SELECT
- *
- FROM
- [BillingCyclesCTE]
- WHERE
- [RowIndex] BETWEEN @StartRowIndex AND @EndIndex;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetBillingCyclesFree]
- @ActorID int,
- @UserID int,
- @CyclesTakenXml ntext
-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
-
- DECLARE @DocID int;
-
- EXEC sp_xml_preparedocument @DocID OUTPUT, @CyclesTakenXml;
-
- SELECT * FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID AND [CycleID] NOT IN (
- SELECT [CycleTakenID] FROM OPENXML(@DocID, '/CyclesTaken/Cycle',1) WITH
- (
- [CycleTakenID] int '@id'
- )
- );
-
- EXEC sp_xml_removedocument @DocID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetBillingCyclesCount]
- @ActorID int,
- @UserID int,
- @Count 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
-
- SELECT @Count = COUNT(*) FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetBillingCycle]
- @ActorID int,
- @UserID int,
- @CycleID 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 * FROM [dbo].[ecBillingCycles] WHERE [ResellerID] = @UserID AND [CycleID] = @CycleID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetPluginProperties]
- @ActorID int,
- @UserID int,
- @PluginID 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
-
- SET NOCOUNT ON;
-
- SELECT [PropertyName], [PropertyValue] FROM [dbo].[ecPluginsProperties]
- WHERE [PluginID] = @PluginID AND [ResellerID] = @UserID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetPaymentProfile]
- @ActorID int,
- @ContractID nvarchar(50)
-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;
- --
- SELECT * FROM [dbo].[ecPaymentProfiles] WHERE [ContractID] = @ContractID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetPaymentMethod]
- @ActorID int,
- @UserID int,
- @MethodName nvarchar(50)
-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;
-
- SELECT * FROM [dbo].[ecPaymentMethods]
- WHERE [MethodName] = @MethodName AND [ResellerID] = @UserID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetInvoicesItemsToActivate]
- @ActorID int,
- @ResellerID int
-AS
-BEGIN
-
- IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 0
- BEGIN
- RAISERROR('You are not allowed to access this information', 16, 1);
- RETURN;
- END
-
- SET NOCOUNT ON;
-
- -- lookup for paid invoices
- WITH [PAID_INVOICES] ([InvoiceID]) AS
- (
- SELECT
- [InvoiceID] FROM [dbo].[ecCustomersPayments] AS [CP]
- INNER JOIN
- [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID]
- WHERE
- [C].[ResellerID] = @ResellerID AND [StatusID] = 1 -- Approved Payments Only
- )
- SELECT
- * FROM [dbo].[ecInvoiceItems]
- WHERE
- [ServiceID] IS NOT NULL AND [Processed] = 0 AND [InvoiceID] IN (SELECT [InvoiceID] FROM [PAID_INVOICES]);
-
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetInvoicesItemsOverdue]
- @ActorID int,
- @ResellerID int,
- @DateOverdue datetime
-AS
-BEGIN
- -- check user parent
- IF [dbo].[CheckUserParent](@ActorID, @ResellerID) = 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;
-
- -- lookup for paid invoices
- WITH [OVERDUE_INVOICES] ([InvoiceID]) AS
- (
- SELECT
- [I].[InvoiceID]
- FROM
- [dbo].[ecInvoice] AS [I]
- INNER JOIN
- [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [I].[ContractID]
- WHERE
- [C].[ResellerID] = @ResellerID
- AND
- DATEDIFF(second, [DueDate], @DateOverdue) >= 0
- EXCEPT
- SELECT
- [InvoiceID]
- FROM
- [dbo].[ecCustomersPayments] AS [CP]
- INNER JOIN
- [dbo].[ecContracts] AS [C] ON [C].[ContractID] = [CP].[ContractID]
- WHERE
- [C].[ResellerID] = @ResellerID
- AND
- [CP].[StatusID] = 1 -- Approved payments only
- )
- SELECT * FROM [dbo].[ecInvoiceItems]
- WHERE [ServiceID] IS NOT NULL
- AND [InvoiceID] IN (
- SELECT [InvoiceID] FROM [OVERDUE_INVOICES]
- );
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetProductsPagedByType]
- @ActorID int,
- @UserID int,
- @TypeID int,
- @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 account', 16, 1);
- RETURN;
- END
-
- DECLARE @EndIndex int;
-
- SET @EndIndex = @MaximumRows + @StartRowIndex;
- SET @StartRowIndex = @StartRowIndex + 1;
-
- WITH [ProductsCTE] AS (
- SELECT
- ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
- *
- FROM
- [dbo].[ecProduct]
- WHERE
- [ResellerID] = @UserID
- AND
- [TypeID] = @TypeID
- )
-
- SELECT * FROM [ProductsCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetProductsCountByType]
- @ActorID int,
- @UserID int,
- @TypeID int,
- @Count 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
-
- SELECT @Count = COUNT(*) FROM [dbo].[ecProduct] WHERE [TypeID] = @TypeID AND [ResellerID] = @UserID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetProductsByType]
- @UserID int,
- @TypeID int
-AS
-BEGIN
-
- SELECT * FROM [dbo].[ecProduct] WHERE [ResellerID] = @UserID AND [TypeID] = @TypeID ORDER BY [ProductName];
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetResellerPMPlugin]
- @ResellerID int,
- @MethodName nvarchar(50)
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SELECT
- [SP].*
- FROM
- [dbo].[ecPaymentMethods] AS [PM]
- INNER JOIN
- [dbo].[ecSupportedPlugins] AS [SP]
- ON
- [SP].[PluginID] = [PM].[PluginID]
- WHERE
- [PM].[MethodName] = @MethodName
- AND
- [PM].[ResellerID] = @ResellerID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetResellerPaymentMethods]
- @ResellerID int
-AS
-BEGIN
-
- SELECT * FROM [dbo].[ecPaymentMethods]
- WHERE [ResellerID] = @ResellerID;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetResellerPaymentMethod]
- @ResellerID int,
- @MethodName nvarchar(50)
-AS
-BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- SELECT
- [PM].[ResellerID],
- [PM].[MethodName],
- [PM].[DisplayName],
- [PM].[SupportedItems],
- [SP].[Interactive]
- FROM
- [dbo].[ecPaymentMethods] AS [PM]
- INNER JOIN
- [dbo].[ecSupportedPlugins] AS [SP]
- ON
- [SP].[PluginID] = [PM].[PluginID]
- WHERE
- [PM].[ResellerID] = @ResellerID
- AND
- [PM].[MethodName] = @MethodName;
-
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetCategoriesPaged]
- @ActorID int,
- @UserID int,
- @ParentID int,
- @MaximumRows int,
- @StartRowIndex int
-AS
- -- check actor user rights
- IF [dbo].[CheckUserParent](@ActorID, @UserID) = 0
- BEGIN
- RAISERROR('You are not allowed to access this account', 16, 1);
- RETURN;
- END
-
- DECLARE @EndIndex int;
-
- SET @EndIndex = @MaximumRows + @StartRowIndex;
- SET @StartRowIndex = @StartRowIndex + 1;
-
- IF @ParentID > 0
- BEGIN
- WITH [CategoryCTE] AS (
- SELECT
- ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
- *
- FROM
- [dbo].[ecCategory]
- WHERE
- [ParentID] = @ParentID
- AND
- [ResellerID] = @UserID
- )
-
- SELECT * FROM [CategoryCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [CategoryName];
- END
- ELSE
- BEGIN
- WITH [CategoryCTE] AS (
- SELECT
- ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
- *
- FROM
- [dbo].[ecCategory]
- WHERE
- [ParentID] IS NULL
- AND
- [ResellerID] = @UserID
- )
-
- SELECT * FROM [CategoryCTE] WHERE [RowIndex] BETWEEN @StartRowIndex AND @EndIndex ORDER BY [CategoryID], [CategoryName];
- END
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[ecGetServiceItemType]
- @ServiceID int
-AS
-BEGIN
-
- SELECT
- [PT].* FROM [dbo].[ecProductType] AS [PT]
- INNER JOIN
- [dbo].[ecService] AS [S] ON [PT].[TypeID] = [S].[TypeID]
- WHERE
- [S].[ServiceID] = @ServiceID;
-
-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].[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 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].[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].[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 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
@@ -34981,717 +36031,6 @@ RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 [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 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 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 = 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -35894,6 +36233,2578 @@ RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE DeleteService
+(
+ @ServiceID int,
+ @Result int OUTPUT
+)
+AS
+
+SET @Result = 0
+
+-- check related service items
+IF EXISTS (SELECT ItemID FROM ServiceItems WHERE ServiceID = @ServiceID)
+BEGIN
+ SET @Result = -1
+ RETURN
+END
+
+IF EXISTS (SELECT ServiceID FROM VirtualServices WHERE ServiceID = @ServiceID)
+BEGIN
+ SET @Result = -2
+ RETURN
+END
+
+BEGIN TRAN
+-- delete global DNS records
+DELETE FROM GlobalDnsRecords
+WHERE ServiceID = @ServiceID
+
+-- delete service
+DELETE FROM Services
+WHERE ServiceID = @ServiceID
+
+COMMIT TRAN
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE DeleteServer
+(
+ @ServerID int,
+ @Result int OUTPUT
+)
+AS
+SET @Result = 0
+
+-- check related services
+IF EXISTS (SELECT ServiceID FROM Services WHERE ServerID = @ServerID)
+BEGIN
+ SET @Result = -1
+ RETURN
+END
+
+-- check related packages
+IF EXISTS (SELECT PackageID FROM Packages WHERE ServerID = @ServerID)
+BEGIN
+ SET @Result = -2
+ RETURN
+END
+
+-- check related hosting plans
+IF EXISTS (SELECT PlanID FROM HostingPlans WHERE ServerID = @ServerID)
+BEGIN
+ SET @Result = -3
+ RETURN
+END
+
+BEGIN TRAN
+
+-- delete IP addresses
+DELETE FROM IPAddresses
+WHERE ServerID = @ServerID
+
+-- delete global DNS records
+DELETE FROM GlobalDnsRecords
+WHERE ServerID = @ServerID
+
+-- delete server
+DELETE FROM Servers
+WHERE ServerID = @ServerID
+
+-- delete virtual services if any
+DELETE FROM VirtualServices
+WHERE ServerID = @ServerID
+COMMIT TRAN
+
+RETURN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GO
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CREATE PROCEDURE [dbo].[GetIPAddress]
+(
+ @AddressID int
+)
+AS
+BEGIN
+
+ -- select
+ SELECT
+ AddressID,
+ ServerID,
+ ExternalIP,
+ InternalIP,
+ PoolID,
+ SubnetMask,
+ DefaultGateway,
+ Comments
+ FROM IPAddresses
+ WHERE
+ AddressID = @AddressID
+
+ RETURN
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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;
+ 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]
+ @ActorID int,
+ @UserID int,
+ @MaximumRows int,
+ @StartRowIndex int
+AS
+BEGIN
+
+ DECLARE @EndIndex int;
+
+ SET @EndIndex = @MaximumRows + @StartRowIndex;
+ SET @StartRowIndex = @StartRowIndex + 1;
+
+ WITH [TldsCTE] AS (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
+ *
+ FROM
+ [dbo].[ecProduct]
+ WHERE
+ [ResellerID] = @UserID
+ AND
+ [TypeID] = 3 -- Top Level Domain
+ )
+
+ 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]
+ 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,
+ @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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -36077,6 +38988,7 @@ RETURN
+
GO
@@ -36098,32 +39010,2076 @@ GO
-CREATE PROCEDURE [dbo].[GetIPAddress]
+CREATE PROCEDURE [dbo].[UpdateIPAddresses]
(
- @AddressID int
+ @xml ntext,
+ @PoolID int,
+ @ServerID int,
+ @SubnetMask varchar(15),
+ @DefaultGateway varchar(15),
+ @Comments ntext
)
AS
BEGIN
+ SET NOCOUNT ON;
- -- select
- SELECT
- AddressID,
- ServerID,
- ExternalIP,
- InternalIP,
- PoolID,
- SubnetMask,
- DefaultGateway,
- Comments
- FROM IPAddresses
- WHERE
- AddressID = @AddressID
+ IF @ServerID = 0
+ SET @ServerID = NULL
- RETURN
+ 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
+ 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
+ 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]
+ 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 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -36278,6 +41234,7 @@ END
+
GO
@@ -36459,6 +41416,7 @@ END
+
GO
@@ -36584,6 +41542,7 @@ END
+
GO
@@ -36706,354 +41665,6 @@ END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER OFF
-GO
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[GetUnallottedIPAddresses]
- @PackageID int,
- @ServiceID int,
- @PoolID int = 0
-AS
-BEGIN
-
- DECLARE @ParentPackageID int
- DECLARE @ServerID int
-
- SELECT
- @ParentPackageID = ParentPackageID,
- @ServerID = ServerID
- FROM Packages
- WHERE PackageID = @PackageId
-
- IF (@ParentPackageID = 1 OR @PoolID = 4 /* management network */) -- "System" space
- BEGIN
- -- check if server is physical
- IF EXISTS(SELECT * FROM Servers WHERE ServerID = @ServerID AND VirtualServer = 0)
- BEGIN
- -- physical server
- SELECT
- IP.AddressID,
- IP.ExternalIP,
- IP.InternalIP,
- IP.ServerID,
- IP.PoolID,
- IP.SubnetMask,
- IP.DefaultGateway
- FROM dbo.IPAddresses AS IP
- WHERE
- IP.ServerID = @ServerID
- AND IP.AddressID NOT IN (SELECT PIP.AddressID FROM dbo.PackageIPAddresses AS PIP)
- AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
- ORDER BY IP.DefaultGateway, IP.ExternalIP
- END
- ELSE
- BEGIN
- -- virtual server
- -- get resource group by service
- DECLARE @GroupID int
- SELECT @GroupID = P.GroupID FROM Services AS S
- INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID
- WHERE S.ServiceID = @ServiceID
-
- SELECT
- IP.AddressID,
- IP.ExternalIP,
- IP.InternalIP,
- IP.ServerID,
- IP.PoolID,
- IP.SubnetMask,
- IP.DefaultGateway
- FROM dbo.IPAddresses AS IP
- WHERE
- IP.ServerID IN (
- SELECT SVC.ServerID FROM VirtualServices AS VS
- INNER JOIN Services AS SVC ON VS.ServiceID = SVC.ServiceID
- INNER JOIN Providers AS P ON SVC.ProviderID = P.ProviderID
- WHERE VS.ServerID = @ServerID AND P.GroupID = @GroupID
- )
- AND IP.AddressID NOT IN (SELECT PIP.AddressID FROM dbo.PackageIPAddresses AS PIP)
- AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
- ORDER BY IP.DefaultGateway, IP.ExternalIP
- END
- END
- ELSE -- 2rd level space and below
- BEGIN
- -- get service location
- SELECT @ServerID = S.ServerID FROM Services AS S
- WHERE S.ServiceID = @ServiceID
-
- SELECT
- IP.AddressID,
- IP.ExternalIP,
- IP.InternalIP,
- IP.ServerID,
- IP.PoolID,
- IP.SubnetMask,
- IP.DefaultGateway
- FROM dbo.PackageIPAddresses AS PIP
- INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
- WHERE
- PIP.PackageID = @ParentPackageID
- AND PIP.ItemID IS NULL
- AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
- AND IP.ServerID = @ServerID
- ORDER BY IP.DefaultGateway, IP.ExternalIP
- END
-END
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE DeleteService
-(
- @ServiceID int,
- @Result int OUTPUT
-)
-AS
-
-SET @Result = 0
-
--- check related service items
-IF EXISTS (SELECT ItemID FROM ServiceItems WHERE ServiceID = @ServiceID)
-BEGIN
- SET @Result = -1
- RETURN
-END
-
-IF EXISTS (SELECT ServiceID FROM VirtualServices WHERE ServiceID = @ServiceID)
-BEGIN
- SET @Result = -2
- RETURN
-END
-
-BEGIN TRAN
--- delete global DNS records
-DELETE FROM GlobalDnsRecords
-WHERE ServiceID = @ServiceID
-
--- delete service
-DELETE FROM Services
-WHERE ServiceID = @ServiceID
-
-COMMIT TRAN
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE DeleteServer
-(
- @ServerID int,
- @Result int OUTPUT
-)
-AS
-SET @Result = 0
-
--- check related services
-IF EXISTS (SELECT ServiceID FROM Services WHERE ServerID = @ServerID)
-BEGIN
- SET @Result = -1
- RETURN
-END
-
--- check related packages
-IF EXISTS (SELECT PackageID FROM Packages WHERE ServerID = @ServerID)
-BEGIN
- SET @Result = -2
- RETURN
-END
-
--- check related hosting plans
-IF EXISTS (SELECT PlanID FROM HostingPlans WHERE ServerID = @ServerID)
-BEGIN
- SET @Result = -3
- RETURN
-END
-
-BEGIN TRAN
-
--- delete IP addresses
-DELETE FROM IPAddresses
-WHERE ServerID = @ServerID
-
--- delete global DNS records
-DELETE FROM GlobalDnsRecords
-WHERE ServerID = @ServerID
-
--- delete server
-DELETE FROM Servers
-WHERE ServerID = @ServerID
-
--- delete virtual services if any
-DELETE FROM VirtualServices
-WHERE ServerID = @ServerID
-COMMIT TRAN
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -37164,6 +41775,7 @@ END
+
GO
@@ -37243,6 +41855,7 @@ END
+
GO
@@ -37310,6 +41923,7 @@ END
+
GO
@@ -37399,6 +42013,7 @@ END
+
GO
@@ -37492,6 +42107,7 @@ END
+
GO
@@ -37600,6 +42216,7 @@ END
+
GO
@@ -37701,6 +42318,7 @@ END
+
GO
@@ -37771,3641 +42389,6 @@ 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 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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;
- 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 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;
-
- WITH [TldsCTE] AS (
- SELECT
- ROW_NUMBER() OVER(ORDER BY [Created] DESC) AS [RowIndex],
- *
- FROM
- [dbo].[ecProduct]
- WHERE
- [ResellerID] = @UserID
- AND
- [TypeID] = 3 -- Top Level Domain
- )
-
- 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]
- 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,
- @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
-
- -- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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
- 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]
- )
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -41543,6 +42526,7 @@ END
+
GO
@@ -41720,6 +42704,7 @@ END
+
GO
@@ -41842,6 +42827,7 @@ END
+
GO
SET ANSI_NULLS ON
GO
@@ -41867,626 +42853,103 @@ GO
-CREATE PROCEDURE [dbo].[ecAddHostingPlanSvc]
- @ContractID nvarchar(50),
+CREATE PROCEDURE [dbo].[ecUpdateTopLevelDomain]
+ @ActorID int,
+ @UserID int,
@ProductID int,
- @PlanName nvarchar(255),
- @CycleID int,
- @Currency nvarchar(10),
+ @TopLevelDomain nvarchar(10),
+ @ProductSku nvarchar(50),
+ @TaxInclusive bit,
+ @PluginID int,
+ @Enabled bit,
+ @WhoisEnabled bit,
+ @DomainCyclesXml xml,
@Result int OUTPUT
AS
BEGIN
- DECLARE @ResellerID int;
- SELECT
- @ResellerID = [ResellerID] FROM [dbo].[ecContracts]
+ -- 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
- [ContractID] = @ContractID;
+ [ResellerID] = @UserID
+ AND
+ [ProductID] = @ProductID;
-BEGIN TRAN ADD_HPLAN_SVC
- -- add service
- INSERT INTO [dbo].[ecService]
- ([ContractID], [ServiceName], [TypeID], [Status], [Created])
- VALUES
- (@ContractID, @PlanName, 1, 0, GETDATE());
- -- check error
+ -- 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;
- -- obtain result
- SET @Result = SCOPE_IDENTITY();
+ END
- DECLARE @SvcCycleID int;
- -- insert svc life-cycle
- INSERT INTO [dbo].[ecHostingPackageSvcsCycles]
+/*
+XML Format:
+
+
+
+
+*/
+ -- cleanup cycles
+ DELETE FROM [dbo].[ecTopLevelDomainsCycles] WHERE [ProductID] = @ProductID;
+ -- insert cycles
+ INSERT INTO [dbo].[ecTopLevelDomainsCycles]
(
- [ServiceID],
- [CycleName],
- [BillingPeriod],
- [PeriodLength],
+ [ProductID],
+ [CycleID],
[SetupFee],
[RecurringFee],
- [Currency]
+ [TransferFee],
+ [SortOrder]
)
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
- 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
- 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]
- 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])
+ [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
--
- COMMIT TRAN ADD_ADDON;
+ SET @Result = 0;
+ --
+ COMMIT TRAN UPDATE_DOMAIN;
--
RETURN;
-
ERROR_HANDLE:
BEGIN
SET @Result = -1;
- ROLLBACK TRAN ADD_ADDON;
- RETURN;
+ ROLLBACK TRAN UPDATE_DOMAIN;
+ RETURN;
END
END
@@ -42512,6 +42975,7 @@ END
+
GO
@@ -42663,89 +43127,6 @@ 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -42795,28 +43176,45 @@ GO
-
-
-
-CREATE PROCEDURE UpdateService
+CREATE PROCEDURE GetVirtualServices
(
- @ServiceID int,
- @ServiceName nvarchar(50),
- @Comments ntext,
- @ServiceQuotaValue int,
- @ClusterID int
+ @ActorID int,
+ @ServerID int
)
AS
-IF @ClusterID = 0 SET @ClusterID = NULL
+-- check rights
+DECLARE @IsAdmin bit
+SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID)
-UPDATE Services
-SET
- ServiceName = @ServiceName,
- ServiceQuotaValue = @ServiceQuotaValue,
- Comments = @Comments,
- ClusterID = @ClusterID
-WHERE ServiceID = @ServiceID
+-- virtual groups
+SELECT
+ VRG.VirtualGroupID,
+ RG.GroupID,
+ RG.GroupName,
+ ISNULL(VRG.DistributionType, 1) AS DistributionType,
+ ISNULL(VRG.BindDistributionToPrimary, 1) AS BindDistributionToPrimary
+FROM ResourceGroups AS RG
+LEFT OUTER JOIN VirtualGroups AS VRG ON RG.GroupID = VRG.GroupID AND VRG.ServerID = @ServerID
+WHERE
+ @IsAdmin = 1
+ORDER BY RG.GroupOrder
+
+-- services
+SELECT
+ VS.ServiceID,
+ S.ServiceName,
+ S.Comments,
+ P.GroupID,
+ P.DisplayName,
+ SRV.ServerName
+FROM VirtualServices AS VS
+INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID
+INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID
+INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID
+WHERE
+ VS.ServerID = @ServerID
+ AND @IsAdmin = 1
RETURN
@@ -42854,6 +43252,7 @@ RETURN
+
GO
@@ -42889,11 +43288,7 @@ GO
-
-
-
-
-CREATE PROCEDURE [dbo].[GetAllServers]
+CREATE PROCEDURE [dbo].[GetVirtualServers]
(
@ActorID int
)
@@ -42903,15 +43298,25 @@ AS
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
+ S.Comments,
+ PrimaryGroupID
FROM Servers AS S
-WHERE @IsAdmin = 1
-ORDER BY S.VirtualServer, S.ServerName
+WHERE
+ VirtualServer = 1
+ AND @IsAdmin = 1
+ORDER BY S.ServerName
+
+RETURN
+
+
+
+
@@ -43055,6 +43460,7 @@ RETURN
+
GO
@@ -43148,214 +43554,6 @@ RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE GetVirtualServices
-(
- @ActorID int,
- @ServerID int
-)
-AS
-
--- check rights
-DECLARE @IsAdmin bit
-SET @IsAdmin = dbo.CheckIsUserAdmin(@ActorID)
-
--- virtual groups
-SELECT
- VRG.VirtualGroupID,
- RG.GroupID,
- RG.GroupName,
- ISNULL(VRG.DistributionType, 1) AS DistributionType,
- ISNULL(VRG.BindDistributionToPrimary, 1) AS BindDistributionToPrimary
-FROM ResourceGroups AS RG
-LEFT OUTER JOIN VirtualGroups AS VRG ON RG.GroupID = VRG.GroupID AND VRG.ServerID = @ServerID
-WHERE
- @IsAdmin = 1
-ORDER BY RG.GroupOrder
-
--- services
-SELECT
- VS.ServiceID,
- S.ServiceName,
- S.Comments,
- P.GroupID,
- P.DisplayName,
- SRV.ServerName
-FROM VirtualServices AS VS
-INNER JOIN Services AS S ON VS.ServiceID = S.ServiceID
-INNER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID
-INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID
-WHERE
- VS.ServerID = @ServerID
- AND @IsAdmin = 1
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GO
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE PROCEDURE [dbo].[GetVirtualServers]
-(
- @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,
- PrimaryGroupID
-FROM Servers AS S
-WHERE
- VirtualServer = 1
- AND @IsAdmin = 1
-ORDER BY S.ServerName
-
-RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -43457,6 +43655,7 @@ RETURN
+
GO
@@ -43548,6 +43747,99 @@ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -43671,6 +43963,7 @@ RETURN
+
GO
@@ -43680,30 +43973,6 @@ 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
@@ -43779,6 +44048,28 @@ 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
@@ -43806,6 +44097,58 @@ 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
@@ -43839,27 +44182,6 @@ ON DELETE CASCADE
GO
ALTER TABLE [dbo].[PackageAddons] CHECK CONSTRAINT [FK_PackageAddons_Packages]
GO
-ALTER TABLE [dbo].[HostingPlanQuotas] WITH CHECK ADD CONSTRAINT [FK_HostingPlanQuotas_HostingPlans] FOREIGN KEY([PlanID])
-REFERENCES [dbo].[HostingPlans] ([PlanID])
-ON DELETE CASCADE
-GO
-ALTER TABLE [dbo].[HostingPlanQuotas] CHECK CONSTRAINT [FK_HostingPlanQuotas_HostingPlans]
-GO
-ALTER TABLE [dbo].[HostingPlanQuotas] WITH CHECK ADD CONSTRAINT [FK_HostingPlanQuotas_Quotas] FOREIGN KEY([QuotaID])
-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].[Quotas] WITH CHECK ADD CONSTRAINT [FK_Quotas_ResourceGroups] FOREIGN KEY([GroupID])
REFERENCES [dbo].[ResourceGroups] ([GroupID])
ON DELETE CASCADE
@@ -43877,14 +44199,22 @@ ALTER TABLE [dbo].[Quotas] ADD CONSTRAINT [DF_ResourceGroupQuotas_QuotaTypeID]
GO
ALTER TABLE [dbo].[Quotas] ADD CONSTRAINT [DF_Quotas_ServiceQuota] DEFAULT ((0)) FOR [ServiceQuota]
GO
-ALTER TABLE [dbo].[CRMUsers] WITH CHECK ADD CONSTRAINT [FK_CRMUsers_ExchangeAccounts] FOREIGN KEY([AccountID])
-REFERENCES [dbo].[ExchangeAccounts] ([AccountID])
+ALTER TABLE [dbo].[HostingPlanQuotas] WITH CHECK ADD CONSTRAINT [FK_HostingPlanQuotas_HostingPlans] FOREIGN KEY([PlanID])
+REFERENCES [dbo].[HostingPlans] ([PlanID])
+ON DELETE CASCADE
GO
-ALTER TABLE [dbo].[CRMUsers] CHECK CONSTRAINT [FK_CRMUsers_ExchangeAccounts]
+ALTER TABLE [dbo].[HostingPlanQuotas] CHECK CONSTRAINT [FK_HostingPlanQuotas_HostingPlans]
GO
-ALTER TABLE [dbo].[CRMUsers] ADD CONSTRAINT [DF_Table_1_CreateDate] DEFAULT (getdate()) FOR [CreatedDate]
+ALTER TABLE [dbo].[HostingPlanQuotas] WITH CHECK ADD CONSTRAINT [FK_HostingPlanQuotas_Quotas] FOREIGN KEY([QuotaID])
+REFERENCES [dbo].[Quotas] ([QuotaID])
GO
-ALTER TABLE [dbo].[CRMUsers] ADD CONSTRAINT [DF_CRMUsers_ChangedDate] DEFAULT (getdate()) FOR [ChangedDate]
+ALTER TABLE [dbo].[HostingPlanQuotas] CHECK CONSTRAINT [FK_HostingPlanQuotas_Quotas]
+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].[HostingPlanResources] WITH CHECK ADD CONSTRAINT [FK_HostingPlanResources_HostingPlans] FOREIGN KEY([PlanID])
REFERENCES [dbo].[HostingPlans] ([PlanID])
@@ -43917,55 +44247,14 @@ REFERENCES [dbo].[ResourceGroups] ([GroupID])
GO
ALTER TABLE [dbo].[PackagesBandwidth] CHECK CONSTRAINT [FK_PackagesBandwidth_ResourceGroups]
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].[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].[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].[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]
+ALTER TABLE [dbo].[ecBillingCycles] ADD CONSTRAINT [DF_ecBillingCycles_Created] DEFAULT (getdate()) FOR [Created]
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].[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].[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])
GO
@@ -43977,11 +44266,13 @@ 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]
+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]
+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]
GO
@@ -43997,7 +44288,45 @@ ALTER TABLE [dbo].[ecInvoice] ADD CONSTRAINT [DF__ecInvoice__Taxat__4119A21D]
GO
ALTER TABLE [dbo].[ecSystemTriggers] ADD CONSTRAINT [DF_ecSystemTriggers_TriggerID] DEFAULT (newid()) FOR [TriggerID]
GO
-ALTER TABLE [dbo].[ecPaymentProfiles] ADD CONSTRAINT [DF_ecPaymentProfiles_Created] DEFAULT (getdate()) FOR [Created]
+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
+ALTER TABLE [dbo].[ScheduleTaskParameters] CHECK CONSTRAINT [FK_ScheduleTaskParameters_ScheduleTasks]
+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])
+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])
@@ -44010,20 +44339,33 @@ ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_Import
GO
ALTER TABLE [dbo].[ServiceItemTypes] ADD CONSTRAINT [DF_ServiceItemTypes_Backup] DEFAULT ((1)) FOR [Backupable]
GO
-ALTER TABLE [dbo].[ScheduleTaskParameters] WITH CHECK ADD CONSTRAINT [FK_ScheduleTaskParameters_ScheduleTasks] FOREIGN KEY([TaskID])
-REFERENCES [dbo].[ScheduleTasks] ([TaskID])
-GO
-ALTER TABLE [dbo].[ScheduleTaskParameters] CHECK CONSTRAINT [FK_ScheduleTaskParameters_ScheduleTasks]
-GO
-ALTER TABLE [dbo].[ScheduleTaskParameters] ADD CONSTRAINT [DF_ScheduleTaskParameters_ParameterOrder] DEFAULT ((0)) FOR [ParameterOrder]
-GO
-ALTER TABLE [dbo].[ResourceGroupDnsRecords] WITH CHECK ADD CONSTRAINT [FK_ResourceGroupDnsRecords_ResourceGroups] FOREIGN KEY([GroupID])
-REFERENCES [dbo].[ResourceGroups] ([GroupID])
+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].[ResourceGroupDnsRecords] CHECK CONSTRAINT [FK_ResourceGroupDnsRecords_ResourceGroups]
+ALTER TABLE [dbo].[UserSettings] CHECK CONSTRAINT [FK_UserSettings_Users]
GO
-ALTER TABLE [dbo].[ResourceGroupDnsRecords] ADD CONSTRAINT [DF_ResourceGroupDnsRecords_RecordOrder] DEFAULT ((1)) FOR [RecordOrder]
+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].[ecInvoiceItems] WITH CHECK ADD CONSTRAINT [FK_ecInvoiceItems_ecInvoice] FOREIGN KEY([InvoiceID])
REFERENCES [dbo].[ecInvoice] ([InvoiceID])
@@ -44055,36 +44397,6 @@ 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
@@ -44097,22 +44409,6 @@ ON DELETE CASCADE
GO
ALTER TABLE [dbo].[PackageServices] CHECK CONSTRAINT [FK_PackageServices_Services]
GO
-ALTER TABLE [dbo].[Servers] WITH CHECK ADD CONSTRAINT [FK_Servers_ResourceGroups] FOREIGN KEY([PrimaryGroupID])
-REFERENCES [dbo].[ResourceGroups] ([GroupID])
-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].[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].[ecProduct] WITH CHECK ADD CONSTRAINT [FK_ecProduct_ecProductType] FOREIGN KEY([TypeID])
REFERENCES [dbo].[ecProductType] ([TypeID])
GO
@@ -44120,16 +44416,24 @@ 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])
+ALTER TABLE [dbo].[ResourceGroupDnsRecords] WITH CHECK ADD CONSTRAINT [FK_ResourceGroupDnsRecords_ResourceGroups] FOREIGN KEY([GroupID])
+REFERENCES [dbo].[ResourceGroups] ([GroupID])
ON DELETE CASCADE
GO
-ALTER TABLE [dbo].[UserSettings] CHECK CONSTRAINT [FK_UserSettings_Users]
+ALTER TABLE [dbo].[ResourceGroupDnsRecords] CHECK CONSTRAINT [FK_ResourceGroupDnsRecords_ResourceGroups]
GO
-ALTER TABLE [dbo].[ScheduleTaskViewConfiguration] WITH CHECK ADD CONSTRAINT [FK_ScheduleTaskViewConfiguration_ScheduleTaskViewConfiguration] FOREIGN KEY([TaskID])
-REFERENCES [dbo].[ScheduleTasks] ([TaskID])
+ALTER TABLE [dbo].[ResourceGroupDnsRecords] ADD CONSTRAINT [DF_ResourceGroupDnsRecords_RecordOrder] DEFAULT ((1)) FOR [RecordOrder]
GO
-ALTER TABLE [dbo].[ScheduleTaskViewConfiguration] CHECK CONSTRAINT [FK_ScheduleTaskViewConfiguration_ScheduleTaskViewConfiguration]
+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].[Services] WITH CHECK ADD CONSTRAINT [FK_Services_Clusters] FOREIGN KEY([ClusterID])
REFERENCES [dbo].[Clusters] ([ClusterID])
@@ -44146,16 +44450,11 @@ REFERENCES [dbo].[Servers] ([ServerID])
GO
ALTER TABLE [dbo].[Services] CHECK CONSTRAINT [FK_Services_Servers]
GO
-ALTER TABLE [dbo].[VirtualServices] WITH CHECK ADD CONSTRAINT [FK_VirtualServices_Servers] FOREIGN KEY([ServerID])
+ALTER TABLE [dbo].[IPAddresses] WITH CHECK ADD CONSTRAINT [FK_IPAddresses_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]
+ALTER TABLE [dbo].[IPAddresses] CHECK CONSTRAINT [FK_IPAddresses_Servers]
GO
ALTER TABLE [dbo].[VirtualGroups] WITH CHECK ADD CONSTRAINT [FK_VirtualGroups_ResourceGroups] FOREIGN KEY([GroupID])
REFERENCES [dbo].[ResourceGroups] ([GroupID])
@@ -44168,41 +44467,6 @@ ON DELETE CASCADE
GO
ALTER TABLE [dbo].[VirtualGroups] CHECK CONSTRAINT [FK_VirtualGroups_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].[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].[IPAddresses] WITH CHECK ADD CONSTRAINT [FK_IPAddresses_Servers] FOREIGN KEY([ServerID])
-REFERENCES [dbo].[Servers] ([ServerID])
-ON DELETE CASCADE
-GO
-ALTER TABLE [dbo].[IPAddresses] CHECK CONSTRAINT [FK_IPAddresses_Servers]
-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].[ecHostingPlansBillingCycles] WITH CHECK ADD CONSTRAINT [FK_ecHostingPlansBillingCycles_ecBillingCycles] FOREIGN KEY([CycleID])
REFERENCES [dbo].[ecBillingCycles] ([CycleID])
ON DELETE CASCADE
@@ -44225,30 +44489,6 @@ ON DELETE CASCADE
GO
ALTER TABLE [dbo].[ecHostingPlans] CHECK CONSTRAINT [FK_ecHostingPlans_ecProduct]
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].[ecTopLevelDomainsCycles] WITH CHECK ADD CONSTRAINT [FK_ecTopLevelDomainsCycles_ecProduct] FOREIGN KEY([ProductID])
REFERENCES [dbo].[ecProduct] ([ProductID])
ON DELETE CASCADE
@@ -44297,6 +44537,59 @@ 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 1c9222fd..1aab0f99 100644
--- a/WebsitePanel/Database/update_db.sql
+++ b/WebsitePanel/Database/update_db.sql
@@ -12,1336 +12,3 @@ BEGIN
END
GO
--- Helicon APE's quota
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'Web.Htaccess')
-BEGIN
- INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (344, 2, 9, N'Web.Htaccess', N'htaccess', 1, 0, NULL)
-END
-GO
-
--- Change quota order for MySQL 4 Quotas
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [GroupID] = 6 And [QuotaOrder] = 4)
-BEGIN
- UPDATE [dbo].[Quotas] SET [QuotaOrder] = 4 WHERE [GroupID] = 6 And [QuotaOrder] = 3
-END
-GO
--- Check for new MySQL 4 quota (MaxDatabaseSize)
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'MySQL4.MaxDatabaseSize')
-BEGIN
- -- Add new MySQL 4 quotas if not exists
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (103, 6, 3, N'MySQL4.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL)
-END
-GO
--- Check for new MySQL 4 quota (Restore)
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'MySQL4.Restore')
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (104, 6, 5, N'MySQL4.Restore', N'Database Restores', 1, 0, NULL)
-END
-GO
--- Check for new MySQL 4 quota (Truncate)
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'MySQL4.Truncate')
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (105, 6, 6, N'MySQL4.Truncate', N'Database Truncate', 1, 0, NULL)
-END
-GO
-
--- Change quota order for MySQL 5 Quotas
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [GroupID] = 11 And [QuotaOrder] = 4)
-BEGIN
- UPDATE [dbo].[Quotas] SET [QuotaOrder] = 4 WHERE [GroupID] = 11 And [QuotaOrder] = 3
-END
-GO
--- Add new MySQL 5 quota if not exists (MaxDatabaseSize)
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'MySQL5.MaxDatabaseSize')
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (106, 11, 3, N'MySQL5.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL)
-END
-GO
--- Add new MySQL 5 quota if not exists (Restore)
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'MySQL5.Restore')
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (107, 11, 5, N'MySQL5.Restore', N'Database Restores', 1, 0, NULL)
-END
-GO
--- Add new MySQL 5 quota if not exists (Truncate)
-IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'MySQL5.Truncate')
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (108, 11, 6, N'MySQL5.Truncate', N'Database Truncate', 1, 0, NULL)
-END
-GO
-
--- Notify Overused Databases Scheduled Task
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasks] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES')
-BEGIN
- INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WebsitePanel.EnterpriseServer.NotifyOverusedDatabasesTask, WebsitePanel.EnterpriseServer', 2)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskViewConfiguration] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ConfigurationID] = N'ASP_NET')
-BEGIN
- 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')
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'MSSQL_OVERUSED')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'MSSQL_OVERUSED', N'Boolean', N'true', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'MYSQL_OVERUSED')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'MYSQL_OVERUSED', N'Boolean', N'true', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'SEND_WARNING_EMAIL')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'SEND_WARNING_EMAIL', N'Boolean', N'true', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'SEND_OVERUSED_EMAIL')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'SEND_OVERUSED_EMAIL', N'Boolean', N'true', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'OVERUSED_MAIL_BCC')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_BCC', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'OVERUSED_MAIL_BODY')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_BODY', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'OVERUSED_MAIL_FROM')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_FROM', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'OVERUSED_MAIL_SUBJECT')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_MAIL_SUBJECT', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'OVERUSED_USAGE_THRESHOLD')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'OVERUSED_USAGE_THRESHOLD', N'String', N'100', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'WARNING_MAIL_BCC')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_BCC', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'WARNING_MAIL_BODY')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_BODY', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'WARNING_MAIL_FROM')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_FROM', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'WARNING_MAIL_SUBJECT')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_MAIL_SUBJECT', N'String', N'', 1)
-END
-GO
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES' AND [ParameterID] = N'WARNING_USAGE_THRESHOLD')
-BEGIN
- INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_NOTIFY_OVERUSED_DATABASES', N'WARNING_USAGE_THRESHOLD', N'String', N'80', 1)
-END
-GO
-
--- Fix resource groups order
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'OS' AND [GroupOrder] = 1)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 1 WHERE [GroupName] = N'OS'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Web' AND [GroupOrder] = 2)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 2 WHERE [GroupName] = N'Web'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'FTP' AND [GroupOrder] = 3)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 3 WHERE [GroupName] = N'FTP'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Mail' AND [GroupOrder] = 4)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 4 WHERE [GroupName] = N'Mail'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Exchange' AND [GroupOrder] = 5)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 5 WHERE [GroupName] = N'Exchange'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Hosted Organizations' AND [GroupOrder] = 6)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 6 WHERE [GroupName] = N'Hosted Organizations'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'ExchangeHostedEdition' AND [GroupOrder] = 7)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 7 WHERE [GroupName] = N'ExchangeHostedEdition'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'MsSQL2000' AND [GroupOrder] = 8)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 8 WHERE [GroupName] = N'MsSQL2000'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'MsSQL2005' AND [GroupOrder] = 9)
-BEGIN
-UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 9 WHERE [GroupName] = N'MsSQL2005'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'MsSQL2008' AND [GroupOrder] = 10)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 10 WHERE [GroupName] = N'MsSQL2008'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'MySQL4' AND [GroupOrder] = 11)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 11 WHERE [GroupName] = N'MySQL4'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'MySQL5' AND [GroupOrder] = 12)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 12 WHERE [GroupName] = N'MySQL5'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'SharePoint' AND [GroupOrder] = 13)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 13 WHERE [GroupName] = N'SharePoint'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Hosted SharePoint' AND [GroupOrder] = 14)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 14 WHERE [GroupName] = N'Hosted SharePoint'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Hosted CRM' AND [GroupOrder] = 15)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 15 WHERE [GroupName] = N'Hosted CRM'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'DNS' AND [GroupOrder] = 16)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 16 WHERE [GroupName] = N'DNS'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'Statistics' AND [GroupOrder] = 17)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 17 WHERE [GroupName] = N'Statistics'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'VPS' AND [GroupOrder] = 18)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 18 WHERE [GroupName] = N'VPS'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'BlackBerry' AND [GroupOrder] = 19)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 19 WHERE [GroupName] = N'BlackBerry'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'OCS' AND [GroupOrder] = 20)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 20 WHERE [GroupName] = N'OCS'
-END
-GO
-
--- Update resource groups ordering info
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'BlackBerry' AND [GroupOrder] = 20)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 20 WHERE [GroupName] = N'BlackBerry'
-END
-GO
-
--- Update resource groups ordering info
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'OCS' AND [GroupOrder] = 21)
-BEGIN
- UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 21 WHERE [GroupName] = N'OCS'
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = N'VPSForPC' AND [GroupID] = 40)
-BEGIN
- INSERT INTO [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (40, N'VPSForPC', 19, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = N'HyperVForPC' AND [ProviderID] = 400)
-BEGIN
- INSERT INTO [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)
-END
-GO
-
--- Add VMInfo service item type
-IF NOT EXISTS(SELECT * FROM [dbo].[ServiceItemTypes] WHERE [DisplayName] = N'VMInfo' AND [ItemTypeID] = 35)
-BEGIN
- INSERT INTO [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)
-END
-GO
-
--- Add VirtualSwitch service item type
-IF NOT EXISTS(SELECT * FROM [dbo].[ServiceItemTypes] WHERE [DisplayName] = N'VirtualSwitch' AND [ItemTypeID] = 36)
-BEGIN
- INSERT INTO [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)
-END
-GO
-
--- Add hosting plan quotas
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.ServersNumber' AND [QuotaID] = 345)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (345, 40, 1, N'VPSForPC.ServersNumber', N'Number of VPS', 2, 0, 35)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.ManagingAllowed' AND [QuotaID] = 346)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (346, 40, 2, N'VPSForPC.ManagingAllowed', N'Allow user to create VPS', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.CpuNumber' AND [QuotaID] = 347)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (347, 40, 3, N'VPSForPC.CpuNumber', N'Number of CPU cores', 3, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.BootCdAllowed' AND [QuotaID] = 348)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (348, 40, 7, N'VPSForPC.BootCdAllowed', N'Boot from CD allowed', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.BootCdEnabled' AND [QuotaID] = 349)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (349, 40, 7, N'VPSForPC.BootCdEnabled', N'Boot from CD', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.Ram' AND [QuotaID] = 350)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (350, 40, 4, N'VPSForPC.Ram', N'RAM size, MB', 2, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.Hdd' AND [QuotaID] = 351)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (351, 40, 5, N'VPSForPC.Hdd', N'Hard Drive size, GB', 2, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.DvdEnabled' AND [QuotaID] = 352)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (352, 40, 6, N'VPSForPC.DvdEnabled', N'DVD drive', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.ExternalNetworkEnabled' AND [QuotaID] = 353)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (353, 40, 10, N'VPSForPC.ExternalNetworkEnabled', N'External Network', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.ExternalIPAddressesNumber' AND [QuotaID] = 354)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (354, 40, 11, N'VPSForPC.ExternalIPAddressesNumber', N'Number of External IP addresses', 2, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.PrivateNetworkEnabled' AND [QuotaID] = 355)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (355, 40, 13, N'VPSForPC.PrivateNetworkEnabled', N'Private Network', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.PrivateIPAddressesNumber' AND [QuotaID] = 356)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (356, 40, 14, N'VPSForPC.PrivateIPAddressesNumber', N'Number of Private IP addresses per VPS', 3, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.SnapshotsNumber' AND [QuotaID] = 357)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (357, 40, 9, N'VPSForPC.SnapshotsNumber', N'Number of Snaphots', 3, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.StartShutdownAllowed' AND [QuotaID] = 358)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (358, 40, 15, N'VPSForPC.StartShutdownAllowed', N'Allow user to Start, Turn off and Shutdown VPS', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.PauseResumeAllowed' AND [QuotaID] = 359)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (359, 40, 16, N'VPSForPC.PauseResumeAllowed', N'Allow user to Pause, Resume VPS', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.RebootAllowed' AND [QuotaID] = 360)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (360, 40, 17, N'VPSForPC.RebootAllowed', N'Allow user to Reboot VPS', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.ResetAlowed' AND [QuotaID] = 361)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (361, 40, 18, N'VPSForPC.ResetAlowed', N'Allow user to Reset VPS', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.ReinstallAllowed' AND [QuotaID] = 362)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (362, 40, 19, N'VPSForPC.ReinstallAllowed', N'Allow user to Re-install VPS', 1, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = N'VPSForPC.Bandwidth' AND [QuotaID] = 363)
-BEGIN
- INSERT INTO [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (363, 40, 12, N'VPSForPC.Bandwidth', N'Monthly bandwidth, GB', 2, 0, NULL)
-END
-GO
-
-IF NOT EXISTS(SELECT * FROM sys.columns WHERE [Name] = N'AdditionalParams' and Object_ID = Object_ID(N'Users'))
-BEGIN
- ALTER TABLE [dbo].[Users] ADD [AdditionalParams] [nvarchar] (max) COLLATE Latin1_General_CI_AS NULL
-END
-GO
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetVirtualMachinesPagedForPC]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetVirtualMachinesPagedForPC]
-END
-GO
-
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-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
-
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetUserByUsername]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetUserByUsername]
-END
-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
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetUserById]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetUserById]
-END
-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
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateUser]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[UpdateUser]
-END
-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
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetUserByIdInternally]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetUserByIdInternally]
-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
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetUserByUsernameInternally]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetUserByUsernameInternally]
-END
-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
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CalculateQuotaUsage]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
-BEGIN
- DROP FUNCTION [dbo].[CalculateQuotaUsage]
-END
-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 = 349 -- 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 = 'RamSize' AND PT.ParentPackageID = @PackageID)
- ELSE IF @QuotaID = 350 -- 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 = 352 -- 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
-
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetVirtualMachinesPagedForPC]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetVirtualMachinesPagedForPC]
-END
-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
-
-IF EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName] = N'WebPolicy' AND [PropertyName] = N'PublishingProfile')
-BEGIN
- DELETE FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName] = N'WebPolicy' AND [PropertyName] = N'PublishingProfile'
-END
-GO
-
-INSERT INTO [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES(1, N'WebPolicy', N'PublishingProfile', N'
-
-
- SQLServerDBConnectionString="server=#MsSqlServerExternalAddress#;database=#MsSqlDatabase.Name#;uid=#MsSqlUser.Name#;pwd=#MsSqlUser.Password#"
- mySQLDBConnectionString="server=#MySqlAddress#;database=#MySqlDatabase.Name#;uid=#MySqlUser.Name#;pwd=#MySqlUser.Password#"
- hostingProviderForumLink="http://support.acmehosting.com/"
- controlPanelLink="http://cp.acmehosting.com/"
- />
-
-
- SQLServerDBConnectionString="server=#MsSqlServerExternalAddress#;database=#MsSqlDatabase.Name#;uid=#MsSqlUser.Name#;pwd=#MsSqlUser.Password#"
- mySQLDBConnectionString="server=#MySqlAddress#;database=#MySqlDatabase.Name#;uid=#MySqlUser.Name#;pwd=#MySqlUser.Password#"
- hostingProviderForumLink="http://support.acmehosting.com/"
- controlPanelLink="http://cp.acmehosting.com/"
- />
-
-
-
-')
-GO
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CalculateQuotaUsage]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
-BEGIN
- DROP FUNCTION [dbo].[CalculateQuotaUsage]
-END
-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
-
-IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetUnallottedIPAddresses]') AND type in (N'P', N'PC'))
-BEGIN
- DROP PROCEDURE [dbo].[GetUnallottedIPAddresses]
-END
-GO
-
-SET ANSI_NULLS ON
-GO
-
-SET QUOTED_IDENTIFIER OFF
-GO
-
-CREATE PROCEDURE [dbo].[GetUnallottedIPAddresses]
- @PackageID int,
- @ServiceID int,
- @PoolID int = 0
-AS
-BEGIN
-
- DECLARE @ParentPackageID int
- DECLARE @ServerID int
-
- SELECT
- @ParentPackageID = ParentPackageID,
- @ServerID = ServerID
- FROM Packages
- WHERE PackageID = @PackageId
-
- IF (@ParentPackageID = 1 OR @PoolID = 4 /* management network */) -- "System" space
- BEGIN
- -- check if server is physical
- IF EXISTS(SELECT * FROM Servers WHERE ServerID = @ServerID AND VirtualServer = 0)
- BEGIN
- -- physical server
- SELECT
- IP.AddressID,
- IP.ExternalIP,
- IP.InternalIP,
- IP.ServerID,
- IP.PoolID,
- IP.SubnetMask,
- IP.DefaultGateway
- FROM dbo.IPAddresses AS IP
- WHERE
- IP.ServerID = @ServerID
- AND IP.AddressID NOT IN (SELECT PIP.AddressID FROM dbo.PackageIPAddresses AS PIP)
- AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
- ORDER BY IP.DefaultGateway, IP.ExternalIP
- END
- ELSE
- BEGIN
- -- virtual server
- -- get resource group by service
- DECLARE @GroupID int
- SELECT @GroupID = P.GroupID FROM Services AS S
- INNER JOIN Providers AS P ON S.ProviderID = P.ProviderID
- WHERE S.ServiceID = @ServiceID
-
- SELECT
- IP.AddressID,
- IP.ExternalIP,
- IP.InternalIP,
- IP.ServerID,
- IP.PoolID,
- IP.SubnetMask,
- IP.DefaultGateway
- FROM dbo.IPAddresses AS IP
- WHERE
- IP.ServerID IN (
- SELECT SVC.ServerID FROM [dbo].[Services] AS SVC
- INNER JOIN [dbo].[Providers] AS P ON SVC.ProviderID = P.ProviderID
- WHERE [SVC].[ServiceID] = @ServiceId AND P.GroupID = @GroupID
- )
- AND IP.AddressID NOT IN (SELECT PIP.AddressID FROM dbo.PackageIPAddresses AS PIP)
- AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
- ORDER BY IP.DefaultGateway, IP.ExternalIP
- END
- END
- ELSE -- 2rd level space and below
- BEGIN
- -- get service location
- SELECT @ServerID = S.ServerID FROM Services AS S
- WHERE S.ServiceID = @ServiceID
-
- SELECT
- IP.AddressID,
- IP.ExternalIP,
- IP.InternalIP,
- IP.ServerID,
- IP.PoolID,
- IP.SubnetMask,
- IP.DefaultGateway
- FROM dbo.PackageIPAddresses AS PIP
- INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
- WHERE
- PIP.PackageID = @ParentPackageID
- AND PIP.ItemID IS NULL
- AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
- AND IP.ServerID = @ServerID
- ORDER BY IP.DefaultGateway, IP.ExternalIP
- END
-END
-GO
\ No newline at end of file