
IF NOT EXISTS
(
    SELECT 1
    FROM sys.columns
    WHERE name = 'ServerGroupId'
      AND object_id = OBJECT_ID('HB_VPS_tblVPSVSwitchHiddenFromPanel')
)
BEGIN
    ALTER TABLE HB_VPS_tblVPSVSwitchHiddenFromPanel
    ADD ServerGroupId INT NOT NULL DEFAULT(0)
END
GO

IF OBJECT_ID(N'CSP_HB_VPS_tblVPSVSwitchHiddenFromPanel_Insert', N'P') IS NOT NULL
    DROP PROCEDURE CSP_HB_VPS_tblVPSVSwitchHiddenFromPanel_Insert;
GO
CREATE PROCEDURE CSP_HB_VPS_tblVPSVSwitchHiddenFromPanel_Insert
(  
    @VSwitchName NVARCHAR(200),  
    @VSwitchGuid UNIQUEIDENTIFIER,
    @ServerGroupId INT
)  
AS  
BEGIN  

    INSERT INTO HB_VPS_tblVPSVSwitchHiddenFromPanel  
    (  
        VSwitchGuid,  
        VSwitchName,
        ServerGroupId
    )  
    VALUES  
    (  
        @VSwitchGuid,  
        @VSwitchName,
        @ServerGroupId
    );     

END  
GO

 
ALTER PROCEDURE CSP_HB_VPS_tblVPSVSwitchHiddenFromPanel_Delete  
(  
 @VSwitchGuid Uniqueidentifier ,
 @ServerGroupId INT
  
)  
AS  
BEGIN  
  
  DELETE HB_VPS_tblVPSVSwitchHiddenFromPanel  
  WHERE VSwitchGuid = @VSwitchGuid  AND ServerGroupId=@ServerGroupId
END  
GO

ALTER PROCEDURE CSP_HB_VPS_tblVPSVSwitchHiddenFromPanel_Get  
   @ServerGroupId INT
AS  
BEGIN  
    
  SELECT *  
  FROM HB_VPS_tblVPSVSwitchHiddenFromPanel  
  WHERE ServerGroupId=  @ServerGroupId
   
END  
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetDLMembershipPendingJobs')
BEGIn
	DROP PROC SPR_GetDLMembershipPendingJobs
END
GO

CREATE PROCEDURE SPR_GetDLMembershipPendingJobs
(
	@CompanyId INT,
	@CustomerId INT,
	@OrganizationId INT,
	@DLID INT
)
AS
BEGIN
	DECLARE @Add_Mailbox TINYINT = 7
	DECLARE @Add_Mail_Contact TINYINT = 14
	DECLARE @Add_Dist_List TINYINT = 15
	DECLARE @Add_Mail_User TINYINT = 80
	DECLARE @Remove_Mailbox TINYINT = 21
	DECLARE @Remove_Mail_Contact TINYINT = 58
	DECLARE @Remove_Distribution_List TINYINT =59
	DECLARE @Remove_MailUser TINYINT = 81
	DECLARE @Completed TINYINT = 3
	DECLARE @Cancelled TINYINT = 2

	DECLARE @DistListPrimaryEmail  NVARCHAR(255);
	SELECT @DistListPrimaryEmail  = EmailAddress FROM HB_tblExchangeDistributionListsEmailAddresses where DistListID=@DLID and IsPrimaryEmailAddress = 1
	
	SELECT *, CASE WHEN ActionType IN (@Add_Mailbox,
	@Add_Mail_Contact,
	@Add_Dist_List,
	@Add_Mail_User) THEN 'AddJob' ELSE 'RemoveJob' END AS [JobType]  FROM HB_tblExchangeGroupJobs
	WHERE 
	CompanyId = @CompanyId
	AND CustomerId = @CustomerId
	AND OrganizationId = @OrganizationId 
	AND 
	(
	[Comments] = @DLID
	OR [Parameters] LIKE '%×' + @DistListPrimaryEmail
	)
	AND ActionType IN (
	@Add_Mailbox,
	@Add_Mail_Contact,
	@Add_Dist_List,
	@Add_Mail_User,
	@Remove_Mailbox, 
	@Remove_Mail_Contact,
	@Remove_Distribution_List,
	@Remove_MailUser
	)
	AND StatusId NOT IN (@Completed, @Cancelled)
	AND IsCancelled = 0
END
GO

ALTER PROCEDURE [SP_EM_ExGetDListMembers]        
 (
	@DLID int        
 )
AS        
BEGIN 

	DECLARE @OrganizationId INT;
	SELECT @OrganizationId = OrganizationID FROM HB_tblExchangeDistributionLists WHERE DistListID = @DLID

	Delete From HB_tblExchangeDistributionListsMembers Where RecipientType='mailbox'      
	and MailboxId not in (Select Mailboxid from HB_tblExchangeMailboxes)       
      
	Delete From HB_tblExchangeDistributionListsMembers Where RecipientType='contact'      
	and MailboxId not in (Select mailContactId from HB_tblExchangeMailContacts)      
      
	Delete From HB_tblExchangeDistributionListsMembers Where RecipientType='distlist'      
	and MailboxId not in (Select DistListId from HB_tblExchangeDistributionLists)   
   
	Delete From HB_tblExchangeDistributionListsMembers Where RecipientType='mailuser'      
	and MailboxId not in (Select MailUserId from Hb_tblExchangeMailUsers)     
      
	UPDATE M
	SET 
	M.MemberDisplayName = mbx.MailBoxDisplayName, 
	M.MemberEmailAddress = 
	EA.EmailAddress 
	FROM HB_tblExchangeDistributionListsMembers M 
	INNER JOIN HB_tblExchangeMailboxes Mbx ON M.MailboxID = Mbx.MailboxID
	INNER JOIN HB_tblExchangeEmailAddresses EA ON Mbx.MailboxID = EA.MailBoxID AND EA.IsPrimaryEmailAddress = 1
	AND M.DistListID = @DLID AND Mbx.OrganizationID = @OrganizationId 
	AND M.RecipientType = 'mailbox' 
	AND (M.MemberDisplayName <> Mbx.MailBoxDisplayName OR M.MemberEmailAddress <> EA.EmailAddress)

	UPDATE M
	SET 
	M.MemberDisplayName = MC.MailContactDisplayName, 
	M.MemberEmailAddress = MC.ExternalEmailAddress 
	FROM HB_tblExchangeDistributionListsMembers M 
	INNER JOIN HB_tblExchangeMailContacts MC ON M.MailboxID = MC.MailContactID
	AND M.DistListID = @DLID
	AND M.RecipientType = 'contact' 
	AND (M.MemberDisplayName <> MC.MailContactDisplayName OR M.MemberEmailAddress <> MC.ExternalEmailAddress)
 
	UPDATE M
	SET 
	M.MemberDisplayName = Dls.DistListName, 
	M.MemberEmailAddress = 
	EA.EmailAddress 
	FROM HB_tblExchangeDistributionListsMembers M 
	INNER JOIN HB_tblExchangeDistributionLists Dls ON M.MailboxID = Dls.DistListID
	INNER JOIN HB_tblExchangeDistributionListsEmailAddresses EA ON Dls.DistListID = EA.DistListID AND EA.IsPrimaryEmailAddress = 1
	AND M.DistListID = @DLID AND Dls.OrganizationID = @OrganizationId 
	AND M.RecipientType = 'distlist' 
	AND (M.MemberDisplayName <> dls.DistListName OR M.MemberEmailAddress <> EA.EmailAddress)

	UPDATE M
	SET 
	M.MemberDisplayName = ADU.DisplayName, 
	M.MemberEmailAddress = 
	EA.EmailAddress 
	FROM HB_tblExchangeDistributionListsMembers M 
	INNER JOIN Hb_tblExchangeMailUsers MUs ON M.MailboxID = MUs.MailUserId
	INNER JOIN HB_tblADirUsers ADU ON MUs.ADUserId = ADU.ADUserID
	INNER JOIN HB_tblMailUserEmailAddresses EA ON MUs.MailUserId = EA.MailUserId AND EA.IsPrimaryEmailAddress = 1
	AND M.DistListID = @DLID AND MUs.OrganizationId = @OrganizationId
	AND M.RecipientType = 'mailuser' 
	AND (M.MemberDisplayName <> ADU.DisplayName OR M.MemberEmailAddress <> EA.EmailAddress)

	Select * from HB_tblExchangeDistributionListsMembers       
	where DistListId=@DLID    
	and (RecipientType!='mailbox' OR (RecipientType='mailbox' and MailboxID NOT IN (Select MailboxId from HB_tblExchangeMailboxes Where SoftDelete='1')))  
	Order By MemberDisplayName  

 END
 GO

 ALTER Procedure CSP_VPS_HB_tblVPSAccountsNICSettings_Get      
(                    
@VPSID bigint                    
)                    
AS              
              
Declare @ServerGroupId bigint              
Declare @IsSharedPool BIT        
        
SET @ServerGroupId = (Select VPSServerGroupID from HB_VPS_tblVPSServer Where VPSServerID = (Select VPSServerID from HB_tblVPSAccounts       
where VPSId=@VPSID))                  
SET @IsSharedPool =   (select IsSingleVM from HB_tblVPSHosting INNER JOIN HB_tblVPSAccounts ON     
HB_tblVPSAccounts.VPSHostingId=HB_tblVPSHosting.VPSHostingID  INNER JOIN HB_tblPackagesSold ON     
HB_tblVPSHosting.SoldPackageId=HB_tblPackagesSold.SoldPackageId INNER JOIN HB_tblPackages ON     
HB_tblPackages.PackageID=HB_tblPackagesSold.PackageID where VPSId=@VPSID)         
  
  
Select distinct *  From [HB_tblVPSAccountsNICSettings]                     
inner join HB_VPS_tblVPSServerSubNets on HB_VPS_tblVPSServerSubNets.Subnet=[HB_tblVPSAccountsNICSettings].Subnet                     
and HB_VPS_tblVPSServerSubNets.Type=[HB_tblVPSAccountsNICSettings].Type and VPSServerGroupID=@ServerGroupId              
Where VPSId=@VPSID                     
and (SubnetId in (Select SubnetId from HB_VPS_tblVPSSubNetsIPs where VPSId=@VPSId and IP =     
Substring(HB_tblVPSAccountsNICSettings.IP + ',' , 0,Charindex(',', HB_tblVPSAccountsNICSettings.IP + ','))) )     
     
AND IsSharedVPSHostingPool = @IsSharedPool and HB_tblVPSAccountsNICSettings.Subnet!=''            
UNION ALL                    
Select HB_tblVPSAccountsNICSettings.*,'','','','','','','','','','','','','' from HB_tblVPSAccountsNICSettings                   
INNER JOIN   HB_tblVPSAccounts ON HB_tblVPSAccountsNICSettings.VPSId = HB_tblVPSAccounts.VPSId                     
INNER JOIN HB_tblVPSHosting ON HB_tblVPSHosting.VPSHostingID = HB_tblVPSAccounts.VPSHostingId                    
INNER JOIN HB_VPS_tblVPSServerGroups on HB_tblVPSHosting.VPSServerID = HB_VPS_tblVPSServerGroups.VPSServerGroupID                     
WHERE HB_tblVPSAccountsNICSettings.VPSId=@VPSID AND HVNEnabled = 1  and Type=0 and VPSServerGroupID=@ServerGroupId          
Union ALL      
Select HB_tblVPSAccountsNICSettings.*,'','','','','','','','','','','','','1' from HB_tblVPSAccountsNICSettings                   
INNER JOIN   HB_tblVPSAccounts ON HB_tblVPSAccountsNICSettings.VPSId = HB_tblVPSAccounts.VPSId                     
INNER JOIN HB_tblVPSHosting ON HB_tblVPSHosting.VPSHostingID = HB_tblVPSAccounts.VPSHostingId                    
INNER JOIN HB_VPS_tblVPSServerGroups on HB_tblVPSHosting.VPSServerID = HB_VPS_tblVPSServerGroups.VPSServerGroupID                     
WHERE HB_tblVPSAccountsNICSettings.VPSId=@VPSID AND HVNEnabled = 0  and Type=0 and VPSServerGroupID=@ServerGroupId        
and HB_tblVPSAccountsNICSettings.Subnet=''    
GO


Alter PROCEDURE [CSP_GetAllAllowedVHDSizeWithTypes]               
(                
@VPSHostingId int         
)                
AS                
BEGIN          
Declare @ResourceId int          
Set @ResourceId=(Select ResourceId From HB_tblResources  Where ResourceInternalId=903)                         
Declare @SoldPackageId int                        
Set @SoldPackageId=(Select SoldPackageID From HB_tblVPSHosting Where VPSHostingID =@VPSHostingId)          
        
 Select SUm(ResourceQuantity) as ResourceQuantity ,PrimaryStorageTypeId ,VPSStorageTypeName   , [Type]
 From        
 (        
 SELECT ResourceQuantity  ,PrimaryStorageTypeId,ISNULL(VPSStorageTypeName,'Not set') AS VPSStorageTypeName, 1 As [Type]
 from HB_tblPackages        
 Inner join HB_tblPackagesSold on HB_tblPackagesSold.PackageID = HB_tblPackages.PackageID        
 Inner join HB_tblPackagesSoldDetail on HB_tblPackagesSoldDetail.SoldPackageID = HB_tblPackagesSold.SoldPackageID        
 Left outer join HB_tblVPSStorageTypes On HB_tblVPSStorageTypes.VPSStorageTypeId = HB_tblPackages.PrimaryStorageTypeId      
 Where HB_tblPackagesSoldDetail.SoldPackageID=@SoldPackageId And ResourceID=@ResourceId   
Union ALl        
Select Quantity*ResourceQuantity ,StorageTypeId,ISNULL(VPSStorageTypeName,'Not set'), 1 As [Type]
From HB_tblAddonsSoldDetail        
inner join HB_tblAddonsSold  on HB_tblAddonsSold.SoldAddOnId= HB_tblAddonsSoldDetail.SoldAddOnId          
inner join HB_tblAddons on HB_tblAddons.AddOnID = HB_tblAddonsSold.AddOnId        
inner join HB_tblAddonTypes on HB_tblAddonTypes.AddOnTypeId = HB_tblAddons.AddOnTypeID        
Left outer join HB_tblVPSStorageTypes On HB_tblVPSStorageTypes.VPSStorageTypeId = HB_tblAddonTypes.StorageTypeId      
Where  SoldToAccountId=@VPSHostingId and HB_tblAddonTypes.PackageTypeID='19' and IsPending='0' and IsCancelled='0' And ResourceId=@ResourceId          
) AS tbl        
Where VPSStorageTypeName !=''    
Group by PrimaryStorageTypeId  ,VPSStorageTypeName, [Type]
End     
GO


ALTER PROCEDURE SPR_GetADirUsersByHostedOrgId            
(            
 @HostedOrgId INT            
)            
AS            
BEGIN            
 SELECT Distinct U.*,ORG.HostedOrgID, ORG.OrganizationName, ORG.ADDomainId,
 ISNULL((Select U2.UPName from HB_tblADirUsers U2 Where U2.HOrgId = U.HOrgId and U.DirectManagerLDAP != '' and U2.UserLDAPURL = U.DirectManagerLDAP), '') As Manager
 FROM HB_tblADirHostedOrganizations ORG             
 INNER JOIN HB_tblADirUsersDetail UD ON ORG.HostedOrgID = UD.HostedOrgID             
 INNER JOIN HB_tblADirUsers U ON U.ADUserID = UD.ADUserID            
 WHERE ORG.HostedOrgID = @HostedOrgId            
 order by DisplayName asc, UPName asc  
END    
GO

INSERT INTO HB_tblAddonTypeDetail (AddonTypeId, ResourceId, ResourceQuantity)
SELECT 
    at.AddonTypeId,
    r.ResourceId,
    0
FROM HB_tblAddonTypes at
INNER JOIN HB_tblResources r 
    ON r.ResourceInternalId = 925
WHERE at.PackageTypeID = 19
AND NOT EXISTS (
    SELECT 1 
    FROM HB_tblAddonTypeDetail d
    WHERE d.AddonTypeId = at.AddonTypeId
      AND d.ResourceId = r.ResourceId
);
GO


 IF OBJECT_ID('FN_EM_VPS_GetTotalAllowed', 'FN') IS NULL
BEGIN
    EXEC('
    CREATE FUNCTION dbo.FN_EM_VPS_GetTotalAllowed
    (
        @VPSHostingId INT,
        @CompanyId INT,
        @ResourceId INT
    )
    RETURNS BIGINT
    AS
    BEGIN
        RETURN 0;
    END
    ')
END
GO

ALTER FUNCTION FN_EM_VPS_GetTotalAllowed
(
    @VPSHostingId INT,
    @CompanyId INT,
    @ResourceId INT
)
RETURNS BIGINT
AS
BEGIN
    DECLARE @Total BIGINT = 0
    DECLARE @ResolvedResourceId INT
    DECLARE @SoldPackageId INT

    SELECT @ResolvedResourceId = ResourceId
    FROM HB_tblResources
    WHERE ResourceInternalId = @ResourceId

    SELECT @SoldPackageId = SoldPackageID
    FROM HB_tblVPSHosting
    WHERE VPSHostingID = @VPSHostingId

    SELECT @Total = ISNULL(CONVERT(BIGINT, ResourceQuantity), 0)
    FROM HB_tblPackagesSoldDetail
    WHERE SoldPackageID = @SoldPackageId
      AND ResourceID = @ResolvedResourceId

    SELECT @Total = @Total + ISNULL(SUM(
            CONVERT(BIGINT, d.ResourceQuantity) * CONVERT(BIGINT, d.ResourceQuantity)
        ), 0)
    FROM HB_tblAddonsSoldDetail d
    INNER JOIN HB_tblAddonsSold s
        ON s.SoldAddOnId = d.SoldAddOnId
    WHERE s.SoldToAccountId = @VPSHostingId
      AND s.PackageTypeID = 19
      AND s.IsPending = 0
      AND s.IsCancelled = 0
      AND d.ResourceId = @ResolvedResourceId

    RETURN ISNULL(@Total, 0)
END
GO

ALTER Procedure VPSUsageReport   
(      
 @CompanyID Int,                
 @CustomerName nvarchar(500),                
 @CustomerComapnyName nvarchar(500),                
 @VPSName nvarchar(500),                
 @CustomerID Int,                
 @ServerNode nvarchar(500),                    
 @SortExpression NVARCHAR(100),                    
 @SortDirection NVARCHAR(10),                    
 @PageSize INT,                    
 @PageOffset INT ,                
 @SubResellerID INT, @StaffRoleId int         
)      
AS                
BEgin                
   
	 Declare @DBName nvarchar(500)    
	 Set @DBName= (Select DB_Name())    
     
	 If @DBName = 'MachPanel'    
	 Set @DBName='dbo'   

 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustomerName OUTPUT               
 
 Declare @SortExp nvarchar(400)                
                
 IF(@SortExpression = 'CompanyName')                
 BEGIN                
  SET @SortExp = 'tblCustomers.'+@SortExpression+' '+ @SortDirection                
 END                
 ELSE IF(@SortExpression = 'CustomerName')                
 BEGIN                
  SET @SortExp = 'tblCustomers.'+'FirstName'+' '+ @SortDirection                
 END                
 ELSE IF(@SortExpression = 'ServerNode')                
 BEGIN                
  SET @SortExp = 'HB_VPS_tblVPSServer.'+'IP'+' '+ @SortDirection                
 END                
 ELSE IF(@SortExpression = 'DateCreated')                
 BEGIN                
  SET @SortExp = 'HB_tblVPSAccounts.'+@SortExpression+' '+ @SortDirection                
 END           
 ELSE IF(@SortExpression = 'OwnerName')                BEGIN                 SET @SortExp = 'TblCompanies.FirstName' +'  '+ @SortDirection                END    
 ELSE IF(@SortExpression = 'CompanyID')                
 BEGIN                
  SET @SortExp = 'TblCompanies.'+@SortExpression+' '+ @SortDirection                
 END                
 ELSE                
 BEGIN                
  Set @SortExp = @SortExpression +' '+ @SortDirection                
 END                
                   
   
 Declare @Where nvarchar (max)                
 Set @Where = ' WHERE  1 = 1 '                
                
 IF (@CustomerID!='0' AND @CustomerID != '' AND @CustomerID != '-1' AND @CustomerID IS NOT NULL)                                    
 Begin                
  SET @Where= @Where+' and HB_tblVPSHosting.CustomerID = N'''+ REPLACE(@CustomerID,'''','''''')+''''                                    
 End                
                
 IF (@CompanyID!='0' AND @CompanyID != '' AND @CompanyID != '-1' AND @CompanyID IS NOT NULL)                                    
 Begin                
  SET @Where= @Where+' and tblCustomers.CompanyId = N'''+ REPLACE(@CompanyID,'''','''''')+''''                                    
 End                
                
 IF(@CustomerName != '' AND @CustomerName IS NOT NULL)                      
 Begin                
  SET @Where = @Where + ' and tblCustomers.FirstName+'' ''+tblCustomers.LastName like ''%''+N'''+  @CustomerName+'''+''%'''                      
 End                
                
 IF(@CustomerComapnyName !='' AND @CustomerComapnyName IS NOT NULL)                        
 Begin                
  SET @Where=@Where+' and tblCustomers.CompanyName like ''%''+N'''+ REPLACE(@CustomerComapnyName,'''','''''')+'''+''%'' '                                
 End                
                
 IF(@VPSName !='' AND @VPSName IS NOT NULL)                        
 Begin                
  SET @Where=@Where+' and HB_tblVPSAccounts.VMName like ''%''+N'''+ REPLACE(@VPSName,'''','''''')+'''+''%'''                                
 End                
                
 IF(@ServerNode !='' AND @ServerNode IS NOT NULL)                        
 Begin                
  SET @Where=@Where+' and ((HB_VPS_tblVPSServer.IP like ''%''+N'''+ REPLACE(@ServerNode,'''','''''')+'''+''%'')   
  OR (HB_VPS_tblVPSServer.ReferenceID like ''%''+N'''+ REPLACE(@ServerNode,'''','''''')+'''+''%'') OR (HB_VPS_tblVPSServerGroups.Name like ''%''+   
  N'''+ REPLACE(@ServerNode,'''','''''')+'''+''%''))'                                
 End                
                
                                     
 If @SubResellerId!='0'                        
 Begin                          
  Set @Where=@Where+' and tblCustomers.SubResellerId='+convert(nvarchar(10),@SubResellerId)              End                 
  
If @StaffRoleId > 0  
BEGIN  
Set @Where=@Where+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA   
 Where RA.CustomerId = tblCustomers.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
  
Set @Where=@Where+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA   
 Where RA.CompanyId = tblCustomers.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
END  
  
 
 Declare @SQL nvarchar(MAX)                                    
 SET @SQL = 'Select '                
                
 
                
 If (@PageSize != 0)
 Begin                
  SET @SQL += ' Top(@PageSize) '                
 End                
                
 Set @SQL += '(                
 Select count(*) FROM HB_tblVPSAccounts INNER JOIN HB_tblVPSHosting ON HB_tblVPSHosting.VPSHostingID = HB_tblVPSAccounts.VPSHostingId                 
 INNER JOIN tblCustomers ON tblCustomers.CustomerID=HB_tblVPSHosting.CustomerID              
 INNER Join TblCompanies ON TblCompanies.CompanyID=tblCustomers.CompanyID                
 INNER JOIN HB_tblPackagesSold ON HB_tblPackagesSold.SoldPackageID=HB_tblVPSHosting.SoldPackageId                 
 INNER JOIN HB_VPS_tblVPSServer ON HB_VPS_tblVPSServer.VPSServerID = HB_tblVPSAccounts.VPSServerId                
 INNER JOIN HB_VPS_tblVPSServerGroups ON HB_VPS_tblVPSServerGroups.VPSServerGroupID = HB_VPS_tblVPSServer.VPSServerGroupID    '                
 + @Where +'                
 )                
 as TotalRecords,*                
 from ( Select RowIndex= ROW_NUMBER() OVER(ORDER BY '+ @SortExp +'), '                
                
 Set  @SQL +=' tblCustomers.CompanyName,            
 tblCustomers.FirstName+'' ''+tblCustomers.LastName as CustomerName,            
 tblCustomers.CustomerId,tblCustomers.Phone CustomerPhone, tblCustomers.PrimaryEmail CustomerEmail                
 ,ISNULL((SELECT CustomerId FROM tblCustomers WHERE OwnerId = TblCompanies.CompanyId),0) AS OwnerId,            
 TblCompanies.FirstName+'' ''+TblCompanies.LastName as OwnerName,TblCompanies.SupportEmail OwnerEmail,            
 CASE WHEN ISNULL(TblCompanies.CompanyPhone,'''')='''' THEN tblcompanies.SupportPhone ELSE TblCompanies.CompanyPhone END AS OwnerPhone                
 ,PackageName,Label ,tblCustomers.CompanyID,LicenseKey,  HB_tblVPSAccounts.VPSId ,       
 ReferenceID+'' ''+HB_VPS_tblVPSServer.IP AS ServerNode,VMName,CPUCores,RAM,CONVERT(VARCHAR(25),HB_tblVPSAccounts.DateCreated,101) as DateCreated,                
 Case When CONVERT(Varchar(50),BandWidthAllowedPerMonth)=''-1'' Then ''Unlimited'' Else CONVERT(Varchar(50),BandWidthAllowedPerMonth) End As BandWidthAllowedPerMonth,                
 (Select isNull(convert(decimal(10,2),(Sum(isnull(Download,0))+Sum(isnull(Upload,0)))/1024.0),0) as Used FROM HB_tblVPSBandWidthMeteringData                 
 Where VMID=HB_tblVPSAccounts.VPSId AND CONVERT(Date,[Datetime]) >= CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GetDate())-1),GetDate()),101)) as CurrentMonthBandWidthUsage,                
 (Select  top 1 [datetime] FROM HB_tblVPSBandWidthMeteringData Where VMID=HB_tblVPSAccounts.VPSId order by [datetime] desc) as LastBandwidthUsedDate,                
 CASE WHEN SealedImageTypeId=2 then ''Linux'' else ''Windows'' end as SealedImageType,                
 (SELECT COUNT(*) FROM HB_tblVPSAccountHardDiskSettings WHERE VPSID=HB_tblVPSAccounts.VPSId) AS NoofDisks,                
 (SELECT SUM(Size) FROM HB_tblVPSAccountHardDiskSettings WHERE VPSID=HB_tblVPSAccounts.VPSId) AS TotalDisksSpace,                  
 (SELECT COUNT(*) FROM HB_tblVPSAccountsNICSettings WHERE VPSID=HB_tblVPSAccounts.VPSId AND HB_tblVPSAccountsNICSettings.Type=1) AS PublicNICCount,                
 (SELECT COUNT(*) FROM HB_tblVPSAccountsNICSettings WHERE VPSID=HB_tblVPSAccounts.VPSId AND HB_tblVPSAccountsNICSettings.Type=0) AS PrivateNICCount,                
 (SELECT COUNT(*) FROM HB_VPS_tblVPSSubNetsIPs left outer JOIN HB_tblVPSAccountsNICSettings ON HB_tblVPSAccountsNICSettings.VPSId =HB_VPS_tblVPSSubNetsIPs.VPSId                   
 WHERE HB_tblVPSAccountsNICSettings.VPSID=HB_tblVPSAccounts.VPSId  AND HB_tblVPSAccountsNICSettings.Type=1 and HB_VPS_tblVPSSubNetsIPs.ip IN (HB_tblVPSAccountsNICSettings.ip)) as PublicIPCount,                
 (SELECT COUNT(*) FROM HB_VPS_tblVPSSubNetsIPs left outer JOIN HB_tblVPSAccountsNICSettings ON HB_tblVPSAccountsNICSettings.VPSId =HB_VPS_tblVPSSubNetsIPs.VPSId                   
 WHERE HB_tblVPSAccountsNICSettings.VPSID=HB_tblVPSAccounts.VPSId  AND HB_tblVPSAccountsNICSettings.Type=0 and HB_VPS_tblVPSSubNetsIPs.ip IN (HB_tblVPSAccountsNICSettings.ip)) as PrivateIPCount,      
 CASE WHEN HB_tblVPSAccounts.GuardedFabric > 0 THEN ''1'' ELSE ''0'' END AS Shielded,
 CASE WHEN ' + @DBName + '.FN_EM_VPS_GetTotalAllowed(HB_tblVPSAccounts.VPSHostingId,HB_tblVPSHosting.CompanyId,925) > 0 THEN ''1'' ELSE ''0'' END AS SDNEnabled
 FROM HB_tblVPSAccounts INNER JOIN HB_tblVPSHosting ON HB_tblVPSHosting.VPSHostingID = HB_tblVPSAccounts.VPSHostingId                 
 INNER JOIN tblCustomers ON tblCustomers.CustomerID=HB_tblVPSHosting.CustomerID                
 INNER Join TblCompanies ON TblCompanies.CompanyID=tblCustomers.CompanyID                
 INNER JOIN HB_tblPackagesSold ON HB_tblPackagesSold.SoldPackageID=HB_tblVPSHosting.SoldPackageId                 
 INNER JOIN HB_VPS_tblVPSServer ON HB_VPS_tblVPSServer.VPSServerID = HB_tblVPSAccounts.VPSServerId                
 INNER JOIN HB_VPS_tblVPSServerGroups ON HB_VPS_tblVPSServerGroups.VPSServerGroupID = HB_VPS_tblVPSServer.VPSServerGroupID   ' + @Where                 
 SET @SQL += ' ) JobRecords '                 
                   
 If (@PageSize != 0)
  SET @SQL += ' Where RowIndex > ((@PageOffset - 1 ) * @PageSize) '                
                
 Set @SQL += ' ORDER BY '+ @SortExpression +' '+ @SortDirection                
                
 EXEC sp_executesql @SQL, N'                
 @CompanyID Int,                
 @CustomerName nvarchar(500),                
 @CustomerComapnyName nvarchar(500),                
 @VPSName nvarchar(500),                
 @CustomerID Int,                
 @ServerNode nvarchar(500),                    
 @SortExpression NVARCHAR(100),                    
 @SortDirection NVARCHAR(10),                    
 @PageSize INT,                    
 @PageOffset INT,              
 @SubResellerID INT,   
 @StaffRoleId int ',                
 @CompanyID ,                
 @CustomerName ,                
 @CustomerComapnyName ,                
 @VPSName ,                
 @CustomerID ,                
 @ServerNode ,                    
 @SortExpression ,                    
 @SortDirection ,                    
 @PageSize ,                    
 @PageOffset ,              
 @SubResellerID,   
 @StaffRoleId   
END     
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'CSP_GetSDNFirewallRulesByCustomerAndInterface')
BEGIN
	DROP PROCEDURE CSP_GetSDNFirewallRulesByCustomerAndInterface
END
GO

Create Procedure CSP_GetSDNFirewallRulesByCustomerAndInterface
(
 @CustomerId int, 
 @VLANInterfaceId int
)
AS
SELECT R.RuleId, R.SDNServerId, R.VLANInterfaceId, S.HAGroupName, S.IsHighAvailable, 
I.API_if, I.Description, C.CustomerID, R.Action, R.Protocol, R.Source, R.Destination, R.Description, 
R.IsEnabled, R.LogEnabled, R.SourcePortRangeFrom, R.SourcePortRangeTo, R.DestinationPortRangeFrom, 
R.DestinationPortRangeTo, R.DisplayOrder, R.Tracker, R.IsDefault, V.InterfaceId As MainInterfaceId 
FROM HB_VPS_SDNFirewallRules R INNER JOIN HB_VPS_SDNVLANInterface I ON R.VLANInterfaceId = I.VLANInterfaceId 
INNER JOIN HB_VPS_SDNVLAN V ON V.VLANId = I.VLANId INNER JOIN tblCustomers C ON R.CustomerId = C.CustomerID 
INNER JOIN tblCompanies O ON C.CompanyID = O.CompanyID INNER JOIN Hb_VPS_SDNServers S ON S.SDNServerId = V.SDNServerId 
WHERE S.IsMaster = 1 And R.ParentRuleId = 0 AND C.CustomerID = @CustomerId AND R.VLANInterfaceId = @VLANInterfaceId 
GO

ALTER PROCEDURE CSP_VPS_GetSDNInterfacesByCustomerCompany     
(      
 @CustomerId INT,  
 @CompanyId INT  
)      
AS      
BEGIN      
SELECT I.Description, I.API_id, I.VLANInterfaceId, V.SDNServerId, V.CustomerId     
FROM HB_VPS_SDNVLAN V INNER JOIN HB_VPS_SDNVLANInterface I ON V.VLANId = I.VLANId     
INNER JOIN Hb_VPS_SDNServers S ON S.SDNServerId = V.SDNServerId   
INNER JOIN tblCustomers C ON C.CustomerID = V.CustomerId  
WHERE S.IsMaster = '1' And (@CustomerId <= 0 OR V.CustomerId = @CustomerId)  
And (@CompanyId <= 0 OR C.CompanyID = @CompanyId)  
END   
GO

ALTER PROCEDURE SP_EM_SearchOrgUser   
(          
 @HostedOrgId int,                              
 @ADDomainId  INT,                                            
 @OrgName   nvarchar(255),                                       
 @CompanyId INT,                                           
 @DisplayName NVARCHAR(255),                                      
 @CustomerId INT,                                      
 @CustomerName NVARCHAR(200),                                    
 @CustomerCompanyName NVARCHAR(128),                                  
 @UserPrincipalName NVARCHAR(255),                                 
 @DomainName NVARCHAR(255),                                            
 @PageNo   INT,                                            
 @PageSize  INT,                                            
 @SortExpression NVARCHAR(1000),                                            
 @SortDirection VARCHAR(10) ,                              
 @SubsFilterOption int ,                              
 @SAMAccountName nvarchar(200),                              
 @Address  nvarchar(1000),                              
 @City   nvarchar(200),                                
 @State   nvarchar(200),                               
 @Zip   nvarchar(50),                              
 @CountryId  int,                              
 @Phone   nvarchar(50),                              
 @JobTitle  nvarchar(200),                              
 @Company  nvarchar(200),                              
 @Department nvarchar(200),                              
 @Office  nvarchar(1000),                              
 @SubResellerId INT,                              
 @ADSyncEnabled bit,                              
 @PackageTypeId int,                          
 @Locked BIGINT,            
 @StatusId int ,    
 @AccountTypeId int, @StaffRoleId int     
)          
AS                        
BEGIN                        
           
		 UPDATE U
SET U.HOrgId = AD.HostedOrgId
FROM HB_tblADirUsers U
JOIN (
    SELECT DISTINCT ADUserID, HostedOrgId
    FROM HB_tblADirUsersDetail
) AD ON AD.ADUserID = U.ADUserID
WHERE U.HOrgId = 0
AND U.UserLDAPURL != '';

 EXEC CSP_UpdateHostedOrgExtendedData          
 EXEC CSP_UpdateHostedUserExtendedData          
          
  EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustomerName OUTPUT                   
                      
   IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[#temp_UserData]') AND OBJECTPROPERTY(ID, N'IsUserTable') = 1)                                            
   DROP TABLE #temp_UserData                                     
                                      
   
   CREATE TABLE #temp_UserData                                            
   (                                             
    ID     INT IDENTITY (1,1) ,                        
    ADUserId   INT,                                           
    ADUserName   NVARCHAR(500),                                            
    LogonName   NVARCHAR(500),                                            
    DisplayName   NVARCHAR(500),                                            
    [Password]   NVARCHAR(500),                                            
    UserLDAP   NVARCHAR(4000),                                            
    ADDomainId   INT,                                              
    ADDomainName  NVARCHAR(500),                                            
    HostedOrgId   INT,                                            
    OrganizationName NVARCHAR(300),                                            
    OrganizationLDAP NVARCHAR(4000),                                            
    CustomerId   INT,                                            
    CompanyId INT,                              
    CustDisplayName  NVARCHAR(200),                                
    CustCompanyName  NVARCHAR(200),                                                
    MaxID    INT DEFAULT (0),                                            
    LoginDisable BIT DEFAULT (0),                                      
    UPName nvarchar (500) ,                            
    UserDisabled bit,                  
    OrgGUID nvarchar(100),                              
    OnPremisesUserSID nvarchar(100),                              
    PackageTypeId int,                   
    Locked bit,            
    SyncEnabled bit   ,                                
    [Status]     int, 
    LogonHoursTemplate nvarchar(4000),                              
    ADServiceData nvarchar(max) default(''),                              
    EXServiceData nvarchar(max) default(''),                              
    SPServiceData nvarchar(max) default(''),                              
    CRMServiceData nvarchar(max) default(''),                              
    OCSServiceData nvarchar(max) default(''),       
 CSPServiceData nvarchar(max) default(''),                              
    WFHServiceData nvarchar(max) default(''),                              
    RDSServiceData nvarchar(max) default(''),       
 SHServiceData nvarchar(max) default(''),      
    AlternateEmail nvarchar(max) default(''),       
 MailUserId NVARCHAR(50) default('')   ,    
 AccountType NVARCHAR(100) default('')    
   )                               
                               
   If (ISNUMERIC(@OrgName) = '1')                              
   Begin                              
   Set @OrgName= IsNull((Select OrganizationName from HB_tblADirHostedOrganizations Where HostedOrgId = @OrgName), @OrgName)                               
   End            
            
 Declare @SortExp nvarchar(200)                    
 Set @SortExp = @SortExpression + ' ' + @SortDirection            
            
 Declare @Where nvarchar(max)                    
 SET @Where = ' FROM HB_tblADirUsers ADU, HB_tblADirDomains AD, HB_tblADirHostedOrganizations HO, tblCustomers C, HB_tblADirHostedUserExtendedData ED  ,Hb_tblAdirUsersAccountType AT          
  WHERE ADU.ADDomainID = AD.ADDomainID AND  ADU.HOrgId = HO.HostedOrgID  AND  ADU.CustomerID = C.CustomerID and ED.ADUserId = ADU.ADUserId  and ADU.AccountTypeId = AT.AccountTypeId          
  '            
             
 If(@HostedOrgID > 0)            
 SET @Where = @Where + ' And ADU.HOrgId =  ' + CONVERT(NVARCHAR(10), @HostedOrgID)            
            
 If(@ADSyncEnabled = '1')            
 SET @Where = @Where + ' And ADU.OnPremisesUserSID != '''' '            
            
 If(@CustomerId > 0)            
 SET @Where = @Where + ' And ADU.CustomerID = ' + CONVERT(NVARCHAR(10), @CustomerId)            
            
 If(@CompanyID > 0)            
 SET @Where = @Where + ' And C.CompanyID = ' + CONVERT(NVARCHAR(10), @CompanyID)            
            
 If(@ADDomainId > 0)            
 SET @Where = @Where + ' And HO.ADDomainId = ' + CONVERT(NVARCHAR(10), @ADDomainId)          
     
 If(@AccountTypeId > 0)            
 SET @Where = @Where + ' And AT.AccountTypeId = ' + CONVERT(NVARCHAR(10), @AccountTypeId)      
            
 If(@OrgName != '')            
 BEGIN            
 SET @OrgName = Replace(@OrgName, '[','[[]')            
 SET @Where = @Where + ' and (HO.OrganizationName like ''%''+N'''+ replace(@OrgName,'''','''''')+'''+''%'' OR HO.OrganizationInternalName like ''%''+N'''+ replace(@OrgName,'''','''''')+'''+''%''            
  OR HO.OrgGUID like ''%''+N'''+ replace(@OrgName,'''','''''')+'''+''%'' ) '                          
 END            
            
 If(@DisplayName != '')            
 SET @Where = @Where + ' And ADU.DisplayName like ''%''+N'''+ replace(@DisplayName,'''','''''')+'''+''%'' '            
            
 If(@CustomerName != '')            
 SET @Where = @Where + ' And (C.FirstName+'' ''+C.LastName) LIKE ''%''+N'''+ replace(@CustomerName,'''','''''')+'''+''%'' '            
            
 If(@CustomerCompanyName != '')            
 SET @Where = @Where + ' And C.CompanyName like ''%''+N'''+ replace(@CustomerCompanyName,'''','''''')+'''+''%'' '            
            
 If(@UserPrincipalName != '')            
 SET @Where = @Where + ' And (ADU.UPName like ''%''+N'''+ replace(@UserPrincipalName,'''','''''')+'''+''%''             
  OR ADU.AlternateEmail like ''%''+N'''+ replace(@UserPrincipalName,'''','''''')+'''+''%''            
  OR ED.AlternateEmail LIKE ''%''+N'''+ replace(@UserPrincipalName,'''','''''')+'''+''%'' ) '            
            
 If(@DomainName != '')            
 SET @Where = @Where + ' And ADU.UPName like ''%''+N'''+ replace(@DomainName,'''','''''')+'''+''%'' '            
            
 If(@SAMAccountName != '')            
 SET @Where = @Where + ' And ADU.DomainUserName like ''%''+N'''+ replace(@SAMAccountName,'''','''''')+'''+''%'' '            
            
 If(@Address != '')            
 SET @Where = @Where + ' And ADU.[Address] like ''%''+N'''+ replace(@Address,'''','''''')+'''+''%'' '           
            
 If(@City != '')            
 SET @Where = @Where + ' And ADU.City like ''%''+N'''+ replace(@City,'''','''''')+'''+''%'' '            
            
 If(@State != '')            
 SET @Where = @Where + ' And ADU.[State] like ''%''+N'''+ replace(@State,'''','''''')+'''+''%'' '            
            
 If(@Zip != '')            
 SET @Where = @Where + ' And ADU.Zip like ''%''+N'''+ replace(@Zip,'''','''''')+'''+''%'' '            
            
 If(@CountryId > 0)            
 SET @Where = @Where + ' And ADU.Country = ' + CONVERT(NVARCHAR(10), @CountryId)            
            
 If(@Phone != '')            
 SET @Where = @Where + ' And (ADU.HomePhone like ''%''+N'''+ replace(@Phone,'''','''''')+'''+''%''   
 OR ADU.BusinessPhone like ''%''+N'''+ replace(@Phone,'''','''''')+'''+''%''             
  OR ADU.MobilePhone like ''%''+N'''+ replace(@Phone,'''','''''')+'''+''%'') '            
            
 If(@JobTitle != '')            
 SET @Where = @Where + ' And ADU.JobTitle like ''%''+N'''+ replace(@JobTitle,'''','''''')+'''+''%'' '            
            
 If(@Company != '')            
 SET @Where = @Where + ' And ADU.Company like ''%''+N'''+ replace(@Company,'''','''''')+'''+''%'' '            
            
 If(@Department != '')            
 SET @Where = @Where + ' And ADU.Department like ''%''+N'''+ replace(@Department,'''','''''')+'''+''%'' '            
            
 If(@Office != '')            
 SET @Where = @Where + ' And ADU.Office like ''%''+N'''+ replace(@Office,'''','''''')+'''+''%'' '            
            
 If(@SubResellerId > 0)            
 SET @Where = @Where + ' And C.SubResellerId = ' + CONVERT(NVARCHAR(10), @SubResellerId)            
   
If @StaffRoleId > 0  
BEGIN  
Set @Where=@Where+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA   
 Where RA.CustomerId = C.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
  
Set @Where=@Where+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA   
 Where RA.CompanyId = C.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
END  
  
 If(@Locked >= 0)            
 SET @Where = @Where + ' And ADU.Locked = ' + CONVERT(NVARCHAR(10), @Locked)            
            
 If(@StatusId > 0)            
 BEGIN            
  if(@StatusId = 1)            
  SET @Where = @Where + ' And ADU.UserDisabled = 0 '            
  else if(@StatusId = 2)            
  SET @Where = @Where + ' And ADU.UserDisabled = 1 '            
  else if(@StatusId = 3)            
  SET @Where = @Where + ' And ADU.LoginDisable = 1 '            
  else if(@StatusId = 4)            
  SET @Where = @Where + ' And ADU.LoginDisable = 0 '            
  else if(@StatusId = 5)            
  SET @Where = @Where + ' And EXISTS(SELECT TOP 1 HB_tblADirUserGroupJobs.ADUserId FROM HB_tblADirUserGroupJobs WHERE StatusId             
  NOT IN (2,3) AND HB_tblADirUserGroupJobs.ADUserId = ADU.ADUserID) '            
 END            
            
 DECLARE @SQL NVARCHAR(max)             
            
 
 SET @SQL = 'INSERT INTO #temp_UserData (             
   ADUserId, ADUserName, DisplayName, LogonName, [Password], UserLDAP, ADDomainId, ADDomainName, HostedOrgId, OrganizationName,             
   OrganizationLDAP, CustomerId, CustDisplayName, CustCompanyName, LoginDisable, UPName,             
   UserDisabled,  CompanyId, OrgGUID, OnPremisesUserSID,PackageTypeId,Locked, SyncEnabled, [Status], LogonHoursTemplate, ADServiceData,            
   EXServiceData, SPServiceData, CRMServiceData, OCSServiceData, CSPServiceData, WFHServiceData, RDSServiceData, AlternateEmail,               
   SHServiceData,AccountType)             
   SELECT DISTINCT             
  ADU.ADUserID, ADU.DomainUserName, ADU.DisplayName, ADU.DomainUserName, ADU.[Password], ADU.UserLDAPURL, ADU.ADDomainID, AD.ADDomainName,             
  ADU.HOrgId, HO.OrganizationName, HO.OrganizationLDAP, ADU.CustomerID,             
  CAST(C.CustomerID AS VARCHAR) + '' - '' + C.FirstName + '' '' + C.LastName, C.CompanyName, ADU.LoginDisable, ADU.UPName,             
  ADU.UserDisabled, C.CompanyId, HO.OrgGUID,  OnPremisesUserSID, ' + convert(nvarchar(10), @PackageTypeId) + ' AS PackageTypeId, Locked, ''0'', ''0'',            
  LogonHoursTemplate, ADServiceData, EXServiceData, SPServiceData, CRMServiceData, OCSServiceData, CSPServiceData, WFHServiceData,       
  RDSServiceData, ED.AlternateEmail, SHServiceData  , AT.AccountTypeName           
  ' + @Where + ' ORDER BY ' + @SortExp             
              
            
 EXEC sp_executesql @SQL, N'             
  @HostedOrgId int,            
  @ADDomainId INT,            
  @OrgName nvarchar(255),             
  @CompanyId INT,             
  @DisplayName NVARCHAR(255),            
  @CustomerId INT,            
  @CustomerName NVARCHAR(200),            
  @CustomerCompanyName NVARCHAR(128),            
  @UserPrincipalName NVARCHAR(255),             
  @DomainName NVARCHAR(255),            
  @PageNo INT,            
  @PageSize INT,            
  @SortExpression NVARCHAR(1000),            
  @SortDirection VARCHAR(10),            
  @SubsFilterOption int,            
  @SAMAccountName nvarchar(200),            
  @Address nvarchar(1000),            
  @City nvarchar(200),            
  @State nvarchar(200),             
  @Zip nvarchar(50),            
  @CountryId int,            
  @Phone nvarchar(50),            
  @JobTitle nvarchar(200),            
  @Company nvarchar(200),            
  @Department nvarchar(200),            
  @Office nvarchar(1000),            
  @SubResellerId INT,            
  @ADSyncEnabled bit,            
  @PackageTypeId int,            
  @Locked BIGINT,            
  @StatusId int,    
  @AccountTypeId int',             
  @HostedOrgId,            
 @ADDomainId,            
 @OrgName,            
@CompanyId,            
 @DisplayName,            
 @CustomerId,            
 @CustomerName,            
 @CustomerCompanyName,            
 @UserPrincipalName,            
 @DomainName,            
 @PageNo,            
 @PageSize,            
 @SortExpression,            
 @SortDirection,            
 @SubsFilterOption,            
 @SAMAccountName,            
 @Address,            
 @City,            
 @State,            
 @Zip,            
 @CountryId,            
 @Phone,            
 @JobTitle,            
 @Company,            
 @Department,            
 @Office,            
 @SubResellerId,            
 @ADSyncEnabled,            
 @PackageTypeId,            
 @Locked,            
 @StatusId,    
 @AccountTypeId    
            
 Update #temp_UserData Set SyncEnabled ='1'             
 Where Exists (Select ADUserId from HB_tblADirUsers Where ADUserId=#temp_UserData.ADUserId and OnPremisesUserSID!='')            
            
 Update #temp_UserData Set [Status] = '1' Where UserLDAP != ''            
 Update #temp_UserData Set [Status] = '1' Where Status='0' and not Exists (SELECT TOP 1 HB_tblADirUserGroupJobs.ADUserId FROM HB_tblADirUserGroupJobs             
 WHERE StatusId in (0,1) AND HB_tblADirUserGroupJobs.ADUserId = #temp_UserData.ADUserID)            
            
 If(@SubsFilterOption != 0)             
 Begin                    
  Delete from #temp_UserData where ID not in            
  (Select ID from #temp_UserData Where (@SubsFilterOption = 1 AND EXServiceData = '' AND OCSServiceData = '' AND SPServiceData = ''             
  AND CRMServiceData = '' AND CSPServiceData = '' and RDSServiceData = '' and WFHServiceData = '')                 
    OR (@SubsFilterOption = 2 AND (EXServiceData != '' OR OCSServiceData != '' OR SPServiceData != '' OR CRMServiceData != '' OR CSPServiceData != '' OR RDSServiceData != ''             
    OR WFHServiceData != ''))                              
    OR (@SubsFilterOption = 3 AND EXServiceData != '')                              
    OR (@SubsFilterOption = 4 AND OCSServiceData != '')                              
    OR (@SubsFilterOption = 5 AND SPServiceData != '')                              
    OR (@SubsFilterOption = 6 AND CRMServiceData != '')                              
    OR (@SubsFilterOption = 7 AND CSPServiceData != '')                              
    OR (@SubsFilterOption = 8 AND ADServiceData != '')                              
    OR (@SubsFilterOption = 9 AND RDSServiceData != '')                              
    OR (@SubsFilterOption = 10 AND WFHServiceData != '')                              
    )                              
 End             
          
 UPDATE #temp_UserData          
 SET #temp_UserData.MailUserId = CONVERT(NVARCHAR, MU.MailUserId) + '^' + CONVERT(NVARCHAR, MU.OrganizationId)          
 FROM #temp_UserData TUS, Hb_tblExchangeMailUsers MU          
 JOIN HB_tblADirUsers ADU          
 ON MU.ADUserId = ADU.ADUserID          
 WHERE MU.ADUserId = TUS.ADUserId;          
          
 UPDATE #temp_UserData WITH (ROWLOCK) SET #temp_UserData.MaxID = (SELECT Count(ID) FROM #temp_UserData)             
                                             
 DECLARE @Offset  INT                                            
                                            
 IF (@PageNo > 0)                                            
 BEGIN                       
  SET @Offset = (@PageNo-1) * @PageSize;                                            
 END                                            
                                            
 SET @SQL = ''            
                              
 If (@PageSize !='-1')                              
 Begin                            
  SET @SQL =  'SELECT TOP '+ CONVERT(VARCHAR, @PageSize) +' * FROM #temp_UserData WHERE ID NOT IN (SELECT ID FROM ' +                        
   '(SELECT TOP '+ CONVERT(VARCHAR, ISNULL(@Offset, 0)) +' ID FROM #temp_UserData ORDER BY '+@SortExpression+' '+@SortDirection + ' ) as Tbl1) '                
              
 End                              
 Else                              
 begin                              
  SET @SQL =  ' SELECT  *  FROM #temp_UserData'            
 End                          
            
   SET @SQL = @SQL + ' ORDER BY '+@SortExpression+' '+@SortDirection                
             
    
 EXEC (@SQL)                   
                                     
 DROP TABLE #temp_UserData                              
            
END           
GO

IF EXISTS(SELECT * FROM SYS.INDEXES  WHERE NAME='NCI_HB_tblAdirUsersDetail_ADUserId' AND object_id = OBJECT_ID('HB_tblADirUsersDetail'))
BEGIN
	DROP INDEX [NCI_HB_tblAdirUsersDetail_ADUserId] on [HB_tblADirUsersDetail]
END
GO
 
CREATE NONCLUSTERED INDEX [NCI_HB_tblAdirUsersDetail_ADUserId] ON [HB_tblADirUsersDetail]
(
	[ADUserID] ASC, [HostedOrgId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO

ALTER PROCEDURE [SP_EM_Insert_HB_tblADirUsers]      
 (@CustomerID_1  [int],      
  @ADDomainID_2  [int],      
  @DisplayName_3  [nvarchar](255),      
  @DomainUserName_4  [nvarchar](255),      
  @UserLDAPURL_5  [nvarchar](255),      
  @Type_6  [int], @HostedOrgId int)      
      
AS       
BEGIN     
Declare @2FAEnabled bit      
      
Set @2FAEnabled = (Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId= (SELECT CompanyId FROM tblCustomers WHERE CustomerId = @CustomerID_1))     
Set @2FAEnabled = ISNULL((Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = (SELECT CompanyId FROM tblCustomers WHERE CustomerId = @CustomerID_1)) ,  
(Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = 1))  
      
INSERT INTO [HB_tblADirUsers]       
  ( [CustomerID],      
  [ADDomainID],      
  [DisplayName],      
  [DomainUserName],      
  [UserLDAPURL],      
  [Type],Enabled2FA, HOrgId)       
       
VALUES       
 ( @CustomerID_1,      
  @ADDomainID_2,      
  @DisplayName_3,      
  @DomainUserName_4,      
  @UserLDAPURL_5,      
  @Type_6, @2FAEnabled, @HostedOrgId)    
END  
GO

ALTER PROCEDURE [SP_EM_AddPendingExchangeMailbox]         
(        
@OrganizationID_1 [INT],         
@MailboxType_2 [NVARCHAR](50),         
@MailBoxDisplayName_3 [NVARCHAR](255),         
@SAMAccountName_4 [NVARCHAR](50),         
@MailBoxPassword_5 [NVARCHAR](500),         
@Disabled_6 [BIT],         
@UserLDAPUrl_7 [NVARCHAR](250),         
@ExchangeAlias_8 [NVARCHAR](250),         
@HideFromOtherALs_9 [BIT],         
@ADUserId   INT,         
@ADDomainId INT,         
@Status     INT,         
@UPN [NVARCHAR](255),         
@ManagerID              INT,         
@MailBoxDbName          NVARCHAR(500),         
@LangCode               NVARCHAR(50),         
@TImeZone               NVARCHAR(250),         
@LinkedDomainController NVARCHAR(500),         
@LinkedMasterAccount    NVARCHAR (500),         
@LinkedAdminLogin       NVARCHAR (500),         
@LinkedAdminPassword    NVARCHAR (500)         
)         
AS         
  IF (@ADUserId != '0')         
  SELECT @SAMAccountName_4 = domainusername, @MailBoxDisplayName_3 = displayname, @UPN = upname FROM hb_tbladirusers WHERE aduserid=@ADUserId         
        
  INSERT INTO [HB_tblExchangeMailboxes]([OrganizationID], [MailboxType], [MailBoxDisplayName], [SAMAccountName], [MailBoxPassword], [Disabled], [UserLDAPUrl], [ExchangeAlias],      
    [HideFromOtherALs], [Status], [UPN], [ManagerID], mailboxdbname, langcode, timezone, linkeddomaincontroller, linkedmasteraccount, linkedadminlogin, linkedadminpassword,      
 UsageHistory)      
  VALUES(@OrganizationID_1, @MailboxType_2, @MailBoxDisplayName_3, @SAMAccountName_4, @MailBoxPassword_5, @Disabled_6, @UserLDAPUrl_7, @ExchangeAlias_8, @HideFromOtherALs_9,      
    @Status, @UPN, @ManagerID, @MailBoxDbName, @LangCode, @TimeZone, @LinkedDomainController, @LinkedMasterAccount, @LinkedAdminLogin, @LinkedAdminPassword, '[]')       
        
  DECLARE @MBId INT         
        
  SET @MBId=(SELECT Scope_identity())         
        
  DECLARE @HostedOrgId INT         
        
  SET @HostedOrgId = (SELECT hostedorgid FROM hb_tblexchangeorganizations WHERE organizationid=@OrganizationID_1)         
        
  IF (@HostedOrgId IS NULL)         
  BEGIN         
    SET @HostedOrgId='0'         
  END         
        
  IF (@HostedOrgId !='0')         
  BEGIN         
    IF @ADUserId!='0'         
    BEGIN         
        
      UPDATE hb_tblexchangemailboxes SET aduserid = @ADUserId WHERE mailboxid=@MBId         
        
      IF @MailboxType_2 !='User Mailbox'         
      BEGIN         
        UPDATE hb_tbladirusers SET logindisable='1' WHERE  aduserid=@ADUserId  
  UPDATE HB_tblSyncADUser SET logindisable='1' WHERE  aduserid=@ADUserId      
      END         
        
      EXEC sp_em_insert_hb_tbladirusersdetail @ADUserID, @HostedOrgId, '1'         
    END         
    ELSE         
    BEGIN         
    DECLARE @CustomerId INT         
    SET @CustomerId = (SELECT customerid FROM hb_tblexchangehosting WHERE exchhostingid = (SELECT exchhostingid FROM hb_tblexchangeorganizations         
                           WHERE  organizationid=@OrganizationID_1))         
        
    EXEC sp_em_insert_hb_tbladirusers @CustomerId, @ADDomainId, @MailBoxDisplayName_3, @SAMAccountName_4, @UserLDAPUrl_7, '1', @HostedOrgId      
        
    SET @ADUserId = (SELECT TOP(1) aduserid FROM hb_tbladirusers WHERE addomainid = @AdDomainId AND customerid = @CustomerId AND displayname = @MailBoxDisplayName_3         
               ORDER BY aduserid DESC)      
      
 update HB_tblADirUsers Set [Password] = @MailBoxPassword_5 where aduserid=@ADUserId      
           
    If @MailboxType_2 !='User Mailbox'                          
    Begin                           
  update HB_tblADirUsers Set LoginDisable='1' where ADUserID=@ADUserId    
  update HB_tblSyncADUser Set LoginDisable='1' where ADUserID=@ADUserId      
    END         
        
    EXEC sp_em_insert_hb_tbladirusersdetail @ADUserID, @HostedOrgId, '1'      
      
    UPDATE hb_tblexchangemailboxes SET aduserid = @ADUserId WHERE mailboxid = @MBId      
      
    UPDATE hb_tbladirusers SET upname = @UPN WHERE aduserid=@ADUserId    
    UPDATE HB_tblSyncADUser SET upname = @UPN WHERE aduserid=@ADUserId   
  END         
END         
select @MBId AS rid      
GO
  
ALTER PROCEDURE [SP_EM_AddExchangeMailbox]             
(            
@OrganizationID_1 [INT],             
@MailboxType_2 [NVARCHAR](50),             
@MailBoxDisplayName_3 [NVARCHAR](255),             
@SAMAccountName_4 [NVARCHAR](50),             
@MailBoxPassword_5 [NVARCHAR](500),             
@Disabled_6 [BIT],             
@UserLDAPUrl_7 [NVARCHAR](250),             
@ExchangeAlias_8 [NVARCHAR](250),             
@HideFromOtherALs_9 [BIT],             
@ADUserId   INT,             
@ADDomainId INT,             
@Status     INT,             
@UPN [NVARCHAR](255),             
@ManagerID INT             
)             
AS             
  IF (@ADUserId != '0')             
  SELECT @SAMAccountName_4 = domainusername, @MailBoxDisplayName_3=displayname, @UPN = upname             
  FROM hb_tbladirusers WHERE  aduserid=@ADUserId      
      
  INSERT INTO [HB_tblExchangeMailboxes]([OrganizationID], [MailboxType], [MailBoxDisplayName], [SAMAccountName], [MailBoxPassword], [Disabled], [UserLDAPUrl],      
   [ExchangeAlias], [HideFromOtherALs], [Status], [UPN], [ManagerID], [UsageHistory])       
  VALUES(@OrganizationID_1, @MailboxType_2, @MailBoxDisplayName_3, @SAMAccountname_4, @MailBoxPassword_5, @Disabled_6, @UserLDAPUrl_7, @ExchangeAlias_8,      
   @HideFromOtherALs_9, @Status, @UPN, @Managerid, '[]')             
            
  DECLARE @MBId INT             
  SET @MBId = (SELECT Scope_identity())             
            
  DECLARE @HostedOrgId INT             
  SET @HostedOrgId = (SELECT hostedorgid FROM hB_tblExchangeOrganizations WHERE organizationid=@OrganizationID_1)            
            
  IF (@HostedOrgId IS NULL)             
  BEGIN             
    SET @HostedOrgId='0'             
  END             
  IF (@HostedOrgId !='0')             
  BEGIN             
    IF @ADUserId!='0'             
    BEGIN             
      UPDATE hb_tblexchangemailboxes SET aduserid=@ADUserId WHERE mailboxid=@MBId             
      IF @MailboxType_2 !='User Mailbox'             
      BEGIN             
        UPDATE hb_tbladirusers SET logindisable='1' WHERE aduserid = @ADUserId  
  UPDATE HB_tblSyncADUser SET logindisable='1' WHERE aduserid = @ADUserId      
      END             
      EXEC sp_em_insert_hb_tbladirusersdetail @ADUserID, @HostedOrgId, '1'             
    END             
    ELSE             
    BEGIN             
      DECLARE @CustomerId INT             
      SET @CustomerId = (SELECT customerid FROM hb_tblexchangehosting WHERE exchhostingid =    
     (SELECT exchhostingid FROM hb_tblexchangeorganizations Where organizationid=@OrganizationID_1))    
      
   EXEC sp_em_insert_hb_tbladirusers @CustomerId, @ADDomainId, @MailBoxDisplayName_3, @SAMAccountName_4, @UserLDAPUrl_7, '1', @HostedOrgId    
       
   SET @ADUserId = (SELECT TOP(1) aduserid FROM hb_tblAdirusers WHERE addomainid=@AdDomainId AND customerid = @CustomerId AND displayname = @MailBoxDisplayName_3    
   ORDER BY aduserid DESC)    
       
   update HB_tblADirUsers Set [Password]=@MailBoxPassword_5 where aduserid=@ADUserId    
       
   If @MailboxType_2 !='User Mailbox'    
   Begin    
    update HB_tblADirUsers Set LoginDisable='1' where ADUserID=@ADUserId    
    update HB_tblSyncADUser Set LoginDisable='1' where ADUserID=@ADUserId    
   END    
       
   EXEC sp_em_insert_hb_tbladirusersdetail @ADUserID, @HostedOrgId, '1'    
       
   UPDATE HB_tblExchangeMailboxes SET aduserid=@ADUserId WHERE  mailboxid=@MBId    
   UPDATE HB_tblADirUsers SET upname = @UPN WHERE aduserid=@ADUserId    
   UPDATE HB_tblSyncADUser SET upname = @UPN WHERE aduserid=@ADUserId  
   
   Delete from HB_tblSyncADUser Where UPName = @UPN and HostedOrgID = @HostedOrgId and ADUserID != @ADUserId  
  END             
END             
select @MBId AS rid       
GO

ALTER PROCEDURE SP_EM_CRM_InsertCRMUser    
(    
@ADUserID [int],    
@OrgId [bigint],    
@DisplayName [nvarchar](255),    
@SAMAccountName [nvarchar](50),    
@Password [nvarchar](500),    
@Disabled [bit],    
@Admin bit,    
@UserLDAPUrl [nvarchar](250),    
@DateCreated [datetime],    
@Role [nvarchar](250),    
@UserName [nvarchar](255),    
@Notes [nvarchar](4000),    
@ADDomainId [int],    
@AdminEmail [nvarchar](255),    
@UserFName [nvarchar](50),    
@UserLName [nvarchar](50),    
@UPName [nvarchar](255),    
@AccessMode [tinyint],    
@CALType [tinyint],@BUId [bigint]    
)    
AS    
BEGIN     
INSERT INTO Hb_tblCRMUsers ([ADUserID], [OrgId], [DisplayName], [SAMAccountName], [Password], [Disabled], [Admin], [UserLDAPUrl], [DateCreated], [Role], [UserName],     
 [Notes], [AdminEmail], [UserFName], [UserLName], [UPN], [AccessMode], [CALType], [BUId])    
VALUES(@ADUserID, @OrgId, @DisplayName, @SAMAccountName, @Password, @Disabled, @Admin, @UserLDAPUrl, @DateCreated, @Role, @UserName, @Notes, @AdminEmail, @UserFName,    
 @UserLName, @UPName, @AccessMode, @CALType, @BUId)    
     
Declare @UserId bigint    
Set @UserId=(Select SCOPE_IDENTITY()) Declare @HostedOUId int Set @HostedOUId=(Select HostedOUId From HB_tblCRMOrganizations Where OrgId=@OrgId)    
    
If (@HostedOUId Is Null)    
Begin    
 Set @HostedOUId='0'    
End    
If(@HostedOUId !='0')    
Begin    
 If @ADUserID!='0'    
 Begin    
  Exec SP_EM_Insert_HB_tblADirUsersDetail @ADUserID, @HostedOUId, '3'    
 End    
 Else    
 Begin    
  Declare @CustomerId int    
  Set @CustomerId = (Select CustomerId From HB_tblCRMHosting Where CRMId = (Select CRMId From HB_tblCRMOrganizations Where OrgID=@OrgID))    
  Exec SP_EM_Insert_HB_tblADirUsers @CustomerId, @ADDomainId, @DisplayName, @SAMAccountName,@UserLDAPUrl,'3', @HostedOUId    
  Set @ADUserId=(Select top(1) ADUserId From HB_tblAdirusers Where ADDomainId=@AdDomainId and CustomerId=@CustomerId and DisplayName= @DisplayName order by ADUserId desc)     
     
  Update HB_tblADirUsers Set [Password]=@Password where ADUserID=@ADUserID    
  Exec SP_EM_Insert_HB_tblADirUsersDetail @ADUserID, @HostedOUId, '3'    
  Update HB_tblCRMUsers Set ADUserId=@ADUserID Where UserId=@UserId    
  Update Hb_tblADirUsers Set UPName=@UPName where ADUserId=@ADUserId    
  Update HB_tblSyncADUser Set UPName=@UPName where ADUserId=@ADUserId  
  
   Delete from HB_tblSyncADUser Where UPName = @UPName and HostedOrgID = @HostedOUId and ADUserID != @ADUserId  
 End    
End    
Select @UserId as RID    
END     
GO

ALTER PROCEDURE SP_EM_CRM_UpdateUserAfterOrgProvisioned    
(    
@OrgId int,    
@UserId int,    
@SAMAccountName nvarchar(200),    
@UserLDAP nvarchar(200),    
@UserName nvarchar(255),    
@ADDomainId int,    
@Password nvarchar(500),    
@AdminEmail nvarchar(255),    
@DisplayName nvarchar(255),    
@ADUserId int,    
@IsAdmin bit,    
@Role nvarchar(250),    
@UPN nvarchar(255)    
)    
AS    
Update Hb_tblCRMUsers set SAMAccountName = @SAMAccountName, UserLDAPURL = @UserLDAP, UserName = @UserName, Admin = @IsAdmin, Role = @Role, UPN = @UPN,    
 DisplayName = @DisplayName, AdminEmail = @AdminEmail where UserId = @UserId    
    
Declare @HostedOUId int    
Set @HostedOUId = (Select HostedOUId From HB_tblCRMOrganizations Where OrgId=@OrgId)    
    
If (@HostedOUId Is Null)    
Begin    
 Set @HostedOUId='0'    
End    
If (@HostedOUId !='0')    
Begin    
 If @ADUserID!='0'    
 Begin    
  Exec SP_EM_Insert_HB_tblADirUsersDetail @ADUserID, @HostedOUId, '3'    
 End    
 Else    
 Begin    
  Declare @CustomerId int    
  Set @CustomerId = (Select CustomerId From HB_tblCRMHosting Where CRMId=(Select CRMId From HB_tblCRMOrganizations Where OrgID=@OrgID))    
      
  Exec SP_EM_Insert_HB_tblADirUsers @CustomerId, @ADDomainId, @DisplayName, @SAMAccountName,@UserLDAP,'3', @HostedOUId   
  Set @ADUserId=(Select top(1) ADUserId From HB_tblAdirusers Where ADDomainId=@AdDomainId and CustomerId = @CustomerId and DisplayName = @DisplayName order by ADUserId desc)    
      
  Update HB_tblADirUsers Set [Password]=@Password where ADUserID=@ADUserID    
  Exec SP_EM_Insert_HB_tblADirUsersDetail @ADUserID, @HostedOUId, '3'    
  Update HB_tblCRMUsers Set ADUserId=@ADUserID Where UserId=@UserId    
  Update Hb_tblAdirUsers Set UPName=@UPN where ADUserID=@ADUserID    
  Update HB_tblSyncADUser Set UPName=@UPN where ADUserID=@ADUserID  
  
   Delete from HB_tblSyncADUser Where UPName = @UPN and HostedOrgID = @HostedOUId and ADUserID != @ADUserId  
 End    
End    
Select @UserId as RID    
GO

ALTER PROCEDURE [SP_EM_Insert_HB_tblADirUsers_Direct]      
(      
 @CustomerId  INT,        
 @ADDomainId  INT,        
 @HostedOrgId INT,        
 @HostedSvcId INT,        
 @DisplayName NVARCHAR(255),         
 @DomainUserName NVARCHAR(255),         
 @UserLDAPURL NVARCHAR(255),        
 @Type   INT,        
 @DateStamp  DATETIME,        
 @Password  NVARCHAR(255),        
 @UPName   NVARCHAR(255)      
)        
AS        
BEGIN    
Declare @2FAEnabled bit      
   
Set @2FAEnabled = ISNULL((Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where 
CompanyId = (SELECT CompanyId FROM tblCustomers WHERE CustomerId = @CustomerId)) ,  
(Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = 1))  
      
 INSERT INTO HB_tblADirUsers([CustomerID], [ADDomainID], [DisplayName], [DomainUserName], [UserLDAPURL], [Type], [DateStamp], [Password], 
 [UPName], [Enabled2FA], HOrgId)        
     VALUES(@CustomerId, @ADDomainId, @DisplayName, @DomainUserName, @UserLDAPURL, @Type, @DateStamp, @Password, @UPName, @2FAEnabled, @HostedOrgId)        
    
declare @ADUserId int;      
select @ADUserId = SCOPE_IDENTITY();    
    
  
  Delete from HB_tblSyncADUser Where UPName = @UPName and HostedOrgID = @HostedOrgId and ADUserID != @ADUserId    
    
If @UserLDAPURL != '' and Exists(Select AccountTypeId from Hb_tblAdirUsersAccountType Where @UserLDAPURL like '%CN=%OU=' + SubOUName + ',OU=%')  
Update HB_tblADirUsers Set AccountTypeId = (Select AccountTypeId from Hb_tblAdirUsersAccountType Where @UserLDAPURL like '%CN=%OU=' + SubOUName + ',OU=%')   
Where ADUserID=@ADUserId  
  
 INSERT INTO [HB_tblADirUsersDetail]([ADUserID], [HostedOrgID], [HostedSvcId], [DateStamp])        
     VALUES(@ADUserId, @HostedOrgId, @HostedSvcId, @DateStamp)        
  
SELECT @ADUserId AS RID      
END      
GO

Alter PROCEDURE [SP_EM_SP_Insert_HB_tblSPUsers]    
(     
 @ADUserID_1  [int],          
 @OrgID_2  [bigint],          
 @DisplayName_3  [nvarchar](255),          
 @SAMAccountName_4  [nvarchar](50),          
 @Password_5  [nvarchar](500),          
 @Disabled_6  [bit],          
 @Admin_7  [bit],          
 @UserLDAPUrl_8  [nvarchar](250),          
 @Email nvarchar(250),          
 @UserType nvarchar(2000),          
 @UserName nvarchar (255),          
 @Notes nvarchar (4000),          
 @ADDomainId [int],          
 @UPN [nvarchar](255)          
)          
AS         
BEGIN        
 INSERT INTO [HB_tblSPUsers]([ADUserID],[OrgID],[DisplayName],[SAMAccountName],[Password],[Disabled],[Admin],[UserLDAPUrl],[Email],[UserType],[UserName],[Notes],[UPN])      
 VALUES(@ADUserID_1,@OrgID_2,@DisplayName_3,@SAMAccountName_4,@Password_5,@Disabled_6,@Admin_7,@UserLDAPUrl_8,@Email,@UserType,@UserName,@Notes,@UPN)    
     
 Declare @MBId bigint           
 Set @MBId=(Select SCOPE_IDENTITY())          
     
 Declare @HostedOrgId int          
 Set @HostedOrgId=(Select HostedOrgId From HB_tblSPOrganizations Where OrgId=@OrgID_2)          
     
 If (@HostedOrgId Is Null)          
 Begin          
  Set @HostedOrgId='0'          
 End          
     
 If (@HostedOrgId !='0')          
 Begin           
  If @ADUserID_1!='0'          
  Begin          
   Exec SP_EM_Insert_HB_tblADirUsersDetail @ADUserID_1, @HostedOrgId, '2'          
  End          
  Else          
  Begin          
   Declare @CustomerId int          
   Set @CustomerId=(Select CustomerId From HB_tblSPHosting Where SPID=(Select SPID From HB_tblSPOrganizations Where OrgID=@OrgID_2))    
       
   Exec SP_EM_Insert_HB_tblADirUsers @CustomerId, @ADDomainId, @DisplayName_3, @SAMAccountName_4,@UserLDAPUrl_8,'2', @HostedOrgId    
       
   Set @ADUserID_1=(Select top(1) ADUserId From HB_tblAdirusers Where ADDomainId=@AdDomainId and CustomerId=@CustomerId     
 and Displayname=@DisplayName_3 order by aduserid desc)    
     
 Update HB_tblADirUsers Set [Password]=@Password_5 where ADUserID=@ADUserID_1          
      
   Exec SP_EM_Insert_HB_tblADirUsersDetail @ADUserID_1, @HostedOrgId, '2'          
    
   Update HB_tblSPUsers Set ADUserId=@ADUserID_1 Where UserId=@MBId          
   update hb_tbladirusers set UPName = @UPN where ADUserID=@ADUserId_1    
   update HB_tblSyncADUser set UPName = @UPN where ADUserID=@ADUserId_1  
  
   Delete from HB_tblSyncADUser Where UPName = @UPN and HostedOrgID = @HostedOrgId and ADUserID != @ADUserID_1  
  End          
 End    
Select @MBId  as RID        
END      
GO



Alter Procedure CSP_GetPasswordPolicyForUser
(
@ADUserId int
)
As

Select ADUserID, DomainUserName + N'↝User' as UserInfo, HB_tblADirUsers.ADDomainID, HOrgId, PasswordPolicyId from 
HB_tblADirUsers, HB_tblADirHostedOrganizations Where ADUserID=@ADUserId and HOrgId=HostedOrgID
GO

Alter PROCEDURE SP_EM_ExGetADUserWithHostedOrgId
(          
@ADDomainId int,          
@CustomerId int,          
@HostedSvcID int,          
@HostedOrgId int          
)          
As          


    
if (@HostedSvcID='-1')          
Begin  
  
Select U.ADUserId, U.DisplayName, U.UPName, U.Password, U.DomainUserName, U.UserLDAPURL, U.DisplayName, U.UserDisabled
, U.LoginDisable
From HB_tblADirUsers U         
Where U.ADDomainID=@ADDomainId and U.CustomerId=@CustomerId          
And U.ADUserId in(Select ADUserId From HB_tblADirUsersDetail Where HostedOrgId=@HostedOrgId )          

and U.UserLdapURL!=''        
Order By U.DisplayName Asc       
  
End  
Else if (@HostedSvcID='2' or @HostedSvcID='3')          
Begin          


          
Select U.ADUserId, U.DisplayName, U.UPName, U.Password, U.DomainUserName, U.UserLDAPURL, U.DisplayName, U.UserDisabled
, U.LoginDisable
From HB_tblADirUsers U, Hb_tblAdirUsersAccountType           
Where U.ADDomainID=@ADDomainId and U.CustomerId=@CustomerId          
And U.ADUserId in(Select ADUserId From HB_tblADirUsersDetail Where HostedOrgId=@HostedOrgId )          
and U.LoginDisable='0' and U.UserLdapURL!=''        
and U.AccountTypeId = Hb_tblAdirUsersAccountType.AccountTypeId and EnterpriseServicesAllowed = 1  
Order By U.DisplayName Asc       
          
End          
Else          
Begin    
  
Select U.ADUserId, U.DisplayName, U.UPName, U.Password, U.DomainUserName, U.UserLDAPURL, U.DisplayName, U.UserDisabled
, U.LoginDisable
From HB_tblADirUsers U, Hb_tblAdirUsersAccountType                    
Where U.ADDomainID=@ADDomainId and U.CustomerId=@CustomerId          
and U.LoginDisable='0'          
And U.ADUserId Not In           
(Select ADUserId From HB_tblADirUsersDetail Where HostedSvcID=@HostedSvcId)          
And U.ADUserId in (Select ADUserId From HB_tblADirUsersDetail Where HostedOrgId=@HostedOrgId )  
and U.UserLdapURL!=''           
and U.AccountTypeId = Hb_tblAdirUsersAccountType.AccountTypeId and EnterpriseServicesAllowed = 1  
Order By U.DisplayName Asc      
End   
GO


  
Alter PROCEDURE SP_EM_SearchOrgUser   
(          
 @HostedOrgId int,                              
 @ADDomainId  INT,                                            
 @OrgName   nvarchar(255),                                       
 @CompanyId INT,                                           
 @DisplayName NVARCHAR(255),                                      
 @CustomerId INT,                                      
 @CustomerName NVARCHAR(200),                                    
 @CustomerCompanyName NVARCHAR(128),                                  
 @UserPrincipalName NVARCHAR(255),                                 
 @DomainName NVARCHAR(255),                                            
 @PageNo   INT,                                            
 @PageSize  INT,                                            
 @SortExpression NVARCHAR(1000),                                            
 @SortDirection VARCHAR(10) ,                              
 @SubsFilterOption int ,                              
 @SAMAccountName nvarchar(200),                              
 @Address  nvarchar(1000),                              
 @City   nvarchar(200),                                
 @State   nvarchar(200),                               
 @Zip   nvarchar(50),                              
 @CountryId  int,                              
 @Phone   nvarchar(50),                              
 @JobTitle  nvarchar(200),                              
 @Company  nvarchar(200),                              
 @Department nvarchar(200),                              
 @Office  nvarchar(1000),                              
 @SubResellerId INT,                              
 @ADSyncEnabled bit,                              
 @PackageTypeId int,                          
 @Locked BIGINT,            
 @StatusId int ,    
 @AccountTypeId int, @StaffRoleId int     
)          
AS                        
BEGIN                        
           

 EXEC CSP_UpdateHostedOrgExtendedData          
 EXEC CSP_UpdateHostedUserExtendedData          
          
  EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustomerName OUTPUT                   
                      
   IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[#temp_UserData]') AND OBJECTPROPERTY(ID, N'IsUserTable') = 1)                                            
   DROP TABLE #temp_UserData                                     
                                      
   
   CREATE TABLE #temp_UserData                                            
   (                                             
    ID     INT IDENTITY (1,1) ,                        
    ADUserId   INT,                                           
    ADUserName   NVARCHAR(500),                                            
    LogonName   NVARCHAR(500),                                            
    DisplayName   NVARCHAR(500),                                            
    [Password]   NVARCHAR(500),                                            
    UserLDAP   NVARCHAR(4000),                                            
    ADDomainId   INT,                                              
    ADDomainName  NVARCHAR(500),                                            
    HostedOrgId   INT,                                            
    OrganizationName NVARCHAR(300),                                            
    OrganizationLDAP NVARCHAR(4000),                                            
    CustomerId   INT,                                            
    CompanyId INT,                              
    CustDisplayName  NVARCHAR(200),                                
    CustCompanyName  NVARCHAR(200),                                                
    MaxID    INT DEFAULT (0),                                            
    LoginDisable BIT DEFAULT (0),                                      
    UPName nvarchar (500) ,                            
    UserDisabled bit,                  
    OrgGUID nvarchar(100),                              
    OnPremisesUserSID nvarchar(100),                              
    PackageTypeId int,                   
    Locked bit,            
    SyncEnabled bit   ,                                
    [Status]     int, 
    LogonHoursTemplate nvarchar(4000),                              
    ADServiceData nvarchar(max) default(''),                              
    EXServiceData nvarchar(max) default(''),                              
    SPServiceData nvarchar(max) default(''),                              
    CRMServiceData nvarchar(max) default(''),                              
    OCSServiceData nvarchar(max) default(''),       
 CSPServiceData nvarchar(max) default(''),                              
    WFHServiceData nvarchar(max) default(''),                              
    RDSServiceData nvarchar(max) default(''),       
 SHServiceData nvarchar(max) default(''),      
    AlternateEmail nvarchar(max) default(''),       
 MailUserId NVARCHAR(50) default('')   ,    
 AccountType NVARCHAR(100) default('')    
   )                               
                               
   If (ISNUMERIC(@OrgName) = '1')                              
   Begin                              
   Set @OrgName= IsNull((Select OrganizationName from HB_tblADirHostedOrganizations Where HostedOrgId = @OrgName), @OrgName)                               
   End            
            
 Declare @SortExp nvarchar(200)                    
 Set @SortExp = @SortExpression + ' ' + @SortDirection            
            
 Declare @Where nvarchar(max)                    
 SET @Where = ' FROM HB_tblADirUsers ADU, HB_tblADirDomains AD, HB_tblADirHostedOrganizations HO, tblCustomers C, HB_tblADirHostedUserExtendedData ED  ,Hb_tblAdirUsersAccountType AT          
  WHERE ADU.ADDomainID = AD.ADDomainID AND  ADU.HOrgId = HO.HostedOrgID  AND  ADU.CustomerID = C.CustomerID and ED.ADUserId = ADU.ADUserId  and ADU.AccountTypeId = AT.AccountTypeId          
  '            
             
 If(@HostedOrgID > 0)            
 SET @Where = @Where + ' And ADU.HOrgId =  ' + CONVERT(NVARCHAR(10), @HostedOrgID)            
            
 If(@ADSyncEnabled = '1')            
 SET @Where = @Where + ' And ADU.OnPremisesUserSID != '''' '            
            
 If(@CustomerId > 0)            
 SET @Where = @Where + ' And ADU.CustomerID = ' + CONVERT(NVARCHAR(10), @CustomerId)            
            
 If(@CompanyID > 0)            
 SET @Where = @Where + ' And C.CompanyID = ' + CONVERT(NVARCHAR(10), @CompanyID)            
            
 If(@ADDomainId > 0)            
 SET @Where = @Where + ' And HO.ADDomainId = ' + CONVERT(NVARCHAR(10), @ADDomainId)          
     
 If(@AccountTypeId > 0)            
 SET @Where = @Where + ' And AT.AccountTypeId = ' + CONVERT(NVARCHAR(10), @AccountTypeId)      
            
 If(@OrgName != '')            
 BEGIN            
 SET @OrgName = Replace(@OrgName, '[','[[]')            
 SET @Where = @Where + ' and (HO.OrganizationName like ''%''+N'''+ replace(@OrgName,'''','''''')+'''+''%'' OR HO.OrganizationInternalName like ''%''+N'''+ replace(@OrgName,'''','''''')+'''+''%''            
  OR HO.OrgGUID like ''%''+N'''+ replace(@OrgName,'''','''''')+'''+''%'' ) '                          
 END            
            
 If(@DisplayName != '')            
 SET @Where = @Where + ' And ADU.DisplayName like ''%''+N'''+ replace(@DisplayName,'''','''''')+'''+''%'' '            
            
 If(@CustomerName != '')            
 SET @Where = @Where + ' And (C.FirstName+'' ''+C.LastName) LIKE ''%''+N'''+ replace(@CustomerName,'''','''''')+'''+''%'' '            
            
 If(@CustomerCompanyName != '')            
 SET @Where = @Where + ' And C.CompanyName like ''%''+N'''+ replace(@CustomerCompanyName,'''','''''')+'''+''%'' '            
            
 If(@UserPrincipalName != '')            
 SET @Where = @Where + ' And (ADU.UPName like ''%''+N'''+ replace(@UserPrincipalName,'''','''''')+'''+''%''             
  OR ADU.AlternateEmail like ''%''+N'''+ replace(@UserPrincipalName,'''','''''')+'''+''%''            
  OR ED.AlternateEmail LIKE ''%''+N'''+ replace(@UserPrincipalName,'''','''''')+'''+''%'' ) '            
            
 If(@DomainName != '')            
 SET @Where = @Where + ' And ADU.UPName like ''%''+N'''+ replace(@DomainName,'''','''''')+'''+''%'' '            
            
 If(@SAMAccountName != '')            
 SET @Where = @Where + ' And ADU.DomainUserName like ''%''+N'''+ replace(@SAMAccountName,'''','''''')+'''+''%'' '            
            
 If(@Address != '')            
 SET @Where = @Where + ' And ADU.[Address] like ''%''+N'''+ replace(@Address,'''','''''')+'''+''%'' '           
            
 If(@City != '')            
 SET @Where = @Where + ' And ADU.City like ''%''+N'''+ replace(@City,'''','''''')+'''+''%'' '            
            
 If(@State != '')            
 SET @Where = @Where + ' And ADU.[State] like ''%''+N'''+ replace(@State,'''','''''')+'''+''%'' '            
            
 If(@Zip != '')            
 SET @Where = @Where + ' And ADU.Zip like ''%''+N'''+ replace(@Zip,'''','''''')+'''+''%'' '            
            
 If(@CountryId > 0)            
 SET @Where = @Where + ' And ADU.Country = ' + CONVERT(NVARCHAR(10), @CountryId)            
            
 If(@Phone != '')            
 SET @Where = @Where + ' And (ADU.HomePhone like ''%''+N'''+ replace(@Phone,'''','''''')+'''+''%''   
 OR ADU.BusinessPhone like ''%''+N'''+ replace(@Phone,'''','''''')+'''+''%''             
  OR ADU.MobilePhone like ''%''+N'''+ replace(@Phone,'''','''''')+'''+''%'') '            
            
 If(@JobTitle != '')            
 SET @Where = @Where + ' And ADU.JobTitle like ''%''+N'''+ replace(@JobTitle,'''','''''')+'''+''%'' '            
            
 If(@Company != '')            
 SET @Where = @Where + ' And ADU.Company like ''%''+N'''+ replace(@Company,'''','''''')+'''+''%'' '            
            
 If(@Department != '')            
 SET @Where = @Where + ' And ADU.Department like ''%''+N'''+ replace(@Department,'''','''''')+'''+''%'' '            
            
 If(@Office != '')            
 SET @Where = @Where + ' And ADU.Office like ''%''+N'''+ replace(@Office,'''','''''')+'''+''%'' '            
            
 If(@SubResellerId > 0)            
 SET @Where = @Where + ' And C.SubResellerId = ' + CONVERT(NVARCHAR(10), @SubResellerId)            
   
If @StaffRoleId > 0  
BEGIN  
Set @Where=@Where+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA   
 Where RA.CustomerId = C.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
  
Set @Where=@Where+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA   
 Where RA.CompanyId = C.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
END  
  
 If(@Locked >= 0)            
 SET @Where = @Where + ' And ADU.Locked = ' + CONVERT(NVARCHAR(10), @Locked)            
            
 If(@StatusId > 0)            
 BEGIN            
  if(@StatusId = 1)            
  SET @Where = @Where + ' And ADU.UserDisabled = 0 '            
  else if(@StatusId = 2)            
  SET @Where = @Where + ' And ADU.UserDisabled = 1 '            
  else if(@StatusId = 3)            
  SET @Where = @Where + ' And ADU.LoginDisable = 1 '            
  else if(@StatusId = 4)            
  SET @Where = @Where + ' And ADU.LoginDisable = 0 '            
  else if(@StatusId = 5)            
  SET @Where = @Where + ' And EXISTS(SELECT TOP 1 HB_tblADirUserGroupJobs.ADUserId FROM HB_tblADirUserGroupJobs WHERE StatusId             
  NOT IN (2,3) AND HB_tblADirUserGroupJobs.ADUserId = ADU.ADUserID) '            
 END            
            
 DECLARE @SQL NVARCHAR(max)             
            
 
 SET @SQL = 'INSERT INTO #temp_UserData (             
   ADUserId, ADUserName, DisplayName, LogonName, [Password], UserLDAP, ADDomainId, ADDomainName, HostedOrgId, OrganizationName,             
   OrganizationLDAP, CustomerId, CustDisplayName, CustCompanyName, LoginDisable, UPName,             
   UserDisabled,  CompanyId, OrgGUID, OnPremisesUserSID,PackageTypeId,Locked, SyncEnabled, [Status], LogonHoursTemplate, ADServiceData,            
   EXServiceData, SPServiceData, CRMServiceData, OCSServiceData, CSPServiceData, WFHServiceData, RDSServiceData, AlternateEmail,               
   SHServiceData,AccountType)             
   SELECT DISTINCT             
  ADU.ADUserID, ADU.DomainUserName, ADU.DisplayName, ADU.DomainUserName, ADU.[Password], ADU.UserLDAPURL, ADU.ADDomainID, AD.ADDomainName,             
  ADU.HOrgId, HO.OrganizationName, HO.OrganizationLDAP, ADU.CustomerID,             
  CAST(C.CustomerID AS VARCHAR) + '' - '' + C.FirstName + '' '' + C.LastName, C.CompanyName, ADU.LoginDisable, ADU.UPName,             
  ADU.UserDisabled, C.CompanyId, HO.OrgGUID,  OnPremisesUserSID, ' + convert(nvarchar(10), @PackageTypeId) + ' AS PackageTypeId, Locked, ''0'', ''0'',            
  LogonHoursTemplate, ADServiceData, EXServiceData, SPServiceData, CRMServiceData, OCSServiceData, CSPServiceData, WFHServiceData,       
  RDSServiceData, ED.AlternateEmail, SHServiceData  , AT.AccountTypeName           
  ' + @Where + ' ORDER BY ' + @SortExp             
              
            
 EXEC sp_executesql @SQL, N'             
  @HostedOrgId int,            
  @ADDomainId INT,            
  @OrgName nvarchar(255),             
  @CompanyId INT,             
  @DisplayName NVARCHAR(255),            
  @CustomerId INT,            
  @CustomerName NVARCHAR(200),            
  @CustomerCompanyName NVARCHAR(128),            
  @UserPrincipalName NVARCHAR(255),             
  @DomainName NVARCHAR(255),            
  @PageNo INT,            
  @PageSize INT,            
  @SortExpression NVARCHAR(1000),            
  @SortDirection VARCHAR(10),            
  @SubsFilterOption int,            
  @SAMAccountName nvarchar(200),            
  @Address nvarchar(1000),            
  @City nvarchar(200),            
  @State nvarchar(200),             
  @Zip nvarchar(50),            
  @CountryId int,            
  @Phone nvarchar(50),            
  @JobTitle nvarchar(200),            
  @Company nvarchar(200),            
  @Department nvarchar(200),            
  @Office nvarchar(1000),            
  @SubResellerId INT,            
  @ADSyncEnabled bit,            
  @PackageTypeId int,            
  @Locked BIGINT,            
  @StatusId int,    
  @AccountTypeId int',             
  @HostedOrgId,            
 @ADDomainId,            
 @OrgName,            
@CompanyId,            
 @DisplayName,            
 @CustomerId,            
 @CustomerName,            
 @CustomerCompanyName,            
 @UserPrincipalName,            
 @DomainName,            
 @PageNo,            
 @PageSize,            
 @SortExpression,            
 @SortDirection,            
 @SubsFilterOption,            
 @SAMAccountName,            
 @Address,            
 @City,            
 @State,            
 @Zip,            
 @CountryId,            
 @Phone,            
 @JobTitle,            
 @Company,            
 @Department,            
 @Office,            
 @SubResellerId,            
 @ADSyncEnabled,            
 @PackageTypeId,            
 @Locked,            
 @StatusId,    
 @AccountTypeId    
            
 Update #temp_UserData Set SyncEnabled ='1'             
 Where Exists (Select ADUserId from HB_tblADirUsers Where ADUserId=#temp_UserData.ADUserId and OnPremisesUserSID!='')            
            
 Update #temp_UserData Set [Status] = '1' Where UserLDAP != ''            
 Update #temp_UserData Set [Status] = '1' Where Status='0' and not Exists (SELECT TOP 1 HB_tblADirUserGroupJobs.ADUserId FROM HB_tblADirUserGroupJobs             
 WHERE StatusId in (0,1) AND HB_tblADirUserGroupJobs.ADUserId = #temp_UserData.ADUserID)            
            
 If(@SubsFilterOption != 0)             
 Begin                    
  Delete from #temp_UserData where ID not in            
  (Select ID from #temp_UserData Where (@SubsFilterOption = 1 AND EXServiceData = '' AND OCSServiceData = '' AND SPServiceData = ''             
  AND CRMServiceData = '' AND CSPServiceData = '' and RDSServiceData = '' and WFHServiceData = '')                 
    OR (@SubsFilterOption = 2 AND (EXServiceData != '' OR OCSServiceData != '' OR SPServiceData != '' OR CRMServiceData != '' OR CSPServiceData != '' OR RDSServiceData != ''             
    OR WFHServiceData != ''))                              
    OR (@SubsFilterOption = 3 AND EXServiceData != '')                              
    OR (@SubsFilterOption = 4 AND OCSServiceData != '')                              
    OR (@SubsFilterOption = 5 AND SPServiceData != '')                              
    OR (@SubsFilterOption = 6 AND CRMServiceData != '')                              
    OR (@SubsFilterOption = 7 AND CSPServiceData != '')                              
    OR (@SubsFilterOption = 8 AND ADServiceData != '')                              
    OR (@SubsFilterOption = 9 AND RDSServiceData != '')                              
    OR (@SubsFilterOption = 10 AND WFHServiceData != '')                              
    )                              
 End             
          
 UPDATE #temp_UserData          
 SET #temp_UserData.MailUserId = CONVERT(NVARCHAR, MU.MailUserId) + '^' + CONVERT(NVARCHAR, MU.OrganizationId)          
 FROM #temp_UserData TUS, Hb_tblExchangeMailUsers MU          
 JOIN HB_tblADirUsers ADU          
 ON MU.ADUserId = ADU.ADUserID          
 WHERE MU.ADUserId = TUS.ADUserId;          
          
 UPDATE #temp_UserData WITH (ROWLOCK) SET #temp_UserData.MaxID = (SELECT Count(ID) FROM #temp_UserData)             
                                             
 DECLARE @Offset  INT                                            
                                            
 IF (@PageNo > 0)                                            
 BEGIN                       
  SET @Offset = (@PageNo-1) * @PageSize;                                            
 END                                            
                                            
 SET @SQL = ''            
                              
 If (@PageSize !='-1')                              
 Begin                            
  SET @SQL =  'SELECT TOP '+ CONVERT(VARCHAR, @PageSize) +' * FROM #temp_UserData WHERE ID NOT IN (SELECT ID FROM ' +                        
   '(SELECT TOP '+ CONVERT(VARCHAR, ISNULL(@Offset, 0)) +' ID FROM #temp_UserData ORDER BY '+@SortExpression+' '+@SortDirection + ' ) as Tbl1) '                
              
 End                              
 Else                              
 begin                              
  SET @SQL =  ' SELECT  *  FROM #temp_UserData'            
 End                          
            
   SET @SQL = @SQL + ' ORDER BY '+@SortExpression+' '+@SortDirection                
             
    
 EXEC (@SQL)                   
                                     
 DROP TABLE #temp_UserData                              
            
END           
GO

Alter Procedure SPR_GetADUserByDetails
(
 @DomainUserNameWithNetBIOS nvarchar(2000),
 @UserLDAP nvarchar(255),
 @UPN nvarchar(255),
 @UserSID nvarchar(52)
)
AS


  SELECT U.*, AD.DomainNetBIOSName, HOrgId AS HostedOrgID,
  (Select CompanyId from tblCustomers C Where C.CustomerID = U.CustomerID) AS CompanyId
  FROM HB_tblADirUsers U 
  INNER JOIN HB_tblADirDomains AD ON AD.ADDomainID = U.ADDomainID
  WHERE AD.DomainNetBIOSName + '\' + U.DomainUserName = @DomainUserNameWithNetBIOS
  Or UserLDAPURL = @UserLDAP or UPName=@UPN or ObjectSID = @UserSID
GO


ALTER PROCEDURE CSP_Insert_HB_tblADirUsers_Bulk      

(      

@CustomerId  INT,        

@ADDomainId  INT,        

@HostedOrgId INT,        

@HostedSvcId INT,        

@DisplayName NVARCHAR(255),         

@DomainUserName NVARCHAR(255),         

@UserLDAPURL NVARCHAR(255),        

@Type   INT,        

@DateStamp  DATETIME,        

@Password  NVARCHAR(255),        

@UPName   NVARCHAR(255)      

,@SendEMail BIT      

,@AlternateEmail NVARCHAR(255)      

)        

AS        

BEGIN      

Declare @2FAEnabled bit      

Set @2FAEnabled = ISNULL((Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = (SELECT CompanyId FROM tblCustomers WHERE CustomerId = @CustomerId)) ,    

(Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = 1))    

INSERT INTO HB_tblADirUsers([CustomerID], [ADDomainID], [DisplayName], [DomainUserName], [UserLDAPURL], [Type], [DateStamp], 

[Password], [UPName], [SendEmail], [AlternateEmail], [Enabled2FA], [Email], HOrgId)        

VALUES(@CustomerId, @ADDomainId, @DisplayName, @DomainUserName, @UserLDAPURL, @Type, @DateStamp,        

   @Password, @UPName, @SendEMail, @AlternateEmail, @2FAEnabled, @AlternateEmail, @HostedOrgId)
 
declare @ADUserId int;      

select @ADUserId = SCOPE_IDENTITY();
 
INSERT INTO [HB_tblADirUsersDetail]([ADUserID], [HostedOrgID], [HostedSvcId], [DateStamp])        

     VALUES(@ADUserId, @HostedOrgId, @HostedSvcId, @DateStamp)        
 
SELECT @ADUserId AS RID      

END      
GO

Alter PROCEDURE [SP_EM_OCS_Insert_HB_tblADirUsers_Direct_Lync]  
(   
   @CustomerId  INT,  
   @ADDomainId  INT,  
   @HostedOrgId INT,  
   @HostedSvcId INT,  
   @DisplayName NVARCHAR(255),   
   @DomainUserName NVARCHAR(255),   
   @UserLDAPURL NVARCHAR(255),  
   @Type   INT,  
   @DateStamp  DATETIME,  
   @Password  NVARCHAR(255),  
   @UPName   NVARCHAR(255) 
)   
AS  
BEGIN
   declare @ADUserId int;  
   
   Declare @2FAEnabled bit  
   Set @2FAEnabled = ISNULL((Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = (SELECT CompanyId FROM tblCustomers WHERE CustomerId = @CustomerId)) ,
(Select EnabledByDefaultForCustomers from Hb_Tbl2FA Where CompanyId = 1))
    
 INSERT INTO HB_tblADirUsers  
             (  
     [CustomerID]  
             ,[ADDomainID]  
             ,[DisplayName]  
             ,[DomainUserName]  
             ,[UserLDAPURL]  
             ,[Type]  
             ,[DateStamp]  
             ,[Password]  
             ,[UPName]  
     ,[Enabled2FA],
	 HOrgId
             )  
       VALUES  
             (  
     @CustomerId,  
     @ADDomainId,  
     @DisplayName,  
     @DomainUserName,  
     @UserLDAPURL,  
     @Type,  
     @DateStamp,  
     @Password,  
     @UPName,  
   @2FAEnabled  ,
   @HostedOrgId
     )  
          
   Select SCOPE_IDENTITY() As [ADUserId]  
END
GO

UPDATE U SET U.HOrgId = AD.HostedOrgId FROM HB_tblADirUsers U JOIN 
(SELECT DISTINCT ADUserID, HostedOrgId FROM HB_tblADirUsersDetail) AD ON AD.ADUserID = U.ADUserID
WHERE U.HOrgId = 0
AND U.UserLDAPURL != '';
GO


ALTER PROCEDURE [CSP_GetAllAllowedVHDSizeWithTypesAddons]               
(                
@VPSHostingId int         
)                
AS                
BEGIN          
Declare @ResourceId int          
Set @ResourceId=(Select ResourceId From HB_tblResources  Where ResourceInternalId=903)                         
Declare @SoldPackageId int                        
Set @SoldPackageId=(Select SoldPackageID From HB_tblVPSHosting Where VPSHostingID =@VPSHostingId)          
        
 Select SUm(ResourceQuantity) as ResourceQuantity ,PrimaryStorageTypeId ,VPSStorageTypeName   
 From        
 (           
Select Quantity*ResourceQuantity ResourceQuantity,StorageTypeId 
PrimaryStorageTypeId,ISNULL(VPSStorageTypeName,'Not set') VPSStorageTypeName  
From HB_tblAddonsSoldDetail        
inner join HB_tblAddonsSold  on HB_tblAddonsSold.SoldAddOnId= HB_tblAddonsSoldDetail.SoldAddOnId          
inner join HB_tblAddons on HB_tblAddons.AddOnID = HB_tblAddonsSold.AddOnId        
inner join HB_tblAddonTypes on HB_tblAddonTypes.AddOnTypeId = HB_tblAddons.AddOnTypeID        
Left outer join HB_tblVPSStorageTypes On HB_tblVPSStorageTypes.VPSStorageTypeId = HB_tblAddonTypes.StorageTypeId      
Where  SoldToAccountId=@VPSHostingId and HB_tblAddonTypes.PackageTypeID='19' and IsPending='0' and IsCancelled='0' And ResourceId=@ResourceId     
AND (HB_tblAddonsSold.Quantity * HB_tblAddonsSoldDetail.ResourceQuantity) > 0  
) AS tbl        
Where VPSStorageTypeName !=''    
Group by PrimaryStorageTypeId  ,VPSStorageTypeName    
End  
GO
  
ALTER PROCEDURE [CSP_GetAllAllowedVHDSizeWithTypes]                 
(                  
@VPSHostingId int           
)                  
AS                  
BEGIN            
Declare @ResourceId int            
Set @ResourceId=(Select ResourceId From HB_tblResources  Where ResourceInternalId=903)                           
Declare @SoldPackageId int                          
Set @SoldPackageId=(Select SoldPackageID From HB_tblVPSHosting Where VPSHostingID =@VPSHostingId)            
          
 Select SUm(ResourceQuantity) as ResourceQuantity ,PrimaryStorageTypeId ,VPSStorageTypeName   , [Type]  
 From          
 (          
 SELECT ResourceQuantity  ,PrimaryStorageTypeId,ISNULL(VPSStorageTypeName,'Not set') AS VPSStorageTypeName, 1 As [Type]  
 from HB_tblPackages          
 Inner join HB_tblPackagesSold on HB_tblPackagesSold.PackageID = HB_tblPackages.PackageID          
 Inner join HB_tblPackagesSoldDetail on HB_tblPackagesSoldDetail.SoldPackageID = HB_tblPackagesSold.SoldPackageID          
 Left outer join HB_tblVPSStorageTypes On HB_tblVPSStorageTypes.VPSStorageTypeId = HB_tblPackages.PrimaryStorageTypeId        
 Where HB_tblPackagesSoldDetail.SoldPackageID=@SoldPackageId And ResourceID=@ResourceId     
Union ALl          
Select Quantity*ResourceQuantity ,StorageTypeId,ISNULL(VPSStorageTypeName,'Not set'), 1 As [Type]  
From HB_tblAddonsSoldDetail          
inner join HB_tblAddonsSold  on HB_tblAddonsSold.SoldAddOnId= HB_tblAddonsSoldDetail.SoldAddOnId            
inner join HB_tblAddons on HB_tblAddons.AddOnID = HB_tblAddonsSold.AddOnId          
inner join HB_tblAddonTypes on HB_tblAddonTypes.AddOnTypeId = HB_tblAddons.AddOnTypeID          
Left outer join HB_tblVPSStorageTypes On HB_tblVPSStorageTypes.VPSStorageTypeId = HB_tblAddonTypes.StorageTypeId        
Where  SoldToAccountId=@VPSHostingId and HB_tblAddonTypes.PackageTypeID='19' and IsPending='0' and IsCancelled='0' And ResourceId=@ResourceId            
) AS tbl          
Where VPSStorageTypeName !=''  AND ResourceQuantity > 0   
Group by PrimaryStorageTypeId  ,VPSStorageTypeName, [Type]  
End    
GO
 

ALTER Procedure CSP_GetFreeSubNets      
(      
@VPSServerGroupID bigint,      
@Type bit      
)      
AS      
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId ,'0' AllocationType        
Union      
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],       
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName      
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End) 
 +','+Convert(Varchar(2),AllocationType) AS IPSubnetGatwayVlanIdSubnetId   , AllocationType     
 from [HB_VPS_tblVPSServerSubNets]       
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0    
GO




Alter PROCEDURE SPR_UpdateADirUserLDAPUrl    
(    
 @ADUserId INT,    
 @UserLDAPUrl NVARCHAR(500)    
)    
AS    
BEGIN   
 Declare @OldLDAPURL nvarchar(500) = (Select UserLDAPURL from HB_tblADirUsers Where ADUserID = @ADUserId)  
 
 UPDATE HB_tblADirUsers SET UserLDAPURL = @UserLDAPUrl WHERE ADUserID = @ADUserId     
 UPDATE HB_tblSyncADUser SET UserLDAPURL = @UserLDAPUrl WHERE ADUserID = @ADUserId
 
 if @OldLDAPURL != ''
 Begin

	 UPDATE HB_tblSyncExMailbox SET UserLDAPUrl=@UserLDAPUrl WHERE UserLDAPUrl = @OldLDAPURL AND ADUserID = @ADUserId
	 Update HB_tblExchangeMailContacts SET ManagerLDAP = @UserLDAPUrl Where ManagerLDAP = @OldLDAPURL  
	 Update HB_tblSyncExMailContact SET ManagerLDAP = @UserLDAPUrl Where ManagerLDAP = @OldLDAPURL  
	 UPDATE Hb_tblExchangeMailUsers SET ManagerLDAP=@UserLDAPUrl WHERE ManagerLDAP = @OldLDAPURL
	 UPDATE HB_tblADirUsers SET DirectManagerLDAP = @UserLDAPUrl WHERE DirectManagerLDAP = @OldLDAPURL   
	 UPDATE Hb_tblADirSecurityGroupsMembers SET MemberLDAP = @UserLDAPUrl WHERE MemberLDAP = @OldLDAPURL AND MemberType = 'user' 
 End
END  
GO



ALTER Procedure CSP_GetFreeSubNets      
(      
@VPSServerGroupID bigint,      
@Type bit      
)      
AS      
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId ,'0' AllocationType        
Union      
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],       
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName      
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End) 
 +','+Convert(Varchar(2),AllocationType) AS IPSubnetGatwayVlanIdSubnetId   , AllocationType     
 from [HB_VPS_tblVPSServerSubNets]       
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0    
GO


IF NOT EXISTS(SELECT * FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.id = C.id WHERE O.name = 'Hb_tblExchSendConnector' AND C.name = 'Cost')
BEGIN
	ALTER TABLE Hb_tblExchSendConnector
	ADD
	Cost SMALLINT NOT NULL DEFAULT(1)
END
GO


IF NOT EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'HB_tblVPSAccountToServerMapping')
BEGIN
Create TABLE HB_tblVPSAccountToServerMapping(
RecordID bigint IDENTITY(1,1) NOT NULL,
VPSServerId int not null,
VPSId int not null,
CONSTRAINT [PK_HB_tblVPSAccountToServerMapping] PRIMARY KEY CLUSTERED 
(
	RecordID ASC
)
) ON [PRIMARY]
END
GO

IF NOT EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'HB_tblVPSCustomerToServerMapping')
BEGIN
Create TABLE HB_tblVPSCustomerToServerMapping(
RecordID bigint IDENTITY(1,1) NOT NULL,
VPSServerId int not null,
CustomerId int not null,
CONSTRAINT [PK_HB_tblVPSCustomerToServerMapping] PRIMARY KEY CLUSTERED 
(
	RecordID ASC
)
) ON [PRIMARY]
END
GO

DECLARE @VPSServerID int
DECLARE GetAllServers Cursor FOR select VPSServerID from HB_VPS_tblVPSServer
OPEN GetAllServers
	FETCH NEXT FROM GetAllServers INTO @VPSServerID
	WHILE (@@FETCH_STATUS = 0)
	BEGIN
		IF NOT EXISTS(Select * from HB_tblVPSCustomerToServerMapping Where VPSServerId = @VPSServerID)
		INSERT INTO HB_tblVPSCustomerToServerMapping(VPSServerId, CustomerId) Values(@VPSServerID, -1)

		FETCH NEXT FROM GetAllServers INTO @VPSServerID
	END
CLOSE GetAllServers
DEALLOCATE GetAllServers
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetVPSCustomerToServerMapping')
BEGIN
	DROP PROCEDURE SPR_GetVPSCustomerToServerMapping
END
GO

Create Procedure SPR_GetVPSCustomerToServerMapping
(
@CompanyId int,
@VPSServerGroupId int,
@VPSServerId int,
@CustomerId int,
@CustomerName nvarchar(500),
@ServerName nvarchar(500),
@ServerIP nvarchar(500)
)
AS
SELECT Map.VPSServerId, SG.VPSServerGroupID, SG.Name As ServerGroupName, S.ReferenceID As ServerName, S.IP,
 STUFF((SELECT ',' + Name FROM (
	SELECT 'All' AS Name WHERE EXISTS(SELECT 1 FROM HB_tblVPSCustomerToServerMapping M2 WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId <= -1)
	UNION ALL
	SELECT C.FirstName + ' ' + C.LastName FROM HB_tblVPSCustomerToServerMapping M2 
		INNER JOIN tblCustomers C ON C.CustomerId = M2.CustomerId WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId > 0
        ) X
 FOR XML PATH('')), 1, 1, '') AS Customers,
 STUFF((SELECT ',' + CId FROM (
	SELECT '-1' AS CId WHERE EXISTS(SELECT 1 FROM HB_tblVPSCustomerToServerMapping M2 WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId <= -1)
	UNION ALL
	SELECT convert(nvarchar(10),C.CustomerId) As CId FROM HB_tblVPSCustomerToServerMapping M2 
		INNER JOIN tblCustomers C ON C.CustomerId = M2.CustomerId WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId > 0
        ) X
 FOR XML PATH('')), 1, 1, '') AS CustomerIds
FROM HB_tblVPSCustomerToServerMapping Map INNER JOIN HB_VPS_tblVPSServer S ON Map.VPSServerId = S.VPSServerID 
INNER JOIN HB_VPS_tblVPSServerGroups SG ON S.VPSServerGroupID = SG.VPSServerGroupID
WHERE (@VPSServerGroupId <= 0 OR SG.VPSServerGroupID = @VPSServerGroupId) and (@VPSServerId <= 0 OR Map.VPSServerId = @VPSServerId) 
and (@CustomerId = 0 OR Map.CustomerId = @CustomerId OR Map.CustomerId = -1)
And (@ServerName = '' OR S.ReferenceID LIKE '%'+@ServerName+'%') And (@ServerIP = '' OR S.IP = @ServerIP)
And (@CompanyId <= 0 OR 
 Exists(Select C.CustomerId from tblCustomers C Where (C.CustomerID = Map.CustomerId OR Map.CustomerId = -1) And C.CompanyID = @CompanyId))
And (@CustomerName = '' OR 
 Exists(Select C.CustomerId from tblCustomers C Where (C.CustomerID = Map.CustomerId OR Map.CustomerId = -1) And C.FirstName + ' ' + C.LastName LIKE '%'+@CustomerName+'%'))
GROUP BY Map.VPSServerId, SG.VPSServerGroupID, SG.Name, S.ReferenceID, S.IP 
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_SaveVPSCustomerToServerMapping')
BEGIN
	DROP PROCEDURE SPR_SaveVPSCustomerToServerMapping
END
GO

Create Procedure SPR_SaveVPSCustomerToServerMapping
(
 @VPSServerId int,
 @CustomerId int 
)
AS
IF NOT Exists(Select 1 from HB_tblVPSCustomerToServerMapping Where VPSServerId = @VPSServerId and CustomerId = @CustomerId)
INSERT INTO HB_tblVPSCustomerToServerMapping(VPSServerId, CustomerId) Values(@VPSServerId, @CustomerId)
ELSE
Update HB_tblVPSCustomerToServerMapping SET VPSServerId = @VPSServerId, CustomerId = @CustomerId Where VPSServerId = @VPSServerId and CustomerId = @CustomerId
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_DeleteVPSCustomerToServerMapping')
BEGIN
	DROP PROCEDURE SPR_DeleteVPSCustomerToServerMapping
END
GO

Create Procedure SPR_DeleteVPSCustomerToServerMapping
(
 @VPSServerId int,
 @CustomerId int
)
AS
Delete from HB_tblVPSCustomerToServerMapping 
Where VPSServerId = @VPSServerId And (@CustomerId = 0 OR CustomerId = @CustomerId)
GO

ALTER PROCEDURE SP_EM_VPSServerGroupsDelete 
 @VPSServerGroupID as bigint  
AS   
  
BEGIN  

 DELETE FROM HB_tblVPSCustomerToServerMapping Where VPSServerId IN (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupID)
 DELETE FROM [HB_VPS_tblVPSServerGroups] WHERE VPSServerGroupID = @VPSServerGroupID  
  
END  
GO

ALTER PROCEDURE SP_EM_VPSServerIDDelete 
 @VPSServerID AS bigint    
AS     
    
BEGIN    
    
 DELETE FROM HB_tblVPSCustomerToServerMapping Where VPSServerId = @VPSServerID
 DELETE FROM HB_VPS_tblVPSServer WHERE VPSServerID = @VPSServerID    
    
END    
GO

ALTER PROCEDURE SP_EM_VPSServerInsert    
 @VPSServerID bigint OUTPUT,      
 @VPSServerGroupID bigint,      
 @IP varchar(250),      
 @ReferenceID varchar(250),      
 @VHDStorePath varchar(500),      
 @VMStorePath varchar(500),      
 @Username varchar(250),      
 @Password varchar(250),      
 @Active bit,    
 @PreferredDNS nvarchar(50),    
 @AlternateDNS nvarchar(50),    
 @MaxRAM  int,    
 @VirtualProcessors int,     
 @MaxVMsAllowed SMALLINT,    
 @NICName     varchar(200),    
 @NICIP       varchar(20),    
 @NICIndex    INT,    
 @PrefixLength INT,    
 @VSwitchName nvarchar(200),    
 @ServerRole int  
AS       
    
BEGIN      
    
 INSERT INTO [HB_VPS_tblVPSServer]([VPSServerGroupID],[IP],[ReferenceID],[VHDStore],[VMStore],[Username],[Password],[Active],PreferredDNS,    
      AlternateDNS,MaxRAM,VirtualProcessors,MaxVMsAllowed,NICName,NICIP,NICIndex,PrefixLength,VSwitchName, ServerRole)      
    
 VALUES (@VPSServerGroupID,@IP,@ReferenceID,@VHDStorePath,@VMStorePath,@Username,@Password,@Active,@PreferredDNS,    
   @AlternateDNS,@MaxRAM,@VirtualProcessors,@MaxVMsAllowed,@NICName,@NICIP,@NICIndex,@PrefixLength,@VSwitchName, @ServerRole)      
    
 SET @VPSServerID = SCOPE_IDENTITY()      
 
 INSERT INTO HB_tblVPSCustomerToServerMapping(VPSServerId, CustomerId) VALUES(@VPSServerID, -1)
END      
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetVMsByVPSServerGroupId')
BEGIN
	DROP PROCEDURE SPR_GetVMsByVPSServerGroupId
END
GO

Create Procedure SPR_GetVMsByVPSServerGroupId
(
 @VPSServerGroupId int
)
AS
select H.VPSHostingID, H.VPSServerID As VPSServerGroupId, A.VPSServerID, H.CustomerID, H.CompanyId, A.VPSId, A.VMName 
from HB_tblVPSAccounts A INNER JOIN HB_tblVPSHosting H ON A.VPSHostingId = H.VPSHostingID 
Where H.VPSServerID = @VPSServerGroupId and A.Status in (1, 10) and H.IsCancelled = 0 
and (
Exists(Select * from HB_tblVPSCustomerToServerMapping Where CustomerId != -1 and VPSServerId in 
	(Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID=@VPSServerGroupId)) 
OR Exists(Select * from HB_tblVPSAccountToServerMapping Where VPSServerId in 
	(Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID=@VPSServerGroupId))
) 
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetSettingsForVMServerMapping')
BEGIN
	DROP PROCEDURE SPR_GetSettingsForVMServerMapping
END
GO

Create Procedure SPR_GetSettingsForVMServerMapping
(
@VPSId int
)
AS
Declare @CurrentServerId int 
Declare @CustomerId int
Declare @ServerGroupId int

Select @CustomerId = H.CustomerId, @ServerGroupId = H.VPSServerID, @CurrentServerId = A.VPSServerId 
from HB_tblVPSHosting H INNER JOIN HB_tblVPSAccounts A ON H.VPSHostingID = A.VPSHostingId 
and A.VPSId=@VPSId
 
Select @CurrentServerId as VPSServerId, [IP], ReferenceId As ServerName, 1 as CurrentServer 
from HB_VPS_tblVPSServer Where VPSServerID = @CurrentServerId 

Union

Select S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer 
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)
and CustomerId = @CustomerId
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_DeleteVPSAccountToServerMapping')
BEGIN
	DROP PROCEDURE SPR_DeleteVPSAccountToServerMapping
END
GO

Create Procedure SPR_DeleteVPSAccountToServerMapping
(
 @VPSId int
)
AS
Delete from HB_tblVPSAccountToServerMapping Where VPSId = @VPSId
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_SaveVPSAccountToServerMapping')
BEGIN
	DROP PROCEDURE SPR_SaveVPSAccountToServerMapping
END
GO

Create Procedure SPR_SaveVPSAccountToServerMapping
(
 @VPSServerId int,
 @VPSId int 
)
AS
IF NOT Exists(Select 1 from HB_tblVPSAccountToServerMapping Where VPSServerId = @VPSServerId and VPSId = @VPSId)
INSERT INTO HB_tblVPSCustomerToServerMapping(VPSServerId, CustomerId) Values(@VPSServerId, @VPSId)
ELSE
Update HB_tblVPSAccountToServerMapping SET VPSServerId = @VPSServerId, VPSId = @VPSId Where VPSServerId = @VPSServerId and VPSId = @VPSId
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetVPSAccountToServerMapping')
BEGIN
	DROP PROCEDURE SPR_GetVPSAccountToServerMapping
END
GO

Create Procedure SPR_GetVPSAccountToServerMapping
(
@VPSServerId int,
@VPSId int
)
AS
SELECT * FROM HB_tblVPSAccountToServerMapping Where (@VPSServerId <= 0 OR VPSServerId = @VPSServerId) And (@VPSId <= 0 OR VPSId = @VPSId)
GO


IF OBJECT_ID('CSP_GetVPSSubNetIPDetails', 'P') IS NOT NULL
    DROP PROCEDURE CSP_GetVPSSubNetIPDetails
GO

CREATE PROCEDURE [CSP_GetVPSSubNetIPDetails]
(
    @IPAddress VARCHAR(50)
)
AS
BEGIN
    SELECT *
    FROM HB_VPS_tblVPSSubNetsIPs  
    INNER JOIN HB_VPS_tblVPSServerSubNets   
        ON HB_VPS_tblVPSSubNetsIPs.SubNetId = HB_VPS_tblVPSServerSubNets.SubNetId
    WHERE HB_VPS_tblVPSSubNetsIPs.IP = @IPAddress
END
GO

ALTER PROCEDURE SP_EM_EXGetOrganizationReport   
(                                          
@Owner nvarchar(10),                                          
@OrgName nvarchar (255),                                          
@Name nvarchar (200),                                
@CustomerId int,                            
@CustCompanyName nvarchar (200),                      
@SortExpression NVARCHAR(100),                          
@SortDirection NVARCHAR(10),                          
@PageSize INT,                          
@PageOffset INT    ,                        
@SubResellerID INT, @StaffRoleId int                            
)                                          
AS                                       
BEGIN                      
                      
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @OrgName OUTPUT                      
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @Name OUTPUT                      
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustCompanyName OUTPUT                      
                       
 Update HB_tblExchangeMailboxDetail Set IssueWarningAt='-1' Where IssueWarningAt='unlimited'                                    
 Update HB_tblExchangeMailboxDetail Set ProhibitSendAt='-1' Where ProhibitSendAt='unlimited'                                    
 Update HB_tblExchangeMailboxDetail Set ProhibitSendRecAt='-1' Where ProhibitSendAt='unlimited'                                    
                       
  Declare @SortExp nvarchar(400)                      
                      
 IF(@SortExpression = 'CustCompanyName')                      
  BEGIN                      
  SET @SortExp = 'tblCustomers.CompanyName '+ @SortDirection                      
  END                      
 ELSE IF(@SortExpression = 'Owner')                      
  BEGIN                      
  SET @SortExp = 'tblCompanies.FirstName+'' ''+tblCompanies.LastName '+ @SortDirection                      
  END                        
 ELSE IF(@SortExpression = 'Customer')                      
  BEGIN                      
  SET @SortExp = 'tblCustomers.FirstName+'' ''+tblCustomers.LastName '+ @SortDirection                      
  END                      
 ELSE IF(@SortExpression = 'OrganizationName')                      
  BEGIN                      
  SET @SortExp = 'HB_tblExchangeOrganizations.OrganizationName '+ @SortDirection                      
  END                      
 ELSE IF(@SortExpression = 'PackageName')                      
  BEGIN                      
  SET @SortExp = ' HB_tblPackagesSold.PackageName '+ @SortDirection                      
  END                      
 ELSE IF(@SortExpression = 'EduDiscount')                      
  BEGIN                      
  SET @SortExp = ' HB_tblPackagesSold.EduDiscount '+ @SortDirection                      
  END                       
 ELSE                      
  BEGIN                      
  Set @SortExp = @SortExpression +' '+ @SortDirection                      
  END                       
    Declare @Where nvarchar (max)                      
                      
   SET @Where =' AND 1=1 '                      
  if(@OrgName != '' AND @OrgName IS NOT NULL)                       
  Begin                      
   SET @Where = @Where + ' and (HB_tblExchangeOrganizations.OrganizationName like ''%''+N'''+  @OrgName +'''+''%''                       
    or HB_tblExchangeOrganizations.OrgInternalName like ''%''+N'''+  @OrgName +'''+''%'')'                            
  End                      
                        
  if(@Name != '' AND @Name IS NOT NULL)                            
   BEGIN                      
   SET @Where = @Where + ' and tblCustomers.FirstName+'' ''+tblCustomers.LastName like ''%''+N'''+  @Name +'''+''%'''                            
   END                      
                      
  If (@Owner!='0' AND @Owner != '' AND @Owner != '-1' AND @Owner IS NOT NULL)                                          
   BEGIN                      
   Set @Where= @Where+' and tblCompanies.CompanyId = N'''+ replace(@Owner,'''','''''')+''''                                          
   END                      
                      
  If (@CustomerId!='0' AND @CustomerId != '' AND @CustomerId != '-1' AND @CustomerId IS NOT NULL)                                          
   BEGIN               
 Set @Where= @Where+' and tblCustomers.CustomerId = N'''+ replace(@CustomerId,'''','''''')+''''                  
   END                      
                      
  if(@CustCompanyName !='' AND @CustCompanyName IS NOT NULL)                              
   BEGIN                      
   Set @Where=@Where+' and tblCustomers.CompanyName like ''%''+N'''+  @CustCompanyName +'''+''%'' '                                      
   END                      
                                    
 If @SubResellerId!='0'                              
 Begin                              
 Set @Where=@Where+' and tblCustomers.SubResellerId='+convert(nvarchar(10),@SubResellerId)                                
 End                     
  
if @StaffRoleId > 0  
BEGIN  
Set @Where=@Where+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA   
 Where RA.CustomerId = tblCustomers.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
  
Set @Where=@Where+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA   
 Where RA.CompanyId = tblCustomers.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
END  
  
                        
 IF exists (select * from dbo.sysobjects where id = object_id(N'[#ExOrgReport]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)                        
 BEGIN                                        
 Drop table #ExOrgReport                                          
 END                      
                      
CREATE TABLE #ExOrgReport      
(
TotalRecords           INT,       
 RowIndex               INT,       
 [ID]                   INT IDENTITY(1, 1),       
 CustCompanyName        NVARCHAR(200),       
 Customer               NVARCHAR(250),       
 CustomerId             INT,       
 CustomerNumber         VARCHAR(100),       
 CustomerPhone          VARCHAR(100),       
 CustomerEmail          VARCHAR(255),       
 OwnerId                INT,       
 [Owner]                NVARCHAR(250),       
 OwnerEmail             VARCHAR(255),       
 OwnerPhone             VARCHAR(100),       
 CompanyId              INT,       
 ResellerId             INT,       
 OrganizationID         INT,       
 ExchHostingID          INT,       
 OrganizationName       NVARCHAR(255),       
 DomainNames            NVARCHAR(2000),       
 PackageName            NVARCHAR(250),       
 EDUDiscount            BIT,       
 UsageMailbox           NVARCHAR(4000),       
 UsageTemplate          NVARCHAR(4000),       
 UsageDL                INT,       
 UsageCL                INT,       
 UsageDomain            INT,       
 UsagePF                INT,       
 UsageBlackBerry        INT,       
 UsageMBMB              FLOAT,       
 UsagePFMB              FLOAT,       
 UsageTimeStamp         DATETIME,       
 DateCreated            DATETIME,       
 UsageSpamFilter        INT,       
 UsageLinkedMailboxes   BIGINT,       
 UsageResourceMailboxes BIGINT,       
 UsageSharedMailboxes   BIGINT,      
 UsageUserMailboxes  int,       
 UsageMailUsers   int,      
 UsageRemoteMailboxes int,      
 TotalActiveMailboxes int,      
 TotalDisabledMailboxes int,      
 TotalMailboxes   int,       
 ArchiveUsage FLOAT ,    
 SignatureMailboxUsage int    
);                      
Declare @SQL nvarchar(MAX)                        
                      
 Set @SQL=' Insert Into #ExOrgReport                                           
 (TotalRecords,[RowIndex],        
 CustCompanyName,Customer,CustomerId, CustomerNumber,CustomerPhone,CustomerEmail,OwnerId,[Owner],OwnerEmail,OwnerPhone,        
 CompanyId ,ResellerId,OrganizationID,ExchHostingID,OrganizationName,UsageMailbox,UsageDL,UsageCL,UsageDomain,                              
 UsagePF, UsageBlackBerry,UsageMBMB,UsagePFMB,UsageTimeStamp, EduDiscount,PackageName,DateCreated,UsageTemplate,UsageSpamFilter,                      
 UsageLinkedMailboxes, UsageResourceMailboxes, UsageSharedMailboxes, DomainNames,UsageUserMailboxes, UsageMailUsers,      
 UsageRemoteMailboxes, TotalActiveMailboxes, TotalDisabledMailboxes, TotalMailboxes, ArchiveUsage, SignatureMailboxUsage) '                      
                      
SET @SQL += ' Select '                                      
 If (@PageSize != 0) Begin                      
 SET @SQL += ' Top(@PageSize) '                      
End                      
                       
Set @SQL += '(                      
  Select count(*) FROM HB_tblExchangeOrganizations, Hb_tblExchangeHosting, tblCompanies, tblCustomers, HB_tblPackagesSold, HB_tblPackages                                           
 Where HB_tblExchangeOrganizations.ExchHostingID=Hb_tblExchangeHosting.ExchHostingID and Hb_tblExchangeHosting.CompanyId=tblCompanies.CompanyId                                          
 and Hb_tblExchangeHosting.CustomerId=tblCustomers.CustomerId and HB_tblPackagesSold.SoldPackageId=Hb_tblExchangeHosting.SoldPackageId                                         
 and HB_tblPackages.PackageId =HB_tblPackagesSold.PackageId and ResellerPackage=''0''  '                        
  + @Where +'                      
 )                      
 as TotalRecords,  * from ( Select RowIndex= ROW_NUMBER() OVER(ORDER BY '+ @SortExp +'),  '                                                  
 SET @SQL += '  tblCustomers.CompanyName CustCompanyName, tblCustomers.FirstName+'' ''+tblCustomers.LastName as Customer, tblCustomers.CustomerId,          
 tblCustomers.CustomerNumber,tblCustomers.Phone, tblCustomers.PrimaryEmail,              
 ISNULL((SELECT CustomerId FROM tblCustomers WHERE OwnerId = tblCompanies.CompanyId),0) AS OwnerId,          
 tblCompanies.FirstName+'' ''+tblCompanies.LastName as [Owner],          
 TblCompanies.SupportEmail, CASE WHEN ISNULL(TblCompanies.CompanyPhone,'''')='''' THEN tblcompanies.SupportPhone ELSE TblCompanies.CompanyPhone END CompanyPhone,            
 tblCompanies.CompanyId,          
 CASE WHEN tblCustomers.CompanyId > 1 THEN (SELECT Reseller.CustomerId FROM tblCustomers Reseller WHERE Reseller.OwnerId = tblCustomers.CompanyId) ELSE 0 END ResellerId,                                                    
 OrganizationID, Hb_tblExchangeHosting.ExchHostingID, OrganizationName,UsageMailbox, UsageDL, UsageCL, UsageDomain, UsagePF,                                         
 UsageBlackBerry, UsageMBMB, UsagePFMB, UsageTimeStamp, HB_tblPackagesSold.EduDiscount,  HB_tblPackagesSold.PackageName,          
 HB_tblExchangeOrganizations.DateCreated,UsageTemplate,UsageSpamFilter, UsageLinkedMailboxes, UsageResourceMailboxes, UsageSharedMailboxes, LTRIM(RTRIM(DomainNames)) As DomainNames,      
 UsageUserMailboxes, UsageMailUsers, UsageRemoteMailboxes, TotalActiveMailboxes, TotalDisabledMailboxes, TotalMailboxes,      
 ISNULL((Select SUM(Mbx.ArchiveUsage) From HB_tblExchangeMailboxes Mbx Where Mbx.OrganizationID = HB_tblExchangeOrganizations.OrganizationID),0) AS ArchiveUsage     
 ,SignatureMailboxUsage    
       
 FROM HB_tblExchangeOrganizations, Hb_tblExchangeHosting, tblCompanies, tblCustomers, HB_tblPackagesSold, HB_tblPackages                                           
 Where HB_tblExchangeOrganizations.ExchHostingID=Hb_tblExchangeHosting.ExchHostingID and  Hb_tblExchangeHosting.CompanyId=tblCompanies.CompanyId                                         
 and Hb_tblExchangeHosting.CustomerId=tblCustomers.CustomerId and HB_tblPackagesSold.SoldPackageId=Hb_tblExchangeHosting.SoldPackageId                                         
 and HB_tblPackages.PackageId =HB_tblPackagesSold.PackageId and ResellerPackage=''0'' ' + @Where                       
                      
SET @SQL += ' ) ExOrgRecords'      
      
If (@PageSize != 0)   SET @SQL += ' Where RowIndex > ((@PageOffset - 1 ) * @PageSize) '                      
                      
Set @SQL += ' ORDER BY '+ @SortExpression +' '+ @SortDirection                      
                     
EXEC sp_executesql @SQL, N'                      
@Owner nvarchar(10),                                          
@OrgName nvarchar (255),                                          
@Name nvarchar (200),                                
@CustomerId int,                            
@CustCompanyName nvarchar (200),                      
@SortExpression NVARCHAR(100),                          
@SortDirection NVARCHAR(10),                          
@PageSize INT,                          
@PageOffset INT    ,                        
@SubResellerID INT, @StaffRoleId int',                      
@Owner ,                      
@OrgName ,                      
@Name ,                      
@CustomerId ,                      
@CustCompanyName ,                          
@SortExpression ,           
@SortDirection ,                          
@PageSize ,                          
@PageOffset,                    
@SubResellerID,  
@StaffRoleId  
                      
 Select * FRom #ExOrgReport                               
                      
 Drop table #ExOrgReport                      
END           
GO

Alter Procedure SPR_GetSettingsForVMServerMapping
(
@VPSId int
)
AS
Declare @CurrentServerId int 
Declare @CustomerId int
Declare @ServerGroupId int

Select @CustomerId = H.CustomerId, @ServerGroupId = H.VPSServerID, @CurrentServerId = A.VPSServerId 
from HB_tblVPSHosting H INNER JOIN HB_tblVPSAccounts A ON H.VPSHostingID = A.VPSHostingId 
and A.VPSId=@VPSId
 
Select Distinct @CurrentServerId as VPSServerId, [IP], ReferenceId As ServerName, 1 as CurrentServer, @CustomerId as CustomerId,
@ServerGroupId as VPSServerGroupID
from HB_VPS_tblVPSServer Where VPSServerID = @CurrentServerId 

Union

Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,
S.VPSServerGroupID
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)
and CustomerId = @CustomerId 

Union

Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,
S.VPSServerGroupID
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping Where CustomerId=@CustomerId
and S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId))

Order by CurrentServer Desc
GO

ALTER PROCEDURE CSP_GetPagedSubscriptions                              
(                              
 @CompanyId int,                              
 @CustomerId int = 0,                              
 @AccountId int = 0,                              
 @PackageTypeId int = 0,                               
 @CustomerName nvarchar(200) = '',                              
 @DomainName nvarchar (265) = '',                                 
 @Status tinyint = 0,                                  
 @Trial nvarchar(2) = '-1' ,  
 @PageNo INT,  
 @PageSize INT                                
)                              
AS                              
BEGIN                   
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustomerName OUTPUT              
 SELECT COUNT(*) OVER() AS  totalRecords,* from (                           
 SELECT Subs.HostingID, Subs.CustomerID,                       
 CASE WHEN Subs.DomainName = '' THEN PackSold.PackageName ELSE Subs.DomainName END AS DomainName, ISNULL(Subs.AdditionalDomains, '') AS AdditionalDomains,
 Subs.SoldPackageId, Subs.SignupDate, Subs.IsPending, Subs.IsTrial, Subs.SalesAgentID, Subs.Comments,                               
     Subs.IsCancelled, Subs.Status, Subs.LastRenewal, Subs.NextRenewal, Subs.PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                               
     Pack.PackageID, PackSold.PackageName, Cust.CustomerNumber,                               
                      CASE                              
                      WHEN SQ.ActionType = 1 THEN 7                              
                      WHEN SQ.ActionType = 3 THEN 8                              
                      WHEN SQ.ActionType = 4 THEN 9                              
                      WHEN SQ.ActionType = 5 THEN 10                               
                      ELSE Subs.Status                              
                      END AdvanceStatus,Pack.ResellerPackage, Cust.IsSuspend, Subs.CustomerSuspended                             
FROM   HB_tblPackages AS Pack INNER JOIN                              
 HB_tblPackagesSold AS PackSold ON Pack.PackageID = PackSold.PackageID INNER JOIN                              
 (                              
   SELECT HostingID, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                               
       NextRenewal, 1 AS PackageTypeId, CustomerSuspended, (SELECT STUFF((
		SELECT ',' + HD.DomainName
		FROM HB_tblHostingDomains HD 
		WHERE HB_tblHosting.HostingID = HD.HostingId
		FOR XML PATH('')
	), 1, 1, '')) AS AdditionalDomains
   FROM   HB_tblHosting                              
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 1 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT ExchHostingID, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                               
       NextRenewal, 16 AS PackageTypeId, CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + EXD.DomainName
		FROM HB_tblExchangeOrganizationDomains EXD
		INNER JOIN HB_tblExchangeOrganizations EXO ON EXO.OrganizationID = EXD.OrganizationID
		WHERE HB_tblExchangeHosting.ExchHostingID = EXO.ExchHostingID
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains
   FROM   HB_tblExchangeHosting                              
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 16 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT SPId, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                               
       NextRenewal, 17 AS PackageTypeId, CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + SPD.DomainName
		FROM Hb_tblSPOrganizationDomains SPD
		INNER JOIN HB_tblSPOrganizations SPO ON SPO.OrgId = SPD.SPOrgId
		WHERE HB_tblSPHosting.SPId = SPO.SPId
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                              
   FROM   HB_tblSPHosting                              
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 17 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT CRMId, CustomerId, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentId, Comments, IsCancelled, Status, LastRenewal,                               
       NextRenewal, 14 AS PackageTypeId, CustomerSuspended ,(
	 SELECT STUFF((
		SELECT ',' + CRMD.DomainName
		FROM Hb_tblCRMOrganizationDomains CRMD
		INNER JOIN HB_tblCRMOrganizations CRMO ON CRMO.OrgId = CRMD.OrgId
		WHERE HB_tblCRMHosting.CRMId = CRMO.CRMId
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                             
   FROM   HB_tblCRMHosting                              
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 14 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT OCSHostingID, CustomerID, DomainName, SoldPackageID, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,         
       NextRenewal, 18 AS PackageTypeId, CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + OCSD.DomainName
		FROM HB_tblOCSOrganizationDomains OCSD
		INNER JOIN HB_tblOCSOrganizations OCSO ON OCSO.OrganizationID = OCSD.OrganizationID
		WHERE HB_tblOCSHosting.OCSHostingID= OCSO.OCSHostingID
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                              
   FROM   HB_tblOCSHosting                              
   WHERE  (CompanyID = @CompanyId) AND (@PackageTypeId = 18 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT ResellerID, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                               
 NextRenewal, 2 AS PackageTypeId, CustomerSuspended, '' As AdditionalDomains                              
   FROM   HB_tblResellerHosting WHERE  (@PackageTypeId = 2 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT SSLId, CustomerID, DomainName, SoldPackageID, SignupDate, IsPending, 0 AS IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                               
       NextRenewal, 8 AS PackageTypeId , 0 AS CustomerSuspended, '' As AdditionalDomains                             
   FROM   HB_tblSSLCert                              
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 8 OR @PackageTypeId = 0)                          
   UNION ALL                              
   SELECT VPSHostingID, CustomerID, VPSName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                         
       NextRenewal, 19 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains
   FROM   HB_tblVPSHosting                              
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 19 OR @PackageTypeId = 0)               
   UNION ALL              
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN O365H.PrimaryDomainName = '' THEN H.SubscriptionName ELSE O365H.PrimaryDomainName END,               
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                         
  NextRenewal, 21 AS PackageTypeId , CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + TD.DomainName
		FROM Hb_tblO365TenantDomains TD
		INNER JOIN Hb_tblO365Tenants T ON T.TenantId = TD.TenantId
		WHERE O365H.O365HostingId= T.O365HostingID
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                                                           
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblO365Hosting O365H ON H.ServiceHostingID = O365H.ServiceHostingID              
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 21 OR @PackageTypeId = 0)               
   UNION ALL              
   SELECT H.ServiceHostingID, CustomerID, H.SubscriptionName,               
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                         
  NextRenewal, 3 AS PackageTypeId , CustomerSuspended, '' As AdditionalDomains                             
   FROM   HB_tblServiceHosting H               
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 3 OR @PackageTypeId = 0)              
   UNION ALL              
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN RDSH.PrimaryDomainName = '' THEN H.SubscriptionName  ELSE RDSH.PrimaryDomainName END,               
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                         
  NextRenewal, 22 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblRDSHosting RDSH ON H.ServiceHostingID = RDSH.ServiceHostingID              
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 22 OR @PackageTypeId = 0)              
   UNION ALL              
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN WH.DomainName = '' THEN H.SubscriptionName  ELSE WH.DomainName END,               
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                         
  NextRenewal, 23 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblWorkfolderHosting WH ON H.ServiceHostingID = WH.ServiceHostingID              
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 23 OR @PackageTypeId = 0)              
   UNION ALL              
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN SH.DomainName= '' THEN H.SubscriptionName  ELSE SH.DomainName END,               
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                    
  NextRenewal, 24 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains                             
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblSIPHosting SH ON H.ServiceHostingID = SH.ServiceHostingID           
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 24 OR @PackageTypeId = 0)           
    UNION ALL              
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN SH.Domain= '' THEN H.SubscriptionName  ELSE SH.Domain END,               
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                         
  NextRenewal, 25 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblHostedVoiceHosting SH ON H.ServiceHostingID = SH.ServiceHostingID              
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 25 OR @PackageTypeId = 0)           
) AS Subs INNER JOIN                              
     tblCustomers AS Cust ON Subs.CustomerID = Cust.CustomerID ON PackSold.SoldPackageID = Subs.SoldPackageId AND Pack.PackageTypeID = Subs.PackageTypeId                       
                         
     LEFT OUTER JOIN HB_tblServiceQueue AS SQ ON Subs.HostingId = SQ.AccountId AND Subs.PackageTypeId = SQ.PackageTypeId AND SQ.ActionType IN (1,3,4,5)                              
 WHERE  (Cust.CompanyID = @CompanyId)                                                          
 AND (@PackageTypeId Is Null OR @PackageTypeId < 1 OR Subs.PackageTypeId = @PackageTypeId)                                    
 AND (@DomainName Is Null OR @DomainName = '' OR Subs.DomainName = @DomainName OR ','+Subs.AdditionalDomains+ ',' like '%,'+ @DomainName +',%')                                       
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')                 
 LIKE '%'+@CustomerName+'%')                              
 
 AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR Subs.HostingId = @AccountId)                              
 AND (@Trial Is Null OR @Trial = '' OR @Trial < 0 OR CAST(Subs.IsTrial AS NVARCHAR(2)) = @Trial)                              
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)                              
                                                 
 UNION ALL                              
                              
 SELECT DedH.ServerID, DedH.CustomerID, DedH.ReferenceID,'' As AdditionalDomains, DedH.PackageId, DedH.SignUpDate, DedH.IsPending, DedH.IsTrial, DedH.SalesAgentID, DedH.Comments,                               
     DedH.IsCancelled, DedH.Status, DedH.LastRenewal, DedH.NextRenewal, 5 AS PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                               
     Pack.PackageId, Pack.PackageName, Cust.CustomerNumber,                               
CASE                              
                      WHEN SQ.ActionType = 1 THEN 7                              
                      WHEN SQ.ActionType = 3 THEN 8                              
                      WHEN SQ.ActionType = 4 THEN 9                              
                      WHEN SQ.ActionType = 5 THEN 10                               
                      ELSE DedH.Status                              
                      END AdvanceStatus , Pack.ResellerPackage, Cust.IsSuspend,DedH.CustomerSuspended                             
 FROM   HB_tblDedicatedHosting AS DedH INNER JOIN                              
     tblCustomers AS Cust ON DedH.CustomerID = Cust.CustomerID INNER JOIN                              
     HB_tblPackages AS Pack ON DedH.PackageId = Pack.PackageID LEFT OUTER JOIN                              
           HB_tblServiceQueue AS SQ ON DedH.ServerID = SQ.AccountId  AND SQ.PackageTypeId = 5 AND SQ.ActionType IN (1,3,4,5)                              
 WHERE  (Cust.CompanyID = @CompanyId) AND (@PackageTypeId = 5 OR @PackageTypeId = 0)                         
 AND (@DomainName Is Null OR @DomainName = '' OR DedH.ReferenceID = @DomainName)                      
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')                 
 LIKE '%'+@CustomerName+'%')                              
 
 AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR DedH.ServerID = @AccountId)      
 AND (@Trial Is Null OR @Trial = '' OR @Trial < 0 OR CAST(DedH.IsTrial AS NVARCHAR(2)) = @Trial)      
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)      
                                                     
 UNION ALL                              
                                    
 SELECT DR.RegistrationID, DR.CustomerID, DR.DomainName,'' As AdditionalDomains, DR.TLDID, DR.SignupDate, DR.IsPending, DR.IsTransfer, DR.SalesAgentId, DR.Comments, DR.IsCancelled,                               
     DR.Status, DR.LastRenewal, DR.NextRenewal, 10 AS PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                               
     DR.TLDID, DTlDs.TLDName,Cust.CustomerNumber,                               
                      CASE                              
                      WHEN SQ.ActionType = 1 THEN 7                              
                      WHEN SQ.ActionType = 3 THEN 8                              
       WHEN SQ.ActionType = 4 THEN 9                              
                      WHEN SQ.ActionType = 5 THEN 10                               
                      ELSE DR.Status                              
                      END AdvanceStatus , 0 AS ResellerPackage, Cust.IsSuspend, 0 AS CustomerSuspended                          
 FROM   HB_tblDomainRegistrations AS DR INNER JOIN                              
     HB_tblDomainTLDs AS DTlDs ON DR.TLDID = DTlDs.TLDID INNER JOIN                              
     tblCustomers AS Cust ON DR.CustomerID = Cust.CustomerID LEFT OUTER JOIN                              
           HB_tblServiceQueue AS SQ ON DR.RegistrationID = SQ.AccountId   AND SQ.PackageTypeId = 10 AND SQ.ActionType IN (1,3,4,5)                                 
 WHERE  (DR.CompanyId = @CompanyId) AND (@PackageTypeId = 10 OR @PackageTypeId = 0)                         
 AND (@DomainName Is Null OR @DomainName = '' OR DR.DomainName = @DomainName)      
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')                 
 LIKE '%'+@CustomerName+'%')                              
 
 AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR DR.RegistrationID = @AccountId)      
 AND (@Trial Is Null OR @Trial = '' OR @Trial < 0 OR CAST(DR.IsTransfer AS NVARCHAR(2)) = @Trial)      
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)      
                               
 UNION ALL                              
 SELECT * FROM                 
 (                             
 SELECT ADS.SoldAddOnId AS HostingId, ADS.CustomerID,                       
 ISNULL(CASE            
 WHEN AT.PackageTypeID = 01 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblHosting WHERE HostingID = (ADS.SoldToAccountId)       
 AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 02 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE       
 SoldPackageID = (SELECT SoldPackageID from HB_tblResellerHosting WHERE ResellerID = ADS.SoldToAccountId))+ ']'                      
 WHEN AT.PackageTypeID = 03 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblADHosting WHERE       
 ADHostingId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'              
 WHEN AT.PackageTypeID = 05 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE       
 SoldPackageID = (SELECT PackageId from HB_tblDedicatedHosting WHERE ServerID = ADS.SoldToAccountId))+ ']'         
 WHEN AT.PackageTypeID = 08 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE       
 SoldPackageID = (SELECT SoldPackageID from HB_tblSSLCert WHERE SSLId = ADS.SoldToAccountId))+ ']'                 
 WHEN AT.PackageTypeID = 10 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblDomainRegistrations WHERE       
 RegistrationID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName ='' OR DomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 14 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblCRMHosting WHERE       
 CRMId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 16 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblExchangeHosting WHERE       
 ExchHostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 17 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblSPHosting WHERE       
 SPId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 18 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblOCSHosting WHERE       
 OCSHostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 19 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE       
 SoldPackageID = (SELECT SoldPackageID from HB_tblVPSHosting WHERE VPSHostingID = ADS.SoldToAccountId))+ ']'      
 WHEN AT.PackageTypeID = 21 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PrimaryDomainName FROM HB_tblServiceHosting H               
 INNER JOIN HB_tblO365Hosting O365H ON H.ServiceHostingID = O365H.ServiceHostingID WHERE H.ServiceHostingID = (ADS.SoldToAccountId)              
 AND (@DomainName IS NULL OR @DomainName = '' OR O365H.PrimaryDomainName = @DomainName)) + ']'               
 WHEN AT.PackageTypeID = 22 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PrimaryDomainName FROM Hb_tblRDSHosting WHERE       
 RDSHostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR PrimaryDomainName = @DomainName)) + ']'                      
 WHEN AT.PackageTypeID = 23 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblWorkfolderHosting WHERE       
 HostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'            
 WHEN AT.PackageTypeID = 24 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblSIPHosting WHERE       
 SIPHostingId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'            
 WHEN AT.PackageTypeID = 25 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT Domain FROM HB_tblHostedVoiceHosting WHERE       
 HostedVoiceId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR Domain = @DomainName)) + ']'            
 ELSE '' END,'')                      
 AS DomainName,'' As AdditionalDomains, ADS.SoldAddonID AS SoldPackageId, ADS.SignupDate, ADS.IsPending, 0 AS IsTransfer, ADS.SalesAgentId, ADS.Comments, ADS.IsCancelled,                               
 ADS.Status, ADS.LastRenewal, ADS.NextRenewal, 15 AS PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                               
 ADS.AddOnId, ADO.AddOnName,Cust.CustomerNumber,                               
                      CASE                              
                      WHEN SQ.ActionType = 1 THEN 7                              
                      WHEN SQ.ActionType = 3 THEN 8                              
                      WHEN SQ.ActionType = 4 THEN 9                              
                      WHEN SQ.ActionType = 5 THEN 10                               
                      ELSE ADS.Status                              
                      END AdvanceStatus,                       
                      ISNULL(                    
        (SELECT ResellerPackage FROM HB_tblPackages WHERE PackageID = (SELECT PackageID FROm HB_tblPackagesSold WHERE SoldPackageId = (                    
        SELECT CASE                     
        WHEN AT.PackageTypeID = 01 THEN (SELECT SoldPackageId FROM Hb_tblHosting WHERE HostingID = (ADS.SoldToAccountId))                    
        WHEN AT.PackageTypeID = 02 THEN (SELECT SoldPackageID from HB_tblResellerHosting WHERE ResellerID = ADS.SoldToAccountId)                    
        WHEN AT.PackageTypeID = 05 THEN (SELECT PackageId from HB_tblDedicatedHosting WHERE ServerID = ADS.SoldToAccountId)                    
        WHEN AT.PackageTypeID = 08 THEN (SELECT SoldPackageID from HB_tblSSLCert WHERE SSLId = ADS.SoldToAccountId)                    
        WHEN AT.PackageTypeID = 14 THEN (SELECT SoldPackageId FROM Hb_tblCRMHosting WHERE CRMId = (ADS.SoldToAccountId))                    
        WHEN AT.PackageTypeID = 16 THEN (SELECT SoldPackageId FROM Hb_tblExchangeHosting WHERE ExchHostingID = (ADS.SoldToAccountId))                    
        WHEN AT.PackageTypeID = 17 THEN (SELECT SoldPackageId FROM HB_tblSPHosting WHERE SPId = (ADS.SoldToAccountId))                    
        WHEN AT.PackageTypeID = 18 THEN (SELECT SoldPackageId FROM HB_tblOCSHosting WHERE OCSHostingID = (ADS.SoldToAccountId))                    
        WHEN AT.PackageTypeID = 19 THEN (SELECT SoldPackageID FROM HB_tblVPSHosting WHERE VPSHostingID = ADS.SoldToAccountId)                    
  WHEN AT.PackageTypeID IN (3, 21, 22, 23, 24,25) THEN (SELECT SoldPackageID FROM HB_tblServiceHosting WHERE ServiceHostingID = ADS.SoldToAccountId)                    
        ELSE 0 END                    
                      ))),0) AS ResellerPackage ,Cust.IsSuspend, 0 AS CustomerSuspended                   
 FROM   Hb_tblAddOnsSold AS ADS INNER JOIN                              
     Hb_tblAddOns AS ADO ON ADS.AddOnId = ADO.AddOnId INNER JOIN                              
     Hb_tblAddOnTypes AS AT ON AT.AddOnTypeId = ADO.AddOnTypeID INNER JOIN                          
     tblCustomers AS Cust ON ADS.CustomerID = Cust.CustomerID LEFT OUTER JOIN                              
           HB_tblServiceQueue AS SQ ON ADS.SoldAddonID = SQ.AccountId  AND SQ.PackageTypeId = 15 AND SQ.ActionType IN (1,3,4,5)     
 WHERE Cust.CompanyId = @CompanyId AND (@PackageTypeId = 15 OR @PackageTypeId = 0) AND AT.PackageTypeID <> 2                         
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')                 
 LIKE '%'+@CustomerName+'%')                              
 
AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR ADS.SoldAddOnId = @AccountId)      
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)      
  )AddOnAccounts        
  WHERE (@DomainName IS NULL OR @DomainName = '' OR REPLACE(AddOnAccounts.DomainName,'[','[[]') LIKE '%' +@DomainName + '%')      
  AND @Trial != 1            
 ) Subsctriptions       
 WHERE (@Status Is Null OR @Status = '' OR @Status < 1 OR AdvanceStatus = @Status)      
 ORDER BY  HostingID  
 OFFSET (@PageNo - 1) * @PageSize ROWS  
 FETCH NEXT @PageSize ROWS ONLY;  
END       
GO

ALTER PROCEDURE SPR_GetAllSubscriptions                            
(                            
 @CompanyId int,                            
 @CustomerId int = 0,                            
 @AccountId int = 0,                            
 @PackageTypeId int = 0,                             
 @CustomerName nvarchar(200) = '',                            
 @DomainName nvarchar (265) = '',                               
 @Status tinyint = 0,                                
 @Trial nvarchar(2) = '-1'                            
)                            
AS                            
BEGIN                 
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustomerName OUTPUT            
 SELECT * FROM 
 (                         
 SELECT Subs.HostingID, Subs.CustomerID,                     
 CASE WHEN Subs.DomainName = '' THEN PackSold.PackageName ELSE Subs.DomainName END AS DomainName, ISNULL(Subs.AdditionalDomains,'') As AdditionalDomains,
 Subs.SoldPackageId, Subs.SignupDate, Subs.IsPending, Subs.IsTrial, Subs.SalesAgentID, Subs.Comments,                             
     Subs.IsCancelled, Subs.Status, Subs.LastRenewal, Subs.NextRenewal, Subs.PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                             
     Pack.PackageID, PackSold.PackageName, Cust.CustomerNumber,                             
                      CASE                            
                      WHEN SQ.ActionType = 1 THEN 7                            
                      WHEN SQ.ActionType = 3 THEN 8                            
                      WHEN SQ.ActionType = 4 THEN 9                            
                      WHEN SQ.ActionType = 5 THEN 10                             
                      ELSE Subs.Status                            
                      END AdvanceStatus,Pack.ResellerPackage, Cust.IsSuspend, Subs.CustomerSuspended                           
FROM   HB_tblPackages AS Pack INNER JOIN                            
 HB_tblPackagesSold AS PackSold ON Pack.PackageID = PackSold.PackageID INNER JOIN                            
 (                            
   SELECT HostingID, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                             
       NextRenewal, 1 AS PackageTypeId, CustomerSuspended, (SELECT STUFF((
		SELECT ',' + HD.DomainName
		FROM HB_tblHostingDomains HD 
		WHERE HB_tblHosting.HostingID = HD.HostingId
		FOR XML PATH('')
	), 1, 1, '')) AS AdditionalDomains                            
   FROM   HB_tblHosting                            
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 1 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT ExchHostingID, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                             
       NextRenewal, 16 AS PackageTypeId, CustomerSuspended ,(
	 SELECT STUFF((
		SELECT ',' + EXD.DomainName
		FROM HB_tblExchangeOrganizationDomains EXD
		INNER JOIN HB_tblExchangeOrganizations EXO ON EXO.OrganizationID = EXD.OrganizationID
		WHERE HB_tblExchangeHosting.ExchHostingID = EXO.ExchHostingID
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                           
   FROM   HB_tblExchangeHosting                            
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 16 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT SPId, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                             
       NextRenewal, 17 AS PackageTypeId, CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + SPD.DomainName
		FROM Hb_tblSPOrganizationDomains SPD
		INNER JOIN HB_tblSPOrganizations SPO ON SPO.OrgId = SPD.SPOrgId
		WHERE HB_tblSPHosting.SPId = SPO.SPId
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                               
   FROM   HB_tblSPHosting                            
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 17 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT CRMId, CustomerId, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentId, Comments, IsCancelled, Status, LastRenewal,                             
       NextRenewal, 14 AS PackageTypeId, CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + CRMD.DomainName
		FROM Hb_tblCRMOrganizationDomains CRMD
		INNER JOIN HB_tblCRMOrganizations CRMO ON CRMO.OrgId = CRMD.OrgId
		WHERE HB_tblCRMHosting.CRMId = CRMO.CRMId
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                             
   FROM   HB_tblCRMHosting                            
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 14 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT OCSHostingID, CustomerID, DomainName, SoldPackageID, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,       
       NextRenewal, 18 AS PackageTypeId, CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + OCSD.DomainName
		FROM HB_tblOCSOrganizationDomains OCSD
		INNER JOIN HB_tblOCSOrganizations OCSO ON OCSO.OrganizationID = OCSD.OrganizationID
		WHERE HB_tblOCSHosting.OCSHostingID= OCSO.OCSHostingID
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                             
   FROM   HB_tblOCSHosting                            
   WHERE  (CompanyID = @CompanyId) AND (@PackageTypeId = 18 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT ResellerID, CustomerID, DomainName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                             
 NextRenewal, 2 AS PackageTypeId, CustomerSuspended , '' As AdditionalDomains                                                         
   FROM   HB_tblResellerHosting WHERE  (@PackageTypeId = 2 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT SSLId, CustomerID, DomainName, SoldPackageID, SignupDate, IsPending, 0 AS IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                             
       NextRenewal, 8 AS PackageTypeId , 0 AS CustomerSuspended, '' As AdditionalDomains                                                         
   FROM   HB_tblSSLCert                            
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 8 OR @PackageTypeId = 0)                        
   UNION ALL                            
   SELECT VPSHostingID, CustomerID, VPSName, SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                       
       NextRenewal, 19 AS PackageTypeId , CustomerSuspended, '' As AdditionalDomains                                                         
   FROM   HB_tblVPSHosting                            
   WHERE  (CompanyId = @CompanyId) AND (@PackageTypeId = 19 OR @PackageTypeId = 0)             
   UNION ALL            
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN O365H.PrimaryDomainName = '' THEN H.SubscriptionName ELSE O365H.PrimaryDomainName END,             
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                       
  NextRenewal, 21 AS PackageTypeId , CustomerSuspended,(
	 SELECT STUFF((
		SELECT ',' + TD.DomainName
		FROM Hb_tblO365TenantDomains TD
		INNER JOIN Hb_tblO365Tenants T ON T.TenantId = TD.TenantId
		WHERE O365H.O365HostingId= T.O365HostingID
		FOR XML PATH('')
	), 1, 1, '')) As AdditionalDomains                           
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblO365Hosting O365H ON H.ServiceHostingID = O365H.ServiceHostingID            
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 21 OR @PackageTypeId = 0)             
   UNION ALL            
   SELECT H.ServiceHostingID, CustomerID, H.SubscriptionName,             
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                       
  NextRenewal, 3 AS PackageTypeId , CustomerSuspended, '' As AdditionalDomains                                                        
   FROM   HB_tblServiceHosting H             
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 3 OR @PackageTypeId = 0)            
   UNION ALL            
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN RDSH.PrimaryDomainName = '' THEN H.SubscriptionName  ELSE RDSH.PrimaryDomainName END,             
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                       
  NextRenewal, 22 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains                           
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblRDSHosting RDSH ON H.ServiceHostingID = RDSH.ServiceHostingID            
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 22 OR @PackageTypeId = 0)            
   UNION ALL            
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN WH.DomainName = '' THEN H.SubscriptionName  ELSE WH.DomainName END,             
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                       
  NextRenewal, 23 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains                           
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblWorkfolderHosting WH ON H.ServiceHostingID = WH.ServiceHostingID            
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 23 OR @PackageTypeId = 0)            
   UNION ALL            
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN SH.DomainName= '' THEN H.SubscriptionName  ELSE SH.DomainName END,             
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                  
  NextRenewal, 24 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains                           
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblSIPHosting SH ON H.ServiceHostingID = SH.ServiceHostingID         
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 24 OR @PackageTypeId = 0)         
    UNION ALL            
   SELECT H.ServiceHostingID, CustomerID, CASE WHEN SH.Domain= '' THEN H.SubscriptionName  ELSE SH.Domain END,             
  SoldPackageId, SignupDate, IsPending, IsTrial, SalesAgentID, Comments, IsCancelled, Status, LastRenewal,                       
  NextRenewal, 25 AS PackageTypeId , CustomerSuspended, '' AS AdditionalDomains                           
   FROM   HB_tblServiceHosting H INNER JOIN HB_tblHostedVoiceHosting SH ON H.ServiceHostingID = SH.ServiceHostingID            
   WHERE  (H.CompanyId = @CompanyId) AND (@PackageTypeId = 25 OR @PackageTypeId = 0)         
) AS Subs INNER JOIN                            
     tblCustomers AS Cust ON Subs.CustomerID = Cust.CustomerID ON PackSold.SoldPackageID = Subs.SoldPackageId AND Pack.PackageTypeID = Subs.PackageTypeId                     
                       
     LEFT OUTER JOIN HB_tblServiceQueue AS SQ ON Subs.HostingId = SQ.AccountId AND Subs.PackageTypeId = SQ.PackageTypeId AND SQ.ActionType IN (1,3,4,5)                            
 WHERE  (Cust.CompanyID = @CompanyId)                                                        
 AND (@PackageTypeId Is Null OR @PackageTypeId < 1 OR Subs.PackageTypeId = @PackageTypeId)                                  
 AND (@DomainName Is Null OR @DomainName = '' OR Subs.DomainName = @DomainName OR ','+Subs.AdditionalDomains+ ',' like '%,'+ @DomainName +',%')                                     
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')               
 LIKE '%'+@CustomerName+'%')                            
 
 AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR Subs.HostingId = @AccountId)                            
 AND (@Trial Is Null OR @Trial = '' OR @Trial < 0 OR CAST(Subs.IsTrial AS NVARCHAR(2)) = @Trial)                            
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)                            
                                               
 UNION ALL                            
                            
 SELECT DedH.ServerID, DedH.CustomerID, DedH.ReferenceID, '' AS AdditionalDomains, DedH.PackageId, DedH.SignUpDate, DedH.IsPending, DedH.IsTrial, DedH.SalesAgentID, DedH.Comments,                             
     DedH.IsCancelled, DedH.Status, DedH.LastRenewal, DedH.NextRenewal, 5 AS PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                             
     Pack.PackageId, Pack.PackageName, Cust.CustomerNumber,                             
CASE                            
                      WHEN SQ.ActionType = 1 THEN 7                            
                      WHEN SQ.ActionType = 3 THEN 8                            
                      WHEN SQ.ActionType = 4 THEN 9                            
                      WHEN SQ.ActionType = 5 THEN 10                             
                      ELSE DedH.Status                            
                      END AdvanceStatus , Pack.ResellerPackage, Cust.IsSuspend,DedH.CustomerSuspended                           
 FROM   HB_tblDedicatedHosting AS DedH INNER JOIN                            
     tblCustomers AS Cust ON DedH.CustomerID = Cust.CustomerID INNER JOIN                            
     HB_tblPackages AS Pack ON DedH.PackageId = Pack.PackageID LEFT OUTER JOIN                            
           HB_tblServiceQueue AS SQ ON DedH.ServerID = SQ.AccountId  AND SQ.PackageTypeId = 5 AND SQ.ActionType IN (1,3,4,5)                            
 WHERE  (Cust.CompanyID = @CompanyId) AND (@PackageTypeId = 5 OR @PackageTypeId = 0)                       
 AND (@DomainName Is Null OR @DomainName = '' OR DedH.ReferenceID = @DomainName)                    
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')               
 LIKE '%'+@CustomerName+'%')                            
 
 AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR DedH.ServerID = @AccountId)    
 AND (@Trial Is Null OR @Trial = '' OR @Trial < 0 OR CAST(DedH.IsTrial AS NVARCHAR(2)) = @Trial)    
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)    
                                                   
 UNION ALL                            
                                  
 SELECT DR.RegistrationID, DR.CustomerID, DR.DomainName, '' AS AdditionalDomains, DR.TLDID, DR.SignupDate, DR.IsPending, DR.IsTransfer, DR.SalesAgentId, DR.Comments, DR.IsCancelled,                             
     DR.Status, DR.LastRenewal, DR.NextRenewal, 10 AS PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                             
     DR.TLDID, DTlDs.TLDName,Cust.CustomerNumber,                             
                      CASE                            
                      WHEN SQ.ActionType = 1 THEN 7                            
                      WHEN SQ.ActionType = 3 THEN 8                            
       WHEN SQ.ActionType = 4 THEN 9                            
                      WHEN SQ.ActionType = 5 THEN 10                             
                      ELSE DR.Status                            
                      END AdvanceStatus , 0 AS ResellerPackage, Cust.IsSuspend, 0 AS CustomerSuspended                        
 FROM   HB_tblDomainRegistrations AS DR INNER JOIN                            
     HB_tblDomainTLDs AS DTlDs ON DR.TLDID = DTlDs.TLDID INNER JOIN                            
     tblCustomers AS Cust ON DR.CustomerID = Cust.CustomerID LEFT OUTER JOIN                            
           HB_tblServiceQueue AS SQ ON DR.RegistrationID = SQ.AccountId   AND SQ.PackageTypeId = 10 AND SQ.ActionType IN (1,3,4,5)                               
 WHERE  (DR.CompanyId = @CompanyId) AND (@PackageTypeId = 10 OR @PackageTypeId = 0)                       
 AND (@DomainName Is Null OR @DomainName = '' OR DR.DomainName = @DomainName)    
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')               
 LIKE '%'+@CustomerName+'%')                            
 
 AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR DR.RegistrationID = @AccountId)    
 AND (@Trial Is Null OR @Trial = '' OR @Trial < 0 OR CAST(DR.IsTransfer AS NVARCHAR(2)) = @Trial)    
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)    
                             
 UNION ALL                            
 SELECT * FROM               
 (                           
 SELECT ADS.SoldAddOnId AS HostingId, ADS.CustomerID,                     
 ISNULL(CASE          
 WHEN AT.PackageTypeID = 01 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblHosting WHERE HostingID = (ADS.SoldToAccountId)     
 AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 02 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE     
 SoldPackageID = (SELECT SoldPackageID from HB_tblResellerHosting WHERE ResellerID = ADS.SoldToAccountId))+ ']'                    
 WHEN AT.PackageTypeID = 03 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblADHosting WHERE     
 ADHostingId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'            
 WHEN AT.PackageTypeID = 05 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE     
 SoldPackageID = (SELECT PackageId from HB_tblDedicatedHosting WHERE ServerID = ADS.SoldToAccountId))+ ']'       
 WHEN AT.PackageTypeID = 08 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE     
 SoldPackageID = (SELECT SoldPackageID from HB_tblSSLCert WHERE SSLId = ADS.SoldToAccountId))+ ']'               
 WHEN AT.PackageTypeID = 10 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblDomainRegistrations WHERE     
 RegistrationID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName ='' OR DomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 14 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblCRMHosting WHERE     
 CRMId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 16 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblExchangeHosting WHERE     
 ExchHostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 17 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblSPHosting WHERE     
 SPId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 18 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblOCSHosting WHERE     
 OCSHostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 19 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PackageName FROM HB_tblPackagesSold WHERE     
 SoldPackageID = (SELECT SoldPackageID from HB_tblVPSHosting WHERE VPSHostingID = ADS.SoldToAccountId))+ ']'    
 WHEN AT.PackageTypeID = 21 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PrimaryDomainName FROM HB_tblServiceHosting H             
 INNER JOIN HB_tblO365Hosting O365H ON H.ServiceHostingID = O365H.ServiceHostingID WHERE H.ServiceHostingID = (ADS.SoldToAccountId)            
 AND (@DomainName IS NULL OR @DomainName = '' OR O365H.PrimaryDomainName = @DomainName)) + ']'             
 WHEN AT.PackageTypeID = 22 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT PrimaryDomainName FROM Hb_tblRDSHosting WHERE     
 RDSHostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR PrimaryDomainName = @DomainName)) + ']'                    
 WHEN AT.PackageTypeID = 23 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM Hb_tblWorkfolderHosting WHERE     
 HostingID = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'          
 WHEN AT.PackageTypeID = 24 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT DomainName FROM HB_tblSIPHosting WHERE     
 SIPHostingId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR DomainName = @DomainName)) + ']'          
 WHEN AT.PackageTypeID = 25 THEN 'For Subs# '+ CONVERT(NVARCHAR(5),ADS.SoldToAccountId) + ' [' + (SELECT Domain FROM HB_tblHostedVoiceHosting WHERE     
 HostedVoiceId = (ADS.SoldToAccountId) AND (@DomainName IS NULL OR @DomainName = '' OR Domain = @DomainName)) + ']'          
 ELSE '' END,'')                    
 AS DomainName, '' AS AdditionalDomains,                     
 ADS.SoldAddonID AS SoldPackageId, ADS.SignupDate, ADS.IsPending, 0 AS IsTransfer, ADS.SalesAgentId, ADS.Comments, ADS.IsCancelled,                             
 ADS.Status, ADS.LastRenewal, ADS.NextRenewal, 15 AS PackageTypeId, Cust.FirstName, Cust.LastName, Cust.CompanyName, Cust.CompanyID,                             
 ADS.AddOnId, ADO.AddOnName,Cust.CustomerNumber,                             
                      CASE                            
                      WHEN SQ.ActionType = 1 THEN 7                            
                      WHEN SQ.ActionType = 3 THEN 8                            
                      WHEN SQ.ActionType = 4 THEN 9                            
                      WHEN SQ.ActionType = 5 THEN 10                             
                      ELSE ADS.Status                            
                      END AdvanceStatus,                     
                      ISNULL(                  
        (SELECT ResellerPackage FROM HB_tblPackages WHERE PackageID = (SELECT PackageID FROm HB_tblPackagesSold WHERE SoldPackageId = (                  
        SELECT CASE                   
        WHEN AT.PackageTypeID = 01 THEN (SELECT SoldPackageId FROM Hb_tblHosting WHERE HostingID = (ADS.SoldToAccountId))                  
        WHEN AT.PackageTypeID = 02 THEN (SELECT SoldPackageID from HB_tblResellerHosting WHERE ResellerID = ADS.SoldToAccountId)                  
        WHEN AT.PackageTypeID = 05 THEN (SELECT PackageId from HB_tblDedicatedHosting WHERE ServerID = ADS.SoldToAccountId)                  
        WHEN AT.PackageTypeID = 08 THEN (SELECT SoldPackageID from HB_tblSSLCert WHERE SSLId = ADS.SoldToAccountId)                  
        WHEN AT.PackageTypeID = 14 THEN (SELECT SoldPackageId FROM Hb_tblCRMHosting WHERE CRMId = (ADS.SoldToAccountId))                  
        WHEN AT.PackageTypeID = 16 THEN (SELECT SoldPackageId FROM Hb_tblExchangeHosting WHERE ExchHostingID = (ADS.SoldToAccountId))                  
        WHEN AT.PackageTypeID = 17 THEN (SELECT SoldPackageId FROM HB_tblSPHosting WHERE SPId = (ADS.SoldToAccountId))                  
        WHEN AT.PackageTypeID = 18 THEN (SELECT SoldPackageId FROM HB_tblOCSHosting WHERE OCSHostingID = (ADS.SoldToAccountId))                  
        WHEN AT.PackageTypeID = 19 THEN (SELECT SoldPackageID FROM HB_tblVPSHosting WHERE VPSHostingID = ADS.SoldToAccountId)                  
  WHEN AT.PackageTypeID IN (3, 21, 22, 23, 24,25) THEN (SELECT SoldPackageID FROM HB_tblServiceHosting WHERE ServiceHostingID = ADS.SoldToAccountId)                  
        ELSE 0 END                  
                      ))),0) AS ResellerPackage ,Cust.IsSuspend, 0 AS CustomerSuspended                 
 FROM   Hb_tblAddOnsSold AS ADS INNER JOIN                            
     Hb_tblAddOns AS ADO ON ADS.AddOnId = ADO.AddOnId INNER JOIN                            
     Hb_tblAddOnTypes AS AT ON AT.AddOnTypeId = ADO.AddOnTypeID INNER JOIN                        
     tblCustomers AS Cust ON ADS.CustomerID = Cust.CustomerID LEFT OUTER JOIN                            
           HB_tblServiceQueue AS SQ ON ADS.SoldAddonID = SQ.AccountId  AND SQ.PackageTypeId = 15 AND SQ.ActionType IN (1,3,4,5)                           
 WHERE Cust.CompanyId = @CompanyId AND (@PackageTypeId = 15 OR @PackageTypeId = 0) AND AT.PackageTypeID <> 2                       
 AND (@CustomerName Is Null or @CustomerName = '' OR REPLACE(REPLACE(REPLACE(Cust.FirstName + ' ' + Cust.LastName, '[','[[]'), '%','[%]'), '_', '[_]')               
 LIKE '%'+@CustomerName+'%')                            
 
AND (@AccountId Is Null OR @AccountId = '' OR @AccountId < 1 OR ADS.SoldAddOnId = @AccountId)    
 AND (@CustomerId Is Null OR @CustomerId = '' OR @CustomerId < 1 OR Cust.CustomerId = @CustomerId)    
  )AddOnAccounts      
  WHERE (@DomainName IS NULL OR @DomainName = '' OR REPLACE(AddOnAccounts.DomainName,'[','[[]') LIKE '%' +@DomainName + '%')    
  AND @Trial != 1          
 ) Subsctriptions     
 WHERE (@Status Is Null OR @Status = '' OR @Status < 1 OR AdvanceStatus = @Status)    
END     
GO

IF OBJECT_ID('CSP_GetDNSBlocks', 'P') IS NOT NULL
    DROP PROCEDURE CSP_GetDNSBlocks
GO

CREATE PROCEDURE [CSP_GetDNSBlocks]
(
    @VPSHostingId INT = 0,
    @VPSServerGroupId INT = 0,
	@IsSharedDNSPool BIT=0
)
AS
BEGIN
    
    IF @VPSHostingId !=0
    BEGIN
        SELECT *
        FROM HB_VPS_tblVPSHostingDNSBlocks
		INNER JOIN HB_VPS_tblVPSServerDNSBlocks ON HB_VPS_tblVPSHostingDNSBlocks.DNSBlockId=HB_VPS_tblVPSServerDNSBlocks.DNSBlockId
        WHERE VPSHostingId = @VPSHostingId AND IsSharedDNSPool=@IsSharedDNSPool
    END

    
    ELSE  
    BEGIN
        SELECT *
        FROM HB_VPS_tblVPSServerDNSBlocks
        WHERE VPSServerGroupId = @VPSServerGroupId AND IsSharedDNSPool=@IsSharedDNSPool
    END
END
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetSettingsForVMServerMappingForProvisioning')
BEGIN
	DROP PROCEDURE SPR_GetSettingsForVMServerMappingForProvisioning
END
GO

Create Procedure SPR_GetSettingsForVMServerMappingForProvisioning
(
@VPSHostingId int
)
AS
Declare @CustomerId int
Declare @ServerGroupId int

Select @CustomerId = H.CustomerId, @ServerGroupId = H.VPSServerID from HB_tblVPSHosting H Where H.VPSHostingID = @VPSHostingId

Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,
S.VPSServerGroupID
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)
and CustomerId = @CustomerId 

Union

Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,
S.VPSServerGroupID
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping Where CustomerId=@CustomerId
and S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId))

Order by CurrentServer Desc
GO

ALTER Procedure CSP_GetRAMDetailOFServersAgainstServerGroup 
 @VPSServerGroupID int, 
 @CustomerId int
AS      
Select Srv.VPSServerId, Srv.ReferenceID, isnull(sum(A.RAM),0) as RAMAllocad, IsNull(Srv.MaxRAM,0)*1024 as MaxRAMOnServer,      
(IsNull(Srv.MaxRAM,0)*1024)-(isnull(sum(A.RAM),0)) as FreeRAMOnServer, (isnull(sum(A.RAM),0)*100)/(IsNull(Srv.MaxRAM,0)*1024) AS PercentUsed,  
Srv.ServerRole  
from HB_VPS_tblVPSServer Srv left outer join HB_tblVPSAccounts A on Srv.VPSServerID = A.VPSServerId       
where Srv.VPSServerGroupID=@VPSServerGroupID and Srv.Active=1  
and Srv.VPSServerId IN 
(
Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId) and CustomerId = @CustomerId

Union

Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId)
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping Where CustomerId=@CustomerId
and S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId))
)
group by Srv.VPSServerId, Srv.MaxRAM, Srv.ReferenceID, Srv.ServerRole     
Order By PercentUsed asc   
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SP_EM_VPSMappedServersSelectBySGIdCustomerId')
BEGIN
	DROP PROCEDURE SP_EM_VPSMappedServersSelectBySGIdCustomerId
END
GO

Create PROCEDURE SP_EM_VPSMappedServersSelectBySGIdCustomerId
 @VPSServerGroupID bigint,
 @CustomerId int
AS   
BEGIN  
 SELECT *  FROM [HB_VPS_tblVPSServer] WHERE  VPSServerGroupID = @VPSServerGroupID AND Active=1
 and VPSServerId IN 
(
Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId) and CustomerId = @CustomerId

Union

Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId)
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping Where CustomerId=@CustomerId
and S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId))
)
END     
GO


Alter PROCEDURE SPR_UpdateADirUserLDAPUrl    
(    
 @ADUserId INT,    
 @UserLDAPUrl NVARCHAR(500)    
)    
AS    
BEGIN   
 Declare @OldLDAPURL nvarchar(500) = (Select UserLDAPURL from HB_tblADirUsers Where ADUserID = @ADUserId)  
 
 UPDATE HB_tblADirUsers SET UserLDAPURL = @UserLDAPUrl WHERE ADUserID = @ADUserId     
 UPDATE HB_tblSyncADUser SET UserLDAPURL = @UserLDAPUrl WHERE ADUserID = @ADUserId
 
 if @OldLDAPURL != ''
 Begin

	 UPDATE HB_tblSyncExMailbox SET UserLDAPUrl=@UserLDAPUrl WHERE UserLDAPUrl = @OldLDAPURL AND ADUserID = @ADUserId
	 Update HB_tblExchangeMailContacts SET ManagerLDAP = @UserLDAPUrl Where ManagerLDAP = @OldLDAPURL  
	 Update HB_tblSyncExMailContact SET ManagerLDAP = @UserLDAPUrl Where ManagerLDAP = @OldLDAPURL  
	 UPDATE Hb_tblExchangeMailUsers SET ManagerLDAP=@UserLDAPUrl WHERE ManagerLDAP = @OldLDAPURL
	 UPDATE HB_tblADirUsers SET DirectManagerLDAP = @UserLDAPUrl WHERE DirectManagerLDAP = @OldLDAPURL   
	 UPDATE Hb_tblADirSecurityGroupsMembers SET MemberLDAP = @UserLDAPUrl WHERE MemberLDAP = @OldLDAPURL AND MemberType = 'user' 
 End
END  
GO



ALTER PROCEDURE SP_EM_EXGetMailBoxReport     
(              
 @Owner nvarchar(10),              
 @OrgName nvarchar (255),              
 @DomainName nvarchar (255),              
 @Name nvarchar (200) ,              
 @CustomerId nvarchar(10),              
 @CustCompanyName nvarchar(200),              
 @MailboxType nvarchar(200),              
 @DisplayName nvarchar(500),              
 @EmailAddress nvarchar(255),              
 @Address  nvarchar(1000),              
 @City nvarchar(200),              
 @State nvarchar(200),             
 @Zip nvarchar(50),              
 @CountryId  int,              
 @JobTitle  nvarchar(200),              
 @Company  nvarchar(200),              
 @Department  nvarchar(200),              
 @Office nvarchar(1000),              
 @Phone nvarchar(1000),              
 @StatusType  nvarchar(50),              
 @EduDiscount int,              
 @SPLAType  nvarchar(50),              
 @SAMAccountName nvarchar(255),            
 @MBTemplate nvarchar(1000),            
 @LHType int,              
 @HFOALSType int,             
 @LastLogInMonths int,             
 @SortExpression NVARCHAR(100),              
 @SortDirection NVARCHAR(10),              
 @PageSize INT,              
 @PageOffset INT  ,              
 @SubResellerID int,          
 @OrgId int, @StaffRoleId int    
)              
As             
BEGIN             
	 Update HB_tblExchangeMailboxDetail Set IssueWarningAt='-1' Where  IssueWarningAt='unlimited'              
	 Update HB_tblExchangeMailboxDetail Set ProhibitSendAt='-1' Where  ProhibitSendAt='unlimited'              
	 Update HB_tblExchangeMailboxDetail Set ProhibitSendRecAt='-1' Where  ProhibitSendAt='unlimited'             
 
	 UPDATE [HB_tblExchangeMailboxes]      
	   SET [CurrentUsage] = 0
	   WHERE MailboxType = 'o365 mailbox' and [CurrentUsage] <> 0

	 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @Name OUTPUT             
              
	 Declare @SortExp nvarchar(400)              
              
	 IF(@SortExpression = 'CustCompanyName')              
	  BEGIN              
	  SET @SortExp = 'C.CompanyName '+ @SortDirection              
	  END              
	 ELSE IF(@SortExpression = 'Owner')              
	  BEGIN              
	  SET @SortExp = 'COMP.FirstName+'' ''+COMP.LastName '+ @SortDirection              
	  END              
	 ELSE IF(@SortExpression = 'Customer')              
	  BEGIN              
	  SET @SortExp = 'C.FirstName+'' ''+C.LastName '+ @SortDirection              
	  END              
	 ELSE IF(@SortExpression = 'OrganizationName')              
	  BEGIN              
	  SET @SortExp = 'Org.OrganizationName '+ @SortDirection              
	  END              
	 ELSE IF(@SortExpression = 'PackageName')              
	  BEGIN              
	  SET @SortExp = ' PS.PackageName '+ @SortDirection              
	  END             
	 ELSE IF(@SortExpression = 'EduDiscount')              
	  BEGIN              
	  SET @SortExp = ' PS.EduDiscount '+ @SortDirection              
	  END             
	 ELSE IF(@SortExpression = 'MailBox')              
	  BEGIN              
	  SET @SortExp = ' MailBoxDisplayName+'' [''+EmailAddress+'']'' '+ @SortDirection              
	  END              
	 ELSE              
	  BEGIN              
	  Set @SortExp = @SortExpression +' '+ @SortDirection              
	  END             
              
	Declare @Where nvarchar (max)             
	SET @Where = ' AND MBx.UserLDAPUrl <> '''' '              
              
              
	 if(@OrgName != '' AND @OrgName IS NOT NULL)              
	 Begin              
	 Set @OrgName = REPLACE(@OrgName,'''','''''')            
	 SET @Where = @Where + ' and (Org.OrganizationName like ''%''+N'''+ REPLACE(@OrgName,'''','''''')+'''+''%''              
	 or Org.OrgInternalName like ''%''+N'''+ REPLACE(@OrgName,'''','''''')+'''+''%'')'              
	 END              
          
	 if(@OrgId != '' AND @OrgId !='-1')              
	 Begin              
	 SET @Where = @Where + ' and Org.OrganizationId =  '+convert(nvarchar(10),@OrgId)          
	 END          
            
	 if(@DomainName != '' AND @DomainName IS NOT NULL)              
	 Begin              
	 Set @DomainName = REPLACE(@DomainName,'''','''''')            
	 SET @Where = @Where + ' and Org.OrganizationId IN (Select TOP 1 OD.OrganizationID from HB_tblExchangeOrganizationDomains OD             
	 Where OD.DomainName != '''' And OD.DomainName like ''%''+N'''+ REPLACE(@DomainName,'''','''''')+'''+''%'')'              
	 END            
             
	 if(@Name != '' AND @Name IS NOT NULL)              
	 SET @Where = @Where + ' and C.FirstName+'' ''+C.LastName like ''%''+N'''+  @Name +'''+''%'''              
              
	 If (@Owner!='0' AND @Owner != '-1' AND @Owner != '' AND @Owner IS NOT NULL)              
	 Set @Where= @Where+' and COMP.CompanyId = '''+@Owner+''''             
              
	 If (@CustomerId!='0' AND @CustomerId != '-1' AND @CustomerId != '' AND @CustomerId IS NOT NULL)              
	 Set @Where= @Where+' and C.CustomerId = '''+@CustomerId+''''              
              
	 if(@CustCompanyName !='' AND @CustCompanyName IS NOT NULL)              
	 Set @Where=@Where+' and C.CompanyName like ''%''+N'''+ REPLACE(@CustCompanyName,'''','''''')+'''+''%'' '              
              
	 If (@MailboxType!='' AND @MailboxType != '-1' AND @MailboxType IS NOT NULL)             
	 Set @Where=@Where+' and Mbx.MailboxType like ''%''+N'''+ REPLACE(@MailboxType,'''','''''')+'''+''%'' '              
             
	 if(@SAMAccountName != '' And @SAMAccountName IS NOT NULL)            
	 Set @Where=@Where+' and Mbx.SAMAccountName like ''%''+N'''+ REPLACE(@SAMAccountName,'''','''''')+'''+''%'' '              
            
	 if(@DisplayName != '' AND @DisplayName IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.DisplayName like ''%''+N'''+ REPLACE(@DisplayName,'''','''''')+'''+''%'''             
             
	 if(@EmailAddress != '' AND @EmailAddress IS NOT NULL)              
	 SET @Where = @Where + 'AND (Mbx.UPN LIKE ''%'' + N''' + REPLACE(@EmailAddress,'''','''''') + ''' + ''%'' OR '            
	 + 'EXISTS(SELECT MBEMail2.MailBoxID FROM HB_tblExchangeEmailAddresses MBEMail2             
	 WHERE Mbx.MailboxID = MBEMail2.MailBoxID AND MBEMail2.EmailAddress LIKE ''%'' + N''' + REPLACE(@EmailAddress,'''','''''') + ''' + ''%''))'              
             
	 if (@MBTemplate != '')              
	 Begin              
	 Set @Where += ' and Mbx.MailBoxTemplateId In(Select MT.MailBoxTemplateId From Hb_tblExchangeMailBoxTemplates MT   
	 Where MT.TemplateName like ''%''+N'''+ replace(@MBTemplate,'''','''''')+'''+''%'') '             
	 End            
            
	 if(@Address != '' AND @Address IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.Address like ''%''+N'''+ REPLACE(@Address,'''','''''')+'''+''%'''             
              
	 if(@City != '' AND @City IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.City like ''%''+N'''+ REPLACE(@City,'''','''''')+'''+''%'''             
              
	 if(@State != '' AND @State IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.State like ''%''+N'''+ REPLACE(@State,'''','''''')+'''+''%'''             
              
	 if(@Zip != '' AND @Zip IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.Zip like ''%''+N'''+ REPLACE(@Zip,'''','''''')+'''+''%'''             
              
	 If (@CountryId IS NOT NULL AND @CountryId <>'' AND @CountryId > 1)             
	 Set @Where= @Where+' and ADU.Country = '''+ CONVERT(nvarchar(5), @CountryId) +''''              
              
	 if(@JobTitle != '' AND @JobTitle IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.JobTitle like ''%''+N'''+ REPLACE(@JobTitle,'''','''''')+'''+''%'''             
              
	 if(@Company != '' AND @Company IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.Company like ''%''+N'''+ REPLACE(@Company,'''','''''')+'''+''%'''             
              
	 if(@Department != '' AND @Department IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.Department like ''%''+N'''+ REPLACE(@Department,'''','''''')+'''+''%'''             
              
	 if(@Office != '' AND @Office IS NOT NULL)              
	 SET @Where = @Where + ' and ADU.Office like ''%''+N'''+ REPLACE(@Office,'''','''''')+'''+''%'''          
             
	 if(@Phone != '' AND @Phone IS NOT NULL)              
	 SET @Where = @Where + ' and (ADU.BusinessPhone like ''%''+N'''+ REPLACE(@Phone,'''','''''')+'''+''%''             
	 OR ADU.HomePhone like ''%''+N'''+ REPLACE(@Phone,'''','''''')+'''+''%'' OR ADU.MobilePhone like ''%''+N'''+ REPLACE(@Phone,'''','''''')+'''+''%'') '             
            
	 if (@LHType != -1)              
	 Set @Where += ' and Mbx.LitigationHold ='+ Convert(nvarchar(50),@LHType)             
              
	 if (@HFOALSType != -1)              
	 Set @Where=@Where + ' and Mbx.HideFromOtherALs ='+  Convert(nvarchar(50),@HFOALSType)            
            
	 IF (@LastLogInMonths > -1)              
	 BEGIN              
	 Set @Where=@Where + ' and Mbx.LastLoginTimeUTC <= (GETUTCDATE() - (' + CONVERT(NVARCHAR(5), @LastLogInMonths) + ' * 30)) '              
	 END            
            
	 if(@StatusType != '' AND @StatusType IS NOT NULL)              
	 Begin              
	  if(@StatusType = 'Active')              
	 SET @Where = @Where + ' AND Mbx.Disabled = ''0'' AND Mbx.Status = ''0'''            
	  else if(@StatusType = 'Disabled')              
	 SET @Where = @Where + ' AND Mbx.Disabled = ''1'''             
	  else if(@StatusType = 'Provisioning')              
	 SET @Where = @Where + ' AND Mbx.Status = ''1'''             
	 End              
              
	 if(@EduDiscount != '-1' AND  @EduDiscount IS NOT NULL)              
	  SET @Where = @Where + ' and PS.EduDiscount = ''' + CONVERT(nvarchar(5), @EduDiscount) + ''''             
              
	 if(@SPLAType != '' AND @SPLAType != '-1' AND @SPLAType IS NOT NULL)              
	 Begin              
	  if(@SPLAType = 'Basic')              
	 SET @Where = @Where + ' AND EnterpriseTemplate = ''0'' AND MAPIAccess = ''0'' AND OWAUMIntegration = ''0'' AND OWAActiveSync = ''0'' AND OWANonCachedMode = ''0''             
	 AND ExchangeActivesync = ''0'' AND OWAPublicFolder = ''0'' AND UMEnabled = ''0'' AND OutLookCAL= ''0''             
	 AND ArchiveDBName = '''' AND JournalingMailboxId = ''0'' AND InPlaceHoldEnabled= ''0'' and MBx.LitigationHold = ''0'' and MailboxType IN (''User Mailbox'', ''Linked Mailbox'') '              
	  else if(@SPLAType = 'Standard')             
	 SET @Where = @Where + ' AND EnterpriseTemplate = ''0'' AND (MAPIAccess = ''1'' OR OWAUMIntegration = ''1'' OR OWAActiveSync = ''1'' OR OWANonCachedMode = ''1''             
	 OR ExchangeActivesync = ''1'' OR OWAPublicFolder = ''1'' OR UMEnabled = ''1'') AND OutLookCAL = ''0'' AND ArchiveDBName = '''' AND JournalingMailboxId = ''0''             
	 AND InPlaceHoldEnabled= ''0'' and MBx.LitigationHold = ''0''             
	 and MailboxType IN (''User Mailbox'', ''Linked Mailbox'') '              
	  else if(@SPLAType = 'Standard Plus')             
	 SET @Where = @Where + ' AND EnterpriseTemplate = ''0'' AND (MAPIAccess = ''1'' OR OWAUMIntegration = ''1'' OR OWAActiveSync = ''1'' OR OWANonCachedMode = ''1''             
	 OR ExchangeActivesync = ''1'' OR OWAPublicFolder = ''1'' OR UMEnabled = ''1'')             
	 AND OutLookCAL = ''1'' AND ArchiveDBName = '''' AND JournalingMailboxId = ''0''             
	 AND InPlaceHoldEnabled= ''0'' and MBx.LitigationHold = ''0''             
	 and MailboxType IN (''User Mailbox'', ''Linked Mailbox'') '              
	  else if(@SPLAType = 'Enterprise')              
	 SET @Where = @Where + ' AND OutLookCAL = ''0'' AND (EnterpriseTemplate != ''0'' OR JournalingMailboxId != ''0'' Or InPlaceHoldEnabled != ''0'' Or MBx.LitigationHold != ''0''  OR ArchiveDBName != '''')             
	 and MailboxType IN (''User Mailbox'', ''Linked Mailbox'')'              
	  else if(@SPLAType = 'Enterprise Plus')             
	 SET @Where = @Where + ' AND OutLookCAL = ''1'' AND (EnterpriseTemplate != ''0'' OR JournalingMailboxId != ''0'' Or InPlaceHoldEnabled != ''0'' Or MBx.LitigationHold != ''0'' OR ArchiveDBName != '''')             
	 and MailboxType IN (''User Mailbox'', ''Linked Mailbox'')'              
	 End    
     
	If @SubResellerId!='0'              
	Begin              
	 Set @Where=@Where+' and C.SubResellerId='+convert(nvarchar(10),@SubResellerId)              
	End              
              
	if @StaffRoleId > 0    
	BEGIN    
	Set @Where=@Where+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA     
	 Where RA.CustomerId = C.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'    
    
	Set @Where=@Where+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA     
	 Where RA.CompanyId = C.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'    
	END    
    
	Declare @SQL NVARCHAR(MAX)          
            
	SET @SQL = ' Select '              
              
              
              
	If (@PageSize != 0)              
	Begin              
	 SET @SQL += ' Top(@PageSize) '              
	End              
              
	Set @SQL += '(Select count(*)   
	FROM HB_tblExchangeOrganizations Org, Hb_tblExchangeHosting Exch, tblCompanies COMP, tblCustomers C, HB_tblPackagesSold PS, HB_tblPackages P,   
	HB_tblExchangeMailboxes Mbx, HB_tblExchangeMailboxDetail MBD, HB_tblExchangeEmailAddresses MBEmail, Hb_tblADirUsers ADU   
	Where Org.ExchHostingID=Exch.ExchHostingID and Exch.CompanyId=COMP.CompanyId and Exch.CustomerId=C.CustomerId   
	and PS.SoldPackageId=Exch.SoldPackageId and P.PackageId = PS.PackageId and P.ResellerPackage=''0'' and IsPrimaryEmailAddress = ''1''   
	and Mbx.MailBoxId = MBD.MailBoxId and Mbx.MailBoxId= MBEmail.MailBoxId and Mbx.ADUserID= ADU.ADUserID and SoftDelete = ''0''   
	and Org.OrganizationId = Mbx.OrganizationId '              
	  + @Where +' ) as TotalRecords, *   
	  from ( Select RowIndex= ROW_NUMBER() OVER(ORDER BY '+ @SortExp +'),  '              
	Set @SQL += '  C.CompanyName as CustCompanyName, C.FirstName+'' ''+C.LastName as Customer, C.CustomerNumber, C.CustomerId,   
	C.Phone AS CustomerPhone, C.PrimaryEmail AS CustomerEmail, COMP.FirstName+'' ''+COMP.LastName as [Owner], COMP.CompanyId,   
	CASE WHEN C.CompanyId > 1 THEN (SELECT Reseller.CustomerId FROM tblCustomers Reseller WHERE Reseller.OwnerId = C.CompanyId) ELSE 0 END AS ResellerId,   
	COMP.SupportEmail AS OwnerEmail, CASE WHEN ISNULL(COMP.CompanyPhone,'''')='''' THEN COMP.SupportPhone ELSE COMP.CompanyPhone END AS OwnerPhone,   
	Org.OrganizationID, Exch.ExchHostingID, OrganizationName, Mbx.MailBoxId, Mbx.MailBoxDisplayName, Mbx.UPN, MBEmail.EmailAddress, Mbx.SAMAccountName,   
	Mbx.MailBoxDisplayName+'' [''+MBEmail.EmailAddress+'']'' as MailBox,   
	(Select Stuff((Select '','' + EmailAddress From HB_tblExchangeEmailAddresses EA   
	 Where EA.MailBoxID = Mbx.MailBoxId Order By EmailAddress   
	 For XML PATH('''')),1,1,'''')) AS EmailAddresses,   
	 (SELECT CASE WHEN   
	 (EXISTS(SELECT 1 FROM HB_tblExchangeOrganizationSignatures WHERE OrganizationId = Mbx.OrganizationId AND IsOWASignature = ''0''   
	 AND (ApplyRuleLDAPs = '',0,'' OR ApplyRuleLDAPs = ''0'' OR ApplyRuleLDAPs LIKE ''%,'' + CONVERT(NVARCHAR(10), Mbx.MailBoxId) + '',%'' ))   
	 AND MBX.MailboxType = ''User Mailbox'' AND MBX.SoftDelete = ''0'' AND MBX.Disabled = ''0'')   
	 THEN 1 ELSE 0 END) As SignatureEnabled,   
	CurrentUsage, CurrentUsageTimeStamp, Mbx.LastLoginTimeUTC,Mbx.LastLoginTimeUTC as LastLoginDateTime, Mbx.TimeZone, IssueWarningAt, ProhibitSendAt,   
	ProhibitSendRecAt,OWAUMIntegration, OWAActiveSync, OWANonCachedMode, OWAPublicFolder, MAPIAccess, MBD.EWSAccess, EnterpriseTemplate, FoldersCount,   
	InboxItemsCount, OutboxItemsCount, DeletedItemsCount, DraftsItemsCount, TotalItemsCount, OutLookCAL, PS.EduDiscount, PopAccess, IMAPAccess,   
	ExchangeActiveSync, OWAHTTPAccess, UMEnabled, ArchiveDBName, JournalingEnabled =(CASE WHEN JournalingMailboxId=''0'' Then ''0'' Else ''1'' End),   
	MailboxType, Mbx.Disabled, Wireless= CASE WHEN exists(Select UserId from HB_tblWirelessAccounts Where mailboxId= Mbx.MailboxId) THEN ''1'' ELSE ''0'' End,   
	Mbx.MailboxTemplateID, Mbx.DateCreated,PS.PackageName,MailboxDbName,Mbx.LitigationHold, Mbx.HideFromOtherALs, Mbx.InPlaceHoldEnabled, Office,   
	Department, Mbx.InPlaceHoldEnabled as InPlaceHold, Mbx.LangCode AS Language, Mbx.ArchiveUsage, ADU.Country, ADU.MobilePhone, ADU.BusinessPhone,   
	ADU.HomePhone, ADU.Pager, ADU.Fax, ADU.Initials, ADU.Address, ADU.Zip, ADU.City, ADU.State, ADU.EmployeeId, ADU.JobTitle, ADU.WebPage,   
	ADU.PasswordLastSet, ADU.NationalId,   
	CASE WHEN ADU.DirectManagerLDAP = '''' THEN '''' ELSE (select UPName from HB_tblADirUsers ADU2 Where ADU.ADDomainID = ADU2.ADDomainID And   
	 ADU2.UserLDAPURL = ''LDAP://'' + ADU.DirectManagerLDAP) END AS Manager   
	 FROM HB_tblExchangeOrganizations Org, Hb_tblExchangeHosting Exch, tblCompanies COMP, tblCustomers C, HB_tblPackagesSold PS, HB_tblPackages P,   
	 HB_tblExchangeMailboxes Mbx, HB_tblExchangeMailboxDetail MBD, HB_tblExchangeEmailAddresses MBEmail, Hb_tblADirUsers ADU   
	Where Org.ExchHostingID = Exch.ExchHostingID and Exch.CompanyId=COMP.CompanyId and Exch.CustomerId=C.CustomerId   
	and PS.SoldPackageId=Exch.SoldPackageId and P.PackageId =PS.PackageId and P.ResellerPackage=''0'' and IsPrimaryEmailAddress=''1''   
	and Mbx.MailBoxId= MBD.MailBoxId and MBx.MailBoxId= MBEmail.MailBoxId and Mbx.ADUserID= ADU.ADUserID and SoftDelete = ''0''   
	and Org.OrganizationId=Mbx.OrganizationId '              
              
	SET @SQL += @Where             
	SET @SQL += ' ) ExMailBoxRecords '              
              
	If (@PageSize != 0)              
	  SET @SQL += ' Where RowIndex > ((@PageOffset - 1 ) * @PageSize) '              
              
	Set @SQL += ' ORDER BY '+ @SortExpression +' '+ @SortDirection              
              
	EXEC sp_executesql @SQL, N'              
	 @Owner nvarchar(10),              
	 @OrgName nvarchar (255),              
	 @DomainName nvarchar (255),              
	 @Name nvarchar (200) ,              
	 @CustomerId nvarchar(10),              
	 @CustCompanyName nvarchar(200),              
	 @MailboxType nvarchar(200),              
	 @DisplayName nvarchar(500),              
	 @EmailAddress nvarchar(255),              
	 @Address  nvarchar(1000),              
	 @City nvarchar(200),              
	 @State nvarchar(200),             
	 @Zip nvarchar(50),              
	 @CountryId  int,              
	 @JobTitle  nvarchar(200),              
	 @Company  nvarchar(200),              
	 @Department  nvarchar(200),              
	 @Office nvarchar(1000),              
	 @Phone nvarchar(1000),              
	 @StatusType  nvarchar(50),              
	 @EduDiscount int,              
	 @SPLAType  nvarchar(50),              
	 @SAMAccountName nvarchar(255),            
	 @MBTemplate nvarchar(1000),             
	 @LHType int,              
	 @HFOALSType int,            
	 @LastLogInMonths int,             
	 @SortExpression NVARCHAR(100),              
	 @SortDirection NVARCHAR(10),              
	 @PageSize INT,              
	 @PageOffset INT,              
	 @SubResellerID INT,          
	 @OrgId INT,     
	 @StaffRoleId int ',              
	 @Owner,              
	 @OrgName,              
	 @DomainName,              
	 @Name,              
	 @CustomerId,            
	 @CustCompanyName,              
	 @MailboxType,              
	 @DisplayName,              
	 @EmailAddress,              
	 @Address,              
	 @City,              
	 @State,             
	 @Zip,              
	 @CountryId ,              
	 @JobTitle,              
	 @Company,              
	 @Department,              
	 @Office,              
	 @Phone,              
	 @StatusType,              
	 @EduDiscount,              
	 @SPLAType,              
	 @SAMAccountName,            
	 @MBTemplate,            
	 @LHType,              
	 @HFOALSType,            
	 @LastLogInMonths,             
	 @SortExpression,              
	 @SortDirection,              
	 @PageSize,              
	 @PageOffset,              
	 @SubResellerID,          
	 @OrgId,    
	 @StaffRoleId     
END     
GO

ALTER Procedure SPR_GetVPSCustomerToServerMapping  
(  
@CompanyId int,  
@VPSServerGroupId int,  
@VPSServerId int,  
@CustomerId int,  
@CustomerName nvarchar(500),  
@ServerName nvarchar(500),  
@ServerIP nvarchar(500)  
)  
AS  
SELECT Map.VPSServerId, SG.VPSServerGroupID, SG.Name As ServerGroupName, S.ReferenceID As ServerName, S.IP,  
 STUFF((SELECT ',' + Name FROM (  
 SELECT 'All' AS Name WHERE EXISTS(SELECT 1 FROM HB_tblVPSCustomerToServerMapping M2 WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId <= -1)  
 UNION ALL  
 SELECT C.FirstName + ' ' + C.LastName + ' - ' + C.PrimaryEmail + ' [' + convert(nvarchar(10),C.CustomerId) + ']' FROM HB_tblVPSCustomerToServerMapping M2   
  INNER JOIN tblCustomers C ON C.CustomerId = M2.CustomerId WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId > 0  
        ) X  
 FOR XML PATH('')), 1, 1, '') AS Customers,  
 STUFF((SELECT ',' + CId FROM (  
 SELECT '-1' AS CId WHERE EXISTS(SELECT 1 FROM HB_tblVPSCustomerToServerMapping M2 WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId <= -1)  
 UNION ALL  
 SELECT convert(nvarchar(10),C.CustomerId) As CId FROM HB_tblVPSCustomerToServerMapping M2   
  INNER JOIN tblCustomers C ON C.CustomerId = M2.CustomerId WHERE M2.VPSServerId = Map.VPSServerId AND M2.CustomerId > 0  
        ) X  
 FOR XML PATH('')), 1, 1, '') AS CustomerIds  
FROM HB_tblVPSCustomerToServerMapping Map INNER JOIN HB_VPS_tblVPSServer S ON Map.VPSServerId = S.VPSServerID   
INNER JOIN HB_VPS_tblVPSServerGroups SG ON S.VPSServerGroupID = SG.VPSServerGroupID  
WHERE (@VPSServerGroupId <= 0 OR SG.VPSServerGroupID = @VPSServerGroupId) and (@VPSServerId <= 0 OR Map.VPSServerId = @VPSServerId)   
and (@CustomerId = 0 OR Map.CustomerId = @CustomerId OR Map.CustomerId = -1)  
And (@ServerName = '' OR S.ReferenceID LIKE '%'+@ServerName+'%') And (@ServerIP = '' OR S.IP = @ServerIP)  
And (@CompanyId <= 0 OR   
 Exists(Select C.CustomerId from tblCustomers C Where (C.CustomerID = Map.CustomerId OR Map.CustomerId = -1) And C.CompanyID = @CompanyId))  
And (@CustomerName = '' OR   
 Exists(Select C.CustomerId from tblCustomers C Where (C.CustomerID = Map.CustomerId OR Map.CustomerId = -1) And C.FirstName + ' ' + C.LastName LIKE '%'+@CustomerName+'%'))  
GROUP BY Map.VPSServerId, SG.VPSServerGroupID, SG.Name, S.ReferenceID, S.IP   
GO

ALTER PROCEDURE SP_EM_EXGetMailboxAddonsReport   
(                                        
 @Owner nvarchar(10),                                     
 @Name nvarchar (200),                              
 @CustomerId NVARCHAR(50),     
 @SubscriptionId NVARCHAR(50),    
 @DomainName  NVARCHAR(255),    
 @SortExpression NVARCHAR(100),                        
 @SortDirection NVARCHAR(10),                        
 @PageSize INT,                        
 @PageOffset INT,                      
 @SubResellerID INT, @StaffRoleId int                         
)                                        
AS                                     
BEGIN                    
           
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @Name OUTPUT                    
 EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @DomainName OUTPUT         
     
 Declare @SortExp nvarchar(400)                    
                    
 IF(@SortExpression = 'Owner')                    
 BEGIN                    
  SET @SortExp = 'tblCompanies.FirstName+'' ''+tblCompanies.LastName '+ @SortDirection                    
 END                      
 ELSE IF(@SortExpression = 'Customer')                    
 BEGIN                    
  SET @SortExp = 'tblCustomers.FirstName+'' ''+tblCustomers.LastName '+ @SortDirection                    
 END                    
 ELSE IF(@SortExpression = 'AddonName')                    
 BEGIN                    
  SET @SortExp = 'Hb_tblExchangeMailboxAddonsUsageReport.AddonGroupName '+ @SortDirection                    
 END                    
 ELSE IF(@SortExpression = 'Mailbox')                    
 BEGIN                    
  SET @SortExp = ' Hb_tblExchangeMailboxAddonsUsageReport.MailboxType '+ @SortDirection                    
 END      
     
 Declare @Where nvarchar (max)      
    
 SET @Where =' AND 1=1 '    
      
 If (@Owner != '0' AND @Owner != '' AND @Owner != '-1' AND @Owner IS NOT NULL)                                        
 BEGIN                    
  Set @Where= @Where+' and tblCompanies.CompanyId = N'''+ replace(@Owner,'''','''''')+''''                                        
 END      
                      
 if(@Name != '' AND @Name IS NOT NULL)                          
 BEGIN                    
  SET @Where = @Where + ' and tblCustomers.FirstName+'' ''+tblCustomers.LastName like ''%''+N'''+  @Name +'''+''%'''                          
 END                    
                    
 If (@CustomerId != '0' AND @CustomerId != '' AND @CustomerId != '-1' AND @CustomerId IS NOT NULL)                                        
 BEGIN             
  Set @Where= @Where+' and tblCustomers.CustomerId = '''+ @CustomerId +''''                
 END     
     
 If (@SubscriptionId != '0' AND @SubscriptionId != '' AND @SubscriptionId != '-1' AND @SubscriptionId IS NOT NULL)                                        
 BEGIN             
  Set @Where= @Where+' and HB_tblExchangeHosting.ExchHostingId = '''+ @SubscriptionId +''''                
 END     
                    
 if(@DomainName != '' AND @DomainName IS NOT NULL)                            
 BEGIN                    
 
  Set @Where = @Where + ' AND EXISTS (
		SELECT EXD.DomainName
		FROM HB_tblExchangeOrganizationDomains EXD
		INNER JOIN HB_tblExchangeOrganizations EXO ON EXO.OrganizationID = EXD.OrganizationID
		WHERE HB_tblExchangeHosting.ExchHostingID = EXO.ExchHostingID
		AND EXD.DomainName LIKE''%''+N'''+  @DomainName +'''+''%'' )'
 END                    
                                  
 If @SubResellerId!='0'                            
 Begin                            
  Set @Where=@Where+' and tblCustomers.SubResellerId='+convert(nvarchar(10),@SubResellerId)                              
 End        
   
if @StaffRoleId > 0  
BEGIN  
Set @Where=@Where+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA   
 Where RA.CustomerId = tblCustomers.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
  
Set @Where=@Where+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA   
 Where RA.CompanyId = tblCustomers.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
END  
  
 Declare @SQL nvarchar(MAX)     
    
 SET @SQL = ' Select '       
    
 If (@PageSize != 0)   
 Begin                    
  SET @SQL += ' Top(' + CONVERT(NVARCHAR(5), @PageSize) + ') '                    
 End     
    
    
 Set @SQL = @SQL + '(                    
 Select count(*) FROM Hb_tblExchangeMailboxAddonsUsageReport, Hb_tblExchangeHosting, tblCompanies,     
 tblCustomers, HB_tblPackagesSold, HB_tblPackages     
 Where Hb_tblExchangeMailboxAddonsUsageReport.ExchHostingID=Hb_tblExchangeHosting.ExchHostingID     
 and Hb_tblExchangeHosting.CompanyId=tblCompanies.CompanyId                                        
 and Hb_tblExchangeHosting.CustomerId=tblCustomers.CustomerId     
 and Hb_tblExchangeHosting.SoldPackageId = HB_tblPackagesSold.SoldPackageId                                     
 and HB_tblPackagesSold.PackageId = HB_tblPackages.PackageId and HB_tblPackages.ResellerPackage=''0''  '                      
 + @Where +'                    
 )                    
 as TotalRecords,  * from ( Select RowIndex= ROW_NUMBER() OVER(ORDER BY '+ @SortExp +'),  '      
    
     
 SET @SQL += ' tblCustomers.FirstName+'' ''+tblCustomers.LastName as Customer, tblCustomers.CustomerId, CustomerNumber,       
 ISNULL((SELECT CustomerId FROM tblCustomers WHERE OwnerId = tblCompanies.CompanyId),0) AS OwnerId,        
 tblCompanies.FirstName+'' ''+tblCompanies.LastName as [Owner], tblCompanies.CompanyId,     
 CASE WHEN tblCustomers.CompanyId > 1 THEN (SELECT Reseller.CustomerId FROM tblCustomers Reseller WHERE Reseller.OwnerId = tblCustomers.CompanyId) ELSE 0 END ResellerId,                                                  
 Hb_tblExchangeHosting.ExchHostingID, DomainName, AddonGroupName AS AddonName, MailboxType AS Mailbox, Sold, Consumed, Free, DateGenerated    
 FROM Hb_tblExchangeMailboxAddonsUsageReport, Hb_tblExchangeHosting, tblCompanies, tblCustomers, HB_tblPackagesSold, HB_tblPackages                                         
 Where Hb_tblExchangeMailboxAddonsUsageReport.ExchHostingID = Hb_tblExchangeHosting.ExchHostingID     
 and  Hb_tblExchangeHosting.CompanyId=tblCompanies.CompanyId                                       
 and Hb_tblExchangeHosting.CustomerId=tblCustomers.CustomerId and HB_tblPackagesSold.SoldPackageId=Hb_tblExchangeHosting.SoldPackageId                                       
 and HB_tblPackages.PackageId =HB_tblPackagesSold.PackageId and HB_tblPackages.ResellerPackage=''0'' ' + @Where     
      
 SET @SQL += ' ) ExOrgRecords'    
    
    
 If (@PageSize != 0)       
  SET @SQL += ' Where RowIndex > ((' + CONVERT(NVARCHAR(5), (@PageOffset - 1)) + ') * ' + CONVERT(NVARCHAR(5), @PageSize) + ') '                    
                    
 Set @SQL += ' ORDER BY '+ @SortExpression +' '+ @SortDirection                    
      
 
    
 EXEC(@SQL)    
END         
GO



Begin Try
	Drop FUNCTION [dbo].[FN_EM_VPS_GetTotalAllowed]
End Try
Begin Catch
End Catch
GO

Begin Try
	Drop FUNCTION [MachPanel_DB].[FN_EM_VPS_GetTotalAllowed]
End Try
Begin Catch
End Catch
GO

Begin Try
	Drop FUNCTION [EjadSPM_DB].[FN_EM_VPS_GetTotalAllowed]
End Try
Begin Catch
End Catch
GO


 Declare @DBName nvarchar(500)    
 Set @DBName= (Select DB_Name())    
     
  If @DBName = 'MachPanel'    
  Set @DBName='dbo'   

    EXEC('
    CREATE FUNCTION ['+ @DBName +'].FN_EM_VPS_GetTotalAllowed
    (
        @VPSHostingId INT,
        @CompanyId INT,
        @ResourceId INT
    )
    RETURNS BIGINT
    AS
    BEGIN
    DECLARE @Total BIGINT = 0
    DECLARE @ResolvedResourceId INT
    DECLARE @SoldPackageId INT

    SELECT @ResolvedResourceId = ResourceId
    FROM HB_tblResources
    WHERE ResourceInternalId = @ResourceId

    SELECT @SoldPackageId = SoldPackageID
    FROM HB_tblVPSHosting
    WHERE VPSHostingID = @VPSHostingId

    SELECT @Total = ISNULL(CONVERT(BIGINT, ResourceQuantity), 0)
    FROM HB_tblPackagesSoldDetail
    WHERE SoldPackageID = @SoldPackageId
      AND ResourceID = @ResolvedResourceId

    SELECT @Total = @Total + ISNULL(SUM(
            CONVERT(BIGINT, d.ResourceQuantity) * CONVERT(BIGINT, d.ResourceQuantity)
        ), 0)
    FROM HB_tblAddonsSoldDetail d
    INNER JOIN HB_tblAddonsSold s
        ON s.SoldAddOnId = d.SoldAddOnId
    WHERE s.SoldToAccountId = @VPSHostingId
      AND s.PackageTypeID = 19
      AND s.IsPending = 0
      AND s.IsCancelled = 0
      AND d.ResourceId = @ResolvedResourceId

    RETURN ISNULL(@Total, 0)
END

    ')
GO

ALTER PROCEDURE SP_EM_VPSSealedImagePackageMappingGetBySealedImageId 
(
@SealedImageId int
)  
AS 
Select I.*, P.PackageName, P.ResellerPackage From HB_tblVPSSealedImagePackageMapping I INNER JOIN HB_tblPackages P ON I.PackageId = P.PackageID 
Where SealedImageId = @SealedImageId  
GO



IF OBJECT_ID('CSP_GetVPSServerSubNets', 'P') IS NOT NULL
    DROP PROCEDURE CSP_GetVPSServerSubNets
GO

CREATE PROCEDURE [CSP_GetVPSServerSubNets]
(
    @VPSServerGroupID INT,
    @AllocationType INT
)
AS
BEGIN
    SELECT *
    FROM HB_VPS_tblVPSServerSubNets
    WHERE VPSServerGroupID = @VPSServerGroupID
      AND AllocationType = @AllocationType
END
GO


SET IDENTITY_INSERT HB_tblRolesFeatures ON
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=602)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(602,'Manage Active Directory Dashboard',17,'ManageADDashboard', 360, 20, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=603)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(603,'Manage AD User Reports',17,'ManageADUserReports', 375, 20, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=604)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(604,'Manage AD Group Reports',17,'ManageADGroupReports', 375, 20, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=605)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(605,'Allow Inventory View',9,'AllowInventoryView', 27, 100, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=606)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(606,'Allow Monitoring View',9,'AllowMonitoringView', 27, 100, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=607)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(607,'Allow Storage View',9,'AllowStorageView', 606, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=608)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(608,'Allow Server Health View',9,'AllowServerHealthView', 606, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=609)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(609,'Allow Mail Flow View',9,'AllowMailFlowView', 606, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=610)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(610,'Allow Reports View',9,'AllowReportsView', 27, 100, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=611)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(611,'Allow SPLA Reports View',9,'AllowSPLAReportsView', 610, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=612)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(612,'Allow Usage Reports View',9,'AllowUsageReportsView', 610, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=613)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(613,'Allow Subscriptions Report View',9,'AllowSubscriptionsReportView', 610, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=614)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(614,'Allow Other Reports View',9,'AllowOtherReportsView', 610, 100, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=615)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(615,'Admin Audit Log Management Allowed',9,'AdminAuditLogManagementAllowed', 548, 601, 'FeatureChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=616)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(616,'Allow Calender Permissions View',9,'AllowCalenderPermissionsView', 548, 601, 'FeatureChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=617)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(617,'Allow Summary View',15,'AllowSummaryView', 290, 30, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=618)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(618,'Allow Inventory View',15,'AllowInventoryView', 290, 30, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=619)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(619,'Allow Monitoring View',15,'AllowMonitoringView', 290, 30, 'FeatureParent')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=620)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(620,'Allow Storage View',15,'AllowStorageView', 619, 30, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=621)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(621,'Allow CPU & Memory View',15,'AllowCPUNMemoryView', 619, 30, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=622)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(622,'Allow Services View',15,'AllowServicesView', 619, 30, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=623)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(623,'Allow Event Logs View',15,'AllowEventLogsView', 619, 30, 'FeatureParentChild')
END
GO

IF NOT EXISTS(SELECT FeatureId FROM HB_tblRolesFeatures WHERE FeatureId=624)
BEGIN
INSERT INTO HB_tblRolesFeatures(FeatureId, FeatureName, FeatureGroupId, Trans_Id, ParentFeatureId, DisplayOrder, PaddingLeft)
	VALUES(624,'Allow Hypervisor View',15,'AllowHypervisorView', 619, 30, 'FeatureParentChild')
END
GO

SET IDENTITY_INSERT HB_tblRolesFeatures OFF
GO

Update HB_tblRolesFeatures set DisplayOrder = 19 Where FeatureId IN (602)
Update HB_tblRolesFeatures set DisplayOrder = 20 Where FeatureId IN (375,603,604)
Update HB_tblRolesFeatures set DisplayOrder = 21 Where FeatureId IN (362)
Update HB_tblRolesFeatures set DisplayOrder = 22 Where FeatureId IN (581)
Update HB_tblRolesFeatures set DisplayOrder = 23 Where FeatureId IN (593)
Update HB_tblRolesFeatures set DisplayOrder = 24 Where FeatureId IN (594)
GO

DECLARE @RoleId int
DECLARE @CompanyId int
DECLARE GetAllRoles Cursor FOR select RoleID, CompanyId from HB_tblRoles R Where IsBuiltin = 1 and InternalID = 1 
OPEN GetAllRoles
	FETCH NEXT FROM GetAllRoles INTO @RoleId, @CompanyId
	WHILE (@@FETCH_STATUS = 0)
	BEGIN
		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 602)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 602)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 603)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 603)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 604)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 604)

		IF @CompanyId =1 And NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 605)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 605)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 606)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 606)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 607)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 607)

		IF @CompanyId =1 And NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 608)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 608)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 609)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 609)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 610)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 610)

		IF @CompanyId =1 And NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 611)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 611)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 612)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 612)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 613)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 613)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 614)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 614)

		IF @CompanyId =1 And NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 615)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 615)

		IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 616)
			INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
			Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 616)

		IF @CompanyId = 1 
		BEGIN
			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 617)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 617)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 618)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 618)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 619)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 619)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 620)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 620)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 621)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 621)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 622)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 622)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 623)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 623)

			IF NOT Exists(Select * from HB_tblRolesDetail Where RoleId = @RoleId and FeatureId = 624)
				INSERT INTO HB_tblRolesDetail(RoleId, FeatureId) 
				Select @RoleId,FeatureId from HB_tblRolesFeatures Where  (FeatureId = 624)
		END

		FETCH NEXT FROM GetAllRoles INTO @RoleId, @CompanyId
	END
CLOSE GetAllRoles
DEALLOCATE GetAllRoles
GO

ALTER PROCEDURE SP_EM_InitializeReseller      
(                            
 @CompanyId int,                            
 @ResellerId int,                            
 @EmployeeId int,                            
 @CompanyName nvarchar (200),                            
 @BEmail nvarchar(100),                            
 @SalesEmail nvarchar(100),                            
 @SEmail nvarchar(100),                            
 @PriceMultiplier float,                          
 @BillingTemplate nText='',                          
 @ResellerType bit                        
)                            
AS                          
BEGIN                            
                        
Update tblCompanies Set ResellerType=@ResellerType where CompanyId =@ResellerId                        
                    
If (@BEmail = '')                    
 Set @BEmail = (Select Email from tblEmployees where CompanyId=@ResellerId and IsDefault='1')                    
                    
If (@SalesEmail = '')                    
 Set @SalesEmail = (Select Email from tblEmployees where CompanyId=@ResellerId and IsDefault='1')                    
                    
If (@SEmail = '')                    
 Set @SEmail = (Select Email from tblEmployees where CompanyId=@ResellerId and IsDefault='1')                    
                     
                        
INSERT INTO [HB_tblLanguages] ( [Name], [Code], [IsActive], [IsDefault], [CompanyId])                             
Select [Name], [Code], [IsActive], [IsDefault], @ResellerId From HB_tblLanguages Where CompanyId=@CompanyId                             
                        
INSERT INTO [HB_tblRoles] ( [InternalID], [CompanyId], [RoleName], [RoleDescription], [IsBuiltin], [Trans_Id])                            
Select [InternalID], @ResellerId , [RoleName], [RoleDescription], [IsBuiltin], [Trans_Id] From                         
HB_tblRoles Where IsBuiltin='1' and CompanyId=@CompanyId                            
                        
Declare @RoleID int                            
Declare @TranId nvarchar(10)                            
DECLARE Role_Cursor CURSOR FOR Select RoleId, Trans_Id From HB_tblRoles Where CompanyId=@ResellerId                         
Open Role_Cursor                             
FETCH NEXT FROM Role_Cursor Into @RoleID, @TranId                            
WHILE (@@Fetch_Status = 0)                            
Begin                                    
 IF(@ResellerType = '1')                 
 INSERT INTO [HB_tblRolesDetail] ( [RoleId], [FeatureId])                        
 Select @RoleId, FeatureId From  HB_tblRolesDetail Where                         
 RoleId=(Select RoleId From HB_tblRoles Where IsBuiltin='1' and CompanyId=@CompanyId and Trans_Id=@TranId)                            
 and FeatureId not in (22, 23, 24, 26, 28, 30, 32, 33, 42, 48, 49, 52, 53, 54, 56, 57, 59, 60, 62, 64, 66, 69, 71, 72, 74,   
 75, 76, 77, 78, 83, 85, 95, 97, 98, 161, 171, 182, 185, 371, 372, 510, 516, 524, 530, 584, 605, 608, 611, 615, 617, 618, 619, 
 620, 621, 622, 623, 624)                
 ELSE                
 INSERT INTO [HB_tblRolesDetail] ( [RoleId], [FeatureId])                        
 Select @RoleId, FeatureId From  HB_tblRolesDetail Where                         
 RoleId=(Select RoleId From HB_tblRoles Where IsBuiltin='1' and CompanyId=@CompanyId and Trans_Id=@TranId)                            
 And FeatureId not in (22, 23, 24, 26, 28, 30, 32, 33, 42, 48, 49, 52, 53, 54, 56, 57, 59, 60, 62, 64, 66, 69, 71, 72, 74,   
 75, 76, 77, 78, 83, 85, 95, 97, 98, 161, 171, 182, 185, 371, 372, 510, 516, 524, 530, 584, 605, 608, 611, 615, 617, 618, 619, 
 620, 621, 622, 623, 624)                
                
 FETCH NEXT FROM Role_Cursor Into @RoleID, @TranId                            
End                            
Close Role_Cursor                              
DeAllocate Role_Cursor                            
                        
INSERT INTO [HB_tblEmailTemplatesClone] ( [TemplateID], [EmailGroupId], [CompanyID], [FromName], [FromEmail],                        
 [CC], [ReplyToName], [ReplyToEmail], [BCC], [TemplateName], [LocaleId], [EmailPriority], [Subject], [HtmlBody], [TextBody],                        
 [KillTemplate], IsDefault)          
Select TemplateId, EmailGroupId, @ResellerId, @CompanyName, @BEmail,'',@CompanyName, @BEmail,'', TemplateName, LocaleId,                
 [EmailPriority], [Subject], [HtmlBody], [TextBody], [KillTemplate], '1'                        
From HB_tblEmailTemplates                            
                        
Update [HB_tblEmailTemplatesClone] SET  [FromName]='Sales Dept',[FromEmail]=@SalesEmail,[ReplyToName]='Sales Dept.',                          
[ReplyToEmail]=@SalesEmail WHERE (( [TemplateID]  = '1' Or                           
 [TemplateID]  = '2' Or [TemplateID]= '3' Or [TemplateID]= '4' Or [TemplateID]= '5' Or [TemplateID]= '6' Or [TemplateID]= '7' Or [TemplateID]= '8'                         
Or [TemplateID]= '21' Or                          
 [TemplateID]= '22' Or [TemplateID]= '24' Or [TemplateID]= '26') and CompanyId=@ResellerId)                            
                        
Update [HB_tblEmailTemplatesClone] SET  [FromName]='Billing Dept',[FromEmail]=@BEmail, [ReplyToName]='Billing Dept.', [ReplyToEmail]=@BEmail                         
WHERE  ( ([TemplateID]='9' Or [TemplateID]= '10'                          
 Or [TemplateID]= '11' Or [TemplateID]= '12' Or [TemplateID]= '13'                          
 Or [TemplateID]= '14' Or [TemplateID]= '15' Or [TemplateID]= '16' Or [TemplateID]= '17') and CompanyId=@ResellerId)                            
                        
Update [HB_tblEmailTemplatesClone] SET  [FromName]='Support Dept',[FromEmail]=@SEmail, [ReplyToName]='Support Dept.',[ReplyToEmail]=@SEmail WHERE                         
( ([TemplateID]='18' Or [TemplateID]= '19'                          
 Or [TemplateID]= '20' Or [TemplateID]= '23' Or [TemplateID]= '25') and CompanyId=@ResellerId)                            
                      
Update HB_tblEmailTemplatesClone SET DonotsendtoCustomer = isnull(                        
 (Select TOP 1 C.DonotsendtoCustomer from HB_tblEmailTemplatesClone C Where C.CompanyID = '1' and C.TemplateID = HB_tblEmailTemplatesClone.TemplateID),                         
 DonotsendtoCustomer)                        
 WHERE CompanyId = @ResellerId                        
                        
INSERT INTO [tblDepartments] ( [CompanyID], [DepartmentHeadID], [DapartmentName])                            
Select  @ResellerId, '0', [DapartmentName] From tblDepartments Where CompanyId=@CompanyId                            
                        
If (@ResellerType='1')                          
Begin                          
                        
Insert Into HB_tblCreditCardToCompanyMap (CompanyId, CardType)                            
 Select @ResellerId, CardType From   HB_tblCreditCardToCompanyMap  Where CompanyId=@CompanyId                            
                        
INSERT INTO [HB_tblDirecti] ([CompanyId], [Enabled], [Name], [LangPref], [Role], [UserName], [Password], [ParentId], [URL], [EnableTestMode], [TestUserName], [TestPassword], [TestURL],                          
 [TestParentId], [UseCustomNS], [AllowTransfer], [AllowAutoRenew], [AllowChangeContactInfo], [AllowRegisterNS], [AUseClientData], [AContactId], [AName], [ACompany], [AEmail],                           
 [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [APhoneCC], [TUseClientData], [TContactId], [TName], [TCompany], [TEmail],                           
 [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TPhoneCC], [BUseClientData], [BContactId], [BName], [BCompany], [BEmail], [BAddress1], [BAddress2],                          
 [BCity], [BState], [BZip], [BCountry], [BPhone], [BPhoneCC], [NSGroup], [LastEditDate],USeCompany)                            
VALUES (@ResellerId,1,'Registrar Directi (Logic Boxes)','en','reseller','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','999999998',   
'http://www.myorderbox.com/anacreon/servlet/APIv3-XML',1,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','http://api.onlyfordemo.net/anacreon/servlet/APIv3-XML',   
'999999998',1,0,0,0,0,1,0,'use client data','use client data','client@domain.com','use client data',                          
  'use client data','use client data','use client data','use client','AF','00000','93',1,0,'use client data','use client data','client@domain.com','use client data','use client data',   
  'use client data','use client data','use client','AF','00000','93',1,0,'use client data','use client data','client@domain.com','use client data','use client data','use client data',   
  'use client data','use client','AF','00000','93',1,getdate(),'0')                     
                        
INSERT INTO [HB_tblOpenSRS] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [Port], [APIKey], [EnableTestMode], [TestUserName],                         
[TestPassword], [TestURL],                          
 [AllowDomainPassword], [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride], [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo],             
 [AllowChangeRegistrarLock], [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName],                         
[ACompany], [AEmail],                           
 [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2],                          
 [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax], [BUseClientData], [BFName], [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip],   
 [BCountry], [BPhone], [BFax], [LastEditDate], [NSGroup],UseCompany)                   
VALUES (@ResellerId,1,'OpenSRS Registrar','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','https://rr-n1-tor.opensrs.net','55443','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~',                        
'GqtktwCFe6FEAWBZujbz5w==~~~', 'https://horizon.opensrs.net',0,1,0,1,0,1,1,1,1,1,0,1,0,1,'use client data','use client data','use client data','client@data.com','use client data',                        
'use client data', 'use client data','use client data','use client data','AF','00000','00000',1,'use client data','use client data','use client data','client@data.com',                        
'use client data', 'use client data','use client data','use client data','use client data','AF','00000','00000',1,'use client data','use client data',                        
'use client data','client@data.com', 'use client data','use client data','use client data','use client data','use client data','AF','00000','00000',getDate(),'1','0')                            
                        
INSERT INTO [HB_tblTransIP] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [APIKey], [EnableTestMode], [TestUserName], [TestPassword],                            
  [TestURL], [TestAPIKey], [AllowDomainPassword], [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride], [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS],                           
  [AllowChangeContactInfo], [AllowChangeRegistrarLock], [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData],                           
  [AFName], [ALName], [ACompany], [AEmail], [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [AFax], [TUseClientData],                           
  [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax], [BUseClientData],                           
  [BFName], [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate],                         
[NSGroup],UseCompany)      
VALUES (@ResellerId,1,'TransIP Registrar','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','api.transip.nl','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',                          
'api.transip.nl', 'GqtktwCFe6FEAWBZujbz5w==~~~',0,1,0,1,0,1,1,1,1,1,0,1,0,1,'use client data','use client data','use client data','client@data.com',                        
'use client data','use client data', 'use client data','use client data','use client data','AF','00000','00000',1,'use client data',                          
'use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000','00000',1, 'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data',                          
'use client data','use client data','AF','00000','00000',getdate(),'1','0')                            
                        
INSERT INTO [HB_tblEnom] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [EnableTestMode], [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword],                          
 [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride], [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],                           
 [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany], [AEmail], [AAddress1],                   
[AAddress2], [ACity], [AState],                           
 [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax],                           
 [BUseClientData], [BFName], [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate], [NSGroup],UseCompany)                             
VALUES (@ResellerId,1,'eNom Registrar','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','http://reseller.enom.com/interface.asp',0,                          
 'xdRfk/Jv4ER6qTmy903NUXU0yaov6Tw5LB7uQOEuU8Y=','xdRfk/Jv4ER6qTmy903NUXU0yaov6Tw5LB7uQOEuU8Y=',                        
'http://resellertest.enom.com/interface.asp',0,1,0,1,0,1,1,1,1,1,0,1,0,1,                          
 'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000','00000',                          
 1,'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000',                          
 '00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000',                          
 '00000',getdate(),'1','0')                     
                     
INSERT INTO [HB_tblRRPproxy] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [EnableTestMode], [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword],                          
 [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride], [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],                           
 [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany], [AEmail], [AAddress1],                         
[AAddress2], [ACity], [AState],                           
 [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax],                           
[BUseClientData], [BFName], [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate], [NSGroup],UseCompany)                             
VALUES (@ResellerId,1,'RRPproxy Registrar','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','https://api.rrpproxy.net:8083/xmlrpc',0,                          
 'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~', 'https://api-ote.rrpproxy.net:8083/xmlrpc',0,1,0,1,0,1,1,1,1,1,0,1,0,1,                          
 'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000','00000',                          
 1,'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000',                          
 '00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000',                          
 '00000',getdate(),'1','0')             
             
INSERT INTO [HB_tblRegistryBE] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [EnableTestMode],             
   [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword], [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride],             
   [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],             
   [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany],             
   [AEmail], [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName],             
   [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax], [BUseClientData], [BFName],             
   [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate],             
   [NSGroup],UseCompany, AContactId, TContactId, BContactId)               
   VALUES (@ResellerId,1,'RegistryBE Registrar','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','epp.registry.be',0,            
   'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~', 'epp.tryout.registry.be',0,1,0,1,0,1,1,1,1,1,0,1,0,1,'use client data','use client data',            
   'use client data','client@data.com','use client data','use client data','use client data','use client data','use client data','AF',            
   '00000','00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data',            
   'use client data','use client data','use client data','AF','00000','00000',1,'use client data','use client data','use client data',            
   'client@data.com','use client data','use client data','use client data','use client data','use client data','AF','00000','00000',            
   '2020-01-25 15:28:59.000','1','0','','','')             
             
INSERT INTO [Hb_tblRRPproxyEPP] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [EnableTestMode],             
   [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword], [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride],             
   [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],             
   [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany],             
   [AEmail], [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName],             
   [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax], [BUseClientData], [BFName],             
   [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate],             
   [NSGroup],UseCompany)           
   VALUES (@ResellerId,1,'RRPproxy Registrar (EPP)','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','epp.rrpproxy.net',0,            
   'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~', 'epp-ote.rrpproxy.net',0,1,0,1,0,1,1,1,1,1,0,1,0,1,'use client data','use client data',            
   'use client data','client@data.com','use client data','use client data','use client data','use client data','use client data','AF',            
   '00000','00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data',            
   'use client data','use client data','use client data','AF','00000','00000',1,'use client data','use client data','use client data',       
   'client@data.com','use client data','use client data','use client data','use client data','use client data','AF','00000','00000',            
   '2020-01-25 15:28:59.000','1','0')          
             
INSERT INTO [Hb_tblSIDNEpp] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [EnableTestMode],             
   [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword], [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride],             
   [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],             
   [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany],             
   [AEmail], [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName],             
   [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax], [BUseClientData], [BFName],             
   [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate],             
   [NSGroup],UseCompany)               
   VALUES (@ResellerId,1,'SIDN Registrar (EPP)','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','drs.domain-registry.nl',0,            
   'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~', 'testdrs.domain-registry.nl',0,1,0,1,0,1,1,1,1,1,0,1,0,1,'use client data','use client data',            
   'use client data','client@data.com','use client data','use client data','use client data','use client data','use client data','AF',            
   '00000','00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data',            
   'use client data','use client data','use client data','AF','00000','00000',1,'use client data','use client data','use client data',            
   'client@data.com','use client data','use client data','use client data','use client data','use client data','AF','00000','00000',            
   '2020-01-25 15:28:59.000','1','0')          
            
INSERT INTO [HB_tblGoDaddy] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [Key], [Secret], [URL], [EnableTestMode], [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword],                          
 [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride], [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],                           
 [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany], [AEmail], [AAddress1], [AAddress2], [ACity], [AState],                           
 [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax],                           
 [BUseClientData], [BFName], [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate], [NSGroup],UseCompany)                             
VALUES (@ResellerId,1,'GoDaddy Registrar','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','','','https://api.godaddy.com/',0,                          
 'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','https://api.ote-godaddy.com/',0,1,0,1,0,1,1,1,1,1,0,1,0,1,                          
 'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000','00000',                          
 1,'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000',                          
 '00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data','use client data','use client data',                        
'use client data','AF','00000',                          
 '00000',getdate(),'1','0')                         
            
 INSERT INTO [Hb_tblDKHostmasterRegistry] ( [CompanyId], [Enabled], [Name], [UserName], [Password], [URL], [EnableTestMode],         
   [TestUserName], [TestPassword], [TestURL], [AllowDomainPassword], [AllowRegistrarLock], [AllowAutoRenew], [AllowNSOverride],         
   [UseCustomNS], [AllowRenew], [AllowTransfer], [AllowChangeDNS], [AllowChangeContactInfo], [AllowChangeRegistrarLock],         
   [AllowChangeAutoRenew], [AllowChangeUpdateDomainPassword], [AllowRegisterNS], [AUseClientData], [AFName], [ALName], [ACompany],         
   [AEmail], [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [AFax], [TUseClientData], [TFName], [TLName],         
   [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TFax], [BUseClientData], [BFName],         
   [BLName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BFax], [LastEditDate],         
   [NSGroup],UseCompany)           
   VALUES (@ResellerId,1,'DK Hostmaster Registry','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','epp.dk-hostmaster.dk',0,        
   'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~', 'epp-sandbox.dk-hostmaster.dk',0,1,0,1,0,1,1,1,1,1,0,1,0,1,'use client data','use client data',        
   'use client data','client@data.com','use client data','use client data','use client data','use client data','use client data','AF',        
   '00000','00000',1,'use client data','use client data','use client data','client@data.com','use client data','use client data',        
   'use client data','use client data','use client data','AF','00000','00000',1,'use client data','use client data','use client data',        
   'client@data.com','use client data','use client data','use client data','use client data','use client data','AF','00000','00000',        
   GETDATE(),'1','0')        
        
INSERT INTO [HB_tblStargate]  ( [CompanyId], [Enabled], [Name], [LangPref], [Role], [UserName], [Password], [ParentId], [URL], [EnableTestMode], [TestUserName], [TestPassword], [TestURL],                          
 [TestParentId], [UseCustomNS], [AllowTransfer], [AllowAutoRenew], [AllowChangeContactInfo], [AllowRegisterNS], [AUseClientData], [AContactId], [AName], [ACompany],[AEmail], [AAddress1],   
 [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [APhoneCC], [TUseClientData], [TContactId], [TName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [TPhoneCC], [BUseClientData],   
 [BContactId], [BName], [BCompany], [BEmail], [BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [BPhoneCC], [NSGroup], [LastEditDate],UseCompany)                             
VALUES (@ResellerId,1,'Stargate Registrar','en','reseller','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','999999998',                          
 'http://www.myorderbox.com/anacreon/servlet/APIv3-XML',1,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',                        
'http://api.onlyfordemo.net/anacreon/servlet/APIv3-XML','999999998',1,0,0,0,0,1,0,'use client data','use client data','client@domain.com','use client data',                          
 'use client data','use client data','use client data','useclient','AF','00000','93',1,0,'use client data','use client data','client@domain.com','use client data',                          
 'use client data','use client data','use client data','use client','AF','00000','93',1,0,'use client data','use client data','client@domain.com','use client data',                          
 'use client data','use client data','use client data','use client','AF','00000','93',1,getdate(),'0')                    
                        
INSERT INTO [HB_tblSRSPlus]  ( [CompanyId], [Enabled], [Trans_Id], [UserName], [Password], [EnableTestMode], [UseCustomNS], [AUseClientData], [AContactId], [AFName], [ALName],                           
 [ACompany], [AEmail], [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [TUseClientData], [TContactId], [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone],   
 [BUseClientData], [BContactId], [BFName], [BLName], [BCompany], [BEmail],[BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [NS11], [NS21], [NS31], [NS41], [LastEditDate])                             
Select @ResellerId, [Enabled], [Trans_Id], 'GqtktwCFe6FEAWBZujbz5w==~~~', 'GqtktwCFe6FEAWBZujbz5w==~~~', [EnableTestMode], [UseCustomNS], [AUseClientData], [AContactId], [AFName], [ALName], [ACompany], [AEmail],                          
 [AAddress1], [AAddress2], [ACity], [AState], [AZip], [ACountry], [APhone], [TUseClientData], [TContactId], [TFName], [TLName], [TCompany], [TEmail], [TAddress1], [TAddress2], [TCity], [TState], [TZip], [TCountry], [TPhone], [BUseClientData], [BContactId]
  
  
  
, [BFName], [BLName], [BCompany], [BEmail],[BAddress1], [BAddress2], [BCity], [BState], [BZip], [BCountry], [BPhone], [NS11], [NS21], [NS31], [NS41], [LastEditDate]                            
 From HB_tblSRSPlus Where CompanyId=@CompanyId                            
                        
Insert Into Hb_tblPKNIC (CompanyId,Enabled) Values (@ResellerId,'0')                            
                        
INSERT INTO [HB_tblTaxRates] ( [Rate], [Type], [CountryId], [StateId], [Description], [Active], [CompanyId],[Title],[T2Title],[T2Rate],[T2Type],[IsT2Compound])                             
Select [Rate], [Type], [CountryId], [StateId], [Description], [Active], @ResellerId,[Title],[T2Title],[T2Rate],[T2Type],[IsT2Compound]                        
From HB_tblTaxRates Where CompanyId=@CompanyId                        
                          
INSERT INTO [HB_tblDomainTLDs] ( [RegistrarID], [TLDName], [MinimumTerm], [DisplayIndex], [IsActive], [WhoIsServer], [WhoIsResponse], [IsAutoSearch], [IsTransferable],   
 [LocalRenewType], [IsRemoteLock], [DateStamp], [CompanyId], [RegistrarEnabled])                             
Select [RegistrarId], [TLDName], [MinimumTerm], [DisplayIndex], [IsActive], [WhoIsServer], [WhoIsResponse], [IsAutoSearch], [IsTransferable], [LocalRenewType], [IsRemoteLock], [DateStamp],                          
 @ResellerId, [RegistrarEnabled] From HB_tblDomainTLDs Where CompanyId=@CompanyId                          
         
IF NOT EXISTS(SELECT ProviderId FROM Hb_tblSSLProviderDetails WHERE CompanyId = @ResellerId AND ProviderId = 1)                  
BEGIN                          
  INSERT INTO HB_tblSSLProviderDetails VALUES (1,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~')                          
END                          
                        
IF NOT EXISTS(SELECT ProviderId FROM Hb_tblSSLProviderDetails WHERE CompanyId = @ResellerId AND ProviderId = 2)                            
BEGIN                          
  INSERT INTO HB_tblSSLProviderDetails VALUES (2,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~')                            
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 1)                          
BEGIN                        
 INSERT INTO [Hb_tblPaymentGatewayDetails]                   
 ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],                        
[TestAPIURL], [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                        
 VALUES (1,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','UEblNYDs5Moee8REpvJSww==',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','YHbkNg0Z2yTkLEtCoqPr4Q==',                        
'https://secure.authorize.net/gateway/transact.dll','', 1,'XPm4nXzFCHLy47oIzKuQ8w==',1,'Test','m/l2+qgDxBA=')                          
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 2)                            
BEGIN                         
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],                        
[TestAPIURL], [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                              
 VALUES (2,@ResellerId,'1xVhs8H1ndFlnjUc91mmxZSbV902tFST','GqtktwCFe6FEAWBZujbz5w==~~~',0,'1xVhs8H1ndFlnjUc91mmxZSbV902tFST','GqtktwCFe6FEAWBZujbz5w==~~~',   
 '1xVhs8H1ndFlnjUc91mmxZSbV902tFST', 'https://www2.2checkout.com/2co','https://www2.2checkout.com/2co',1,'uZq11UGl1b/psbjYS60jdQ==',0,'Test','0')                          
END                            
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 3)                         
BEGIN                        
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],                        
[TestAPIURL], [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText], [TestValidationCode])                            
 VALUES (3,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
 '1xVhs8H1ndFlnjUc91mmxZSbV902tFST','https://www.2checkout.com/2co/buyer/purchase?', '',1, 'XPm4nXzFCHLy47oIzKuQ8w==',1,      
  'Services provided by MachPanel Demo. Sold by 2CheckOut.com Inc (Ohio, USA). 2Checkout.com, Inc. is the exclusive authorized retailer of goods and services provided by MachPanel Demo. 2Checkout.com makes sure your online shopping is safe and secure.',  
 
  
  
  'm/l2+qgDxBA=')                          
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 4)                          
BEGIN                          
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],[TestAPIURL],      
  [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                              
 VALUES (4,@ResellerId,'uFn7Ba59GTsvHzgWq1rOKOKhzOgGNw4tDwv6r9k4dHerXxTx5FnPHzrPHO1TUvbM','rfer/iBu9zkOPmZJZJROIh6c2P1wVgAF4pHldR0yqRq9qHnqnT02CQ==',1,  'uFn7Ba59GTsvHzgWq1rOKOKhzOgGNw4tDwv6r9k4dHerXxTx5FnPHzrPHO1TUvbM','rfer/iBu9z  
kOPmZJZJROIh6c2P1wVgAF4pHldR0yqRq9qHnqnT02CQ==','GqtktwCFe6FEAWBZujbz5w==~~~',                        
'https://www.paypal.com/cgi-bin/webscr?','https://www.sandbox.paypal.com/cgi-bin/webscr?',1,                          
  'FinGjuBNYBFvtQGvxUegCDhBuBjk5HitnOLPnzxtKblsMAB4DtsFjua/HTH64FPL549Ru5+W7rf+wTnrke/NTbefT2ta4LbkkOxPB3AEDVu7IoRgTTkkzQGEXafU+ERZ2nuBUIvqpXtFKgc+sE8futwoDnkqWrH3',1,                          
  'Test',                        
'FinGjuBNYBFvtQGvxUegCDhBuBjk5HitnOLPnzxtKblsMAB4DtsFjua/HTH64FPL549Ru5+W7rf+wTnrke/NTbefT2ta4LbkkOxPB3AEDVu7IoRgTTkkzQGEXafU+ERZ2nuBUIvqpXtFKgc+sE8futwoDnkqWrH3')                          
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 7)                          
BEGIN                          
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],[TestAPIURL],                          
  [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                  
 VALUES (7,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',                        
'https://ics2wsa.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.120.wsdl',                        
'https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.120.wsdl',                        
 1,'GqtktwCFe6FEAWBZujbz5w==~~~',1,'CV8S2eJdKZ4=','GqtktwCFe6FEAWBZujbz5w==~~~')                         
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 8)                          
BEGIN                          
 Insert Into Hb_tblPaymentGatewayDetails (GatewayId,CompanyId,UserName,[Password],TestMode,TestUserName,TestPassword,MerchantID,APIURL,TestAPIURL,ValidateGatewayResponse,                          
  ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                          
 Values ('8',@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','0','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
 '/YJSLGEo8WbOGMhERJOglUvdAB1lCoqI', 'https://www.beanstream.com/scripts/process_transaction.asp','','1','GqtktwCFe6FEAWBZujbz5w==~~~','0',   
 'BeanStream','GqtktwCFe6FEAWBZujbz5w==~~~')                          
END                            
                       
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 10)                          
BEGIN       
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],       
[TestAPIURL], [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                          
 VALUES (10,@ResellerId,'b70m3mUd/Ph2NyAoQ7XhCw==','GqtktwCFe6FEAWBZujbz5w==~~~',1,'b70m3mUd/Ph2NyAoQ7XhCw==','GqtktwCFe6FEAWBZujbz5w==~~~','zxx9zKmKK0PGkB8qgy96Tg==',                        
'https://www3.moneris.com', 'http://esqa.moneris.com',1,'GqtktwCFe6FEAWBZujbz5w==~~~',1,'ESelectPlus','GqtktwCFe6FEAWBZujbz5w==~~~')                          
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 11)                          
BEGIN          
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],                        
[TestAPIURL], [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                          
 VALUES (11,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',1,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
 '','',0,'GqtktwCFe6FEAWBZujbz5w==~~~',1,'Mollie','GqtktwCFe6FEAWBZujbz5w==~~~')  
END                            
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 12)                          
BEGIN                          
 INSERT INTO [Hb_tblPaymentGatewayDetails] ([GatewayId],[CompanyId],[UserName],[Password],[TestMode],[TestUserName],[TestPassword],[MerchantID],[APIURL],                        
[TestAPIURL], [ValidateGatewayResponse],[ValidationCode],[Enabled],[GatewayPaymentText],[TestValidationCode])                          
 Values('12',@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','1','nihdRdJZBz31mtv+NI8ds2KyDuS4bCMu','nihdRdJZBz31mtv+NI8ds8x7VHnu4gqw',   
 'GqtktwCFe6FEAWBZujbz5w==~~~', 'www.payjunction.com',                          
  'www.payjunctionlabs.com','0','GqtktwCFe6FEAWBZujbz5w==~~~','1','Payment Junction','GqtktwCFe6FEAWBZujbz5w==~~~')                          
END                            
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 13)             
BEGIN                          
 INSERT INTO Hb_tblPaymentGateWayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                       
 Values('13',@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','1','OaDbVsSOKyuFE9+kxPydMg==',                        
'2lPl4z3fNppQ3re+Wz4A/UI6Gp7j8RFuudfcjIovfMNioGTGHOhpiQ04z9FH9a1B','l6ICsbw502fhjh7p9sB0aQ==',                          
  'https://raven.pacnetservices.com/realtime','https://demo.pacnetservices.com/realtime','0','NHrPQie/Wi8B1Nogivc9ig==','1',                     
'Pacnet Raven Payment Service','m/l2+qgDxBA=')                          
END                            
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 14)                          
BEGIN                          
 INSERT INTO Hb_tblPaymentGatewayDetails  (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                          
 VALUES (14,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','https://www.vcs.co.za/vvonline/ccxmlauth.asp',                          
  'https://www.vcs.co.za/vvonline/ccxmlauth.asp',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 15)                          
BEGIN                          
 INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
 VALUES (15,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
 'AV6LHDXzqtjfQDb6Ltn8umBjfuYJaZCv','http://www.gwipg.stgeorge.com.au/',                          
  'http://www.gwipg.stgeorge.com.au/',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 16)                          
BEGIN                          
 INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)             
 VALUES (16,@ResellerId,'j+gPmfg74/covskCaXXeTg==',                        
'0eoj+yWEWa6NEadWBrJQ+Z7DSkQUoOgIe76Aq9AvTgnI82Ea/K3IKyq/bgDMVyXyyYh6pCavl05N7b+K9EJ5IE9YfoXwX0wctmYqXVLjMiUrvoh2b9AjQ+pg94qBrIN9YK8No8nO4/0Ka2+r9D3YNPvmCcyx10B6Aco/HRsEgo86WzUuvHSi/Q==',                        
  0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','j+gPmfg74/covskCaXXeTg==','https://secure.soeasypay.com/gateway.asmx','https://secure.soeasypay.com/gateway.asmx',   
  0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')          
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 17)                          
BEGIN                          
 INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                         
  VALUES (17,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://transaction.mundipaggone.com/mundipaggservice.svc', 'https://transaction.mundipaggone.com/mundipaggservice.svc',0,'GqtktwCFe6FEAWBZujbz5w==~~~',   
  0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 18)                          
BEGIN                          
 INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                         
   VALUES (18,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
   'GqtktwCFe6FEAWBZujbz5w==~~~','','',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')     
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 19)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails  (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                          
  VALUES (19,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  '','',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')       
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 20)           
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                          
  VALUES (20,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
'https://ir.zarinpal.com/pg/services/WebGate/wsdl', 'https://ir.zarinpal.com/pg/services/WebGate/wsdl',1,'GqtktwCFe6FEAWBZujbz5w==~~~',1,'','GqtktwCFe6FEAWBZujbz5w==~~~')                         
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 21)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails  (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                          
  VALUES (21,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  '','',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')     
END                         
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 22)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (22,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://stripe.com/docs/api','https://stripe.com/docs/api',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 23)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (23,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://api.paypal.com/v1','https://api.sandbox.paypal.com/v1/',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END                        
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 24)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails  (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                          
  VALUES (24,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://api.paystack.co/','https://api.paystack.co/',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==')     
END         
                        
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 25)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                   
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (25,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://betalen.rabobank.nl/omnikassa-api/','https://betalen.rabobank.nl/omnikassa-api-sandbox/',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                       
END                        
              
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 26)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (26,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://payibank.io/api','https://acc.payibank.io/api', 0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'https://api.payiban.com/webservice/index.php','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END                        
              
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 27)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (27,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://api.stripe.com/v1','https://api.stripe.com/v1',0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==')                   
END                        
              
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 28)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (28,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://www.saferpay.com/api','https://test.saferpay.com/api',0,'GqtktwCFe6FEAWBZujbz5w==~~~', 0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END              
      
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 29)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (29,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://api.razorpay.com/v1/','https://api.razorpay.com/v1/', 0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END              
  
IF NOT EXISTS(SELECT Id FROM Hb_tblPaymentGatewayDetails WHERE CompanyId = @ResellerId AND GatewayId = 30)                          
BEGIN                        
  INSERT INTO Hb_tblPaymentGatewayDetails (GateWayId,CompanyId,UserName,Password, TestMode,TestUserName,TestPassword,MerchantID,APIUrl,TestAPIUrl,ValidateGateWayResponse,                          
 ValidationCode,Enabled,GatewayPaymentText,TestValidationCode)                           
  VALUES (30,@ResellerId,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',0,'GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~','GqtktwCFe6FEAWBZujbz5w==~~~',   
  'https://ipg.comtrust.ae:2443/','https://demo-ipg.ctdev.comtrust.ae:2443/', 0,'GqtktwCFe6FEAWBZujbz5w==~~~',0,'','GqtktwCFe6FEAWBZujbz5w==~~~')                        
END  
  
INSERT INTO [HB_tblPaymentGroups] ( [PGName], [CurrencyID], [PriGatewayID], [SecGatewayID], [CompanyId], [OnlineMinimumAmount], [OfflineCurrency])                             
  Select [PGName], [CurrencyID], [PriGatewayID], [SecGatewayID], @ResellerId, [OnlineMinimumAmount], [OfflineCurrency]                        
  From HB_tblPaymentGroups Where CompanyId=@CompanyId                        
    
Declare @PGID int                        
Set @PGID = (SELECT DefaultPGID from tblCustomers where  OwnerId = @ResellerId)                        
                        
if @PGID > 0                        
BEGIN                        
 UPDATE tblCustomers SET DefaultPGID = @PGID WHERE OwnerId = @ResellerId OR CompanyID = @ResellerId                        
END                        
                        
Declare @TLDId int       
Declare @OTLDId int                        
Declare @RegistrarId int                        
Declare @TLDName nvarchar(50)                        
                        
DECLARE DomainPrice_Cursor CURSOR FOR Select TLDId,TLDName ,RegistrarId From HB_tblDomainTLDs Where CompanyId=@ResellerId                            
Open DomainPrice_Cursor                          
FETCH NEXT FROM DomainPrice_Cursor Into @TLDId, @TLDName,@RegistrarId                            
WHILE (@@Fetch_Status = 0)                            
Begin                        
                        
  Set @OTLDId=(Select TLDId From HB_tblDomainTLDs Where TLDName=@TLDName and RegistrarId=@RegistrarId and CompanyId=@CompanyId)                            
                        
  INSERT INTO [HB_tblDomainTLDPrice] ( [TLDID], [CycleID], [Price], [Discount], [PGID])                             
    Select @TLDID, [CycleID], [Price], [Discount], [PGID] From HB_tblDomainTLDPrice Where TLDId=@OTLDId                            
                        
  Insert INTO [HB_tblDomainTLDRenewalTransferPrice] ( [TldID], [PGID], [RenewalPrice], [TransferPrice])                          
    Select @TLDID,PGID,  [RenewalPrice], [TransferPrice] From HB_tblDomainTLDRenewalTransferPrice Where TLDId=@OTLDId                            
                        
FETCH NEXT FROM DomainPrice_Cursor Into @TLDId, @TLDName,@RegistrarId                            
End                            
                        
Close DomainPrice_Cursor                              
DeAllocate DomainPrice_Cursor                          
                        
Declare @Price float                            
Declare @RenewalPrice float                            
Declare @TransferPrice float              
Declare @ID int                             
Declare @CycleId int                             
Declare @TLDID1 int                            
                        
DECLARE DomainTLDPrice_Cursor CURSOR FOR Select [Id],Price, PGID, CycleId, TLDID From HB_tblDomainTLDPrice Where TLDId IN(Select TLDId from HB_tblDomainTLDs Where CompanyId=@ResellerId)                            
Declare @PGID1 int                            
Open DomainTLDPrice_Cursor                             
FETCH NEXT FROM DomainTLDPrice_Cursor Into @ID, @Price, @PGID, @CycleId,@TLDID1                            
WHILE (@@Fetch_Status = 0)                            
Begin                        
                        
 Set @Price=@Price + round(@PriceMultiplier*@Price/100,2)                        
 Set @PGID1=@PGID                        
 Set @PGID=(Select Min(PGID) From HB_tblPaymentGroups Where CurrencyId=(Select CurrencyId From HB_tblPaymentGroups Where PGID=@PGID) and CompanyId=@ResellerId)                            
                        
 Update HB_tblDomainTLDPrice Set Price=@Price, PGID=@PGID Where [Id]=@ID   
FETCH NEXT FROM DomainTLDPrice_Cursor Into @ID, @Price, @PGID, @CycleId, @TLDID1                            
End                            
                        
Close DomainTLDPrice_Cursor                              
DeAllocate DomainTLDPrice_Cursor                            
                        
DECLARE DomainTLDRenewalTransferPrice_Cursor CURSOR FOR                             
  Select [Id],RenewalPrice, TransferPrice, PGID, TLDID From HB_tblDomainTLDRenewalTransferPrice Where TLDId IN(Select TLDId from HB_tblDomainTLDs Where CompanyId=@ResellerId)                            
Open DomainTLDRenewalTransferPrice_Cursor                             
FETCH NEXT FROM DomainTLDRenewalTransferPrice_Cursor Into @ID, @RenewalPrice, @TransferPrice, @PGID,@TLDID1                            
WHILE (@@Fetch_Status = 0)                            
Begin                        
                        
 Set @RenewalPrice=@RenewalPrice + round(@PriceMultiplier*@RenewalPrice/100,2)                        
 Set @TransferPrice=@TransferPrice + round(@PriceMultiplier*@TransferPrice/100,2)                        
 Set @PGID1=@PGID                        
 Set @PGID=(Select Min(PGID) From HB_tblPaymentGroups Where CurrencyId=(Select CurrencyId From HB_tblPaymentGroups Where PGID=@PGID) and CompanyId=@ResellerId)                        
 Update HB_tblDomainTLDRenewalTransferPrice Set RenewalPrice=@RenewalPrice, TransferPrice=@TransferPrice, PGID=@PGID Where [Id]=@ID                            
  
FETCH NEXT FROM DomainTLDRenewalTransferPrice_Cursor Into @ID, @RenewalPrice, @TransferPrice, @PGID, @TLDID1                            
End                            
                        
Close DomainTLDRenewalTransferPrice_Cursor                              
DeAllocate DomainTLDRenewalTransferPrice_Cursor                            
                        
INSERT INTO [HB_tblFraudFilters] ([Threshold],[IsActive],[Trans_Id],[CompanyId],[Available]) VALUES (1000,1,'GN0000315',@ResellerId,0)                            
                        
INSERT INTO [HB_tblFraudFilters] ([Threshold],[IsActive],[Trans_Id],[CompanyId],[Available]) VALUES (1000,1,'GN0000316',@ResellerId,1)                            
                        
INSERT INTO [HB_tblFraudFilters] ([Threshold],[IsActive],[Trans_Id],[CompanyId],[Available]) VALUES (1000,1,'GN0000317',@ResellerId,1)                            
                        
INSERT INTO [HB_tblFraudFilters] ([Threshold],[IsActive],[Trans_Id],[CompanyId],[Available]) VALUES (1000,1,'GN0000318',@ResellerId,0)                          
                        
Insert Into HB_tblExemptedDomains (ExDomainName,CompanyId)                        
   Select ExDomainName,@ResellerId From HB_tblExemptedDomains Where CompanyId=@CompanyId                           
                        
INSERT INTO [HB_tblParkingTemplate] ( [CompanyId], TemplateName, TemplatePath)                        
  Select @ResellerId, TemplateName, TemplatePath From HB_tblParkingTemplate Where CompanyId=@CompanyId                            
                        
INSERT INTO [HB_tblSPTemplates] (TemplateName, TemplateCode, CompanyId, IsDefault)                        
  Select TemplateName, TemplateCode,  @ResellerId, IsDefault From HB_tblSPTemplates Where CompanyId=@CompanyId                        
                        
End                        
                        
INSERT INTO [HB_tblSPCompanyLocale] ( [SPLocaleId], [CompanyId])                             
  Select SPLocaleId, @ResellerId From HB_tblSPCompanyLocale Where CompanyId=@CompanyId                        
                        
Declare @TicDeptId Int                            
                        
INSERT INTO [HB_tblTicketDepartment] ([CompanyId],[DepatmentName],[Description],[FromEmailAddress],[FromName],[AutoCloseTicketTime],[DelTicketOnAutoClose],[DateStamp],[IsDeleteAble],[IsInternal])                            
 VALUES (@ResellerId,'Support Department','For customer support.',@SEmail,'Support Dept.',50,0,getdate(),0,0)                            
                        
Set @TicDeptId=(Select SCOPE_IDENTITY())                            
                        
INSERT INTO [HB_tblTicketDepartment] ([CompanyId],[DepatmentName],[Description],[FromEmailAddress],[FromName],[AutoCloseTicketTime],[DelTicketOnAutoClose],[DateStamp],[IsDeleteAble],[IsInternal])                            
 VALUES (@ResellerId,'Billing Department','Everything related with billing.',@BEmail,'Billing Dept.',0,0,getdate(),1,0)                            
                        
Declare @TicketDepartmentId int                            
DECLARE TicketDepartmentId_Cursor CURSOR FOR Select TicketDepartmentId From HB_tblTicketDepartment Where CompanyId=@ResellerId                              
Open TicketDepartmentId_Cursor                             
FETCH NEXT FROM TicketDepartmentId_Cursor Into @TicketDepartmentId                            
WHILE (@@Fetch_Status = 0)                            
Begin                        
  Insert INTO HB_tblTicketEmpDepRelation (EmployeeId, TicketDepartmentId) Values (@EmployeeId, @TicketDepartmentId)                        
  INSERT INTO [HB_tblTicketDepTemplates] ([CompanyId],[TicketDepartmentId],[EmialFormat],[PostingTicketConfirmationSubjectPublic],[PostingTicketConfirmationBodyPublic],[PostingTicketConfirmationSubjectAdmin],[PostingTicketConfirmationBodyAdmin],  
  [UpdatedTicketNotificationSubjectPublic],[UpdatedTicketNotificationBodyPublic],[UpdatedTicketNotificationSubjectAdmin],[UpdatedTicketNotificationBodyAdmin],                        
  [AssignedTicketNotificationSubject],[AssignedTicketNotificationBody],[ForwardedTicketNotificationSubject]                      
,[ForwardedTicketNotificationBody],[ClosedTicketNotificationSubjectPublic],[ClosedTicketNotificationBodyPublic],[ClosedTicketNotificationSubjectAdmin],[ClosedTicketNotificationBodyAdmin],[AutoClosedTicketNotificationSubjectPublic],                       
 
  
  [AutoClosedTicketNotificationBodyPublic],[AutoClosedTicketNotificationSubjectAdmin],[AutoClosedTicketNotificationBodyAdmin],[ChallengeResponseSubject],[ChallengeResponseBody])                            
  VALUES (@ResellerId,@TicketDepartmentId,0,'[%TICKETID%] %SUBJECT%',                        
'                        
This is an auto-response generated Active Response System to let you know we''ve received your email on %DATE% at %TIME%.                             
                        
  Ticket ID: %TICKETID%                            
                        
  You can view the progress on this ticket online at %TICKETLINK%.','New Ticket: [%TICKETID%] %SUBJECT%',                        
'This message is to notify you that a new ticket has been submitted.                            
                         
 Ticket ID: %TICKETID%                            
                        
  To check the status of this ticket, visit:                            
                          
  %TICKETLINK%','Re: [%TICKETID%] %SUBJECT%','This message is to notify you that your ticket has been replied by a technician.                            
                          
  Ticket ID: %TICKETID%                    
                         
  Last Reply:                            
  ----------------------------------                            
                          
  %LASTPOST%                            
                          
  ----------------------------------                            
                        
To check the status of this ticket, visit:                            
                        
%TICKETLINK%','Updated: [%TICKETID%] %SUBJECT%','This message is to notify you that your ticket has been updated.                            
                        
Ticket ID: %TICKETID%                            
                        
To check the status of this ticket, visit:                            
                        
%TICKETLINK%','Assigned: [%TICKETID%] %SUBJECT%','This message is to notify you that you have been assigned a ticket.                            
                        
Ticket ID# %TICKETID%                            
                        
Last Post:                            
                        
----------------------------------                            
                        
%LASTPOST%                            
                        
----------------------------------                            
                        
To check the status of this ticket, visit:                             
                        
%TICKETLINK%','FW: [%TICKETID%] %SUBJECT%','This message is to notify you that you have been forwarded a ticket.                            
                        
Ticket ID %TICKETID%                            
                        
Last Post:                            
                        
----------------------------------                            
                        
%LASTPOST%                            
----------------------------------                            
                        
To view this ticket, visit:                            
                        
%TICKETLINK%','Closed: [%TICKETID%] %SUBJECT%','This message is to notify your ticket has been resolved and closed.                            
                        
Ticket ID %TICKETID%                            
           
Last Reply:                            
                        
---------------------------------                            
                        
%LASTPOST%                            
                        
----------------------------------                            
                        
To view this ticket, visit:                            
                        
%TICKETLINK%                        
           
Thank you!','Closed: [%TICKETID%] %SUBJECT%','This message is to notify you that a ticket has been closed.                            
                        
Ticket ID %TICKETID%                  
                        
Last Reply:                            
                        
----------------------------------                            
                        
%LASTPOST%                            
                        
----------------------------------                            
                        
To view this ticket, visit:                            
                        
%TICKETLINK%','Auto Closed: [%TICKETID%] %SUBJECT%','This message is to notify that your ticket has been auto-closed.                            
                        
Ticket ID %TICKETID%                            
                        
Last Reply:                            
                        
---------------------------------                            
                        
%LASTPOST%                            
                        
----------------------------------                            
                       
To view this ticket, visit:                            
                        
%TICKETLINK%                        
                        
Thank you!','Auto Closed: [%TICKETID%] %SUBJECT%','This message is to notify that a ticket has been auto-closed.                            
                        
Ticket ID %TICKETID%                            
                        
Last Reply:                            
                        
----------------------------------                            
                        
%LASTPOST%                            
                        
----------------------------------                 
                        
To view this ticket, visit:                            
                        
%TICKETLINK%','[Challenge-Response] Please confirm your email','Dear %CLIENT-EMAIL%                 
                        
Our support system has received your support request. To confirm your request please click link below and follow instructions.              
%ConfirmLink%')                            
                        
FETCH NEXT FROM TicketDepartmentId_Cursor Into @TicketDepartmentId                        
End                            
                        
Close TicketDepartmentId_Cursor                              
DeAllocate TicketDepartmentId_Cursor                            
                        
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_1')                        
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_2')                        
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_3')                        
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_4')                        
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_5')                        
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_6')                            
INSERT INTO [HB_tblTicketEmpPermission] ([EmployeeId],[PermissionId]) VALUES (@EmployeeId,'CB_7')                            
                        
INSERT INTO [HB_tblTicketGeneralSettings] ( [CompanyId], [SiteName], [LogoLocation], [HomePageURL], [AdministrativeURL], [PublicURL], [FromEmailAddress], [BouncesEmailAddress], [Rrbucst],                          
 [Agsafietdnmaea], [Ldest], [Dro], [Etfc], [Aputrtot], [Rutcr], [Elmowivttyai], [AttachmentFileSize], [TicketsPerPage], [TicketNoPrefix], [TicketNoPostfix], [IsTicketAutoClose],                        
 [WaitingPeriod], [ConfirmEmailWaitPeriod], [HideClient])                             
Select @ResellerId, [SiteName], [LogoLocation], [HomePageURL], [AdministrativeURL], [PublicURL], [FromEmailAddress], [BouncesEmailAddress], [Rrbucst], [Agsafietdnmaea], [Ldest], [Dro],                          
 [Etfc], [Aputrtot], [Rutcr], [Elmowivttyai], [AttachmentFileSize], [TicketsPerPage], [TicketNoPrefix], [TicketNoPostfix], [IsTicketAutoClose], [WaitingPeriod], [ConfirmEmailWaitPeriod], [HideClient]                            
From HB_tblTicketGeneralSettings Where CompanyId=@CompanyId                            
                      
INSERT INTO [HB_tblTicketPrioritySettings] ([CompanyId],[PriorityTitle],[PriorityImage],[IsDeleteAble],[IsDefault])                            
 VALUES (@ResellerId,'Urgent','PriorUrgent.gif',0,0)                        
                        
Declare @Priority int                            
INSERT INTO [HB_tblTicketPrioritySettings] ([CompanyId],[PriorityTitle],[PriorityImage],[IsDeleteAble],[IsDefault])                            
 VALUES (@ResellerId,'Normal','PriorNormal.gif',0,1)                            
Set @Priority=(Select SCOPE_IDENTITY())                            
                        
INSERT INTO [HB_tblTicketPrioritySettings] ([CompanyId],[PriorityTitle],[PriorityImage],[IsDeleteAble],[IsDefault])                            
 VALUES (@ResellerId,'Low','PriorLow.gif',0,0)                            
                        
Declare @StatusId int                            
                        
INSERT INTO [HB_tblTicketStatusSetting] ([CompanyId],[StatusTitle],[IsSticky],[IsShownInOpenTickets],[IsDeleteAble],[IsDefault],[Closed],[IsWaiting])                            
 VALUES (@ResellerId,'Active',0,0,0,1,0,0)                            
                        
Set @StatusId=(Select SCOPE_IDENTITY())                            
                        
INSERT INTO [HB_tblTicketStatusSetting] ([CompanyId],[StatusTitle],[IsSticky],[IsShownInOpenTickets],[IsDeleteAble],[IsDefault],[Closed],[IsWaiting])                            
 VALUES (@ResellerId,'waiting',0,0,0,0,0,1)                            
                        
INSERT INTO [HB_tblTicketStatusSetting] ([CompanyId],[StatusTitle],[IsSticky],[IsShownInOpenTickets],[IsDeleteAble],[IsDefault],[Closed],[IsWaiting])   
 VALUES (@ResellerId,'Closed',0,0,0,0,1,0)              
                        
INSERT INTO [HB_tblTicketPopRules] ([RuleName],[CompanyID],[RuleType],[whereClause],[whereClauseValue],[ForwardDepID],[AssignTo],[StatusID],[PriorityID],[isDel],[DateAdded])                            
 VALUES ('Default Rule #1',@ResellerId,1,1,'Help',@TicDeptId,-1,@StatusId,@Priority,0,getDate())                            
                        
Set @RoleId=(Select RoleId From HB_tblRoles Where Trans_Id='DGN1110454' and CompanyId=@ResellerId)                            
                        
INSERT INTO [tblEmployeesRoles] ([EmployeeId],[RoleId]) VALUES (@EmployeeId,@RoleID)                            
                        

 EXEC SPR_CloneFirstTemplateFromProviderIntoReseller @ResellerId  
                        
Declare @LanguageId int                            
Set @LanguageId=(Select LanguageId From HB_tblLanguages Where CompanyId=@ResellerId And Code =                       
(Select Code from HB_tblLanguages Where LanguageId = (Select LanguageId from  tblCustomers where CustomerID=(Select CustomerId                      
from tblCustomers where OwnerId=@ResellerId))))                            
                      
Update HB_tblLanguages set IsDefault='0' where CompanyId=@ResellerId                      
Update HB_tblLanguages set IsDefault='1' where LanguageId=@LanguageId                      
                        
EXEC SPR_CopyOwnerSysSettingsToReseller @CompanyId, @ResellerId, @LanguageId         
      
Exec CSP_GetDefaultBillingTemplate @BillingTemplate Output                          
                        
Declare @LocaleId int                        
SET @LocaleId = (Select LocaleID from tblCompanies where CompanyId = @ResellerId)                        
                        
Insert Into HB_tblInvoiceTemplates Values('Default', @BillingTemplate, 1,@ResellerId,1,@LocaleId)                            
                        
Insert Into [HB_tblPluginDetail] ([CompanyId], [PluginEnabled], [IgnoreFailures], [PluginId])                            
Select @ResellerId, [PluginEnabled], [IgnoreFailures], [PluginId] From [HB_tblPluginDetail]                            
Where CompanyId='1'                            
                        
IF NOT EXISTS (SELECT * FROM HB_tblAlertModules WHERE CompanyID = @ResellerId)                        
BEGIN                        
 INSERT INTO HB_tblAlertModules (ModuleTypeID,Title,NotifyEnable,CompanyId)                        
 SELECT ModuleTypeID,Title,NotifyEnable,@ResellerId FROM Hb_tblAlertModules WHERE CompanyID = '1'                        
END                        
                        
Exec CSP_FillResellerSalesDefaultValues @ResellerId                        
                        
IF ((Select CustomerNumberTitle from tblCompanies Where CompanyId=@ResellerId) is null)                        
   Update tblCompanies Set CustomerNumberTitle='' Where CompanyId=@ResellerId                        
                        
END                        
GO

IF NOT EXISTS(SELECT * FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.id = C.id AND O.name = 'HB_tblAccessTemplates' AND C.name = 'ManageADUserReports')
BEGIN
	Alter table HB_tblAccessTemplates
	ADD ManageADUserReports bit not null default('1'),
	ManageADGroupReports bit not null default('1'),
	ExchangeAllowUsageReportsView bit not null default('1'),
	ExchangeAllowSubscriptionsReportView bit not null default('1'),
	ExchangeAllowOtherReportsView bit not null default('1'),
	ExchangeAdminAuditLogManagementAllowed bit not null default('1'),
	ExchangeAllowCalenderPermissionsView bit not null default('1'),
	AllowVirtualMachinesUsageReportView bit not null default('1'),
	AllowVirtualMachinesUpTimeReport bit not null default('1')
END
GO

IF NOT EXISTS(SELECT * FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.id = C.id AND O.name = 'HB_tblResellerAccessTemplate' AND C.name = 'ManageADUserReports')
BEGIN
	Alter table HB_tblResellerAccessTemplate
	ADD ManageADUserReports bit not null default('1'),
	ManageADGroupReports bit not null default('1'),
	ExchangeAllowUsageReportsView bit not null default('1'),
	ExchangeAllowSubscriptionsReportView bit not null default('1'),
	ExchangeAllowOtherReportsView bit not null default('1'),
	ExchangeAdminAuditLogManagementAllowed bit not null default('1'),
	ExchangeAllowCalenderPermissionsView bit not null default('1'),
	AllowVirtualMachinesUsageReportView bit not null default('1'),
	AllowVirtualMachinesUpTimeReport bit not null default('1')
END
GO

IF NOT EXISTS(SELECT * FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.id = C.id AND O.name = 'HB_tblCustomerAccessTemplate' AND C.name = 'ManageADUserReports')
BEGIN
	Alter table HB_tblCustomerAccessTemplate
	ADD ManageADUserReports bit not null default('1'),
	ManageADGroupReports bit not null default('1'),
	ExchangeAllowUsageReportsView bit not null default('1'),
	ExchangeAllowSubscriptionsReportView bit not null default('1'),
	ExchangeAllowOtherReportsView bit not null default('1'),
	ExchangeAdminAuditLogManagementAllowed bit not null default('1'),
	ExchangeAllowCalenderPermissionsView bit not null default('1'),
	AllowVirtualMachinesUsageReportView bit not null default('1'),
	AllowVirtualMachinesUpTimeReport bit not null default('1')
END
GO

ALTER PROCEDURE SP_EM_Insert_HB_tblAccessTemplates          
(          
 @TemplateName_1 [NVARCHAR](100), @CompanyId_2  [INT], @CPAccess_3 [BIT], @CPWhiteLabel_4 [BIT], @SubDomains_5 [BIT], @DomainAlias_6  [BIT],         
 @DomainLimits_7 [BIT], @IISAppPool_8 [BIT], @FTPUsers_9 [BIT], @RenameDomain_10  [BIT], @DomainDeletion_11  [BIT], @DomainTurnOff_12 [BIT],         
 @URlRedirection_13  [BIT], @DefaultDoc_14  [BIT], @CustomError_15 [BIT], @MIMEType_16  [BIT], @VirtualFolders_17  [BIT], @FrontPageExt_18  [BIT],         
 @ASPScriting_19 [BIT], @ASPNetScripting_20 [BIT], @PHPScripting_21  [BIT], @PerlScripting_22 [BIT], @ColdFusionScripting_23 [BIT],       
 @Databases_24 [BIT], @ODBCDSN_25 [BIT], @FileManager_26 [BIT], @SSLCert_27 [BIT], @SharedSSL_28 [BIT], @WebsiteStats_29  [BIT], @DNSZone_30 [BIT],       
 @MailDomains_31 [BIT], @EmailAccounts_32 [BIT], @EmailLists_33  [BIT], @EmailGroups_34 [BIT], @ResourceOverUse_35 [BIT], @ResourceOverSell_36  [BIT],       
 @CustomButtons  [BIT], @ClientCanUpgradeDownGradePackage BIT, @AddonsPurchaseAllowedinCCC BIT, @ClientCanEditProfile BIT, @ClientCanBuyServicesinCCC  BIT,       
 @ORGRemoveAllowed BIT, @ExchDomainManagement BIT, @ExchDomainAdd  BIT, @ExchDomainRemove BIT, @ExchDomainEdit BIT, @ExchPublicFolderManage BIT,       
 @ExchWirelessManage BIT, @ExchDisclaimerManage BIT, @ExchRetentionManage  BIT, @ExchMobileDevicePolicy BIT, @ExchMailboxPermissions BIT, @ExchMailboxRemove  BIT,       
 @ExchLitigationHold BIT, @ExchLinkedMBManage BIT, @ExchSharedMBManage BIT, @ExchRoomMBManage BIT, @ExchEquipmentMBManage  BIT, @ExchMailFlowSettings BIT,       
 @ExchaForwardingManage  BIT, @ExchLimitsManage BIT, @ExchRestrictionsManage BIT, @ExchMBPermissionManage BIT, @ExchMBAdvanceManage  BIT, @ExchStorageQuotaManage BIT,       
 @ExchMBFeaturesManage BIT, @ExchMBPersonalArchive  BIT, @ExchUMManage BIT, @ExchAutoReplyManage BIT,         
 @ADOrganizationRemove BIT, @ADSecurityGroupManage  BIT, @ADSecurityGroupAdd BIT, @ADSecurityGroupRemove  BIT, @ADUserAdd  BIT, @ADUserRemove BIT,       
 @ADManage BIT, @ExchSPAMFilterManage BIT, @ExchJournaling BIT, @ExchDLAdvanceManage  BIT, @ExchDLSendAsManage BIT, @ExchManagement BIT,       
 @ExchMBEnableDisable  BIT, @LyncDomainManage BIT, @LyncDomainAdd  BIT, @LyncDomainRemove BIT, @LyncDomainSetDefault BIT, @LyncUserManage BIT, @LyncUserAdd BIT,       
 @LyncUserAddBulk  BIT, @LyncUserRemove BIT, @LyncUserEdit BIT, @LyncUserAllowUM  BIT, @LyncUserEnableDisable  BIT, @LyncUserGroupActions BIT, @LyncFederationManage BIT,         
 @LyncFederationAdd  BIT, @LyncFederationRemove BIT, @LyncFederationEdit BIT, @LyncFederationSync BIT, @LyncPhoneNumberManage  BIT,       
 @LyncResponseGroupManage  BIT, @LyncPersistentChatManage BIT, @LyncShowCallReport BIT, @LyncShowConfCallReport BIT, @LyncShowCallBilling  BIT,         
 @ShowNotification BIT, @AllowLyncManage  BIT, @AllowADOrgSync BIT, @ADUserEdit BIT, @ShowOverDueInvoices  BIT, @ShowBilling  BIT,       
 @ExchDeleteItemRetention  BIT, @ExchMBCalanderManage BIT, @DownloadOutlookProfile BIT, @ShowAuditLogs  BIT, @RunGroupJob  BIT,       
 @ADUserAutoDelete BIT, @AllowO365Management  BIT, @AllowToManageTenants BIT, @AllowToAddNewTenants BIT, @AllowToEditExistingTenants BIT,       
 @AllowToRemoveTenant  BIT, @AllowToManageO365Domains BIT, @AllowToSetO365DomainDefaultState BIT,         
 @AllowToRemoveO365Domain  BIT, @AllowtoManageO365Users BIT, @AllowToAddNewO365Users BIT, @AllowToEditExistingO365Users BIT,       
 @AllowToRemoveO365User  BIT, @AllowToManageO365SharedMbx BIT, @AllowToAddNewO365SharedMbx BIT, @AllowToEditExistingO365SharedMbx BIT,       
 @AllowToRemoveO365SharedMbx BIT, @AllowToManageResourceMbx BIT, @AllowToAddNewO365ResourceMbx BIT, @AllowToEditExistingO365ResourceMbx BIT,       
 @AllowToRemoveO365ResourceMbx BIT, @AllowToManageO365Contacts  BIT, @AllowToAddNewO365Contacts  BIT, @AllowToEditExistingO365Contacts  BIT,       
 @AllowToRemoveO365Contact BIT, @AllowToManageO365Groups  BIT, @AllowToAddNewO365Groups  BIT,         
 @AllowToEditExistingO365Groups  BIT, @AllowToRemoveO365Group BIT, @AllowToManageO365GroupJobs BIT, @AllowToRunO365GroupJob BIT,       
 @AllowToCancelO365GroupJob  BIT, @ExchApplicationImpersonation BIT, @ExchMailBoxMobileDevices BIT, @EnableResellerAPIAccess  BIT,       
 @EnableResellerBillingModule  BIT, @EnableResellerHelpDeskModule BIT, @ResellerAbilityForHelpDeskModule BIT, @EnableADSyncAllowed  BIT,       
 @ShowADProfileTab BIT, @EditADProfileAllowed BIT, @ShowDomainUserName BIT, @AllowAddOnCancel BIT,         
 @AllowCustomMBTemplate  BIT, @AllowAddOnEdit BIT, @AllowVPSManagement BIT, @AllowtoAddVM BIT, @AllowtoRemoveVM  BIT, @Allowtomanagemachineoperations BIT,         
 @Allowtochangehostname  BIT, @Allowtochangememorysettings  BIT, @Allowtochangevirtualprocessors BIT, @Allowtomanagesnapshots BIT,       
 @Allowtochangesnapshotlimit BIT, @Allowtoadddisk BIT, @Allowtoremovedisk  BIT, @Allowtoexpanddisk  BIT, @AllowtoaddNIC  BIT,       
 @AllowtomanageNIC BIT, @AllowtoremoveNIC BIT, @CustomerId INT, @AllowEmailAddress  BIT, @AllowToSetPassword BIT,       
 @AllowtoDistributionListMembership  BIT, @AllowCustomerToChangePassword  BIT, @AllowContactToChangePassword BIT,         
 @AllowCustomSettings  BIT, @AllowPSTDownload BIT, @AllowSPManagement  BIT, @AllowSPFrontEndBbindings BIT, @AllowSPPortalEdit  BIT, @AllowSPDomainManage  BIT,         
 @AllowSPDomainAdd BIT, @AllowSPDomainRemove  BIT, @AllowSPDomainEdit  BIT, @AllowSPPermLevelManage BIT, @AllowSPPermLevelAdd  BIT,       
 @AllowSPPermLevelEdit BIT, @AllowSPPermLevelRemove BIT, @AllowSPGroupsManage  BIT, @AllowSPGroupsAdd BIT, @AllowSPGroupsEdit  BIT, @AllowSPGroupsRemove  BIT,      
 @AllowSPUsersManage BIT, @AllowSPUsersAdd  BIT, @AllowSPUsersEdit BIT, @AllowSPUsersRemove BIT, @AllowSPUsersGroupAction  BIT,         
 @AllowCRMManagement BIT, @AllowCRMSync BIT, @AllowCRMDomainsManage  BIT, @AllowCRMDomainsAdd BIT, @AllowCRMDomainsRemove  BIT,       
 @AllowCRMDomainsEdit  BIT, @AllowCRMBUManage BIT, @AllowCRMBUAdd  BIT, @AllowCRMBURemove BIT, @AllowCRMBUEdit BIT, @AllowCRMUsersManage  BIT,       
 @AllowCRMUsersAdd BIT, @AllowCRMUsersEdit  BIT, @AllowCRMUsersRemove  BIT,  @AllowCRMUsersGroupAction BIT,         
 @ExchPublicFolderAdd  BIT, @ExchPublicFolderEdit BIT, @ExchPublicFolderRemove BIT, @ExchMailContactManagement  BIT,         
 @ExchMailContactAdd BIT, @ExchMailContactEdit  BIT, @ExchMailContactRemove  BIT, @ExchDLManagement BIT, @ExchDLAdd  BIT, @ExchDLEdit BIT,       
 @ExchDLMsgApprovalEdit  BIT,         
 @ExchDLRemoveListMembers  BIT, @ExchDLEmailManagement  BIT, @ExchDLAddEmailAddress  BIT, @ExchDLEditEmailAddress BIT, @ExchDLRemoveEmailAddress BIT, @ExchDLRemove BIT,         
 @RDSManageAllowed BIT, @RDSPolicyManageAllowed  BIT, @RDSPolicyAddAllowed  BIT, @RDSPolicyEditAllowed BIT, @RDSPolicyRemoveAllowed BIT,       
 @RDSUserManageAllowed BIT, @RDSUserAddAllowed  BIT, @RDSUserEditAllowed BIT, @RDSUserRemoveAllowed BIT, @WorkfolderHostingManageAllowed BIT, 
 @WorkfolderOrgManageAllowed BIT, @WorkfoldersManageAllowed  BIT, @WorkfoldersAddAllowed  BIT, @WorkfoldersEditAllowed BIT,         
 @WorkfoldersRemoveAllowed BIT, @WorkfoldersSyncAllowed BIT,         
 @EditCustomerResourcesAllowed BIT, @SyncFromBackendAllowed BIT, @ExchangeRBACManageAllowed  BIT, @MailboxAuditLogManagementAllowed BIT,         
 @AllowToManageVLAN  BIT, @AllowToEnableDisable2FA  BIT, @AllowResellerToProcessSQ BIT, @AllowAutoSQProcessing  BIT, @AllowExportMailboxPermissions  BIT,         
 @AllowToAddUserMailbox  BIT, @O365SPManagementAllowed  BIT, @ExchAllowExternalRelayDomainManage BIT, @ExchAllowExternalRelayDomainAdd  BIT,         
 @ExchAllowExternalRelayDomainRemove BIT, @ExchAllowExternalRelayDomainEdit BIT, @ExchAllowInternalRelayDomainManage BIT, @ExchAllowInternalRelayDomainAdd  BIT,         
 @ExchAllowInternalRelayDomainRemove BIT, @ExchAllowInternalRelayDomainEdit BIT, @AllowPSTExport BIT, @AllowPSTImport BIT, @AllowToManageGroupMembership BIT,         
 @AllowToEditCustomAttributes BIT, @ShowADReports BIT, @ShowExchReports  BIT, @ShowSkype4BReports BIT, @ShowCSPReports  BIT, @ShowSharePointReports BIT,          
 @ShowCRMReports BIT, @ShowVPSReports BIT, @ShowRDSReports BIT, @ShowWFReports BIT, @ShowWebHostingReports BIT, @AllowVoiceManagement  BIT,          
 @ShowVoiceBilling BIT, @ShowAddons BIT, @ShowDomains  BIT, @ShowAccounts  BIT, @ShowTrunks  BIT, @ShowCloudPBX  BIT, @ShowPhoneNumber  BIT,       
 @AllowToAddPhoneNumbers BIT,          
 @AllowNumberPorting  BIT, @ShowForwarding BIT, @ShowFilterLists BIT, @ShowDirectRouting BIT, @ShowCallRecords BIT, @ShowDestinations BIT,       
 @ShowVoiceReports BIT,         
 @QuickMigrationAllowed bit, @LiveMigrationAllowed bit, @ChangeBandwidthAllowed bit, @ShowDiskManagement bit, @ShowISOImageManagement  bit,       
 @ShowNICManagement  bit,         
 @AllowWebHostingManage bit, @WebAccountsManageAllowed bit, @DomainAddAllowed bit, @DomainEditAllowed bit, @DedicatedIPManageAllowed bit,      
 @WebHostingAccounts bit,          
 @DNSOnlyHostingAccounts bit, @DBOnlyHostingAccounts bit, @MailOnlyHostingAccounts bit, @TempURLManageAllowed bit, @MailDomainTurnOnOffAllowed bit,          
 @MailDomainAliasesAllowed bit, @ManageTeamNumbers BIT, @ManagePendingVerificationDomain BIT, @ManageVerifiedDomain BIT, @DigiCertSSLManageAllowed bit,          
 @MailboxTemplateCreationAllowed BIT, @ExportMailboxForwardingAllowed  bit, @ExportDynamicDLAllowed  bit, @ExportDLToExcelAllowed  bit,       
 @ExportMembersReportAllowed bit,          
 @UpdateReceiptSettingAllowed bit, @ComplianceManagementAllowed bit, @InPlaceHoldAllowed bit, @AuditingAllowed bit, @MoveVMAllowed bit,          
 @SyncAllwithMicrosoftCSP bit, @SyncDomainsLicensesPoliciesAndRoles bit, @SyncDomains bit, @SyncAllUsersWithMicrosoftCSP bit,       
 @SyncAllContactsWithMicrosoftCSP bit,          
 @SyncAllGroupsWithMicrosoftCSP bit, @SyncAllSharePointSitesWithMicrosoft365 bit, @ShowVMCredsInWHMCS BIT, @AllowManageDomainNameProds BIT,          
 @AllowManageMiscProds BIT, @AllowManageDedicatedProds BIT, @AllowChangingMailboxType BIT, @AllowToManageInPlaceHold BIT,       
 @AllowToManageEmailAddresses BIT,          
 @AllowToConfigureLinkedADSettings BIT, @DomainNameManageAllowed bit, @ContactManageAllowed bit, @ContactAddAllowed bit,       
 @ContactEditAllowed bit,         
 @ContactRemoveAllowed bit, @LockUnLockManageAllowed bit, @DomainNameServerManageAllowed bit, @CustomNameServerManageAllowed bit,       
 @TransferCodeManageAllowed bit,         
 @DomainDNSManageAllowed bit,          
 @CustomerImportAllowed bit, @CustomerExportAllowed bit, @AllowCustomerDeletion BIT,@ShowBillingToCustomer BIT,       
 @AllowToManageNICMACAddress BIT,          
 @AllowToManageBandwidthDetail BIT, @AllowToChangePassword  BIT, @AllowToSyncVM BIT, @AllowToManageBootOrder BIT,       
 @MailUserManagementAllowed BIT,         
 @AllowContactTab BIT, @DeleteSPAMExpertsFilterting bit, @EnableDisableSPAMExpertsArchiving bit,       
 @AllowToManagePasswordLessAuthentication bit,        
 @GenerateRenewalInvoice bit, @AllowToUpdatePasswordSettings bit,        
 @ExchSignatureManage bit, @MailFlowMoniteringAllowed bit, @ExchTransportRulesManage bit, @ShowHelpdeskToCustomer bit,        
 @AllowToCancelWebSubscription bit, @AllowToCancelADSubscription bit, @AllowToCancelDomainSubscription bit, @AllowToCancelCRMSubscription bit,        
 @AllowToCancelExchangeSubscription bit, @AllowToCancelSPSubscription bit, @AllowToCancelOCSSubscription bit, @AllowToCancelVPSSubscription bit,        
 @AllowToCancelCSPSubscription bit, @AllowToCancelRDSSubscription bit, @AllowToCancelWFSubscription bit, @AllowToCancelVoiceSubscription bit,      
 @AllowToManageADUserCertificates bit, @OWAPolicyManagementAllowed bit, @AddOWAPolicyAllowed bit, @RecoveryManagementAllowed bit,       
 @ManageRecycleBin bit, @AllowGeneralSection bit, @AllowToEditADOrg bit, @AllowToManageADGroupAction bit, @AllowToExportADUsers bit,     
 @AllowTrunOnOffVM bit, @AllowShutDownVM bit, @AllowResetHardVM bit, @AllowSuspendResumeVM bit, @AllowManageWebConsoleVM bit,     
 @AllowResetHNVSettingsVM bit, @AllowShieldUnShieldVM bit, @AllowToExportMailboxes bit, @AllowToExportADGroups bit,     
 @ExchEnableDisableADUsersSharedMailbox bit, @ExchEnableDisableADUsersResourceMailbox bit, @ManageExchMailboxDevices bit,   
 @SDNManagementAllowed bit, @ManageADUserReports bit, @ManageADGroupReports bit, @ExchangeAllowUsageReportsView bit, 
 @ExchangeAllowSubscriptionsReportView bit, @ExchangeAllowOtherReportsView bit, @ExchangeAdminAuditLogManagementAllowed bit, 
 @ExchangeAllowCalenderPermissionsView bit, @AllowVirtualMachinesUsageReportView bit, @AllowVirtualMachinesUpTimeReport bit 
)          
AS          
BEGIN          
 INSERT INTO [HB_tblAccessTemplates]          
 ([TemplateName], [CompanyId], [CPAccess], [CPWhiteLabel], [SubDomains], [DomainAlias], [DomainLimits], [IISAppPool], [FTPUsers], [RenameDomain], [DomainDeletion],         
[DomainTurnOff], [URlRedirection], [DefaultDoc], [CustomError], [MIMEType], [VirtualFolders], [FrontPageExt], [ASPScripting], [ASPNetScripting], [PHPScripting],         
[PerlScripting], [ColdFusionScripting], [Databases], [ODBCDSN], [FileManager], [SSLCert], [SharedSSL], [WebsiteStats], [DNSZone], [MailDomains], [EmailAccounts],         
[EmailLists], [EmailGroups], [ResellerTemplate], [ResourceOverSell], [CustomButtons], [ClientCanUpgradeDownGradePackage], [AddonsPurchaseAllowedinCCC],         
[ClientCanEditProfile], ClientCanBuyServicesinCCC, ORGRemoveAllowed,         
ExchDomainManagement, ExchDomainAdd, ExchDomainRemove, ExchDomainEdit, ExchPublicFolderManage, ExchWirelessManage, ExchDisclaimerManage, ExchRetentionManage,         
ExchMobileDevicePolicy, ExchMailboxPermissions, ExchMailboxRemove, ExchLitigationHold, ExchLinkedMBManage, ExchSharedMBManage, ExchRoomMBManage, ExchEquipmentMBManage,         
ExchMailFlowSettings, ExchaForwardingManage, ExchLimitsManage, ExchRestrictionsManage, ExchMBPermissionManage, ExchMBAdvanceManage, ExchStorageQuotaManage,         
ExchMBFeaturesManage, ExchMBPersonalArchive, ExchUMManage, ExchAutoReplyManage,         
ADOrganizationRemove, ADSecurityGroupManage, ADSecurityGroupAdd, ADSecurityGroupRemove, ADUserAdd, ADUserRemove, ADManage,         
ExchSPAMFilterManage, ExchJournaling, ExchDLAdvanceManage, ExchDLSendAsManage, ExchManagement, ExchMBEnableDisable,         
LyncDomainManage, LyncDomainAdd, LyncDomainRemove, LyncDomainSetDefault, LyncUserManage, LyncUserAdd, LyncUserAddBulk, LyncUserRemove, LyncUserEdit, LyncUserAllowUM,         
LyncUserEnableDisable, LyncUserGroupActions, LyncFederationManage, LyncFederationAdd, LyncFederationRemove, LyncFederationEdit, LyncFederationSync, LyncPhoneNumberManage,         
LyncResponseGroupManage, LyncPersistentChatManage, LyncShowCallReport, LyncShowConfCallReport, LyncShowCallBilling, ShowNotification, AllowLyncManage, AllowADOrgSync,         
ADUserEdit, ShowOverDueInvoices, ShowBilling, ExchDeleteItemRetention, ExchMBCalanderManage, DownloadOutlookProfile, ShowAuditLogs, RunGroupJob, ADUserAutoDelete,         
AllowO365Management, AllowToManageTenants, AllowToAddNewTenants, AllowToEditExistingTenants, AllowToRemoveTenant, AllowToManageO365Domains, AllowToSetO365DomainDefaultState,         
AllowToRemoveO365Domain, AllowtoManageO365Users, AllowToAddNewO365Users, AllowToEditExistingO365Users, AllowToRemoveO365User, AllowToManageO365SharedMbx,         
AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx, AllowToRemoveO365SharedMbx, AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx,         
AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx, AllowToManageO365Contacts, AllowToAddNewO365Contacts, AllowToEditExistingO365Contacts,         
AllowToRemoveO365Contact, AllowToManageO365Groups, AllowToAddNewO365Groups, AllowToEditExistingO365Groups, AllowToRemoveO365Group, AllowToManageO365GroupJobs,         
AllowToRunO365GroupJob, AllowToCancelO365GroupJob,         
ExchApplicationImpersonation, ExchMailBoxMobileDevices, EnableResellerAPIAccess, EnableResellerBillingModule, EnableResellerHelpDeskModule, ResellerAbilityForHelpDeskModule,         
EnableADSyncAllowed, ShowADProfileTab, EditADProfileAllowed, ShowDomainUserName, AllowAddOnCancel, AllowCustomMBTemplate, AllowAddOnEdit, AllowVPSManagement, AllowtoAddVM,         
AllowtoRemoveVM, Allowtomanagemachineoperations, Allowtochangehostname, Allowtochangememorysettings, Allowtochangevirtualprocessors, Allowtomanagesnapshots,         
Allowtochangesnapshotlimit, Allowtoadddisk, Allowtoremovedisk, Allowtoexpanddisk, AllowtoaddNIC, AllowtomanageNIC, AllowtoremoveNIC, CustomerId, AllowEmailAddress,         
AllowToSetPassword, AllowtoDistributionListMembership, AllowCustomerToChangePassword, AllowContactToChangePassword, AllowCustomSettings, AllowPSTDownload,         
AllowSPManagement, AllowSPFrontEndBbindings, AllowSPPortalEdit, AllowSPDomainManage, AllowSPDomainAdd, AllowSPDomainRemove, AllowSPDomainEdit, AllowSPPermLevelManage,         
AllowSPPermLevelAdd, AllowSPPermLevelEdit, AllowSPPermLevelRemove, AllowSPGroupsManage, AllowSPGroupsAdd, AllowSPGroupsEdit, AllowSPGroupsRemove, AllowSPUsersManage,         
AllowSPUsersAdd, AllowSPUsersEdit, AllowSPUsersRemove, AllowSPUsersGroupAction,         
AllowCRMManagement, AllowCRMSync, AllowCRMDomainsManage, AllowCRMDomainsAdd, AllowCRMDomainsRemove, AllowCRMDomainsEdit, AllowCRMBUManage, AllowCRMBUAdd, AllowCRMBURemove,         
AllowCRMBUEdit, AllowCRMUsersManage, AllowCRMUsersAdd, AllowCRMUsersEdit, AllowCRMUsersRemove, AllowCRMUsersGroupAction, ExchPublicFolderAdd, ExchPublicFolderEdit,         
ExchPublicFolderRemove, ExchMailContactManagement, ExchMailContactAdd, ExchMailContactEdit, ExchMailContactRemove, ExchDLManagement, ExchDLAdd, ExchDLEdit,         
ExchDLMsgApprovalEdit, ExchDLRemoveListMembers, ExchDLEmailManagement, ExchDLAddEmailAddress, ExchDLEditEmailAddress, ExchDLRemoveEmailAddress, ExchDLRemove,         
RDSManageAllowed, RDSPolicyManageAllowed, RDSPolicyAddAllowed, RDSPolicyEditAllowed, RDSPolicyRemoveAllowed, RDSUserManageAllowed, RDSUserAddAllowed, RDSUserEditAllowed,         
RDSUserRemoveAllowed,         
WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed, WorkfoldersManageAllowed, WorkfoldersAddAllowed, WorkfoldersEditAllowed, WorkfoldersRemoveAllowed,         
WorkfoldersSyncAllowed, EditCustomerResourcesAllowed, SyncFromBackendAllowed, ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed, AllowToManageVLAN,         
AllowToEnableDisable2FA, AllowResellerToProcessSQ, AllowAutoSQProcessing, AllowExportMailboxPermissions, AllowToAddUserMailbox, O365SPManagementAllowed,         
ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit,         
ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit,         
AllowPSTExport, AllowPSTImport, AllowToManageGroupMembership, AllowToEditCustomAttributes,          
ShowADReports, ShowExchReports, ShowSkype4BReports, ShowCSPReports, ShowSharePointReports, ShowCRMReports, ShowVPSReports, ShowRDSReports, ShowWFReports,         
ShowWebHostingReports, AllowVoiceManagement, ShowVoiceBilling, ShowAddons, ShowDomains, ShowAccounts, ShowTrunks, ShowCloudPBX, ShowPhoneNumber, AllowToAddPhoneNumbers,          
AllowNumberPorting, ShowForwarding, ShowFilterLists, ShowDirectRouting, ShowCallRecords, ShowDestinations, ShowVoiceReports, QuickMigrationAllowed, LiveMigrationAllowed,        
ChangeBandwidthAllowed, ShowDiskManagement, ShowISOImageManagement, ShowNICManagement,         
AllowWebHostingManage, WebAccountsManageAllowed, DomainAddAllowed, DomainEditAllowed, DedicatedIPManageAllowed, WebHostingAccounts, DNSOnlyHostingAccounts,         
DBOnlyHostingAccounts, MailOnlyHostingAccounts, TempURLManageAllowed, MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed,        
ManageTeamNumbers, ManagePendingVerificationDomain, ManageVerifiedDomain, DigiCertSSLManageAllowed, MailboxTemplateCreationAllowed, ExportMailboxForwardingAllowed,         
ExportDynamicDLAllowed, ExportDLToExcelAllowed, ExportMembersReportAllowed, UpdateReceiptSettingAllowed, ComplianceManagementAllowed, InPlaceHoldAllowed,         
AuditingAllowed, MoveVMAllowed, SyncAllwithMicrosoftCSP, SyncDomainsLicensesPoliciesAndRoles, SyncDomains, SyncAllUsersWithMicrosoftCSP,         
SyncAllContactsWithMicrosoftCSP, SyncAllGroupsWithMicrosoftCSP, SyncAllSharePointSitesWithMicrosoft365, ShowVMCredsInWHMCS, AllowManageDomainNameProds,         
AllowManageMiscProds, AllowManageDedicatedProds,AllowChangingMailboxType, AllowToManageInPlaceHold, AllowToManageEmailAddresses, AllowToConfigureLinkedADSettings,         
DomainNameManageAllowed, ContactManageAllowed, ContactAddAllowed, ContactEditAllowed, ContactRemoveAllowed, LockUnLockManageAllowed, DomainNameServerManageAllowed,         
CustomNameServerManageAllowed, TransferCodeManageAllowed, DomainDNSManageAllowed, CustomerImportAllowed, CustomerExportAllowed, AllowCustomerDeletion,        
ShowBillingToCustomer, AllowToManageNICMACAddress, AllowToManageBandwidthDetail, AllowToChangePassword, AllowToSyncVM, AllowToManageBootOrder, MailUserManagementAllowed,        
AllowContactTab, DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice,         
AllowToUpdatePasswordSettings, ExchSignatureManage, MailFlowMoniteringAllowed, ExchTransportRulesManage, ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription, AllowToCancelADSubscription, AllowToCancelDomainSubscription, AllowToCancelCRMSubscription, AllowToCancelExchangeSubscription,        
AllowToCancelSPSubscription, AllowToCancelOCSSubscription, AllowToCancelVPSSubscription, AllowToCancelCSPSubscription, AllowToCancelRDSSubscription,        
AllowToCancelWFSubscription, AllowToCancelVoiceSubscription, AllowToManageADUserCertificates, OWAPolicyManagementAllowed, AddOWAPolicyAllowed,       
RecoveryManagementAllowed, ManageRecycleBin ,AllowGeneralSection, AllowToEditADOrg, AllowToManageADGroupAction, AllowToExportADUsers,     
AllowTrunOnOffVM, AllowShutDownVM, AllowResetHardVM, AllowSuspendResumeVM, AllowManageWebConsoleVM, AllowResetHNVSettingsVM, AllowShieldUnShieldVM,     
AllowToExportMailboxes, AllowToExportADGroups, ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox, ManageExchMailboxDevices,   
SDNManagementAllowed, ManageADUserReports, ManageADGroupReports, ExchangeAllowUsageReportsView, ExchangeAllowSubscriptionsReportView, 
ExchangeAllowOtherReportsView, ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView, AllowVirtualMachinesUsageReportView, 
AllowVirtualMachinesUpTimeReport 
)          
VALUES          
(@TemplateName_1, @CompanyId_2, @CPAccess_3, @CPWhiteLabel_4, @SubDomains_5, @DomainAlias_6, @DomainLimits_7, @IISAppPool_8, @FTPUsers_9, @RenameDomain_10,         
@DomainDeletion_11, @DomainTurnOff_12, @URlRedirection_13, @DefaultDoc_14, @CustomError_15, @MIMEType_16, @VirtualFolders_17, @FrontPageExt_18, @ASPScriting_19,         
@ASPNetScripting_20, @PHPScripting_21, @PerlScripting_22, @ColdFusionScripting_23, @Databases_24, @ODBCDSN_25, @FileManager_26, @SSLCert_27, @SharedSSL_28,         
@WebsiteStats_29, @DNSZone_30, @MailDomains_31, @EmailAccounts_32, @EmailLists_33, @EmailGroups_34, @ResourceOverUse_35, @ResourceOverSell_36, @CustomButtons,         
@ClientCanUpgradeDownGradePackage, @AddonsPurchaseAllowedinCCC, @ClientCanEditProfile, @ClientCanBuyServicesinCCC, @ORGRemoveAllowed, @ExchDomainManagement,       
@ExchDomainAdd, @ExchDomainRemove, @ExchDomainEdit, @ExchPublicFolderManage, @ExchWirelessManage, @ExchDisclaimerManage, @ExchRetentionManage,         
@ExchMobileDevicePolicy, @ExchMailboxPermissions, @ExchMailboxRemove, @ExchLitigationHold, @ExchLinkedMBManage, @ExchSharedMBManage, @ExchRoomMBManage,         
@ExchEquipmentMBManage, @ExchMailFlowSettings, @ExchaForwardingManage, @ExchLimitsManage, @ExchRestrictionsManage, @ExchMBPermissionManage, @ExchMBAdvanceManage,         
@ExchStorageQuotaManage, @ExchMBFeaturesManage, @ExchMBPersonalArchive, @ExchUMManage, @ExchAutoReplyManage,         
@ADOrganizationRemove, @ADSecurityGroupManage, @ADSecurityGroupAdd, @ADSecurityGroupRemove, @ADUserAdd, @ADUserRemove, @ADManage,         
@ExchSPAMFilterManage, @ExchJournaling, @ExchDLAdvanceManage, @ExchDLSendAsManage, @ExchManagement, @ExchMBEnableDisable,         
@LyncDomainManage, @LyncDomainAdd, @LyncDomainRemove, @LyncDomainSetDefault, @LyncUserManage, @LyncUserAdd, @LyncUserAddBulk, @LyncUserRemove, @LyncUserEdit,         
@LyncUserAllowUM, @LyncUserEnableDisable, @LyncUserGroupActions, @LyncFederationManage, @LyncFederationAdd, @LyncFederationRemove, @LyncFederationEdit,         
@LyncFederationSync, @LyncPhoneNumberManage, @LyncResponseGroupManage, @LyncPersistentChatManage, @LyncShowCallReport, @LyncShowConfCallReport, @LyncShowCallBilling,          
@ShowNotification, @AllowLyncManage, @AllowADOrgSync, @ADUserEdit, @ShowOverDueInvoices, @ShowBilling, @ExchDeleteItemRetention, @ExchMBCalanderManage,         
@DownloadOutlookProfile, @ShowAuditLogs, @RunGroupJob, @ADUserAutoDelete, @AllowO365Management, @AllowToManageTenants, @AllowToAddNewTenants, @AllowToEditExistingTenants,         
@AllowToRemoveTenant, @AllowToManageO365Domains, @AllowToSetO365DomainDefaultState, @AllowToRemoveO365Domain, @AllowtoManageO365Users, @AllowToAddNewO365Users,         
@AllowToEditExistingO365Users, @AllowToRemoveO365User, @AllowToManageO365SharedMbx, @AllowToAddNewO365SharedMbx, @AllowToEditExistingO365SharedMbx,         
@AllowToRemoveO365SharedMbx, @AllowToManageResourceMbx, @AllowToAddNewO365ResourceMbx, @AllowToEditExistingO365ResourceMbx, @AllowToRemoveO365ResourceMbx,         
@AllowToManageO365Contacts, @AllowToAddNewO365Contacts, @AllowToEditExistingO365Contacts, @AllowToRemoveO365Contact, @AllowToManageO365Groups, @AllowToAddNewO365Groups,         
@AllowToEditExistingO365Groups, @AllowToRemoveO365Group, @AllowToManageO365GroupJobs, @AllowToRunO365GroupJob, @AllowToCancelO365GroupJob,         
@ExchApplicationImpersonation, @ExchMailBoxMobileDevices, @EnableResellerAPIAccess, @EnableResellerBillingModule, @EnableResellerHelpDeskModule,         
@ResellerAbilityForHelpDeskModule, @EnableADSyncAllowed, @ShowADProfileTab, @EditADProfileAllowed, @ShowDomainUserName, @AllowAddOnCancel, @AllowCustomMBTemplate,         
@AllowAddOnEdit, @AllowVPSManagement, @AllowtoAddVM, @AllowtoRemoveVM, @Allowtomanagemachineoperations, @Allowtochangehostname, @Allowtochangememorysettings,         
@Allowtochangevirtualprocessors, @Allowtomanagesnapshots, @Allowtochangesnapshotlimit, @Allowtoadddisk, @Allowtoremovedisk, @Allowtoexpanddisk, @AllowtoaddNIC,         
@AllowtomanageNIC, @AllowtoremoveNIC, @CustomerId, @AllowEmailAddress, @AllowToSetPassword, @AllowtoDistributionListMembership, @AllowCustomerToChangePassword,         
@AllowContactToChangePassword, @AllowCustomSettings, @AllowPSTDownload, @AllowSPManagement, @AllowSPFrontEndBbindings, @AllowSPPortalEdit, @AllowSPDomainManage,         
@AllowSPDomainAdd, @AllowSPDomainRemove, @AllowSPDomainEdit, @AllowSPPermLevelManage, @AllowSPPermLevelAdd, @AllowSPPermLevelEdit, @AllowSPPermLevelRemove,         
@AllowSPGroupsManage, @AllowSPGroupsAdd, @AllowSPGroupsEdit, @AllowSPGroupsRemove, @AllowSPUsersManage, @AllowSPUsersAdd, @AllowSPUsersEdit, @AllowSPUsersRemove,         
@AllowSPUsersGroupAction, @AllowCRMManagement, @AllowCRMSync, @AllowCRMDomainsManage,  @AllowCRMDomainsAdd, @AllowCRMDomainsRemove, @AllowCRMDomainsEdit, @AllowCRMBUManage,         
@AllowCRMBUAdd, @AllowCRMBURemove, @AllowCRMBUEdit, @AllowCRMUsersManage, @AllowCRMUsersAdd, @AllowCRMUsersEdit, @AllowCRMUsersRemove, @AllowCRMUsersGroupAction,         
@ExchPublicFolderAdd, @ExchPublicFolderEdit, @ExchPublicFolderRemove, @ExchMailContactManagement, @ExchMailContactAdd, @ExchMailContactEdit, @ExchMailContactRemove,         
@ExchDLManagement, @ExchDLAdd, @ExchDLEdit, @ExchDLMsgApprovalEdit, @ExchDLRemoveListMembers, @ExchDLEmailManagement, @ExchDLAddEmailAddress, @ExchDLEditEmailAddress,         
@ExchDLRemoveEmailAddress, @ExchDLRemove, @RDSManageAllowed, @RDSPolicyManageAllowed, @RDSPolicyAddAllowed, @RDSPolicyEditAllowed, @RDSPolicyRemoveAllowed,         
@RDSUserManageAllowed, @RDSUserAddAllowed, @RDSUserEditAllowed, @RDSUserRemoveAllowed, @WorkfolderHostingManageAllowed, @WorkfolderOrgManageAllowed,         
@WorkfoldersManageAllowed, @WorkfoldersAddAllowed, @WorkfoldersEditAllowed, @WorkfoldersRemoveAllowed, @WorkfoldersSyncAllowed, @EditCustomerResourcesAllowed,         
@SyncFromBackendAllowed, @ExchangeRBACManageAllowed, @MailboxAuditLogManagementAllowed, @AllowToManageVLAN, @AllowToEnableDisable2FA, @AllowResellerToProcessSQ,         
@AllowAutoSQProcessing, @AllowExportMailboxPermissions, @AllowToAddUserMailbox, @O365SPManagementAllowed, @ExchAllowExternalRelayDomainManage,         
@ExchAllowExternalRelayDomainAdd, @ExchAllowExternalRelayDomainRemove, @ExchAllowExternalRelayDomainEdit, @ExchAllowInternalRelayDomainManage,         
@ExchAllowInternalRelayDomainAdd, @ExchAllowInternalRelayDomainRemove, @ExchAllowInternalRelayDomainEdit, @AllowPSTExport, @AllowPSTImport, @AllowToManageGroupMembership,         
@AllowToEditCustomAttributes, @ShowADReports, @ShowExchReports, @ShowSkype4BReports, @ShowCSPReports, @ShowSharePointReports, @ShowCRMReports, @ShowVPSReports,         
@ShowRDSReports, @ShowWFReports, @ShowWebHostingReports, @AllowVoiceManagement, @ShowVoiceBilling, @ShowAddons, @ShowDomains, @ShowAccounts, @ShowTrunks, @ShowCloudPBX,         
@ShowPhoneNumber, @AllowToAddPhoneNumbers, @AllowNumberPorting, @ShowForwarding, @ShowFilterLists, @ShowDirectRouting, @ShowCallRecords, @ShowDestinations,          
@ShowVoiceReports, @QuickMigrationAllowed, @LiveMigrationAllowed, @ChangeBandwidthAllowed, @ShowDiskManagement, @ShowISOImageManagement, @ShowNICManagement,         
@AllowWebHostingManage, @WebAccountsManageAllowed, @DomainAddAllowed, @DomainEditAllowed, @DedicatedIPManageAllowed, @WebHostingAccounts, @DNSOnlyHostingAccounts,         
@DBOnlyHostingAccounts, @MailOnlyHostingAccounts, @TempURLManageAllowed, @MailDomainTurnOnOffAllowed, @MailDomainAliasesAllowed,@ManageTeamNumbers,         
@ManagePendingVerificationDomain,@ManageVerifiedDomain, @DigiCertSSLManageAllowed, @MailboxTemplateCreationAllowed,@ExportMailboxForwardingAllowed,         
@ExportDynamicDLAllowed, @ExportDLToExcelAllowed, @ExportMembersReportAllowed, @UpdateReceiptSettingAllowed, @ComplianceManagementAllowed, @InPlaceHoldAllowed,         
@AuditingAllowed, @MoveVMAllowed, @SyncAllwithMicrosoftCSP, @SyncDomainsLicensesPoliciesAndRoles, @SyncDomains, @SyncAllUsersWithMicrosoftCSP,         
@SyncAllContactsWithMicrosoftCSP, @SyncAllGroupsWithMicrosoftCSP, @SyncAllSharePointSitesWithMicrosoft365, @ShowVMCredsInWHMCS, @AllowManageDomainNameProds,         
@AllowManageMiscProds, @AllowManageDedicatedProds, @AllowChangingMailboxType, @AllowToManageInPlaceHold, @AllowToManageEmailAddresses,         
@AllowToConfigureLinkedADSettings, @DomainNameManageAllowed, @ContactManageAllowed, @ContactAddAllowed, @ContactEditAllowed, @ContactRemoveAllowed,         
@LockUnLockManageAllowed, @DomainNameServerManageAllowed, @CustomNameServerManageAllowed, @TransferCodeManageAllowed, @DomainDNSManageAllowed,         
@CustomerImportAllowed, @CustomerExportAllowed ,@AllowCustomerDeletion,@ShowBillingToCustomer, @AllowToManageNICMACAddress, @AllowToManageBandwidthDetail,         
@AllowToChangePassword, @AllowToSyncVM, @AllowToManageBootOrder, @MailUserManagementAllowed, @AllowContactTab,         
@DeleteSPAMExpertsFilterting, @EnableDisableSPAMExpertsArchiving, @AllowToManagePasswordLessAuthentication, @GenerateRenewalInvoice, @AllowToUpdatePasswordSettings,        
@ExchSignatureManage, @MailFlowMoniteringAllowed, @ExchTransportRulesManage, @ShowHelpdeskToCustomer,        
@AllowToCancelWebSubscription, @AllowToCancelADSubscription, @AllowToCancelDomainSubscription, @AllowToCancelCRMSubscription, @AllowToCancelExchangeSubscription,         
@AllowToCancelSPSubscription, @AllowToCancelOCSSubscription, @AllowToCancelVPSSubscription, @AllowToCancelCSPSubscription, @AllowToCancelRDSSubscription,         
@AllowToCancelWFSubscription, @AllowToCancelVoiceSubscription, @AllowToManageADUserCertificates, @OWAPolicyManagementAllowed, @AddOWAPolicyAllowed,       
@RecoveryManagementAllowed, @ManageRecycleBin ,@AllowGeneralSection, @AllowToEditADOrg, @AllowToManageADGroupAction, @AllowToExportADUsers,     
@AllowTrunOnOffVM, @AllowShutDownVM, @AllowResetHardVM, @AllowSuspendResumeVM, @AllowManageWebConsoleVM, @AllowResetHNVSettingsVM, @AllowShieldUnShieldVM,     
@AllowToExportMailboxes, @AllowToExportADGroups, @ExchEnableDisableADUsersSharedMailbox, @ExchEnableDisableADUsersResourceMailbox, @ManageExchMailboxDevices,   
@SDNManagementAllowed, @ManageADUserReports, @ManageADGroupReports, @ExchangeAllowUsageReportsView, @ExchangeAllowSubscriptionsReportView, 
@ExchangeAllowOtherReportsView, @ExchangeAdminAuditLogManagementAllowed, @ExchangeAllowCalenderPermissionsView, @AllowVirtualMachinesUsageReportView, 
@AllowVirtualMachinesUpTimeReport 
);         
EXEC SPR_UpdateChildPermissionsAsPerParent;          
END          
GO

ALTER PROCEDURE SP_EM_Update_HB_tblAccessTemplates          
(@TemplateId_1 [INT], @TemplateName_2 [NVARCHAR](100), @CompanyId_3  [INT], @CPAccess_4 [BIT], @CPWhiteLabel_5 [BIT], @SubDomains_6 [BIT],       
@DomainAlias_7  [BIT],         
 @DomainLimits_8 [BIT], @IISAppPool_9 [BIT], @FTPUsers_10 [BIT], @RenameDomain_11 [BIT], @DomainDeletion_12 [BIT], @DomainTurnOff_13 [BIT],       
 @URlRedirection_14 [BIT],         
 @DefaultDoc_15 [BIT], @CustomError_16 [BIT], @MIMEType_17 [BIT], @VirtualFolders_18 [BIT], @FrontPageExt_19 [BIT], @ASPScriting_20 [BIT],       
 @ASPNetScripting_21 [BIT],         
 @PHPScripting_22 [BIT], @PerlScripting_23 [BIT], @ColdFusionScripting_24 [BIT], @Databases_25 [BIT], @ODBCDSN_26 [BIT], @FileManager_27 [BIT],       
 @SSLCert_28 [BIT],         
 @SharedSSL_29 [BIT], @WebsiteStats_30  [BIT], @DNSZone_31 [BIT], @MailDomains_32 [BIT], @EmailAccounts_33 [BIT], @EmailLists_34  [BIT],       
 @EmailGroups_35 [BIT],         
 @ResellerTemplate [BIT], @ResourceOverSell_37  [BIT], @CustomButton [BIT], @OverWriteSubAccounts [BIT], @ClientCanUpgradeDownGradePackage BIT,         
 @AddonsPurchaseAllowedinCCC BIT, @ClientCanEditProfile BIT, @ClientCanBuyServicesinCCC  BIT, @ORGRemoveAllowed BIT,         
 @ExchDomainManagement BIT, @ExchDomainAdd BIT, @ExchDomainRemove BIT, @ExchDomainEdit BIT, @ExchPublicFolderManage BIT, @ExchWirelessManage BIT,       
 @ExchDisclaimerManage BIT,         
 @ExchRetentionManage BIT, @ExchMobileDevicePolicy BIT, @ExchMailboxPermissions BIT, @ExchMailboxRemove BIT, @ExchLitigationHold BIT,       
 @ExchLinkedMBManage BIT,         
 @ExchSharedMBManage BIT, @ExchRoomMBManage BIT, @ExchEquipmentMBManage  BIT, @ExchMailFlowSettings BIT, @ExchaForwardingManage  BIT,       
 @ExchLimitsManage BIT,         
 @ExchRestrictionsManage BIT, @ExchMBPermissionManage BIT, @ExchMBAdvanceManage  BIT, @ExchStorageQuotaManage BIT, @ExchMBFeaturesManage BIT,       
 @ExchMBPersonalArchive BIT,         
 @ExchUMManage BIT, @ExchAutoReplyManage  BIT,         
 @ADOrganizationRemove BIT, @ADSecurityGroupManage  BIT, @ADSecurityGroupAdd BIT, @ADSecurityGroupRemove  BIT, @ADUserAdd  BIT, @ADUserRemove BIT,       
 @ADManage BIT,         
 @ExchSPAMFilterManage BIT, @ExchJournaling BIT, @ExchDLAdvanceManage  BIT, @ExchDLSendAsManage BIT, @ExchManagement BIT, @ExchMBEnableDisable  BIT,         
 @LyncDomainManage BIT, @LyncDomainAdd  BIT, @LyncDomainRemove BIT, @LyncDomainSetDefault  BIT, @LyncUserManage BIT, @LyncUserAdd  BIT,       
 @LyncUserAddBulk  BIT,         
 @LyncUserRemove BIT, @LyncUserEdit BIT, @LyncUserAllowUM  BIT, @LyncUserEnableDisable  BIT, @LyncUserGroupActions BIT, @LyncFederationManage BIT,       
 @LyncFederationAdd  BIT,         
 @LyncFederationRemove BIT, @LyncFederationEdit BIT, @LyncFederationSync BIT, @LyncPhoneNumberManage  BIT, @LyncResponseGroupManage  BIT,       
 @LyncPersistentChatManage BIT,         
 @LyncShowCallReport BIT, @LyncShowConfCallReport BIT, @LyncShowCallBilling  BIT, @ShowNotification BIT, @AllowLyncManage  BIT, @AllowADOrgSync BIT,       
 @ADUserEdit BIT,         
 @ShowOverDueInvoices  BIT, @ShowBilling  BIT, @ExchDeleteItemRetention  BIT, @ExchMBCalanderManage BIT, @DownloadOutlookProfile BIT,       
 @ShowAuditLogs  BIT, @RunGroupJob  BIT,         
 @ADUserAutoDelete BIT, @AllowO365Management  BIT, @AllowToManageTenants BIT, @AllowToAddNewTenants BIT, @AllowToEditExistingTenants BIT,       
 @AllowToRemoveTenant  BIT,         
 @AllowToManageO365Domains BIT, @AllowToSetO365DomainDefaultState BIT, @AllowToRemoveO365Domain  BIT, @AllowtoManageO365Users BIT,       
 @AllowToAddNewO365Users BIT,         
 @AllowToEditExistingO365Users BIT, @AllowToRemoveO365User  BIT, @AllowToManageO365SharedMbx BIT, @AllowToAddNewO365SharedMbx BIT,       
 @AllowToEditExistingO365SharedMbx BIT,         
 @AllowToRemoveO365SharedMbx BIT, @AllowToManageResourceMbx  BIT, @AllowToAddNewO365ResourceMbx BIT, @AllowToEditExistingO365ResourceMbx BIT,         
 @AllowToRemoveO365ResourceMbx BIT, @AllowToManageO365Contacts  BIT, @AllowToAddNewO365Contacts  BIT, @AllowToEditExistingO365Contacts  BIT,       
 @AllowToRemoveO365Contact BIT,         
 @AllowToManageO365Groups  BIT, @AllowToAddNewO365Groups  BIT, @AllowToEditExistingO365Groups  BIT, @AllowToRemoveO365Group BIT,       
 @AllowToManageO365GroupJobs BIT,         
 @AllowToRunO365GroupJob BIT, @AllowToCancelO365GroupJob  BIT, @ExchApplicationImpersonation BIT, @ExchMailBoxMobileDevices BIT,       
 @EnableResellerAPIAccess  BIT,         
 @EnableResellerBillingModule  BIT, @EnableResellerHelpDeskModule BIT, @ResellerAbilityForHelpDeskModule BIT, @EnableADSyncAllowed  BIT,       
 @ShowADProfileTab BIT,         
 @EditADProfileAllowed BIT, @ShowDomainUserName BIT, @AllowAddOnCancel BIT, @AllowCustomMBTemplate  BIT, @AllowAddOnEdit BIT,       
 @AllowVPSManagement  BIT, @AllowtoAddVM BIT,         
 @AllowtoRemoveVM  BIT, @Allowtomanagemachineoperations BIT, @Allowtochangehostname  BIT, @Allowtochangememorysettings  BIT,       
 @Allowtochangevirtualprocessors BIT,         
 @Allowtomanagesnapshots BIT, @Allowtochangesnapshotlimit BIT, @Allowtoadddisk BIT, @Allowtoremovedisk  BIT, @Allowtoexpanddisk  BIT,       
 @AllowtoaddNIC  BIT,         
 @AllowtomanageNIC BIT, @AllowtoremoveNIC BIT, @CustomerID  INT, @AllowEmailAddress  BIT, @AllowToSetPassword BIT,       
 @AllowtoDistributionListMembership  BIT,         
 @AllowCustomerToChangePassword  BIT, @AllowContactToChangePassword BIT, @AllowCustomSettings  BIT, @AllowPSTDownload BIT,       
 @AllowSPManagement  BIT,         
 @AllowSPFrontEndBbindings BIT, @AllowSPPortalEdit  BIT, @AllowSPDomainManage  BIT, @AllowSPDomainAdd BIT, @AllowSPDomainRemove  BIT,       
 @AllowSPDomainEdit  BIT,         
 @AllowSPPermLevelManage BIT, @AllowSPPermLevelAdd  BIT, @AllowSPPermLevelEdit BIT, @AllowSPPermLevelRemove BIT, @AllowSPGroupsManage  BIT,       
 @AllowSPGroupsAdd  BIT,          
 @AllowSPGroupsEdit  BIT, @AllowSPGroupsRemove  BIT, @AllowSPUsersManage BIT, @AllowSPUsersAdd  BIT, @AllowSPUsersEdit BIT,       
 @AllowSPUsersRemove BIT,         
 @AllowSPUsersGroupAction  BIT, @AllowCRMManagement BIT, @AllowCRMSync BIT, @AllowCRMDomainsManage  BIT, @AllowCRMDomainsAdd BIT,       
 @AllowCRMDomainsRemove  BIT,         
 @AllowCRMDomainsEdit  BIT, @AllowCRMBUManage BIT, @AllowCRMBUAdd  BIT, @AllowCRMBURemove BIT, @AllowCRMBUEdit BIT, @AllowCRMUsersManage  BIT,       
 @AllowCRMUsersAdd BIT,         
 @AllowCRMUsersEdit  BIT, @AllowCRMUsersRemove  BIT, @AllowCRMUsersGroupAction BIT, @ExchPublicFolderAdd  BIT, @ExchPublicFolderEdit BIT,       
 @ExchPublicFolderRemove BIT,         
 @ExchMailContactManagement  BIT, @ExchMailContactAdd BIT, @ExchMailContactEdit  BIT, @ExchMailContactRemove  BIT, @ExchDLManagement  BIT,       
 @ExchDLAdd  BIT, @ExchDLEdit BIT,         
 @ExchDLMsgApprovalEdit  BIT, @ExchDLRemoveListMembers  BIT, @ExchDLEmailManagement  BIT, @ExchDLAddEmailAddress  BIT,       
 @ExchDLEditEmailAddress BIT,         
 @ExchDLRemoveEmailAddress BIT, @ExchDLRemove  BIT, @RDSManageAllowed BIT, @RDSPolicyManageAllowed BIT, @RDSPolicyAddAllowed  BIT,       
 @RDSPolicyEditAllowed BIT,         
 @RDSPolicyRemoveAllowed BIT, @RDSUserManageAllowed BIT, @RDSUserAddAllowed  BIT, @RDSUserEditAllowed BIT, @RDSUserRemoveAllowed BIT,       
 @WorkfolderHostingManageAllowed BIT,         
 @WorkfolderOrgManageAllowed BIT, @WorkfoldersManageAllowed BIT,  @WorkfoldersAddAllowed  BIT, @WorkfoldersEditAllowed BIT,       
 @WorkfoldersRemoveAllowed BIT,         
 @WorkfoldersSyncAllowed BIT, @EditCustomerResourcesAllowed BIT, @SyncFromBackendAllowed BIT, @ExchangeRBACManageAllowed  BIT,       
 @MailboxAuditLogManagementAllowed BIT,         
 @AllowToManageVLAN  BIT, @AllowToEnableDisable2FA  BIT, @AllowResellerToProcessSQ BIT, @AllowAutoSQProcessing  BIT,       
 @AllowExportMailboxPermissions  BIT,         
 @AllowToAddUserMailbox  BIT, @O365SPManagementAllowed  BIT, @ExchAllowExternalRelayDomainManage BIT, @ExchAllowExternalRelayDomainAdd  BIT,         
 @ExchAllowExternalRelayDomainRemove BIT, @ExchAllowExternalRelayDomainEdit BIT, @ExchAllowInternalRelayDomainManage BIT,       
 @ExchAllowInternalRelayDomainAdd  BIT,         
 @ExchAllowInternalRelayDomainRemove BIT, @ExchAllowInternalRelayDomainEdit BIT, @AllowPSTExport BIT, @AllowPSTImport BIT,       
 @AllowToManageGroupMembership BIT,         
 @AllowToEditCustomAttributes  BIT, @ShowADReports BIT, @ShowExchReports  BIT, @ShowSkype4BReports BIT, @ShowCSPReports  BIT,       
 @ShowSharePointReports BIT,          
 @ShowCRMReports  BIT, @ShowVPSReports  BIT, @ShowRDSReports  BIT, @ShowWFReports  BIT, @ShowWebHostingReports  BIT, @AllowVoiceManagement  BIT,      
 @ShowVoiceBilling BIT,          
 @ShowAddons BIT, @ShowDomains  BIT, @ShowAccounts  BIT, @ShowTrunks BIT, @ShowCloudPBX  BIT, @ShowPhoneNumber  BIT, @AllowToAddPhoneNumbers  BIT,       
 @AllowNumberPorting BIT,          
 @ShowForwarding BIT, @ShowFilterLists  BIT, @ShowDirectRouting  BIT, @ShowCallRecords  BIT, @ShowDestinations  BIT, @ShowVoiceReports BIT,       
 @QuickMigrationAllowed bit,         
 @LiveMigrationAllowed bit, @ChangeBandwidthAllowed  bit, @ShowDiskManagement bit, @ShowISOImageManagement  bit, @ShowNICManagement  bit,       
 @AllowWebHostingManage bit,         
 @WebAccountsManageAllowed bit, @DomainAddAllowed bit, @DomainEditAllowed bit, @DedicatedIPManageAllowed bit, @WebHostingAccounts bit,       
 @DNSOnlyHostingAccounts bit,         
 @DBOnlyHostingAccounts bit, @MailOnlyHostingAccounts bit, @TempURLManageAllowed bit, @MailDomainTurnOnOffAllowed bit,       
 @MailDomainAliasesAllowed bit,        
 @ManageTeamNumbers bit ,@ManagePendingVerificationDomain BIT,@ManageVerifiedDomain BIT, @DigiCertSSLManageAllowed bit,       
 @MailboxTemplateCreationAllowed bit,          
 @ExportMailboxForwardingAllowed  bit, @ExportDynamicDLAllowed  bit, @ExportDLToExcelAllowed  bit, @ExportMembersReportAllowed bit,       
 @UpdateReceiptSettingAllowed bit,          
 @ComplianceManagementAllowed bit, @InPlaceHoldAllowed bit, @AuditingAllowed bit, @MoveVMAllowed bit, @SyncAllwithMicrosoftCSP bit,       
 @SyncDomainsLicensesPoliciesAndRoles bit,          
 @SyncDomains  bit, @SyncAllUsersWithMicrosoftCSP bit, @SyncAllContactsWithMicrosoftCSP bit, @SyncAllGroupsWithMicrosoftCSP bit,       
 @SyncAllSharePointSitesWithMicrosoft365 bit,          
 @ShowVMCredsInWHMCS BIT, @AllowManageDomainNameProds BIT, @AllowManageMiscProds BIT, @AllowManageDedicatedProds BIT, @AllowChangingMailboxType BIT,         
 @AllowToManageInPlaceHold BIT, @AllowToManageEmailAddresses BIT, @AllowToConfigureLinkedADSettings BIT, @DomainNameManageAllowed bit, @ContactManageAllowed bit,         
 @ContactAddAllowed bit, @ContactEditAllowed bit, @ContactRemoveAllowed bit, @LockUnLockManageAllowed bit, @DomainNameServerManageAllowed bit,         
 @CustomNameServerManageAllowed bit, @TransferCodeManageAllowed bit, @DomainDNSManageAllowed bit, @CustomerImportAllowed bit, @CustomerExportAllowed bit,        
 @AllowCustomerDeletion BIT,@ShowBillingToCustomer BIT, @AllowToManageNICMACAddress BIT, @AllowToManageBandwidthDetail BIT, @AllowToChangePassword  BIT,          
 @AllowToSyncVM BIT, @AllowToManageBootOrder BIT, @MailUserManagementAllowed BIT, @AllowContactTab BIT, @DeleteSPAMExpertsFilterting bit,         
 @EnableDisableSPAMExpertsArchiving bit, @AllowToManagePasswordLessAuthentication bit, @GenerateRenewalInvoice bit, @AllowToUpdatePasswordSettings bit,        
 @ExchSignatureManage bit, @MailFlowMoniteringAllowed bit, @ExchTransportRulesManage bit, @ShowHelpdeskToCustomer bit,        
 @AllowToCancelWebSubscription bit, @AllowToCancelADSubscription bit, @AllowToCancelDomainSubscription bit, @AllowToCancelCRMSubscription bit,        
 @AllowToCancelExchangeSubscription bit, @AllowToCancelSPSubscription bit, @AllowToCancelOCSSubscription bit, @AllowToCancelVPSSubscription bit,        
 @AllowToCancelCSPSubscription bit, @AllowToCancelRDSSubscription bit, @AllowToCancelWFSubscription bit, @AllowToCancelVoiceSubscription bit,      
 @AllowToManageADUserCertificates bit, @OWAPolicyManagementAllowed bit, @AddOWAPolicyAllowed bit, @RecoveryManagementAllowed bit,       
 @ManageRecycleBin bit ,@AllowGeneralSection bit, @AllowToEditADOrg bit, @AllowToManageADGroupAction bit, @AllowToExportADUsers bit,     
 @AllowTrunOnOffVM bit, @AllowShutDownVM bit, @AllowResetHardVM bit, @AllowSuspendResumeVM bit, @AllowManageWebConsoleVM bit,     
 @AllowResetHNVSettingsVM bit, @AllowShieldUnShieldVM bit, @AllowToExportMailboxes bit, @AllowToExportADGroups bit,     
 @ExchEnableDisableADUsersSharedMailbox bit, @ExchEnableDisableADUsersResourceMailbox bit, @ManageExchMailboxDevices bit,   
 @SDNManagementAllowed bit, @ManageADUserReports bit, @ManageADGroupReports bit, @ExchangeAllowUsageReportsView bit, 
 @ExchangeAllowSubscriptionsReportView bit, @ExchangeAllowOtherReportsView bit, @ExchangeAdminAuditLogManagementAllowed bit, 
 @ExchangeAllowCalenderPermissionsView bit, @AllowVirtualMachinesUsageReportView bit, @AllowVirtualMachinesUpTimeReport bit   
)    
AS          
BEGIN          
UPDATE [HB_tblAccessTemplates] SET         
[TemplateName] = @TemplateName_2, [CompanyId] = @CompanyId_3, [CPAccess] = @CPAccess_4, [CPWhiteLabel] = @CPWhiteLabel_5, [SubDomains] = @SubDomains_6,         
[DomainAlias] = @DomainAlias_7, [DomainLimits] = @DomainLimits_8, [IISAppPool] = @IISAppPool_9, [FTPUsers] = @FTPUsers_10, [RenameDomain] = @RenameDomain_11,         
[DomainDeletion] = @DomainDeletion_12, [DomainTurnOff] = @DomainTurnOff_13, [URlRedirection] = @URlRedirection_14, [DefaultDoc] = @DefaultDoc_15,         
[CustomError] = @CustomError_16, [MIMEType] = @MIMEType_17, [VirtualFolders] = @VirtualFolders_18, [FrontPageExt] = @FrontPageExt_19, [ASPScripting] = @ASPScriting_20,         
[ASPNetScripting] = @ASPNetScripting_21, [PHPScripting] = @PHPScripting_22, [PerlScripting] = @PerlScripting_23, [ColdFusionScripting] = @ColdFusionScripting_24,         
[Databases] = @Databases_25, [ODBCDSN] = @ODBCDSN_26, [FileManager] = @FileManager_27, [SSLCert] = @SSLCert_28, [SharedSSL] = @SharedSSL_29,         
[WebsiteStats] = @WebsiteStats_30, [DNSZone] = @DNSZone_31, [MailDomains] = @MailDomains_32, [EmailAccounts] = @EmailAccounts_33, [EmailLists] = @EmailLists_34,         
[EmailGroups] = @EmailGroups_35, [ResellerTemplate] = @ResellerTemplate, [ResourceOverSell] = @ResourceOverSell_37, [CustomButtons] = @CustomButton,         
ClientCanUpgradeDownGradePackage = @ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC = @AddonsPurchaseAllowedinCCC, ClientCanEditProfile = @ClientCanEditProfile,         
ClientCanBuyServicesinCCC = @ClientCanBuyServicesinCCC, ORGRemoveAllowed = @ORGRemoveAllowed, ExchDomainManagement = @ExchDomainManagement, ExchDomainAdd = @ExchDomainAdd,         
ExchDomainRemove = @ExchDomainRemove, ExchDomainEdit = @ExchDomainEdit, ExchPublicFolderManage = @ExchPublicFolderManage, ExchWirelessManage = @ExchWirelessManage,         
ExchDisclaimerManage = @ExchDisclaimerManage, ExchRetentionManage = @ExchRetentionManage, ExchMobileDevicePolicy = @ExchMobileDevicePolicy,         
ExchMailboxPermissions = @ExchMailboxPermissions, ExchMailboxRemove = @ExchMailboxRemove, ExchLitigationHold = @ExchLitigationHold, ExchLinkedMBManage = @ExchLinkedMBManage,         
ExchSharedMBManage = @ExchSharedMBManage, ExchRoomMBManage = @ExchRoomMBManage, ExchEquipmentMBManage = @ExchEquipmentMBManage, ExchMailFlowSettings = @ExchMailFlowSettings,         
ExchaForwardingManage = @ExchaForwardingManage, ExchLimitsManage = @ExchLimitsManage, ExchRestrictionsManage = @ExchRestrictionsManage,         
ExchMBPermissionManage = @ExchMBPermissionManage, ExchMBAdvanceManage = @ExchMBAdvanceManage, ExchStorageQuotaManage = @ExchStorageQuotaManage,         
ExchMBFeaturesManage = @ExchMBFeaturesManage, ExchMBPersonalArchive = @ExchMBPersonalArchive, ExchUMManage = @ExchUMManage, ExchAutoReplyManage = @ExchAutoReplyManage,         
ADOrganizationRemove = @ADOrganizationRemove, ADSecurityGroupManage = @ADSecurityGroupManage, ADSecurityGroupAdd = @ADSecurityGroupAdd,         
ADSecurityGroupRemove = @ADSecurityGroupRemove, ADUserAdd = @ADUserAdd, ADUserRemove = @ADUserRemove, ADManage = @ADManage, ExchSPAMFilterManage = @ExchSPAMFilterManage,         
ExchJournaling = @ExchJournaling, ExchDLAdvanceManage = @ExchDLAdvanceManage, ExchDLSendAsManage = @ExchDLSendAsManage, ExchManagement = @ExchManagement,         
ExchMBEnableDisable = @ExchMBEnableDisable, LyncDomainManage = @LyncDomainManage, LyncDomainAdd = @LyncDomainAdd, LyncDomainRemove = @LyncDomainRemove,         
LyncDomainSetDefault = @LyncDomainSetDefault, LyncUserManage = @LyncUserManage, LyncUserAdd = @LyncUserAdd, LyncUserAddBulk = @LyncUserAddBulk,         
LyncUserRemove = @LyncUserRemove, LyncUserEdit = @LyncUserEdit, LyncUserAllowUM = @LyncUserAllowUM, LyncUserEnableDisable = @LyncUserEnableDisable,         
LyncUserGroupActions = @LyncUserGroupActions, LyncFederationManage = @LyncFederationManage, LyncFederationAdd = @LyncFederationAdd,         
LyncFederationRemove = @LyncFederationRemove, LyncFederationEdit = @LyncFederationEdit, LyncFederationSync = @LyncFederationSync,         
LyncPhoneNumberManage = @LyncPhoneNumberManage, LyncResponseGroupManage = @LyncResponseGroupManage, LyncPersistentChatManage = @LyncPersistentChatManage,         
LyncShowCallReport = @LyncShowCallReport, LyncShowConfCallReport = @LyncShowConfCallReport, LyncShowCallBilling = @LyncShowCallBilling, ShowNotification = @ShowNotification,         
AllowLyncManage = @AllowLyncManage, AllowADOrgSync = @AllowADOrgSync, ADUserEdit = @ADUserEdit, ShowOverDueInvoices = @ShowOverDueInvoices, ShowBilling = @ShowBilling,         
ExchDeleteItemRetention = @ExchDeleteItemRetention, ExchMBCalanderManage = @ExchMBCalanderManage, DownloadOutlookProfile = @DownloadOutlookProfile,         
ShowAuditLogs = @ShowAuditLogs, RunGroupJob = @RunGroupJob, ADUserAutoDelete = @ADUserAutoDelete, AllowO365Management = @AllowO365Management,         
AllowToManageTenants = @AllowToManageTenants, AllowToAddNewTenants = @AllowToAddNewTenants, AllowToEditExistingTenants = @AllowToEditExistingTenants,         
AllowToRemoveTenant = @AllowToRemoveTenant, AllowToManageO365Domains = @AllowToManageO365Domains, AllowToSetO365DomainDefaultState = @AllowToSetO365DomainDefaultState,         
AllowToRemoveO365Domain = @AllowToRemoveO365Domain, AllowtoManageO365Users = @AllowtoManageO365Users, AllowToAddNewO365Users = @AllowToAddNewO365Users,         
AllowToEditExistingO365Users = @AllowToEditExistingO365Users, AllowToRemoveO365User = @AllowToRemoveO365User, AllowToManageO365SharedMbx = @AllowToManageO365SharedMbx,         
AllowToAddNewO365SharedMbx = @AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx = @AllowToEditExistingO365SharedMbx,         
AllowToRemoveO365SharedMbx = @AllowToRemoveO365SharedMbx, AllowToManageResourceMbx = @AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx = @AllowToAddNewO365ResourceMbx,         
AllowToEditExistingO365ResourceMbx = @AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx = @AllowToRemoveO365ResourceMbx,         
AllowToManageO365Contacts = @AllowToManageO365Contacts, AllowToAddNewO365Contacts = @AllowToAddNewO365Contacts,         
AllowToEditExistingO365Contacts = @AllowToEditExistingO365Contacts, AllowToRemoveO365Contact = @AllowToRemoveO365Contact,         
AllowToManageO365Groups = @AllowToManageO365Groups, AllowToAddNewO365Groups = @AllowToAddNewO365Groups, AllowToEditExistingO365Groups = @AllowToEditExistingO365Groups,         
AllowToRemoveO365Group = @AllowToRemoveO365Group, AllowToManageO365GroupJobs = @AllowToManageO365GroupJobs, AllowToRunO365GroupJob = @AllowToRunO365GroupJob,         
AllowToCancelO365GroupJob = @AllowToCancelO365GroupJob, ExchApplicationImpersonation = @ExchApplicationImpersonation, ExchMailBoxMobileDevices = @ExchMailBoxMobileDevices,         
EnableResellerAPIAccess = @EnableResellerAPIAccess, EnableResellerBillingModule = @EnableResellerBillingModule, EnableResellerHelpDeskModule = @EnableResellerHelpDeskModule,         
ResellerAbilityForHelpDeskModule = @ResellerAbilityForHelpDeskModule, EnableADSyncAllowed = @EnableADSyncAllowed, ShowADProfileTab = @ShowADProfileTab,         
EditADProfileAllowed = @EditADProfileAllowed, ShowDomainUserName = @ShowDomainUserName, AllowAddOnCancel = @AllowAddOnCancel, AllowCustomMBTemplate = @AllowCustomMBTemplate,         
AllowAddOnEdit = @AllowAddOnEdit, AllowVPSManagement = @AllowVPSManagement, AllowtoAddVM = @AllowtoAddVM, AllowtoRemoveVM = @AllowtoRemoveVM,         
Allowtomanagemachineoperations = @Allowtomanagemachineoperations, Allowtochangehostname = @Allowtochangehostname, Allowtochangememorysettings = @Allowtochangememorysettings,         
Allowtochangevirtualprocessors = @Allowtochangevirtualprocessors, Allowtomanagesnapshots = @Allowtomanagesnapshots, Allowtochangesnapshotlimit = @Allowtochangesnapshotlimit,         
Allowtoadddisk = @Allowtoadddisk, Allowtoremovedisk = @Allowtoremovedisk, Allowtoexpanddisk = @Allowtoexpanddisk, AllowtoaddNIC = @AllowtoaddNIC,         
AllowtomanageNIC = @AllowtomanageNIC, AllowtoremoveNIC = @AllowtoremoveNIC, CustomerId = @CustomerID, AllowEmailAddress = @AllowEmailAddress,         
AllowToSetPassword = @AllowToSetPassword, AllowtoDistributionListMembership = @AllowtoDistributionListMembership,         
AllowCustomerToChangePassword = @AllowCustomerToChangePassword, AllowContactToChangePassword = @AllowContactToChangePassword, AllowCustomSettings = @AllowCustomSettings,         
AllowPSTDownload = @AllowPSTDownload, AllowSPManagement = @AllowSPManagement, AllowSPFrontEndBbindings = @AllowSPFrontEndBbindings, AllowSPPortalEdit = @AllowSPPortalEdit,         
AllowSPDomainManage = @AllowSPDomainManage, AllowSPDomainAdd = @AllowSPDomainAdd, AllowSPDomainRemove = @AllowSPDomainRemove, AllowSPDomainEdit = @AllowSPDomainEdit,         
AllowSPPermLevelManage = @AllowSPPermLevelManage, AllowSPPermLevelAdd = @AllowSPPermLevelAdd, AllowSPPermLevelEdit = @AllowSPPermLevelEdit,         
AllowSPPermLevelRemove = @AllowSPPermLevelRemove,  AllowSPGroupsManage = @AllowSPGroupsManage, AllowSPGroupsAdd = @AllowSPGroupsAdd, AllowSPGroupsEdit = @AllowSPGroupsEdit,         
AllowSPGroupsRemove = @AllowSPGroupsRemove, AllowSPUsersManage = @AllowSPUsersManage, AllowSPUsersAdd = @AllowSPUsersAdd, AllowSPUsersEdit = @AllowSPUsersEdit,         
AllowSPUsersRemove = @AllowSPUsersRemove, AllowSPUsersGroupAction = @AllowSPUsersGroupAction, AllowCRMManagement = @AllowCRMManagement, AllowCRMSync = @AllowCRMSync,         
AllowCRMDomainsManage = @AllowCRMDomainsManage, AllowCRMDomainsAdd = @AllowCRMDomainsAdd, AllowCRMDomainsRemove = @AllowCRMDomainsRemove,         
AllowCRMDomainsEdit = @AllowCRMDomainsEdit, AllowCRMBUManage = @AllowCRMBUManage, AllowCRMBUAdd = @AllowCRMBUAdd, AllowCRMBURemove = @AllowCRMBURemove,         
AllowCRMBUEdit = @AllowCRMBUEdit, AllowCRMUsersManage = @AllowCRMUsersManage, AllowCRMUsersAdd = @AllowCRMUsersAdd, AllowCRMUsersEdit = @AllowCRMUsersEdit,         
AllowCRMUsersRemove = @AllowCRMUsersRemove, AllowCRMUsersGroupAction = @AllowCRMUsersGroupAction, ExchPublicFolderAdd = @ExchPublicFolderAdd,         
ExchPublicFolderEdit = @ExchPublicFolderEdit, ExchPublicFolderRemove = @ExchPublicFolderRemove, ExchMailContactManagement = @ExchMailContactManagement,         
ExchMailContactAdd = @ExchMailContactAdd, ExchMailContactEdit = @ExchMailContactEdit, ExchMailContactRemove = @ExchMailContactRemove, ExchDLManagement = @ExchDLManagement,         
ExchDLAdd = @ExchDLAdd, ExchDLEdit = @ExchDLEdit, ExchDLMsgApprovalEdit = @ExchDLMsgApprovalEdit, ExchDLRemoveListMembers = @ExchDLRemoveListMembers,         
ExchDLEmailManagement = @ExchDLEmailManagement, ExchDLAddEmailAddress = @ExchDLAddEmailAddress, ExchDLEditEmailAddress = @ExchDLEditEmailAddress,         
ExchDLRemoveEmailAddress = @ExchDLRemoveEmailAddress, ExchDLRemove = @ExchDLRemove, RDSManageAllowed = @RDSManageAllowed, RDSPolicyManageAllowed = @RDSPolicyManageAllowed,         
RDSPolicyAddAllowed = @RDSPolicyAddAllowed, RDSPolicyEditAllowed = @RDSPolicyEditAllowed, RDSPolicyRemoveAllowed = @RDSPolicyRemoveAllowed,         
RDSUserManageAllowed = @RDSUserManageAllowed, RDSUserAddAllowed = @RDSUserAddAllowed, RDSUserEditAllowed = @RDSUserEditAllowed, RDSUserRemoveAllowed = @RDSUserRemoveAllowed,         
WorkfolderHostingManageAllowed = @WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed = @WorkfolderOrgManageAllowed,         
WorkfoldersManageAllowed = @WorkfoldersManageAllowed, WorkfoldersAddAllowed = @WorkfoldersAddAllowed, WorkfoldersEditAllowed = @WorkfoldersEditAllowed,         
WorkfoldersRemoveAllowed = @WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed = @WorkfoldersSyncAllowed, EditCustomerResourcesAllowed = @EditCustomerResourcesAllowed,         
SyncFromBackendAllowed = @SyncFromBackendAllowed, ExchangeRBACManageAllowed = @ExchangeRBACManageAllowed,         
MailboxAuditLogManagementAllowed = @MailboxAuditLogManagementAllowed, AllowToManageVLAN = @AllowToManageVLAN, AllowToEnableDisable2FA = @AllowToEnableDisable2FA,         
AllowResellerToProcessSQ = @AllowResellerToProcessSQ, AllowAutoSQProcessing = @AllowAutoSQProcessing, AllowExportMailboxPermissions = @AllowExportMailboxPermissions,         
AllowToAddUserMailbox = @AllowToAddUserMailbox, O365SPManagementAllowed = @O365SPManagementAllowed, ExchAllowExternalRelayDomainManage = @ExchAllowExternalRelayDomainManage,         
ExchAllowExternalRelayDomainAdd = @ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove = @ExchAllowExternalRelayDomainRemove,         
ExchAllowExternalRelayDomainEdit = @ExchAllowExternalRelayDomainEdit, ExchAllowInternalRelayDomainManage = @ExchAllowInternalRelayDomainManage,         
ExchAllowInternalRelayDomainAdd = @ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove = @ExchAllowInternalRelayDomainRemove,         
ExchAllowInternalRelayDomainEdit = @ExchAllowInternalRelayDomainEdit, AllowPSTExport = @AllowPSTExport, AllowPSTImport = @AllowPSTImport,         
AllowToManageGroupMembership = @AllowToManageGroupMembership, AllowToEditCustomAttributes = @AllowToEditCustomAttributes, ShowADReports = @ShowADReports,          
ShowExchReports = @ShowExchReports, ShowSkype4BReports = @ShowSkype4BReports, ShowCSPReports = @ShowCSPReports, ShowSharePointReports = @ShowSharePointReports,          
ShowCRMReports=@ShowCRMReports, ShowVPSReports=@ShowVPSReports, ShowRDSReports=@ShowRDSReports, ShowWFReports=@ShowWFReports, ShowWebHostingReports =@ShowWebHostingReports,          
AllowVoiceManagement = @AllowVoiceManagement, ShowVoiceBilling  = @ShowVoiceBilling, ShowAddons  = @ShowAddons, ShowDomains  = @ShowDomains, ShowAccounts  = @ShowAccounts,          
ShowTrunks  = @ShowTrunks, ShowCloudPBX  =@ShowCloudPBX, ShowPhoneNumber =@ShowPhoneNumber, AllowToAddPhoneNumbers =@AllowToAddPhoneNumbers,          
AllowNumberPorting  =@AllowNumberPorting, ShowForwarding  = @ShowForwarding, ShowFilterLists =@ShowFilterLists, ShowDirectRouting=@ShowDirectRouting,          
ShowCallRecords=@ShowCallRecords, ShowDestinations = @ShowDestinations, ShowVoiceReports = @ShowVoiceReports, QuickMigrationAllowed =  @QuickMigrationAllowed          
,LiveMigrationAllowed = @LiveMigrationAllowed, ChangeBandwidthAllowed = @ChangeBandwidthAllowed, ShowDiskManagement =  @ShowDiskManagement          
,ShowISOImageManagement = @ShowISOImageManagement, ShowNICManagement = @ShowNICManagement, AllowWebHostingManage = @AllowWebHostingManage,         
WebAccountsManageAllowed = @WebAccountsManageAllowed, DomainAddAllowed = @DomainAddAllowed, DomainEditAllowed = @DomainEditAllowed,         
DedicatedIPManageAllowed = @DedicatedIPManageAllowed, WebHostingAccounts = @WebHostingAccounts, DNSOnlyHostingAccounts = @DNSOnlyHostingAccounts,         
DBOnlyHostingAccounts = @DBOnlyHostingAccounts, MailOnlyHostingAccounts = @MailOnlyHostingAccounts, TempURLManageAllowed = @TempURLManageAllowed,         
MailDomainTurnOnOffAllowed = @MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed = @MailDomainAliasesAllowed, ManageTeamNumbers = @ManageTeamNumbers,        
ManagePendingVerificationDomain = @ManagePendingVerificationDomain, ManageVerifiedDomain=@ManageVerifiedDomain, DigiCertSSLManageAllowed = @DigiCertSSLManageAllowed,        
MailboxTemplateCreationAllowed = @MailboxTemplateCreationAllowed, ExportMailboxForwardingAllowed = @ExportMailboxForwardingAllowed,         
ExportDynamicDLAllowed = @ExportDynamicDLAllowed, ExportDLToExcelAllowed = @ExportDLToExcelAllowed, ExportMembersReportAllowed = @ExportMembersReportAllowed,          
UpdateReceiptSettingAllowed = @UpdateReceiptSettingAllowed, ComplianceManagementAllowed = @ComplianceManagementAllowed, InPlaceHoldAllowed = @InPlaceHoldAllowed,          
AuditingAllowed = @AuditingAllowed, MoveVMAllowed = @MoveVMAllowed, SyncAllwithMicrosoftCSP = @SyncAllwithMicrosoftCSP,        
SyncDomainsLicensesPoliciesAndRoles = @SyncDomainsLicensesPoliciesAndRoles, SyncDomains = @SyncDomains, SyncAllUsersWithMicrosoftCSP = @SyncAllUsersWithMicrosoftCSP,          
SyncAllContactsWithMicrosoftCSP = @SyncAllContactsWithMicrosoftCSP, SyncAllGroupsWithMicrosoftCSP = @SyncAllGroupsWithMicrosoftCSP,         
SyncAllSharePointSitesWithMicrosoft365 = @SyncAllSharePointSitesWithMicrosoft365, ShowVMCredsInWHMCS = @ShowVMCredsInWHMCS,         
AllowManageDomainNameProds = @AllowManageDomainNameProds, AllowManageMiscProds = @AllowManageMiscProds, AllowManageDedicatedProds = @AllowManageDedicatedProds  ,          
AllowChangingMailboxType = @AllowChangingMailboxType, AllowToManageInPlaceHold = @AllowToManageInPlaceHold, AllowToManageEmailAddresses = @AllowToManageEmailAddresses,        
AllowToConfigureLinkedADSettings = @AllowToConfigureLinkedADSettings, DomainNameManageAllowed = @DomainNameManageAllowed, ContactManageAllowed = @ContactManageAllowed,          
ContactAddAllowed = @ContactAddAllowed, ContactEditAllowed = @ContactEditAllowed, ContactRemoveAllowed = @ContactRemoveAllowed,         
LockUnLockManageAllowed = @LockUnLockManageAllowed, DomainNameServerManageAllowed = @DomainNameServerManageAllowed,         
CustomNameServerManageAllowed = @CustomNameServerManageAllowed, TransferCodeManageAllowed = @TransferCodeManageAllowed,         
DomainDNSManageAllowed = @DomainDNSManageAllowed, CustomerImportAllowed = @CustomerImportAllowed, CustomerExportAllowed = @CustomerExportAllowed,        
AllowCustomerDeletion = @AllowCustomerDeletion, ShowBillingToCustomer = @ShowBillingToCustomer, AllowToManageNICMACAddress = @AllowToManageNICMACAddress,        
AllowToManageBandwidthDetail = @AllowToManageBandwidthDetail, AllowToChangePassword = @AllowToChangePassword, AllowToSyncVM = @AllowToSyncVM,         
AllowToManageBootOrder = @AllowToManageBootOrder, MailUserManagementAllowed = @MailUserManagementAllowed, AllowContactTab = @AllowContactTab,        
DeleteSPAMExpertsFilterting = @DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving = @EnableDisableSPAMExpertsArchiving,        
AllowToManagePasswordLessAuthentication = @AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice = @GenerateRenewalInvoice,        
AllowToUpdatePasswordSettings = @AllowToUpdatePasswordSettings, ExchSignatureManage = @ExchSignatureManage, MailFlowMoniteringAllowed = @MailFlowMoniteringAllowed,        
ExchTransportRulesManage = @ExchTransportRulesManage, ShowHelpdeskToCustomer = @ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription = @AllowToCancelWebSubscription, AllowToCancelADSubscription = @AllowToCancelADSubscription,         
AllowToCancelDomainSubscription = @AllowToCancelDomainSubscription, AllowToCancelCRMSubscription = @AllowToCancelCRMSubscription,        
AllowToCancelExchangeSubscription = @AllowToCancelExchangeSubscription, AllowToCancelSPSubscription = @AllowToCancelSPSubscription,         
AllowToCancelOCSSubscription = @AllowToCancelOCSSubscription, AllowToCancelVPSSubscription = @AllowToCancelVPSSubscription,        
AllowToCancelCSPSubscription = @AllowToCancelCSPSubscription, AllowToCancelRDSSubscription = @AllowToCancelRDSSubscription,         
AllowToCancelWFSubscription = @AllowToCancelWFSubscription, AllowToCancelVoiceSubscription = @AllowToCancelVoiceSubscription,      
AllowToManageADUserCertificates = @AllowToManageADUserCertificates, OWAPolicyManagementAllowed = @OWAPolicyManagementAllowed,       
AddOWAPolicyAllowed = @AddOWAPolicyAllowed, RecoveryManagementAllowed = @RecoveryManagementAllowed, ManageRecycleBin = @ManageRecycleBin     
,AllowGeneralSection = @AllowGeneralSection, AllowToEditADOrg = @AllowToEditADOrg, AllowToManageADGroupAction = @AllowToManageADGroupAction,     
AllowToExportADUsers = @AllowToExportADUsers, AllowTrunOnOffVM = @AllowTrunOnOffVM, AllowShutDownVM = @AllowShutDownVM, AllowResetHardVM = @AllowResetHardVM,     
AllowSuspendResumeVM = @AllowSuspendResumeVM, AllowManageWebConsoleVM = @AllowManageWebConsoleVM, AllowResetHNVSettingsVM = @AllowResetHNVSettingsVM,     
AllowShieldUnShieldVM = @AllowShieldUnShieldVM, AllowToExportMailboxes = @AllowToExportMailboxes, AllowToExportADGroups = @AllowToExportADGroups,     
ExchEnableDisableADUsersSharedMailbox = @ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox = @ExchEnableDisableADUsersResourceMailbox,     
ManageExchMailboxDevices = @ManageExchMailboxDevices, SDNManagementAllowed = @SDNManagementAllowed, ManageADUserReports = @ManageADUserReports, 
ManageADGroupReports = @ManageADGroupReports, ExchangeAllowUsageReportsView = @ExchangeAllowUsageReportsView, 
ExchangeAllowSubscriptionsReportView = @ExchangeAllowSubscriptionsReportView, ExchangeAllowOtherReportsView = @ExchangeAllowOtherReportsView, 
ExchangeAdminAuditLogManagementAllowed = @ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView = @ExchangeAllowCalenderPermissionsView, 
AllowVirtualMachinesUsageReportView = @AllowVirtualMachinesUsageReportView, AllowVirtualMachinesUpTimeReport = @AllowVirtualMachinesUpTimeReport 
WHERE([TemplateId] = @TemplateId_1);          
IF @OverWriteSubAccounts = 1          
BEGIN          
IF @ResellerTemplate = 0          
BEGIN          
UPDATE [HB_tblCustomerAccessTemplate] SET         
  [CPAccess] = @CPAccess_4, [CPWhiteLabel] = @CPWhiteLabel_5, [SubDomains] = @SubDomains_6, [DomainAlias] = @DomainAlias_7, [DomainLimits] = @DomainLimits_8,         
  [IISAppPool] = @IISAppPool_9, [FTPUsers] = @FTPUsers_10, [RenameDomain] = @RenameDomain_11, [DomainDeletion] = @DomainDeletion_12, [DomainTurnOff] = @DomainTurnOff_13,         
  [URlRedirection] = @URlRedirection_14, [DefaultDoc] = @DefaultDoc_15, [CustomError] = @CustomError_16, [MIMEType] = @MIMEType_17, [VirtualFolders] = @VirtualFolders_18,         
  [FrontPageExt] = @FrontPageExt_19, [ASPScripting] = @ASPScriting_20, [ASPNetScripting] = @ASPNetScripting_21, [PHPScripting] = @PHPScripting_22,         
  [PerlScripting] = @PerlScripting_23, [ColdFusionScripting] = @ColdFusionScripting_24, [Databases] = @Databases_25, [ODBCDSN] = @ODBCDSN_26, [FileManager] = @FileManager_27,         
  [SSLCert] = @SSLCert_28, [SharedSSL] = @SharedSSL_29, [WebsiteStats] = @WebsiteStats_30, [DNSZone] = @DNSZone_31, [MailDomains] = @MailDomains_32,          
  [EmailAccounts] = @EmailAccounts_33, [EmailLists] = @EmailLists_34, [EmailGroups] = @EmailGroups_35, [ResellerTemplate] = @ResellerTemplate,         
  [ResourceOverSell] = @ResourceOverSell_37, [CustomButtons] = @CustomButton, [TemplateName] = @TemplateName_2,         
  ClientCanUpgradeDownGradePackage = @ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC = @AddonsPurchaseAllowedinCCC,         
  ClientCanEditProfile = @ClientCanEditProfile, ClientCanBuyServicesinCCC = @ClientCanBuyServicesinCCC, ORGRemoveAllowed = @ORGRemoveAllowed,          
  ExchDomainManagement = @ExchDomainManagement, ExchDomainAdd = @ExchDomainAdd, ExchDomainRemove = @ExchDomainRemove, ExchDomainEdit = @ExchDomainEdit,         
  ExchPublicFolderManage = @ExchPublicFolderManage, ExchWirelessManage = @ExchWirelessManage, ExchDisclaimerManage = @ExchDisclaimerManage,         
  ExchRetentionManage = @ExchRetentionManage, ExchMobileDevicePolicy = @ExchMobileDevicePolicy, ExchMailboxPermissions = @ExchMailboxPermissions,         
  ExchMailboxRemove = @ExchMailboxRemove, ExchLitigationHold = @ExchLitigationHold, ExchLinkedMBManage = @ExchLinkedMBManage, ExchSharedMBManage = @ExchSharedMBManage,         
  ExchRoomMBManage = @ExchRoomMBManage, ExchEquipmentMBManage = @ExchEquipmentMBManage, ExchMailFlowSettings = @ExchMailFlowSettings,         
  ExchaForwardingManage = @ExchaForwardingManage, ExchLimitsManage = @ExchLimitsManage, ExchRestrictionsManage = @ExchRestrictionsManage,         
  ExchMBPermissionManage = @ExchMBPermissionManage, ExchMBAdvanceManage = @ExchMBAdvanceManage, ExchStorageQuotaManage = @ExchStorageQuotaManage,         
  ExchMBFeaturesManage = @ExchMBFeaturesManage, ExchMBPersonalArchive = @ExchMBPersonalArchive, ExchUMManage = @ExchUMManage, ExchAutoReplyManage = @ExchAutoReplyManage,         
  ADOrganizationRemove = @ADOrganizationRemove, ADSecurityGroupManage = @ADSecurityGroupManage, ADSecurityGroupAdd = @ADSecurityGroupAdd,        
  ADSecurityGroupRemove = @ADSecurityGroupRemove, ADUserAdd = @ADUserAdd, ADUserRemove = @ADUserRemove, ADManage = @ADManage, ExchSPAMFilterManage = @ExchSPAMFilterManage,         
  ExchJournaling = @ExchJournaling, ExchDLAdvanceManage = @ExchDLAdvanceManage, ExchDLSendAsManage = @ExchDLSendAsManage, ExchManagement = @ExchManagement,         
  ExchMBEnableDisable = @ExchMBEnableDisable, LyncDomainManage = @LyncDomainManage, LyncDomainAdd = @LyncDomainAdd, LyncDomainRemove = @LyncDomainRemove,         
  LyncDomainSetDefault = @LyncDomainSetDefault, LyncUserManage = @LyncUserManage, LyncUserAdd = @LyncUserAdd, LyncUserAddBulk = @LyncUserAddBulk,         
  LyncUserRemove = @LyncUserRemove, LyncUserEdit = @LyncUserEdit, LyncUserAllowUM = @LyncUserAllowUM, LyncUserEnableDisable = @LyncUserEnableDisable,         
  LyncUserGroupActions = @LyncUserGroupActions, LyncFederationManage = @LyncFederationManage, LyncFederationAdd = @LyncFederationAdd,         
  LyncFederationRemove = @LyncFederationRemove, LyncFederationEdit = @LyncFederationEdit, LyncFederationSync = @LyncFederationSync,         
  LyncPhoneNumberManage = @LyncPhoneNumberManage, LyncResponseGroupManage = @LyncResponseGroupManage, LyncPersistentChatManage = @LyncPersistentChatManage,         
  LyncShowCallReport = @LyncShowCallReport, LyncShowConfCallReport = @LyncShowConfCallReport, LyncShowCallBilling = @LyncShowCallBilling,         
  ShowNotification = @ShowNotification, AllowLyncManage = @AllowLyncManage, AllowADOrgSync = @AllowADOrgSync, ADUserEdit = @ADUserEdit,         
  ShowOverDueInvoices = @ShowOverDueInvoices, ShowBilling = @ShowBilling, ExchDeleteItemRetention = @ExchDeleteItemRetention, ExchMBCalanderManage = @ExchMBCalanderManage,         
  DownloadOutlookProfile = @DownloadOutlookProfile, ShowAuditLogs = @ShowAuditLogs, RunGroupJob = @RunGroupJob, ADUserAutoDelete = @ADUserAutoDelete,         
  AllowO365Management = @AllowO365Management, AllowToManageTenants = @AllowToManageTenants, AllowToAddNewTenants = @AllowToAddNewTenants,         
  AllowToEditExistingTenants = @AllowToEditExistingTenants, AllowToRemoveTenant = @AllowToRemoveTenant, AllowToManageO365Domains = @AllowToManageO365Domains,         
  AllowToSetO365DomainDefaultState = @AllowToSetO365DomainDefaultState, AllowToRemoveO365Domain = @AllowToRemoveO365Domain, AllowtoManageO365Users = @AllowtoManageO365Users,         
  AllowToAddNewO365Users = @AllowToAddNewO365Users, AllowToEditExistingO365Users = @AllowToEditExistingO365Users, AllowToRemoveO365User = @AllowToRemoveO365User,         
  AllowToManageO365SharedMbx = @AllowToManageO365SharedMbx, AllowToAddNewO365SharedMbx = @AllowToAddNewO365SharedMbx,         
  AllowToEditExistingO365SharedMbx = @AllowToEditExistingO365SharedMbx, AllowToRemoveO365SharedMbx = @AllowToRemoveO365SharedMbx,         
  AllowToManageResourceMbx = @AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx = @AllowToAddNewO365ResourceMbx,         
  AllowToEditExistingO365ResourceMbx = @AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx = @AllowToRemoveO365ResourceMbx,         
  AllowToManageO365Contacts = @AllowToManageO365Contacts, AllowToAddNewO365Contacts = @AllowToAddNewO365Contacts, AllowToEditExistingO365Contacts = @AllowToEditExistingO365Contacts,         
  AllowToRemoveO365Contact = @AllowToRemoveO365Contact, AllowToManageO365Groups = @AllowToManageO365Groups, AllowToAddNewO365Groups = @AllowToAddNewO365Groups,         
  AllowToEditExistingO365Groups = @AllowToEditExistingO365Groups, AllowToRemoveO365Group = @AllowToRemoveO365Group, AllowToManageO365GroupJobs = @AllowToManageO365GroupJobs,         
  AllowToRunO365GroupJob = @AllowToRunO365GroupJob, AllowToCancelO365GroupJob = @AllowToCancelO365GroupJob, ExchApplicationImpersonation = @ExchApplicationImpersonation,         
  ExchMailBoxMobileDevices = @ExchMailBoxMobileDevices, EnableResellerAPIAccess = @EnableResellerAPIAccess, EnableResellerBillingModule = @EnableResellerBillingModule,         
  EnableResellerHelpDeskModule = @EnableResellerHelpDeskModule, ResellerAbilityForHelpDeskModule = @ResellerAbilityForHelpDeskModule, EnableADSyncAllowed = @EnableADSyncAllowed,         
  ShowADProfileTab = @ShowADProfileTab, EditADProfileAllowed = @EditADProfileAllowed, ShowDomainUserName = @ShowDomainUserName, AllowAddOnCancel = @AllowAddOnCancel,         
  AllowCustomMBTemplate = @AllowCustomMBTemplate, AllowAddOnEdit = @AllowAddOnEdit, AllowVPSManagement = @AllowVPSManagement, AllowtoAddVM = @AllowtoAddVM,         
  AllowtoRemoveVM = @AllowtoRemoveVM, Allowtomanagemachineoperations = @Allowtomanagemachineoperations, Allowtochangehostname = @Allowtochangehostname,         
  Allowtochangememorysettings = @Allowtochangememorysettings, Allowtochangevirtualprocessors = @Allowtochangevirtualprocessors,         
  Allowtomanagesnapshots = @Allowtomanagesnapshots, Allowtochangesnapshotlimit = @Allowtochangesnapshotlimit, Allowtoadddisk = @Allowtoadddisk, Allowtoremovedisk = @Allowtoremovedisk,         
  Allowtoexpanddisk = @Allowtoexpanddisk, AllowtoaddNIC = @AllowtoaddNIC, AllowtomanageNIC = @AllowtomanageNIC, AllowtoremoveNIC = @AllowtoremoveNIC,         
  AllowEmailAddress = @AllowEmailAddress, AllowToSetPassword = @AllowToSetPassword, AllowtoDistributionListMembership = @AllowtoDistributionListMembership,         
  AllowCustomerToChangePassword = @AllowCustomerToChangePassword, AllowContactToChangePassword = @AllowContactToChangePassword, AllowCustomSettings = @AllowCustomSettings,         
  AllowPSTDownload = @AllowPSTDownload, AllowSPManagement = @AllowSPManagement, AllowSPFrontEndBbindings = @AllowSPFrontEndBbindings, AllowSPPortalEdit = @AllowSPPortalEdit,         
  AllowSPDomainManage = @AllowSPDomainManage, AllowSPDomainAdd = @AllowSPDomainAdd, AllowSPDomainRemove = @AllowSPDomainRemove, AllowSPDomainEdit = @AllowSPDomainEdit,         
  AllowSPPermLevelManage = @AllowSPPermLevelManage, AllowSPPermLevelAdd = @AllowSPPermLevelAdd, AllowSPPermLevelEdit = @AllowSPPermLevelEdit,         
  AllowSPPermLevelRemove = @AllowSPPermLevelRemove, AllowSPGroupsManage = @AllowSPGroupsManage, AllowSPGroupsAdd = @AllowSPGroupsAdd, AllowSPGroupsEdit = @AllowSPGroupsEdit,         
  AllowSPGroupsRemove = @AllowSPGroupsRemove, AllowSPUsersManage = @AllowSPUsersManage, AllowSPUsersAdd = @AllowSPUsersAdd, AllowSPUsersEdit = @AllowSPUsersEdit,         
  AllowSPUsersRemove = @AllowSPUsersRemove, AllowSPUsersGroupAction = @AllowSPUsersGroupAction, AllowCRMManagement = @AllowCRMManagement, AllowCRMSync = @AllowCRMSync,         
  AllowCRMDomainsManage = @AllowCRMDomainsManage, AllowCRMDomainsAdd = @AllowCRMDomainsAdd, AllowCRMDomainsRemove = @AllowCRMDomainsRemove,         
  AllowCRMDomainsEdit = @AllowCRMDomainsEdit, AllowCRMBUManage = @AllowCRMBUManage, AllowCRMBUAdd = @AllowCRMBUAdd, AllowCRMBURemove = @AllowCRMBURemove,         
  AllowCRMBUEdit = @AllowCRMBUEdit, AllowCRMUsersManage = @AllowCRMUsersManage, AllowCRMUsersAdd = @AllowCRMUsersAdd, AllowCRMUsersEdit = @AllowCRMUsersEdit,         
  AllowCRMUsersRemove = @AllowCRMUsersRemove, AllowCRMUsersGroupAction = @AllowCRMUsersGroupAction, ExchPublicFolderAdd = @ExchPublicFolderAdd,         
  ExchPublicFolderEdit = @ExchPublicFolderEdit, ExchPublicFolderRemove = @ExchPublicFolderRemove, ExchMailContactManagement = @ExchMailContactManagement,         
  ExchMailContactAdd = @ExchMailContactAdd, ExchMailContactEdit = @ExchMailContactEdit, ExchMailContactRemove = @ExchMailContactRemove, ExchDLManagement = @ExchDLManagement,         
  ExchDLAdd = @ExchDLAdd, ExchDLEdit = @ExchDLEdit, ExchDLMsgApprovalEdit = @ExchDLMsgApprovalEdit, ExchDLRemoveListMembers = @ExchDLRemoveListMembers,         
  ExchDLEmailManagement = @ExchDLEmailManagement, ExchDLAddEmailAddress = @ExchDLAddEmailAddress, ExchDLEditEmailAddress = @ExchDLEditEmailAddress,         
  ExchDLRemoveEmailAddress = @ExchDLRemoveEmailAddress, ExchDLRemove = @ExchDLRemove, RDSManageAllowed = @RDSManageAllowed, RDSPolicyManageAllowed = @RDSPolicyManageAllowed,         
  RDSPolicyAddAllowed = @RDSPolicyAddAllowed, RDSPolicyEditAllowed = @RDSPolicyEditAllowed, RDSPolicyRemoveAllowed = @RDSPolicyRemoveAllowed,         
  RDSUserManageAllowed = @RDSUserManageAllowed, RDSUserAddAllowed = @RDSUserAddAllowed, RDSUserEditAllowed = @RDSUserEditAllowed, RDSUserRemoveAllowed = @RDSUserRemoveAllowed,         
  WorkfolderHostingManageAllowed = @WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed = @WorkfolderOrgManageAllowed,         
  WorkfoldersManageAllowed = @WorkfoldersManageAllowed, WorkfoldersAddAllowed = @WorkfoldersAddAllowed, WorkfoldersEditAllowed = @WorkfoldersEditAllowed,         
  WorkfoldersRemoveAllowed = @WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed = @WorkfoldersSyncAllowed, SyncFromBackendAllowed = @SyncFromBackendAllowed,         
  ExchangeRBACManageAllowed = @ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed = @MailboxAuditLogManagementAllowed, AllowToManageVLAN = @AllowToManageVLAN,         
  AllowToEnableDisable2FA = @AllowToEnableDisable2FA, AllowResellerToProcessSQ = @AllowResellerToProcessSQ, AllowAutoSQProcessing = @AllowAutoSQProcessing,         
  AllowExportMailboxPermissions = @AllowExportMailboxPermissions, AllowToAddUserMailbox = @AllowToAddUserMailbox, O365SPManagementAllowed = @O365SPManagementAllowed,         
  ExchAllowExternalRelayDomainManage = @ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd = @ExchAllowExternalRelayDomainAdd,         
  ExchAllowExternalRelayDomainRemove = @ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit = @ExchAllowExternalRelayDomainEdit,         
  ExchAllowInternalRelayDomainManage = @ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd = @ExchAllowInternalRelayDomainAdd,         
  ExchAllowInternalRelayDomainRemove = @ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit = @ExchAllowInternalRelayDomainEdit,         
AllowPSTExport = @AllowPSTExport, AllowPSTImport = @AllowPSTImport, AllowToManageGroupMembership = @AllowToManageGroupMembership,         
AllowToEditCustomAttributes = @AllowToEditCustomAttributes, ShowADReports = @ShowADReports, ShowExchReports = @ShowExchReports, ShowSkype4BReports = @ShowSkype4BReports,          
ShowCSPReports = @ShowCSPReports, ShowSharePointReports = @ShowSharePointReports, ShowCRMReports=@ShowCRMReports, ShowVPSReports=@ShowVPSReports,          
ShowRDSReports=@ShowRDSReports, ShowWFReports=@ShowWFReports, ShowWebHostingReports=@ShowWebHostingReports, AllowVoiceManagement = @AllowVoiceManagement,          
ShowVoiceBilling  = @ShowVoiceBilling, ShowAddons  = @ShowAddons, ShowDomains  = @ShowDomains, ShowAccounts  = @ShowAccounts, ShowTrunks  = @ShowTrunks,          
ShowCloudPBX  =@ShowCloudPBX, ShowPhoneNumber =@ShowPhoneNumber, AllowToAddPhoneNumbers =@AllowToAddPhoneNumbers, AllowNumberPorting  =@AllowNumberPorting,          
ShowForwarding  = @ShowForwarding, ShowFilterLists =@ShowFilterLists, ShowDirectRouting=@ShowDirectRouting, ShowCallRecords=@ShowCallRecords,         
ShowDestinations = @ShowDestinations, ShowVoiceReports = @ShowVoiceReports, QuickMigrationAllowed =  @QuickMigrationAllowed, LiveMigrationAllowed = @LiveMigrationAllowed,        
ChangeBandwidthAllowed = @ChangeBandwidthAllowed, ShowDiskManagement =  @ShowDiskManagement, ShowISOImageManagement = @ShowISOImageManagement,         
ShowNICManagement = @ShowNICManagement, AllowWebHostingManage = @AllowWebHostingManage, WebAccountsManageAllowed = @WebAccountsManageAllowed,         
DomainAddAllowed = @DomainAddAllowed, DomainEditAllowed = @DomainEditAllowed, DedicatedIPManageAllowed = @DedicatedIPManageAllowed, WebHostingAccounts = @WebHostingAccounts,         
DNSOnlyHostingAccounts = @DNSOnlyHostingAccounts, DBOnlyHostingAccounts = @DBOnlyHostingAccounts, MailOnlyHostingAccounts = @MailOnlyHostingAccounts,         
TempURLManageAllowed = @TempURLManageAllowed, MailDomainTurnOnOffAllowed = @MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed = @MailDomainAliasesAllowed,         
ManageTeamNumbers = @ManageTeamNumbers, ManagePendingVerificationDomain = @ManagePendingVerificationDomain, ManageVerifiedDomain = @ManageVerifiedDomain,          
DigiCertSSLManageAllowed = @DigiCertSSLManageAllowed, MailboxTemplateCreationAllowed = @MailboxTemplateCreationAllowed,         
ExportMailboxForwardingAllowed = @ExportMailboxForwardingAllowed, ExportDynamicDLAllowed = @ExportDynamicDLAllowed, ExportDLToExcelAllowed = @ExportDLToExcelAllowed,          
ExportMembersReportAllowed = @ExportMembersReportAllowed, UpdateReceiptSettingAllowed = @UpdateReceiptSettingAllowed,         
ComplianceManagementAllowed = @ComplianceManagementAllowed, InPlaceHoldAllowed = @InPlaceHoldAllowed, AuditingAllowed = @AuditingAllowed, MoveVMAllowed = @MoveVMAllowed,          
 SyncAllwithMicrosoftCSP = @SyncAllwithMicrosoftCSP, SyncDomainsLicensesPoliciesAndRoles = @SyncDomainsLicensesPoliciesAndRoles, SyncDomains = @SyncDomains,         
 SyncAllUsersWithMicrosoftCSP = @SyncAllUsersWithMicrosoftCSP, SyncAllContactsWithMicrosoftCSP = @SyncAllContactsWithMicrosoftCSP,          
 SyncAllGroupsWithMicrosoftCSP = @SyncAllGroupsWithMicrosoftCSP, SyncAllSharePointSitesWithMicrosoft365 = @SyncAllSharePointSitesWithMicrosoft365,          
 ShowVMCredsInWHMCS = @ShowVMCredsInWHMCS, AllowManageDomainNameProds = @AllowManageDomainNameProds, AllowManageMiscProds = @AllowManageMiscProds,          
 AllowManageDedicatedProds = @AllowManageDedicatedProds, AllowChangingMailboxType = @AllowChangingMailboxType, AllowToManageInPlaceHold = @AllowToManageInPlaceHold,        
AllowToManageEmailAddresses = @AllowToManageEmailAddresses, AllowToConfigureLinkedADSettings = @AllowToConfigureLinkedADSettings,         
DomainNameManageAllowed = @DomainNameManageAllowed, ContactManageAllowed = @ContactManageAllowed, ContactAddAllowed = @ContactAddAllowed,         
ContactEditAllowed = @ContactEditAllowed, ContactRemoveAllowed = @ContactRemoveAllowed, LockUnLockManageAllowed = @LockUnLockManageAllowed,         
DomainNameServerManageAllowed = @DomainNameServerManageAllowed, CustomNameServerManageAllowed = @CustomNameServerManageAllowed,         
TransferCodeManageAllowed = @TransferCodeManageAllowed, @DomainDNSManageAllowed = @DomainDNSManageAllowed, CustomerImportAllowed = @CustomerImportAllowed,         
CustomerExportAllowed = @CustomerExportAllowed, AllowCustomerDeletion = @AllowCustomerDeletion, ShowBillingToCustomer = @ShowBillingToCustomer,         
AllowToManageNICMACAddress = @AllowToManageNICMACAddress ,AllowToManageBandwidthDetail = @AllowToManageBandwidthDetail, AllowToChangePassword = @AllowToChangePassword,        
AllowToSyncVM = @AllowToSyncVM, AllowToManageBootOrder = @AllowToManageBootOrder, MailUserManagementAllowed = @MailUserManagementAllowed,        
AllowContactTab = @AllowContactTab, DeleteSPAMExpertsFilterting = @DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving = @EnableDisableSPAMExpertsArchiving,        
AllowToManagePasswordLessAuthentication = @AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice = @GenerateRenewalInvoice,        
AllowToUpdatePasswordSettings = @AllowToUpdatePasswordSettings, ExchSignatureManage = @ExchSignatureManage, MailFlowMoniteringAllowed = @MailFlowMoniteringAllowed,        
ExchTransportRulesManage = @ExchTransportRulesManage, ShowHelpdeskToCustomer = @ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription = @AllowToCancelWebSubscription, AllowToCancelADSubscription = @AllowToCancelADSubscription,         
AllowToCancelDomainSubscription = @AllowToCancelDomainSubscription, AllowToCancelCRMSubscription = @AllowToCancelCRMSubscription,        
AllowToCancelExchangeSubscription = @AllowToCancelExchangeSubscription, AllowToCancelSPSubscription = @AllowToCancelSPSubscription,         
AllowToCancelOCSSubscription = @AllowToCancelOCSSubscription, AllowToCancelVPSSubscription = @AllowToCancelVPSSubscription,        
AllowToCancelCSPSubscription = @AllowToCancelCSPSubscription, AllowToCancelRDSSubscription = @AllowToCancelRDSSubscription,         
AllowToCancelWFSubscription = @AllowToCancelWFSubscription, AllowToCancelVoiceSubscription = @AllowToCancelVoiceSubscription,      
AllowToManageADUserCertificates = @AllowToManageADUserCertificates, OWAPolicyManagementAllowed = @OWAPolicyManagementAllowed,       
AddOWAPolicyAllowed = @AddOWAPolicyAllowed, RecoveryManagementAllowed = @RecoveryManagementAllowed, ManageRecycleBin = @ManageRecycleBin       
,AllowGeneralSection = @AllowGeneralSection, AllowToEditADOrg = @AllowToEditADOrg, AllowToManageADGroupAction = @AllowToManageADGroupAction,     
AllowToExportADUsers = @AllowToExportADUsers, AllowTrunOnOffVM = @AllowTrunOnOffVM, AllowShutDownVM = @AllowShutDownVM, AllowResetHardVM = @AllowResetHardVM,     
AllowSuspendResumeVM = @AllowSuspendResumeVM, AllowManageWebConsoleVM = @AllowManageWebConsoleVM, AllowResetHNVSettingsVM = @AllowResetHNVSettingsVM,     
AllowShieldUnShieldVM = @AllowShieldUnShieldVM, AllowToExportMailboxes = @AllowToExportMailboxes, AllowToExportADGroups = @AllowToExportADGroups,     
ExchEnableDisableADUsersSharedMailbox = @ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox = @ExchEnableDisableADUsersResourceMailbox,     
ManageExchMailboxDevices = @ManageExchMailboxDevices, SDNManagementAllowed = @SDNManagementAllowed, ManageADUserReports = @ManageADUserReports, 
ManageADGroupReports = @ManageADGroupReports, ExchangeAllowUsageReportsView = @ExchangeAllowUsageReportsView, 
ExchangeAllowSubscriptionsReportView = @ExchangeAllowSubscriptionsReportView, ExchangeAllowOtherReportsView = @ExchangeAllowOtherReportsView, 
ExchangeAdminAuditLogManagementAllowed = @ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView = @ExchangeAllowCalenderPermissionsView, 
AllowVirtualMachinesUsageReportView = @AllowVirtualMachinesUsageReportView, AllowVirtualMachinesUpTimeReport = @AllowVirtualMachinesUpTimeReport    
WHERE([TemplateId] = @TemplateId_1);          
END;          
ELSE          
IF @ResellerTemplate = 1          
BEGIN          
  UPDATE [HB_tblResellerAccessTemplate] SET         
  [CPAccess] = @CPAccess_4, [CPWhiteLabel] = @CPWhiteLabel_5, [SubDomains] = @SubDomains_6, [DomainAlias] = @DomainAlias_7, [DomainLimits] = @DomainLimits_8,         
  [IISAppPool] = @IISAppPool_9, [FTPUsers] = @FTPUsers_10, [RenameDomain] = @RenameDomain_11, [DomainDeletion] = @DomainDeletion_12, [DomainTurnOff] = @DomainTurnOff_13,         
  [URlRedirection] = @URlRedirection_14, [DefaultDoc] = @DefaultDoc_15, [CustomError] = @CustomError_16, [MIMEType] = @MIMEType_17, [VirtualFolders] = @VirtualFolders_18,         
  [FrontPageExt] = @FrontPageExt_19, [ASPScripting] = @ASPScriting_20, [ASPNetScripting] = @ASPNetScripting_21, [PHPScripting] = @PHPScripting_22,         
  [PerlScripting] = @PerlScripting_23, [ColdFusionScripting] = @ColdFusionScripting_24, [Databases] = @Databases_25, [ODBCDSN] = @ODBCDSN_26, [FileManager] = @FileManager_27,         
  [SSLCert] = @SSLCert_28, [SharedSSL] = @SharedSSL_29, [WebsiteStats] = @WebsiteStats_30, [DNSZone] = @DNSZone_31, [MailDomains] = @MailDomains_32,         
  [EmailAccounts] = @EmailAccounts_33, [EmailLists] = @EmailLists_34, [EmailGroups] = @EmailGroups_35, [ResellerTemplate] = @ResellerTemplate,         
  [ResourceOverSell] = @ResourceOverSell_37, [CustomButtons] = @CustomButton, [TemplateName] = @TemplateName_2,         
  ClientCanUpgradeDownGradePackage = @ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC = @AddonsPurchaseAllowedinCCC, ClientCanEditProfile = @ClientCanEditProfile,         
  ClientCanBuyServicesinCCC = @ClientCanBuyServicesinCCC, ORGRemoveAllowed = @ORGRemoveAllowed, ExchDomainManagement = @ExchDomainManagement, ExchDomainAdd = @ExchDomainAdd,         
 ExchDomainRemove = @ExchDomainRemove, ExchDomainEdit = @ExchDomainEdit, ExchPublicFolderManage = @ExchPublicFolderManage, ExchWirelessManage = @ExchWirelessManage,         
  ExchDisclaimerManage = @ExchDisclaimerManage, ExchRetentionManage = @ExchRetentionManage, ExchMobileDevicePolicy = @ExchMobileDevicePolicy,         
  ExchMailboxPermissions = @ExchMailboxPermissions, ExchMailboxRemove = @ExchMailboxRemove, ExchLitigationHold = @ExchLitigationHold, ExchLinkedMBManage = @ExchLinkedMBManage,         
  ExchSharedMBManage = @ExchSharedMBManage, ExchRoomMBManage = @ExchRoomMBManage, ExchEquipmentMBManage = @ExchEquipmentMBManage, ExchMailFlowSettings = @ExchMailFlowSettings,         
  ExchaForwardingManage = @ExchaForwardingManage, ExchLimitsManage = @ExchLimitsManage, ExchRestrictionsManage = @ExchRestrictionsManage,         
  ExchMBPermissionManage = @ExchMBPermissionManage, ExchMBAdvanceManage = @ExchMBAdvanceManage, ExchStorageQuotaManage = @ExchStorageQuotaManage,         
  ExchMBFeaturesManage = @ExchMBFeaturesManage, ExchMBPersonalArchive = @ExchMBPersonalArchive, ExchUMManage = @ExchUMManage, ExchAutoReplyManage = @ExchAutoReplyManage,         
  ADOrganizationRemove = @ADOrganizationRemove, ADSecurityGroupManage = @ADSecurityGroupManage, ADSecurityGroupAdd = @ADSecurityGroupAdd,         
  ADSecurityGroupRemove = @ADSecurityGroupRemove, ADUserAdd = @ADUserAdd, ADUserRemove = @ADUserRemove, ADManage = @ADManage, ExchSPAMFilterManage = @ExchSPAMFilterManage,         
  ExchJournaling = @ExchJournaling, ExchDLAdvanceManage = @ExchDLAdvanceManage, ExchDLSendAsManage = @ExchDLSendAsManage, ExchManagement = @ExchManagement,         
  ExchMBEnableDisable = @ExchMBEnableDisable, LyncDomainManage = @LyncDomainManage, LyncDomainAdd = @LyncDomainAdd, LyncDomainRemove = @LyncDomainRemove,         
  LyncDomainSetDefault = @LyncDomainSetDefault, LyncUserManage = @LyncUserManage, LyncUserAdd = @LyncUserAdd, LyncUserAddBulk = @LyncUserAddBulk, LyncUserRemove = @LyncUserRemove,         
  LyncUserEdit = @LyncUserEdit, LyncUserAllowUM = @LyncUserAllowUM, LyncUserEnableDisable = @LyncUserEnableDisable, LyncUserGroupActions = @LyncUserGroupActions,         
  LyncFederationManage = @LyncFederationManage, LyncFederationAdd = @LyncFederationAdd, LyncFederationRemove = @LyncFederationRemove, LyncFederationEdit = @LyncFederationEdit,         
  LyncFederationSync = @LyncFederationSync, LyncPhoneNumberManage = @LyncPhoneNumberManage, LyncResponseGroupManage = @LyncResponseGroupManage,         
  LyncPersistentChatManage = @LyncPersistentChatManage, LyncShowCallReport = @LyncShowCallReport, LyncShowConfCallReport = @LyncShowConfCallReport,         
  LyncShowCallBilling = @LyncShowCallBilling, ShowNotification = @ShowNotification, AllowLyncManage = @AllowLyncManage, AllowADOrgSync = @AllowADOrgSync,         
  ADUserEdit = @ADUserEdit, ShowOverDueInvoices = @ShowOverDueInvoices, ShowBilling = @ShowBilling, ExchDeleteItemRetention = @ExchDeleteItemRetention,         
  ExchMBCalanderManage = @ExchMBCalanderManage, DownloadOutlookProfile = @DownloadOutlookProfile, ShowAuditLogs = @ShowAuditLogs, RunGroupJob = @RunGroupJob,         
  ADUserAutoDelete = @ADUserAutoDelete, AllowO365Management = @AllowO365Management, AllowToManageTenants = @AllowToManageTenants, AllowToAddNewTenants = @AllowToAddNewTenants,         
  AllowToEditExistingTenants = @AllowToEditExistingTenants, AllowToRemoveTenant = @AllowToRemoveTenant, AllowToManageO365Domains = @AllowToManageO365Domains,         
  AllowToSetO365DomainDefaultState = @AllowToSetO365DomainDefaultState, AllowToRemoveO365Domain = @AllowToRemoveO365Domain, AllowtoManageO365Users = @AllowtoManageO365Users,         
  AllowToAddNewO365Users = @AllowToAddNewO365Users, AllowToEditExistingO365Users = @AllowToEditExistingO365Users, AllowToRemoveO365User = @AllowToRemoveO365User,         
  AllowToManageO365SharedMbx = @AllowToManageO365SharedMbx, AllowToAddNewO365SharedMbx = @AllowToAddNewO365SharedMbx,         
  AllowToEditExistingO365SharedMbx = @AllowToEditExistingO365SharedMbx, AllowToRemoveO365SharedMbx = @AllowToRemoveO365SharedMbx,         
  AllowToManageResourceMbx = @AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx = @AllowToAddNewO365ResourceMbx,         
  AllowToEditExistingO365ResourceMbx = @AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx = @AllowToRemoveO365ResourceMbx,         
  AllowToManageO365Contacts = @AllowToManageO365Contacts, AllowToAddNewO365Contacts = @AllowToAddNewO365Contacts,         
  AllowToEditExistingO365Contacts = @AllowToEditExistingO365Contacts, AllowToRemoveO365Contact = @AllowToRemoveO365Contact, AllowToManageO365Groups = @AllowToManageO365Groups,         
 AllowToAddNewO365Groups = @AllowToAddNewO365Groups, AllowToEditExistingO365Groups = @AllowToEditExistingO365Groups, AllowToRemoveO365Group = @AllowToRemoveO365Group,         
  AllowToManageO365GroupJobs = @AllowToManageO365GroupJobs, AllowToRunO365GroupJob = @AllowToRunO365GroupJob, AllowToCancelO365GroupJob = @AllowToCancelO365GroupJob,         
  ExchApplicationImpersonation = @ExchApplicationImpersonation, ExchMailBoxMobileDevices = @ExchMailBoxMobileDevices, EnableResellerAPIAccess = @EnableResellerAPIAccess,         
  EnableResellerBillingModule = @EnableResellerBillingModule, EnableResellerHelpDeskModule = @EnableResellerHelpDeskModule,         
  ResellerAbilityForHelpDeskModule = @ResellerAbilityForHelpDeskModule, EnableADSyncAllowed = @EnableADSyncAllowed, ShowADProfileTab = @ShowADProfileTab,         
  EditADProfileAllowed = @EditADProfileAllowed, ShowDomainUserName = @ShowDomainUserName, AllowAddOnCancel = @AllowAddOnCancel, AllowCustomMBTemplate = @AllowCustomMBTemplate,         
  AllowAddOnEdit = @AllowAddOnEdit, AllowVPSManagement = @AllowVPSManagement, AllowtoAddVM = @AllowtoAddVM, AllowtoRemoveVM = @AllowtoRemoveVM,         
  Allowtomanagemachineoperations = @Allowtomanagemachineoperations, Allowtochangehostname = @Allowtochangehostname, Allowtochangememorysettings = @Allowtochangememorysettings,         
  Allowtochangevirtualprocessors = @Allowtochangevirtualprocessors, Allowtomanagesnapshots = @Allowtomanagesnapshots, Allowtochangesnapshotlimit = @Allowtochangesnapshotlimit,         
  Allowtoadddisk = @Allowtoadddisk, Allowtoremovedisk = @Allowtoremovedisk, Allowtoexpanddisk = @Allowtoexpanddisk, AllowtoaddNIC = @AllowtoaddNIC,         
  AllowtomanageNIC = @AllowtomanageNIC, AllowtoremoveNIC = @AllowtoremoveNIC, AllowEmailAddress = @AllowEmailAddress, AllowToSetPassword = @AllowToSetPassword,         
  AllowtoDistributionListMembership = @AllowtoDistributionListMembership, AllowCustomerToChangePassword = @AllowCustomerToChangePassword,         
  AllowContactToChangePassword = @AllowContactToChangePassword, AllowCustomSettings = @AllowCustomSettings, AllowPSTDownload = @AllowPSTDownload,         
  AllowSPManagement = @AllowSPManagement, AllowSPFrontEndBbindings = @AllowSPFrontEndBbindings, AllowSPPortalEdit = @AllowSPPortalEdit,         
  AllowSPDomainManage = @AllowSPDomainManage, AllowSPDomainAdd = @AllowSPDomainAdd, AllowSPDomainRemove = @AllowSPDomainRemove, AllowSPDomainEdit = @AllowSPDomainEdit,         
  AllowSPPermLevelManage = @AllowSPPermLevelManage, AllowSPPermLevelAdd = @AllowSPPermLevelAdd, AllowSPPermLevelEdit = @AllowSPPermLevelEdit,     
  AllowSPPermLevelRemove = @AllowSPPermLevelRemove, AllowSPGroupsManage = @AllowSPGroupsManage, AllowSPGroupsAdd = @AllowSPGroupsAdd, AllowSPGroupsEdit = @AllowSPGroupsEdit,         
  AllowSPGroupsRemove = @AllowSPGroupsRemove, AllowSPUsersManage = @AllowSPUsersManage, AllowSPUsersAdd = @AllowSPUsersAdd, AllowSPUsersEdit = @AllowSPUsersEdit,         
  AllowSPUsersRemove = @AllowSPUsersRemove, AllowSPUsersGroupAction = @AllowSPUsersGroupAction, AllowCRMManagement = @AllowCRMManagement, AllowCRMSync = @AllowCRMSync,         
 AllowCRMDomainsManage = @AllowCRMDomainsManage, AllowCRMDomainsAdd = @AllowCRMDomainsAdd, AllowCRMDomainsRemove = @AllowCRMDomainsRemove,         
 AllowCRMDomainsEdit = @AllowCRMDomainsEdit, AllowCRMBUManage = @AllowCRMBUManage, AllowCRMBUAdd = @AllowCRMBUAdd, AllowCRMBURemove = @AllowCRMBURemove,         
  AllowCRMBUEdit = @AllowCRMBUEdit, AllowCRMUsersManage = @AllowCRMUsersManage, AllowCRMUsersAdd = @AllowCRMUsersAdd, AllowCRMUsersEdit = @AllowCRMUsersEdit,         
  AllowCRMUsersRemove = @AllowCRMUsersRemove, AllowCRMUsersGroupAction = @AllowCRMUsersGroupAction, ExchPublicFolderAdd = @ExchPublicFolderAdd,         
  ExchPublicFolderEdit = @ExchPublicFolderEdit, ExchPublicFolderRemove = @ExchPublicFolderRemove, ExchMailContactManagement = @ExchMailContactManagement,         
  ExchMailContactAdd = @ExchMailContactAdd, ExchMailContactEdit = @ExchMailContactEdit, ExchMailContactRemove = @ExchMailContactRemove, ExchDLManagement = @ExchDLManagement,         
  ExchDLAdd = @ExchDLAdd, ExchDLEdit = @ExchDLEdit, ExchDLMsgApprovalEdit = @ExchDLMsgApprovalEdit, ExchDLRemoveListMembers = @ExchDLRemoveListMembers,         
 ExchDLEmailManagement = @ExchDLEmailManagement, ExchDLAddEmailAddress = @ExchDLAddEmailAddress, ExchDLEditEmailAddress = @ExchDLEditEmailAddress,         
  ExchDLRemoveEmailAddress = @ExchDLRemoveEmailAddress, ExchDLRemove = @ExchDLRemove, RDSManageAllowed = @RDSManageAllowed, RDSPolicyManageAllowed = @RDSPolicyManageAllowed,         
  RDSPolicyAddAllowed = @RDSPolicyAddAllowed, RDSPolicyEditAllowed = @RDSPolicyEditAllowed, RDSPolicyRemoveAllowed = @RDSPolicyRemoveAllowed,         
  RDSUserManageAllowed = @RDSUserManageAllowed, RDSUserAddAllowed = @RDSUserAddAllowed, RDSUserEditAllowed = @RDSUserEditAllowed, RDSUserRemoveAllowed = @RDSUserRemoveAllowed,         
  WorkfolderHostingManageAllowed = @WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed = @WorkfolderOrgManageAllowed,         
  WorkfoldersManageAllowed = @WorkfoldersManageAllowed, WorkfoldersAddAllowed = @WorkfoldersAddAllowed, WorkfoldersEditAllowed = @WorkfoldersEditAllowed,         
  WorkfoldersRemoveAllowed = @WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed = @WorkfoldersSyncAllowed, SyncFromBackendAllowed = @SyncFromBackendAllowed,         
  ExchangeRBACManageAllowed = @ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed = @MailboxAuditLogManagementAllowed, AllowToManageVLAN = @AllowToManageVLAN,          
  AllowToEnableDisable2FA = @AllowToEnableDisable2FA, AllowResellerToProcessSQ = @AllowResellerToProcessSQ, AllowAutoSQProcessing = @AllowAutoSQProcessing,         
  AllowExportMailboxPermissions = @AllowExportMailboxPermissions, AllowToAddUserMailbox = @AllowToAddUserMailbox, O365SPManagementAllowed = @O365SPManagementAllowed,         
  ExchAllowExternalRelayDomainManage = @ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd = @ExchAllowExternalRelayDomainAdd,         
  ExchAllowExternalRelayDomainRemove = @ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit = @ExchAllowExternalRelayDomainEdit,         
  ExchAllowInternalRelayDomainManage = @ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd = @ExchAllowInternalRelayDomainAdd,         
  ExchAllowInternalRelayDomainRemove = @ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit = @ExchAllowInternalRelayDomainEdit,         
  AllowPSTExport = @AllowPSTExport, AllowPSTImport = @AllowPSTImport, AllowToManageGroupMembership = @AllowToManageGroupMembership,         
  AllowToEditCustomAttributes = @AllowToEditCustomAttributes, ShowADReports = @ShowADReports, ShowExchReports = @ShowExchReports, ShowSkype4BReports = @ShowSkype4BReports,          
 ShowCSPReports = @ShowCSPReports, ShowSharePointReports = @ShowSharePointReports, ShowCRMReports=@ShowCRMReports, ShowVPSReports=@ShowVPSReports,         
 ShowRDSReports=@ShowRDSReports, ShowWFReports=@ShowWFReports, ShowWebHostingReports=@ShowWebHostingReports, AllowVoiceManagement = @AllowVoiceManagement,          
 ShowVoiceBilling  = @ShowVoiceBilling, ShowAddons  = @ShowAddons, ShowDomains  = @ShowDomains, ShowAccounts  = @ShowAccounts, ShowTrunks  = @ShowTrunks,          
 ShowCloudPBX  =@ShowCloudPBX, ShowPhoneNumber =@ShowPhoneNumber, AllowToAddPhoneNumbers = @AllowToAddPhoneNumbers, AllowNumberPorting = @AllowNumberPorting,          
 ShowForwarding  = @ShowForwarding, ShowFilterLists = @ShowFilterLists, ShowDirectRouting= @ShowDirectRouting, ShowCallRecords= @ShowCallRecords,          
 ShowDestinations = @ShowDestinations, ShowVoiceReports = @ShowVoiceReports, QuickMigrationAllowed =  @QuickMigrationAllowed, LiveMigrationAllowed = @LiveMigrationAllowed,        
 ChangeBandwidthAllowed = @ChangeBandwidthAllowed, ShowDiskManagement = @ShowDiskManagement, ShowISOImageManagement = @ShowISOImageManagement,        
 ShowNICManagement = @ShowNICManagement, AllowWebHostingManage = @AllowWebHostingManage, WebAccountsManageAllowed = @WebAccountsManageAllowed,         
 DomainAddAllowed = @DomainAddAllowed, DomainEditAllowed = @DomainEditAllowed, DedicatedIPManageAllowed = @DedicatedIPManageAllowed, WebHostingAccounts = @WebHostingAccounts,        
 DNSOnlyHostingAccounts = @DNSOnlyHostingAccounts, DBOnlyHostingAccounts = @DBOnlyHostingAccounts, MailOnlyHostingAccounts = @MailOnlyHostingAccounts,         
 TempURLManageAllowed = @TempURLManageAllowed, MailDomainTurnOnOffAllowed = @MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed = @MailDomainAliasesAllowed,        
 ManageTeamNumbers = @ManageTeamNumbers, ManagePendingVerificationDomain = @ManagePendingVerificationDomain, ManageVerifiedDomain = @ManageVerifiedDomain,         
 DigiCertSSLManageAllowed = @DigiCertSSLManageAllowed, MailboxTemplateCreationAllowed = @MailboxTemplateCreationAllowed,         
 ExportMailboxForwardingAllowed = @ExportMailboxForwardingAllowed, ExportDynamicDLAllowed = @ExportDynamicDLAllowed, ExportDLToExcelAllowed = @ExportDLToExcelAllowed,          
 ExportMembersReportAllowed = @ExportMembersReportAllowed, UpdateReceiptSettingAllowed = @UpdateReceiptSettingAllowed,         
 ComplianceManagementAllowed = @ComplianceManagementAllowed, InPlaceHoldAllowed = @InPlaceHoldAllowed, AuditingAllowed = @AuditingAllowed, MoveVMAllowed = @MoveVMAllowed,          
 SyncAllwithMicrosoftCSP = @SyncAllwithMicrosoftCSP, SyncDomainsLicensesPoliciesAndRoles = @SyncDomainsLicensesPoliciesAndRoles, SyncDomains = @SyncDomains,          
 SyncAllUsersWithMicrosoftCSP = @SyncAllUsersWithMicrosoftCSP, SyncAllContactsWithMicrosoftCSP = @SyncAllContactsWithMicrosoftCSP,         
 SyncAllGroupsWithMicrosoftCSP = @SyncAllGroupsWithMicrosoftCSP, SyncAllSharePointSitesWithMicrosoft365 = @SyncAllSharePointSitesWithMicrosoft365,         
 ShowVMCredsInWHMCS = @ShowVMCredsInWHMCS, AllowManageDomainNameProds = @AllowManageDomainNameProds, AllowManageMiscProds = @AllowManageMiscProds,          
 AllowManageDedicatedProds = @AllowManageDedicatedProds, AllowChangingMailboxType = @AllowChangingMailboxType, AllowToManageInPlaceHold = @AllowToManageInPlaceHold,        
AllowToManageEmailAddresses = @AllowToManageEmailAddresses, AllowToConfigureLinkedADSettings = @AllowToConfigureLinkedADSettings,         
DomainNameManageAllowed = @DomainNameManageAllowed, ContactManageAllowed = @ContactManageAllowed, ContactAddAllowed = @ContactAddAllowed,         
ContactEditAllowed = @ContactEditAllowed, ContactRemoveAllowed = @ContactRemoveAllowed, LockUnLockManageAllowed = @LockUnLockManageAllowed,         
DomainNameServerManageAllowed = @DomainNameServerManageAllowed, CustomNameServerManageAllowed = @CustomNameServerManageAllowed,         
TransferCodeManageAllowed = @TransferCodeManageAllowed, @DomainDNSManageAllowed = @DomainDNSManageAllowed, CustomerImportAllowed = @CustomerImportAllowed,         
CustomerExportAllowed = @CustomerExportAllowed, AllowCustomerDeletion = @AllowCustomerDeletion, ShowBillingToCustomer = @ShowBillingToCustomer,         
AllowToManageNICMACAddress = @AllowToManageNICMACAddress, AllowToManageBandwidthDetail = @AllowToManageBandwidthDetail, AllowToChangePassword = @AllowToChangePassword,        
AllowToSyncVM = @AllowToSyncVM, AllowToManageBootOrder = @AllowToManageBootOrder, MailUserManagementAllowed = @MailUserManagementAllowed,        
AllowContactTab = @AllowContactTab, DeleteSPAMExpertsFilterting = @DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving = @EnableDisableSPAMExpertsArchiving,        
AllowToManagePasswordLessAuthentication = @AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice = @GenerateRenewalInvoice,        
AllowToUpdatePasswordSettings = @AllowToUpdatePasswordSettings, ExchSignatureManage = @ExchSignatureManage, MailFlowMoniteringAllowed = @MailFlowMoniteringAllowed,        
ExchTransportRulesManage = @ExchTransportRulesManage, ShowHelpdeskToCustomer = @ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription = @AllowToCancelWebSubscription, AllowToCancelADSubscription = @AllowToCancelADSubscription,         
AllowToCancelDomainSubscription = @AllowToCancelDomainSubscription, AllowToCancelCRMSubscription = @AllowToCancelCRMSubscription,        
AllowToCancelExchangeSubscription = @AllowToCancelExchangeSubscription, AllowToCancelSPSubscription = @AllowToCancelSPSubscription,         
AllowToCancelOCSSubscription = @AllowToCancelOCSSubscription, AllowToCancelVPSSubscription = @AllowToCancelVPSSubscription,        
AllowToCancelCSPSubscription = @AllowToCancelCSPSubscription, AllowToCancelRDSSubscription = @AllowToCancelRDSSubscription,         
AllowToCancelWFSubscription = @AllowToCancelWFSubscription, AllowToCancelVoiceSubscription = @AllowToCancelVoiceSubscription,      
AllowToManageADUserCertificates = @AllowToManageADUserCertificates, OWAPolicyManagementAllowed = @OWAPolicyManagementAllowed,       
AddOWAPolicyAllowed = @AddOWAPolicyAllowed, RecoveryManagementAllowed = @RecoveryManagementAllowed, ManageRecycleBin = @ManageRecycleBin      
,AllowGeneralSection = @AllowGeneralSection, AllowToEditADOrg = @AllowToEditADOrg, AllowToManageADGroupAction = @AllowToManageADGroupAction,     
AllowToExportADUsers = @AllowToExportADUsers, AllowTrunOnOffVM = @AllowTrunOnOffVM, AllowShutDownVM = @AllowShutDownVM, AllowResetHardVM = @AllowResetHardVM,     
AllowSuspendResumeVM = @AllowSuspendResumeVM, AllowManageWebConsoleVM = @AllowManageWebConsoleVM, AllowResetHNVSettingsVM = @AllowResetHNVSettingsVM,     
AllowShieldUnShieldVM = @AllowShieldUnShieldVM, AllowToExportMailboxes = @AllowToExportMailboxes, AllowToExportADGroups = @AllowToExportADGroups,     
ExchEnableDisableADUsersSharedMailbox = @ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox = @ExchEnableDisableADUsersResourceMailbox,     
ManageExchMailboxDevices = @ManageExchMailboxDevices, SDNManagementAllowed = @SDNManagementAllowed, ManageADUserReports = @ManageADUserReports, 
ManageADGroupReports = @ManageADGroupReports, ExchangeAllowUsageReportsView = @ExchangeAllowUsageReportsView, 
ExchangeAllowSubscriptionsReportView = @ExchangeAllowSubscriptionsReportView, ExchangeAllowOtherReportsView = @ExchangeAllowOtherReportsView, 
ExchangeAdminAuditLogManagementAllowed = @ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView = @ExchangeAllowCalenderPermissionsView, 
AllowVirtualMachinesUsageReportView = @AllowVirtualMachinesUsageReportView, AllowVirtualMachinesUpTimeReport = @AllowVirtualMachinesUpTimeReport    
 WHERE([TemplateId] = @TemplateId_1);          
END;          
END;          
EXEC SPR_UpdateChildPermissionsAsPerParent;          
END;         
GO

ALTER PROCEDURE insert_HB_tblResellerAccessTemplate          
(@CompanyId int, @TemplateId int) as          
BEGIN         
          
 DELETE FROM HB_tblResellerAccessTemplate where CompanyId = @CompanyId          
          
 INSERT INTO HB_tblResellerAccessTemplate          
  (         
  [TemplateId], [CompanyId], [CPAccess], [CPWhiteLabel], [SubDomains], [DomainAlias], [DomainLimits], [IISAppPool], [FTPUsers], [RenameDomain], [DomainDeletion],          
  [DomainTurnOff], [URlRedirection], [DefaultDoc], [CustomError], [MIMEType], [VirtualFolders], [FrontPageExt], [ASPScripting], [ASPNetScripting], [PHPScripting],          
  [PerlScripting], [ColdFusionScripting], [Databases], [ODBCDSN], [FileManager], [SSLCert], [SharedSSL], [WebsiteStats], [DNSZone], [MailDomains], [EmailAccounts],          
  [EmailLists], [EmailGroups], [ResellerTemplate], [ResourceOverSell], [CustomButtons], [TemplateName], ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC,          
  ClientCanEditProfile, ClientCanBuyServicesinCCC, OrgRemoveAllowed,          
  ExchDomainManagement, ExchDomainAdd, ExchDomainRemove, ExchDomainEdit, ExchPublicFolderManage, ExchWirelessManage, ExchDisclaimerManage, ExchRetentionManage,          
  ExchMobileDevicePolicy, ExchMailboxPermissions, ExchMailboxRemove, ExchLitigationHold, ExchLinkedMBManage, ExchSharedMBManage, ExchRoomMBManage, ExchEquipmentMBManage,          
  ExchMailFlowSettings, ExchaForwardingManage, ExchLimitsManage, ExchRestrictionsManage, ExchMBPermissionManage, ExchMBAdvanceManage, ExchStorageQuotaManage,          
  ExchMBFeaturesManage, ExchMBPersonalArchive, ExchUMManage, ExchAutoReplyManage, ADOrganizationRemove, ADSecurityGroupManage, ADSecurityGroupAdd, ADSecurityGroupRemove,          
  ADUserAdd, ADUserRemove, ADManage, ExchSPAMFilterManage, ExchJournaling, ExchDLAdvanceManage, ExchDLSendAsManage, ExchManagement, ExchMBEnableDisable,          
  LyncDomainManage, LyncDomainAdd, LyncDomainRemove, LyncDomainSetDefault, LyncUserManage, LyncUserAdd, LyncUserAddBulk,          
  LyncUserRemove, LyncUserEdit, LyncUserAllowUM, LyncUserEnableDisable, LyncUserGroupActions, LyncFederationManage, LyncFederationAdd,          
  LyncFederationRemove, LyncFederationEdit, LyncFederationSync, LyncPhoneNumberManage, LyncResponseGroupManage,          
  LyncPersistentChatManage, LyncShowCallReport, LyncShowConfCallReport, LyncShowCallBilling, ShowNotification, AllowLyncManage,          
  AllowADOrgSync, ADUserEdit, ShowOverDueInvoices, ShowBilling, ExchDeleteItemRetention, ExchMBCalanderManage, DownloadOutlookProfile,          
  ShowAuditLogs, RunGroupJob, ADUserAutoDelete, AllowO365Management, AllowToManageTenants, AllowToAddNewTenants, AllowToEditExistingTenants,          
  AllowToRemoveTenant, AllowToManageO365Domains, AllowToSetO365DomainDefaultState, AllowToRemoveO365Domain, AllowtoManageO365Users, AllowToAddNewO365Users,          
  AllowToEditExistingO365Users, AllowToRemoveO365User, AllowToManageO365SharedMbx, AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx,          
  AllowToRemoveO365SharedMbx, AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx, AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx,          
  AllowToManageO365Contacts, AllowToAddNewO365Contacts, AllowToEditExistingO365Contacts, AllowToRemoveO365Contact, AllowToManageO365Groups, AllowToAddNewO365Groups,          
  AllowToEditExistingO365Groups, AllowToRemoveO365Group, AllowToManageO365GroupJobs, AllowToRunO365GroupJob, AllowToCancelO365GroupJob, ExchApplicationImpersonation,          
  ExchMailBoxMobileDevices, EnableResellerAPIAccess, EnableResellerBillingModule, EnableResellerHelpDeskModule, ResellerAbilityForHelpDeskModule, EnableADSyncAllowed          
  ,ShowADProfileTab, EditADProfileAllowed, ShowDomainUserName, AllowAddOnCancel, AllowCustomMBTemplate, AllowAddOnEdit          
  , AllowEmailAddress , AllowToSetPassword  ,AllowtoDistributionListMembership ,AllowCustomerToChangePassword ,AllowContactToChangePassword          
  ,AllowVPSManagement ,AllowtoAddVM ,AllowtoRemoveVM ,Allowtomanagemachineoperations,Allowtochangehostname,Allowtochangememorysettings,Allowtochangevirtualprocessors         
  ,Allowtomanagesnapshots,Allowtochangesnapshotlimit,Allowtoadddisk ,Allowtoremovedisk,Allowtoexpanddisk,AllowtoaddNIC,AllowtomanageNIC ,AllowtoremoveNIC          
  ,AllowCustomSettings, AllowPSTDownload,          
  AllowSPManagement, AllowSPFrontEndBbindings, AllowSPPortalEdit, AllowSPDomainManage, AllowSPDomainAdd, AllowSPDomainRemove,          
  AllowSPDomainEdit, AllowSPPermLevelManage, AllowSPPermLevelAdd, AllowSPPermLevelEdit, AllowSPPermLevelRemove, AllowSPGroupsManage,          
  AllowSPGroupsAdd, AllowSPGroupsEdit, AllowSPGroupsRemove, AllowSPUsersManage, AllowSPUsersAdd, AllowSPUsersEdit, AllowSPUsersRemove, AllowSPUsersGroupAction,          
  AllowCRMManagement, AllowCRMSync, AllowCRMDomainsManage, AllowCRMDomainsAdd, AllowCRMDomainsRemove, AllowCRMDomainsEdit,          
  AllowCRMBUManage, AllowCRMBUAdd, AllowCRMBURemove, AllowCRMBUEdit, AllowCRMUsersManage, AllowCRMUsersAdd, AllowCRMUsersEdit, AllowCRMUsersRemove, AllowCRMUsersGroupAction,          
  ExchPublicFolderAdd ,ExchPublicFolderEdit ,ExchPublicFolderRemove,ExchMailContactManagement,ExchMailContactAdd,ExchMailContactEdit,ExchMailContactRemove,          
  ExchDLManagement,ExchDLAdd, ExchDLEdit,ExchDLMsgApprovalEdit,ExchDLRemoveListMembers,ExchDLEmailManagement,ExchDLAddEmailAddress,          
  ExchDLEditEmailAddress,ExchDLRemoveEmailAddress,ExchDLRemove,          
  RDSManageAllowed, RDSPolicyManageAllowed, RDSPolicyAddAllowed, RDSPolicyEditAllowed, RDSPolicyRemoveAllowed, RDSUserManageAllowed, RDSUserAddAllowed, RDSUserEditAllowed, RDSUserRemoveAllowed,          
  WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed, WorkfoldersManageAllowed, WorkfoldersAddAllowed, WorkfoldersEditAllowed,         
  WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed,EditCustomerResourcesAllowed, SyncFromBackendAllowed, ExchangeRBACManageAllowed,         
  MailboxAuditLogManagementAllowed,AllowToManageVLAN,AllowToEnableDisable2FA, AllowResellerToProcessSQ, AllowAutoSQProcessing,AllowExportMailboxPermissions,          
  AllowToAddUserMailbox, O365SPManagementAllowed,          
 ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit,          
 ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit          
 ,AllowPSTExport,AllowPSTImport,AllowToManageGroupMembership, AllowToEditCustomAttributes, ShowADReports, ShowExchReports, ShowSkype4BReports,          
 ShowCSPReports, ShowSharePointReports, ShowCRMReports, ShowVPSReports, ShowRDSReports, ShowWFReports, ShowWebHostingReports,          
 AllowVoiceManagement, ShowVoiceBilling, ShowAddons, ShowDomains, ShowAccounts, ShowTrunks, ShowCloudPBX, ShowPhoneNumber, AllowToAddPhoneNumbers,          
 AllowNumberPorting, ShowForwarding, ShowFilterLists, ShowDirectRouting, ShowCallRecords, ShowDestinations, ShowVoiceReports, QuickMigrationAllowed,          
 LiveMigrationAllowed, ChangeBandwidthAllowed, ShowDiskManagement, ShowISOImageManagement, ShowNICManagement,          
 AllowWebHostingManage, WebAccountsManageAllowed, DedicatedIPManageAllowed, WebHostingAccounts, DNSOnlyHostingAccounts, DBOnlyHostingAccounts,          
 MailOnlyHostingAccounts, TempURLManageAllowed, MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed,ManageTeamNumbers,         
 ManagePendingVerificationDomain ,ManageVerifiedDomain, DigiCertSSLManageAllowed, ShowVMCredsInWHMCS,          
AllowManageDomainNameProds, AllowManageMiscProds, AllowManageDedicatedProds, AllowChangingMailboxType, AllowToManageInPlaceHold,          
AllowToManageEmailAddresses, AllowToConfigureLinkedADSettings, DomainNameManageAllowed, ContactManageAllowed, ContactAddAllowed, ContactEditAllowed, ContactRemoveAllowed,          
LockUnLockManageAllowed, DomainNameServerManageAllowed, CustomNameServerManageAllowed, TransferCodeManageAllowed, DomainDNSManageAllowed,          
CustomerImportAllowed, CustomerExportAllowed, AllowCustomerDeletion, ShowBillingToCustomer, AllowToManageNICMACAddress, AllowToManageBandwidthDetail,         
AllowToChangePassword, AllowToSyncVM,AllowToManageBootOrder, MailUserManagementAllowed, AllowContactTab,        
DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice, AllowToUpdatePasswordSettings,        
ExchSignatureManage, MailFlowMoniteringAllowed, ExchTransportRulesManage, ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription, AllowToCancelADSubscription, AllowToCancelDomainSubscription, AllowToCancelCRMSubscription, AllowToCancelExchangeSubscription,         
AllowToCancelSPSubscription, AllowToCancelOCSSubscription, AllowToCancelVPSSubscription, AllowToCancelCSPSubscription, AllowToCancelRDSSubscription,        
AllowToCancelWFSubscription, AllowToCancelVoiceSubscription, AllowToManageADUserCertificates, OWAPolicyManagementAllowed, AddOWAPolicyAllowed,       
RecoveryManagementAllowed, ManageRecycleBin, AllowGeneralSection, AllowToEditADOrg, AllowToManageADGroupAction, AllowToExportADUsers,     
AllowTrunOnOffVM, AllowShutDownVM, AllowResetHardVM, AllowSuspendResumeVM, AllowManageWebConsoleVM, AllowResetHNVSettingsVM, AllowShieldUnShieldVM,     
AllowToExportMailboxes, AllowToExportADGroups, ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox, ManageExchMailboxDevices,   
SDNManagementAllowed, ManageADUserReports, ManageADGroupReports, ExchangeAllowUsageReportsView, ExchangeAllowSubscriptionsReportView, 
ExchangeAllowOtherReportsView, ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView, AllowVirtualMachinesUsageReportView, 
AllowVirtualMachinesUpTimeReport    
 )          
          
 select         
 @TemplateId, @CompanyId, CPAccess, CPWhiteLabel, SubDomains, DomainAlias, DomainLimits, IISAppPool, FTPUsers, RenameDomain, DomainDeletion, DomainTurnOff, URlRedirection,         
  DefaultDoc, CustomError, MIMEType, VirtualFolders, FrontPageExt, ASPScripting, ASPNetScripting, PHPScripting, PerlScripting, ColdFusionScripting, Databases, ODBCDSN,          
  FileManager, SSLCert, SharedSSL, WebsiteStats, DNSZone, MailDomains, EmailAccounts, EmailLists, EmailGroups, ResellerTemplate, ResourceOverSell, CustomButtons, TemplateName,          
  ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC, ClientCanEditProfile, ClientCanBuyServicesinCCC, OrgRemoveAllowed, ExchDomainManagement,ExchDomainAdd,          
  ExchDomainRemove, ExchDomainEdit, ExchPublicFolderManage, ExchWirelessManage, ExchDisclaimerManage, ExchRetentionManage, ExchMobileDevicePolicy, ExchMailboxPermissions,          
  ExchMailboxRemove, ExchLitigationHold, ExchLinkedMBManage, ExchSharedMBManage, ExchRoomMBManage, ExchEquipmentMBManage, ExchMailFlowSettings, ExchaForwardingManage,          
  ExchLimitsManage, ExchRestrictionsManage, ExchMBPermissionManage, ExchMBAdvanceManage, ExchStorageQuotaManage, ExchMBFeaturesManage, ExchMBPersonalArchive, ExchUMManage,         
  ExchAutoReplyManage, ADOrganizationRemove, ADSecurityGroupManage, ADSecurityGroupAdd, ADSecurityGroupRemove, ADUserAdd, ADUserRemove, ADManage, ExchSPAMFilterManage,          
  ExchJournaling, ExchDLAdvanceManage, ExchDLSendAsManage, ExchManagement , ExchMBEnableDisable, LyncDomainManage, LyncDomainAdd, LyncDomainRemove, LyncDomainSetDefault,          
  LyncUserManage, LyncUserAdd, LyncUserAddBulk, LyncUserRemove, LyncUserEdit, LyncUserAllowUM, LyncUserEnableDisable, LyncUserGroupActions, LyncFederationManage,          
  LyncFederationAdd, LyncFederationRemove, LyncFederationEdit, LyncFederationSync, LyncPhoneNumberManage, LyncResponseGroupManage,          
  LyncPersistentChatManage, LyncShowCallReport, LyncShowConfCallReport, LyncShowCallBilling, ShowNotification, AllowLyncManage,          
  AllowADOrgSync, ADUserEdit, ShowOverDueInvoices, ShowBilling, ExchDeleteItemRetention, ExchMBCalanderManage, DownloadOutlookProfile,          
  ShowAuditLogs, RunGroupJob, ADUserAutoDelete, AllowO365Management, AllowToManageTenants, AllowToAddNewTenants, AllowToEditExistingTenants, 
  AllowToRemoveTenant, AllowToManageO365Domains, AllowToSetO365DomainDefaultState, AllowToRemoveO365Domain, AllowtoManageO365Users, AllowToAddNewO365Users,          
  AllowToEditExistingO365Users, AllowToRemoveO365User, AllowToManageO365SharedMbx, AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx,          
  AllowToRemoveO365SharedMbx, AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx, AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx,          
  AllowToManageO365Contacts, AllowToAddNewO365Contacts, AllowToEditExistingO365Contacts, AllowToRemoveO365Contact, AllowToManageO365Groups, AllowToAddNewO365Groups,          
  AllowToEditExistingO365Groups, AllowToRemoveO365Group, AllowToManageO365GroupJobs, AllowToRunO365GroupJob, AllowToCancelO365GroupJob, ExchApplicationImpersonation,            
  ExchMailBoxMobileDevices, EnableResellerAPIAccess, EnableResellerBillingModule, EnableResellerHelpDeskModule, ResellerAbilityForHelpDeskModule, EnableADSyncAllowed          
  , ShowADProfileTab, EditADProfileAllowed, ShowDomainUserName, AllowAddOnCancel, AllowCustomMBTemplate, AllowAddOnEdit          
  , AllowEmailAddress , AllowToSetPassword  ,AllowtoDistributionListMembership ,AllowCustomerToChangePassword ,AllowContactToChangePassword         
  ,AllowVPSManagement ,AllowtoAddVM ,AllowtoRemoveVM ,Allowtomanagemachineoperations,Allowtochangehostname,Allowtochangememorysettings,Allowtochangevirtualprocessors         
  ,Allowtomanagesnapshots,Allowtochangesnapshotlimit,Allowtoadddisk ,Allowtoremovedisk,Allowtoexpanddisk,AllowtoaddNIC,AllowtomanageNIC ,AllowtoremoveNIC         
  ,AllowCustomSettings,AllowPSTDownload,         
  AllowSPManagement, AllowSPFrontEndBbindings, AllowSPPortalEdit, AllowSPDomainManage, AllowSPDomainAdd, AllowSPDomainRemove,          
  AllowSPDomainEdit, AllowSPPermLevelManage, AllowSPPermLevelAdd, AllowSPPermLevelEdit, AllowSPPermLevelRemove, AllowSPGroupsManage,          
  AllowSPGroupsAdd, AllowSPGroupsEdit, AllowSPGroupsRemove, AllowSPUsersManage, AllowSPUsersAdd, AllowSPUsersEdit, AllowSPUsersRemove, AllowSPUsersGroupAction,          
  AllowCRMManagement, AllowCRMSync, AllowCRMDomainsManage, AllowCRMDomainsAdd, AllowCRMDomainsRemove, AllowCRMDomainsEdit,          
  AllowCRMBUManage, AllowCRMBUAdd, AllowCRMBURemove, AllowCRMBUEdit, AllowCRMUsersManage, AllowCRMUsersAdd, AllowCRMUsersEdit, AllowCRMUsersRemove, AllowCRMUsersGroupAction,          
  ExchPublicFolderAdd ,ExchPublicFolderEdit ,ExchPublicFolderRemove,ExchMailContactManagement,ExchMailContactAdd,ExchMailContactEdit,ExchMailContactRemove,          
  ExchDLManagement,ExchDLAdd, ExchDLEdit,ExchDLMsgApprovalEdit, ExchDLRemoveListMembers,ExchDLEmailManagement,ExchDLAddEmailAddress,          
  ExchDLEditEmailAddress,ExchDLRemoveEmailAddress,ExchDLRemove,          
  RDSManageAllowed, RDSPolicyManageAllowed, RDSPolicyAddAllowed, RDSPolicyEditAllowed, RDSPolicyRemoveAllowed, RDSUserManageAllowed, RDSUserAddAllowed, RDSUserEditAllowed, RDSUserRemoveAllowed,          
  WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed, WorkfoldersManageAllowed, WorkfoldersAddAllowed, WorkfoldersEditAllowed,         
  WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed,EditCustomerResourcesAllowed, SyncFromBackendAllowed, ExchangeRBACManageAllowed,          
  MailboxAuditLogManagementAllowed,AllowToManageVLAN,AllowToEnableDisable2FA, AllowResellerToProcessSQ, AllowAutoSQProcessing, AllowExportMailboxPermissions,         
  AllowToAddUserMailbox, O365SPManagementAllowed,          
 ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit,          
 ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit         
 ,AllowPSTExport,AllowPSTImport ,AllowToManageGroupMembership, AllowToEditCustomAttributes, ShowADReports, ShowExchReports, ShowSkype4BReports,          
 ShowCSPReports, ShowSharePointReports, ShowCRMReports, ShowVPSReports, ShowRDSReports, ShowWFReports, ShowWebHostingReports,          
 AllowVoiceManagement, ShowVoiceBilling, ShowAddons, ShowDomains, ShowAccounts, ShowTrunks, ShowCloudPBX, ShowPhoneNumber, AllowToAddPhoneNumbers,        
 AllowNumberPorting, ShowForwarding, ShowFilterLists, ShowDirectRouting, ShowCallRecords, ShowDestinations, ShowVoiceReports, QuickMigrationAllowed,          
 LiveMigrationAllowed, ChangeBandwidthAllowed, ShowDiskManagement, ShowISOImageManagement, ShowNICManagement,          
 AllowWebHostingManage, WebAccountsManageAllowed, DedicatedIPManageAllowed, WebHostingAccounts, DNSOnlyHostingAccounts, DBOnlyHostingAccounts,         
 MailOnlyHostingAccounts, TempURLManageAllowed, MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed , ManageTeamNumbers,          
 ManagePendingVerificationDomain ,ManageVerifiedDomain, DigiCertSSLManageAllowed, ShowVMCredsInWHMCS,          
AllowManageDomainNameProds, AllowManageMiscProds, AllowManageDedicatedProds, AllowChangingMailboxType, AllowToManageInPlaceHold,          
AllowToManageEmailAddresses, AllowToConfigureLinkedADSettings, DomainNameManageAllowed, ContactManageAllowed, ContactAddAllowed, ContactEditAllowed, ContactRemoveAllowed,          
LockUnLockManageAllowed, DomainNameServerManageAllowed, CustomNameServerManageAllowed, TransferCodeManageAllowed, DomainDNSManageAllowed,          
CustomerImportAllowed, CustomerExportAllowed ,AllowCustomerDeletion,ShowBillingToCustomer          
,AllowToManageNICMACAddress,AllowToManageBandwidthDetail, AllowToChangePassword,AllowToSyncVM,AllowToManageBootOrder, MailUserManagementAllowed  ,AllowContactTab,        
DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice, AllowToUpdatePasswordSettings,        
ExchSignatureManage, MailFlowMoniteringAllowed, ExchTransportRulesManage, ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription, AllowToCancelADSubscription, AllowToCancelDomainSubscription, AllowToCancelCRMSubscription, AllowToCancelExchangeSubscription,         
AllowToCancelSPSubscription, AllowToCancelOCSSubscription, AllowToCancelVPSSubscription, AllowToCancelCSPSubscription, AllowToCancelRDSSubscription,        
AllowToCancelWFSubscription, AllowToCancelVoiceSubscription, AllowToManageADUserCertificates, OWAPolicyManagementAllowed, AddOWAPolicyAllowed,       
RecoveryManagementAllowed, ManageRecycleBin ,AllowGeneralSection, AllowToEditADOrg, AllowToManageADGroupAction, AllowToExportADUsers,     
AllowTrunOnOffVM, AllowShutDownVM, AllowResetHardVM, AllowSuspendResumeVM, AllowManageWebConsoleVM, AllowResetHNVSettingsVM, AllowShieldUnShieldVM,     
AllowToExportMailboxes, AllowToExportADGroups, ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox, ManageExchMailboxDevices,   
SDNManagementAllowed, ManageADUserReports, ManageADGroupReports, ExchangeAllowUsageReportsView, ExchangeAllowSubscriptionsReportView, 
ExchangeAllowOtherReportsView, ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView, AllowVirtualMachinesUsageReportView, 
AllowVirtualMachinesUpTimeReport    
from Hb_tblAccessTemplates where TemplateId=@TemplateId    
    
  Update HB_tblSystemSettings SET         
  BillingOn = isnull((Select EnableResellerBillingModule from Hb_tblAccessTemplates where TemplateId=@TemplateId and EnableResellerBillingModule='1'), BillingOn)          
  Where CompanyId = @CompanyId and WHMCSEnabled = '0'          
  Update HB_tblSystemSettings SET         
  HelpDeskEnabled = isnull((Select EnableResellerHelpDeskModule from Hb_tblAccessTemplates where TemplateId=@TemplateId and EnableResellerHelpDeskModule='1'), HelpDeskEnabled)          
  Where CompanyId = @CompanyId          
END         
GO

ALTER PROCEDURE SP_EM_InsertCustomerAccessTemplate        
(@CustomerId as int, @TemplateId as int)        
AS       
BEGIN       
INSERT INTO HB_tblCustomerAccessTemplate        
  (       
  [TemplateId], [CustomerId], [CPAccess], [CPWhiteLabel], [SubDomains], [DomainAlias], [DomainLimits], [IISAppPool], [FTPUsers], [RenameDomain], [DomainDeletion], [DomainTurnOff],        
  [URlRedirection], [DefaultDoc], [CustomError], [MIMEType], [VirtualFolders], [FrontPageExt], [ASPScripting], [ASPNetScripting], [PHPScripting], [PerlScripting], [ColdFusionScripting],        
  [Databases], [ODBCDSN], [FileManager], [SSLCert], [SharedSSL], [WebsiteStats], [DNSZone], [MailDomains], [EmailAccounts], [EmailLists], [EmailGroups], [ResellerTemplate],        
  [ResourceOverSell], [CustomButtons], [TemplateName], ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC, ClientCanEditProfile, ClientCanBuyServicesinCCC ,        
  OrgRemoveAllowed, ExchDomainManagement, ExchDomainAdd, ExchDomainRemove, ExchDomainEdit, ExchPublicFolderManage, ExchWirelessManage, ExchDisclaimerManage, ExchRetentionManage,        
  ExchMobileDevicePolicy, ExchMailboxPermissions, ExchMailboxRemove, ExchLitigationHold, ExchLinkedMBManage, ExchSharedMBManage, ExchRoomMBManage, ExchEquipmentMBManage,        
  ExchMailFlowSettings, ExchaForwardingManage, ExchLimitsManage, ExchRestrictionsManage, ExchMBPermissionManage, ExchMBAdvanceManage, ExchStorageQuotaManage, ExchMBFeaturesManage,        
  ExchMBPersonalArchive, ExchUMManage, ExchAutoReplyManage, ADOrganizationRemove, ADSecurityGroupManage, ADSecurityGroupAdd, ADSecurityGroupRemove, ADUserAdd, ADUserRemove,        
  ADManage, ExchSPAMFilterManage, ExchJournaling, ExchDLAdvanceManage, ExchDLSendAsManage, ExchManagement, ExchMBEnableDisable,        
  LyncDomainManage, LyncDomainAdd, LyncDomainRemove, LyncDomainSetDefault, LyncUserManage, LyncUserAdd, LyncUserAddBulk,        
  LyncUserRemove, LyncUserEdit, LyncUserAllowUM, LyncUserEnableDisable, LyncUserGroupActions, LyncFederationManage, LyncFederationAdd,        
  LyncFederationRemove, LyncFederationEdit, LyncFederationSync, LyncPhoneNumberManage, LyncResponseGroupManage,        
  LyncPersistentChatManage, LyncShowCallReport, LyncShowConfCallReport, LyncShowCallBilling, ShowNotification, AllowLyncManage,        
  AllowADOrgSync, ADUserEdit, ShowOverDueInvoices, ShowBilling, ExchDeleteItemRetention, ExchMBCalanderManage, DownloadOutlookProfile,        
  ShowAuditLogs, RunGroupJob, ADUserAutoDelete, AllowO365Management, AllowToManageTenants, AllowToAddNewTenants, AllowToEditExistingTenants,        
  AllowToRemoveTenant, AllowToManageO365Domains, AllowToSetO365DomainDefaultState, AllowToRemoveO365Domain, AllowtoManageO365Users, AllowToAddNewO365Users,        
  AllowToEditExistingO365Users, AllowToRemoveO365User, AllowToManageO365SharedMbx, AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx,        
  AllowToRemoveO365SharedMbx, AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx, AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx,        
  AllowToManageO365Contacts, AllowToAddNewO365Contacts, AllowToEditExistingO365Contacts, AllowToRemoveO365Contact, AllowToManageO365Groups, AllowToAddNewO365Groups,        
  AllowToEditExistingO365Groups, AllowToRemoveO365Group, AllowToManageO365GroupJobs, AllowToRunO365GroupJob, AllowToCancelO365GroupJob, ExchApplicationImpersonation,        
  ExchMailBoxMobileDevices, EnableResellerAPIAccess, EnableResellerBillingModule, EnableResellerHelpDeskModule, ResellerAbilityForHelpDeskModule, EnableADSyncAllowed       
  , ShowADProfileTab, EditADProfileAllowed, ShowDomainUserName, AllowAddOnCancel, AllowCustomMBTemplate, AllowAddOnEdit        
  , AllowEmailAddress , AllowToSetPassword  ,AllowtoDistributionListMembership ,AllowCustomerToChangePassword ,AllowContactToChangePassword        
  ,AllowVPSManagement ,AllowtoAddVM ,AllowtoRemoveVM ,Allowtomanagemachineoperations,Allowtochangehostname,Allowtochangememorysettings,Allowtochangevirtualprocessors       
  ,Allowtomanagesnapshots,Allowtochangesnapshotlimit,Allowtoadddisk ,Allowtoremovedisk,Allowtoexpanddisk,AllowtoaddNIC,AllowtomanageNIC ,AllowtoremoveNIC       
  ,AllowCustomSettings,AllowPSTDownload,        
  AllowSPManagement, AllowSPFrontEndBbindings, AllowSPPortalEdit, AllowSPDomainManage, AllowSPDomainAdd, AllowSPDomainRemove,        
  AllowSPDomainEdit, AllowSPPermLevelManage, AllowSPPermLevelAdd, AllowSPPermLevelEdit, AllowSPPermLevelRemove, AllowSPGroupsManage,        
  AllowSPGroupsAdd, AllowSPGroupsEdit, AllowSPGroupsRemove, AllowSPUsersManage, AllowSPUsersAdd, AllowSPUsersEdit, AllowSPUsersRemove, AllowSPUsersGroupAction,        
  AllowCRMManagement, AllowCRMSync, AllowCRMDomainsManage, AllowCRMDomainsAdd, AllowCRMDomainsRemove, AllowCRMDomainsEdit,        
  AllowCRMBUManage, AllowCRMBUAdd, AllowCRMBURemove, AllowCRMBUEdit, AllowCRMUsersManage, AllowCRMUsersAdd, AllowCRMUsersEdit, AllowCRMUsersRemove, AllowCRMUsersGroupAction,        
  ExchPublicFolderAdd ,ExchPublicFolderEdit ,ExchPublicFolderRemove,ExchMailContactManagement,ExchMailContactAdd,ExchMailContactEdit,ExchMailContactRemove,        
  ExchDLManagement,ExchDLAdd, ExchDLEdit,ExchDLMsgApprovalEdit, ExchDLRemoveListMembers,ExchDLEmailManagement,ExchDLAddEmailAddress,        
  ExchDLEditEmailAddress,ExchDLRemoveEmailAddress,ExchDLRemove,        
  RDSManageAllowed, RDSPolicyManageAllowed, RDSPolicyAddAllowed, RDSPolicyEditAllowed, RDSPolicyRemoveAllowed, RDSUserManageAllowed, RDSUserAddAllowed, RDSUserEditAllowed, RDSUserRemoveAllowed,        
  WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed, WorkfoldersManageAllowed, WorkfoldersAddAllowed, WorkfoldersEditAllowed,       
  WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed, SyncFromBackendAllowed, ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed,AllowToManageVLAN,        
  AllowToEnableDisable2FA, AllowResellerToProcessSQ, AllowAutoSQProcessing, AllowExportMailboxPermissions, AllowToAddUserMailbox, O365SPManagementAllowed,        
 ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit,        
 ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit        
 ,AllowPSTExport,AllowPSTImport,AllowToManageGroupMembership, AllowToEditCustomAttributes, ShowADReports, ShowExchReports, ShowSkype4BReports,        
 ShowCSPReports, ShowSharePointReports, ShowCRMReports, ShowVPSReports, ShowRDSReports, ShowWFReports, ShowWebHostingReports,        
 AllowVoiceManagement, ShowVoiceBilling, ShowAddons, ShowDomains, ShowAccounts, ShowTrunks, ShowCloudPBX, ShowPhoneNumber, AllowToAddPhoneNumbers,        
 AllowNumberPorting, ShowForwarding, ShowFilterLists, ShowDirectRouting, ShowCallRecords, ShowDestinations, ShowVoiceReports, QuickMigrationAllowed,        
 LiveMigrationAllowed, ChangeBandwidthAllowed, ShowDiskManagement, ShowISOImageManagement, ShowNICManagement,        
 AllowWebHostingManage, WebAccountsManageAllowed, DedicatedIPManageAllowed, WebHostingAccounts, DNSOnlyHostingAccounts, DBOnlyHostingAccounts,       
 MailOnlyHostingAccounts, TempURLManageAllowed, MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed,ManageTeamNumbers,        
 ManagePendingVerificationDomain ,ManageVerifiedDomain, DigiCertSSLManageAllowed, ShowVMCredsInWHMCS,       
AllowManageDomainNameProds, AllowManageMiscProds, AllowManageDedicatedProds, AllowChangingMailboxType, AllowToManageInPlaceHold, AllowToManageEmailAddresses,        
AllowToConfigureLinkedADSettings, DomainNameManageAllowed, ContactManageAllowed, ContactAddAllowed, ContactEditAllowed, ContactRemoveAllowed,        
LockUnLockManageAllowed, DomainNameServerManageAllowed, CustomNameServerManageAllowed, TransferCodeManageAllowed, DomainDNSManageAllowed,        
CustomerImportAllowed, CustomerExportAllowed ,AllowCustomerDeletion,ShowBillingToCustomer       
,AllowToManageNICMACAddress,AllowToManageBandwidthDetail, AllowToChangePassword,AllowToSyncVM,AllowToManageBootOrder, MailUserManagementAllowed  ,AllowContactTab,      
DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice, AllowToUpdatePasswordSettings,      
ExchSignatureManage, MailFlowMoniteringAllowed, ExchTransportRulesManage, ShowHelpdeskToCustomer,      
AllowToCancelWebSubscription, AllowToCancelADSubscription, AllowToCancelDomainSubscription, AllowToCancelCRMSubscription, AllowToCancelExchangeSubscription,       
AllowToCancelSPSubscription, AllowToCancelOCSSubscription, AllowToCancelVPSSubscription, AllowToCancelCSPSubscription, AllowToCancelRDSSubscription,      
AllowToCancelWFSubscription, AllowToCancelVoiceSubscription,AllowToManageADUserCertificates, OWAPolicyManagementAllowed, AddOWAPolicyAllowed,     
RecoveryManagementAllowed, ManageRecycleBin ,AllowGeneralSection, AllowToEditADOrg, AllowToManageADGroupAction, AllowToExportADUsers,     
AllowTrunOnOffVM, AllowShutDownVM, AllowResetHardVM, AllowSuspendResumeVM, AllowManageWebConsoleVM, AllowResetHNVSettingsVM, AllowShieldUnShieldVM,     
AllowToExportMailboxes, AllowToExportADGroups, ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox, ManageExchMailboxDevices,   
SDNManagementAllowed, ManageADUserReports, ManageADGroupReports, ExchangeAllowUsageReportsView, ExchangeAllowSubscriptionsReportView, 
ExchangeAllowOtherReportsView, ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView, AllowVirtualMachinesUsageReportView, 
AllowVirtualMachinesUpTimeReport    
)        
        
 select        
 @TemplateId, @CustomerId, CPAccess, CPWhiteLabel, SubDomains, DomainAlias, DomainLimits, IISAppPool, FTPUsers, RenameDomain, DomainDeletion, DomainTurnOff, URlRedirection,        
 DefaultDoc, CustomError, MIMEType, VirtualFolders, FrontPageExt, ASPScripting, ASPNetScripting, PHPScripting, PerlScripting, ColdFusionScripting, Databases, ODBCDSN,        
 FileManager, SSLCert, SharedSSL, WebsiteStats, DNSZone, MailDomains, EmailAccounts, EmailLists, EmailGroups, ResellerTemplate, ResourceOverSell, CustomButtons, TemplateName,        
 ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC, ClientCanEditProfile, ClientCanBuyServicesinCCC, OrgRemoveAllowed, ExchDomainManagement, ExchDomainAdd,        
 ExchDomainRemove, ExchDomainEdit, ExchPublicFolderManage, ExchWirelessManage, ExchDisclaimerManage, ExchRetentionManage, ExchMobileDevicePolicy, ExchMailboxPermissions,        
 ExchMailboxRemove, ExchLitigationHold, ExchLinkedMBManage, ExchSharedMBManage, ExchRoomMBManage, ExchEquipmentMBManage, ExchMailFlowSettings, ExchaForwardingManage,        
 ExchLimitsManage, ExchRestrictionsManage, ExchMBPermissionManage, ExchMBAdvanceManage, ExchStorageQuotaManage, ExchMBFeaturesManage, ExchMBPersonalArchive, ExchUMManage,        
 ExchAutoReplyManage, ADOrganizationRemove, ADSecurityGroupManage, ADSecurityGroupAdd, ADSecurityGroupRemove, ADUserAdd, ADUserRemove, ADManage, ExchSPAMFilterManage,        
 ExchJournaling, ExchDLAdvanceManage, ExchDLSendAsManage, ExchManagement, ExchMBEnableDisable, LyncDomainManage, LyncDomainAdd, LyncDomainRemove, LyncDomainSetDefault,        
 LyncUserManage, LyncUserAdd, LyncUserAddBulk, LyncUserRemove, LyncUserEdit, LyncUserAllowUM, LyncUserEnableDisable, LyncUserGroupActions, LyncFederationManage,        
 LyncFederationAdd, LyncFederationRemove, LyncFederationEdit, LyncFederationSync, LyncPhoneNumberManage, LyncResponseGroupManage,        
  LyncPersistentChatManage, LyncShowCallReport, LyncShowConfCallReport, LyncShowCallBilling, ShowNotification, AllowLyncManage,        
  AllowADOrgSync, ADUserEdit, ShowOverDueInvoices, ShowBilling, ExchDeleteItemRetention, ExchMBCalanderManage, DownloadOutlookProfile,        
  ShowAuditLogs, RunGroupJob, ADUserAutoDelete, AllowO365Management, AllowToManageTenants, AllowToAddNewTenants, AllowToEditExistingTenants,        
  AllowToRemoveTenant, AllowToManageO365Domains, AllowToSetO365DomainDefaultState, AllowToRemoveO365Domain, AllowtoManageO365Users, AllowToAddNewO365Users,        
  AllowToEditExistingO365Users, AllowToRemoveO365User, AllowToManageO365SharedMbx, AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx,        
  AllowToRemoveO365SharedMbx, AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx, AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx,        
  AllowToManageO365Contacts, AllowToAddNewO365Contacts, AllowToEditExistingO365Contacts, AllowToRemoveO365Contact, AllowToManageO365Groups, AllowToAddNewO365Groups,        
  AllowToEditExistingO365Groups, AllowToRemoveO365Group, AllowToManageO365GroupJobs, AllowToRunO365GroupJob, AllowToCancelO365GroupJob, ExchApplicationImpersonation,        
  ExchMailBoxMobileDevices, EnableResellerAPIAccess, EnableResellerBillingModule, EnableResellerHelpDeskModule, ResellerAbilityForHelpDeskModule, EnableADSyncAllowed        
  , ShowADProfileTab, EditADProfileAllowed, ShowDomainUserName, AllowAddOnCancel, AllowCustomMBTemplate, AllowAddOnEdit        
  , AllowEmailAddress , AllowToSetPassword  ,AllowtoDistributionListMembership ,AllowCustomerToChangePassword ,AllowContactToChangePassword       
  ,AllowVPSManagement ,AllowtoAddVM ,AllowtoRemoveVM ,Allowtomanagemachineoperations,Allowtochangehostname,Allowtochangememorysettings,Allowtochangevirtualprocessors       
  ,Allowtomanagesnapshots,Allowtochangesnapshotlimit,Allowtoadddisk ,Allowtoremovedisk,Allowtoexpanddisk,AllowtoaddNIC,AllowtomanageNIC ,AllowtoremoveNIC       
  ,AllowCustomSettings,AllowPSTDownload,    AllowSPManagement, AllowSPFrontEndBbindings, AllowSPPortalEdit, AllowSPDomainManage, AllowSPDomainAdd, AllowSPDomainRemove,        
  AllowSPDomainEdit, AllowSPPermLevelManage, AllowSPPermLevelAdd, AllowSPPermLevelEdit, AllowSPPermLevelRemove, AllowSPGroupsManage,        
  AllowSPGroupsAdd, AllowSPGroupsEdit, AllowSPGroupsRemove, AllowSPUsersManage, AllowSPUsersAdd, AllowSPUsersEdit, AllowSPUsersRemove, AllowSPUsersGroupAction,        
  AllowCRMManagement, AllowCRMSync, AllowCRMDomainsManage, AllowCRMDomainsAdd, AllowCRMDomainsRemove, AllowCRMDomainsEdit,        
  AllowCRMBUManage, AllowCRMBUAdd, AllowCRMBURemove, AllowCRMBUEdit, AllowCRMUsersManage, AllowCRMUsersAdd, AllowCRMUsersEdit, AllowCRMUsersRemove, AllowCRMUsersGroupAction,        
  ExchPublicFolderAdd ,ExchPublicFolderEdit ,ExchPublicFolderRemove,ExchMailContactManagement,ExchMailContactAdd,ExchMailContactEdit,ExchMailContactRemove,        
  ExchDLManagement,ExchDLAdd, ExchDLEdit,ExchDLMsgApprovalEdit, ExchDLRemoveListMembers,ExchDLEmailManagement,ExchDLAddEmailAddress,        
  ExchDLEditEmailAddress,ExchDLRemoveEmailAddress,ExchDLRemove,        
  RDSManageAllowed, RDSPolicyManageAllowed, RDSPolicyAddAllowed, RDSPolicyEditAllowed, RDSPolicyRemoveAllowed, RDSUserManageAllowed, RDSUserAddAllowed, RDSUserEditAllowed, RDSUserRemoveAllowed,        
  WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed, WorkfoldersManageAllowed, WorkfoldersAddAllowed, WorkfoldersEditAllowed,       
  WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed, SyncFromBackendAllowed, ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed,AllowToManageVLAN,        
  AllowToEnableDisable2FA, AllowResellerToProcessSQ, AllowAutoSQProcessing, AllowExportMailboxPermissions, AllowToAddUserMailbox, O365SPManagementAllowed,        
 ExchAllowExternalRelayDomainManage, ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove, ExchAllowExternalRelayDomainEdit,        
 ExchAllowInternalRelayDomainManage, ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove, ExchAllowInternalRelayDomainEdit       
 ,AllowPSTExport,AllowPSTImport ,AllowToManageGroupMembership, AllowToEditCustomAttributes, ShowADReports, ShowExchReports, ShowSkype4BReports,        
 ShowCSPReports, ShowSharePointReports, ShowCRMReports, ShowVPSReports, ShowRDSReports, ShowWFReports, ShowWebHostingReports,        
 AllowVoiceManagement, ShowVoiceBilling, ShowAddons, ShowDomains, ShowAccounts, ShowTrunks, ShowCloudPBX, ShowPhoneNumber, AllowToAddPhoneNumbers,        
 AllowNumberPorting, ShowForwarding, ShowFilterLists, ShowDirectRouting, ShowCallRecords, ShowDestinations, ShowVoiceReports, QuickMigrationAllowed,        
 LiveMigrationAllowed, ChangeBandwidthAllowed, ShowDiskManagement, ShowISOImageManagement, ShowNICManagement,        
 AllowWebHostingManage, WebAccountsManageAllowed, DedicatedIPManageAllowed, WebHostingAccounts, DNSOnlyHostingAccounts, DBOnlyHostingAccounts,        
 MailOnlyHostingAccounts, TempURLManageAllowed, MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed, ManageTeamNumbers       
 ,ManagePendingVerificationDomain ,ManageVerifiedDomain, DigiCertSSLManageAllowed, ShowVMCredsInWHMCS,       
AllowManageDomainNameProds, AllowManageMiscProds, AllowManageDedicatedProds, AllowChangingMailboxType, AllowToManageInPlaceHold, AllowToManageEmailAddresses,        
AllowToConfigureLinkedADSettings, DomainNameManageAllowed, ContactManageAllowed, ContactAddAllowed, ContactEditAllowed, ContactRemoveAllowed,        
LockUnLockManageAllowed, DomainNameServerManageAllowed, CustomNameServerManageAllowed, TransferCodeManageAllowed, DomainDNSManageAllowed,        
CustomerImportAllowed, CustomerExportAllowed ,AllowCustomerDeletion,ShowBillingToCustomer        
,AllowToManageNICMACAddress,AllowToManageBandwidthDetail, AllowToChangePassword,AllowToSyncVM,AllowToManageBootOrder, MailUserManagementAllowed  ,AllowContactTab,      
DeleteSPAMExpertsFilterting, EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication, GenerateRenewalInvoice, AllowToUpdatePasswordSettings,      
ExchSignatureManage, MailFlowMoniteringAllowed, ExchTransportRulesManage, ShowHelpdeskToCustomer,      
AllowToCancelWebSubscription, AllowToCancelADSubscription, AllowToCancelDomainSubscription, AllowToCancelCRMSubscription, AllowToCancelExchangeSubscription,       
AllowToCancelSPSubscription, AllowToCancelOCSSubscription, AllowToCancelVPSSubscription, AllowToCancelCSPSubscription, AllowToCancelRDSSubscription,      
AllowToCancelWFSubscription, AllowToCancelVoiceSubscription, AllowToManageADUserCertificates, OWAPolicyManagementAllowed, AddOWAPolicyAllowed,     
RecoveryManagementAllowed, ManageRecycleBin ,AllowGeneralSection, AllowToEditADOrg, AllowToManageADGroupAction, AllowToExportADUsers,     
AllowTrunOnOffVM, AllowShutDownVM, AllowResetHardVM, AllowSuspendResumeVM, AllowManageWebConsoleVM, AllowResetHNVSettingsVM, AllowShieldUnShieldVM,     
AllowToExportMailboxes, AllowToExportADGroups, ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox, ManageExchMailboxDevices,   
SDNManagementAllowed, ManageADUserReports, ManageADGroupReports, ExchangeAllowUsageReportsView, ExchangeAllowSubscriptionsReportView, 
ExchangeAllowOtherReportsView, ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView, AllowVirtualMachinesUsageReportView, 
AllowVirtualMachinesUpTimeReport    
  from Hb_tblAccessTemplates where TemplateId=@TemplateId        
        
Exec SPR_UpdateChildPermissionsAsPerParent        
END      
GO

ALTER PROCEDURE SP_EM_UpdateCustomerAccessTemplate         
(@CustomerId_1 [INT], @TemplateId [INT], @CPAccess_2 [BIT], @CPWhiteLabel_3 [BIT], @SubDomains_4 [BIT], @DomainAlias_5  [BIT], @DomainLimits_6 [BIT], @IISAppPool_7 [BIT],         
 @FTPUsers_8 [BIT], @RenameDomain_9 [BIT], @DomainDeletion_10  [BIT], @DomainTurnOff_11 [BIT], @URlRedirection_12  [BIT], @DefaultDoc_13  [BIT], @CustomError_14 [BIT],         
 @MIMEType_15  [BIT], @VirtualFolders_16  [BIT], @FrontPageExt_17  [BIT], @ASPScripting_18  [BIT], @ASPNetScripting_19 [BIT], @PHPScripting_20  [BIT], @PerlScripting_21 [BIT],         
 @ColdFusionScripting_22 [BIT], @Databases_23 [BIT], @ODBCDSN_24 [BIT], @FileManager_25 [BIT], @SSLCert_26 [BIT], @SharedSSL_27 [BIT], @WebsiteStats_28  [BIT], @DNSZone_29 [BIT],         
 @MailDomains_30 [BIT], @EmailAccounts_31 [BIT], @EmailLists_32  [BIT], @EmailGroups_33 [BIT], @ResellerTemplate_34  [BIT], @ResourceOverSell_35  [BIT], @CustomButtons_36 [BIT],         
 @ClientCanUpgradeDownGradePackage BIT, @AddonsPurchaseAllowedinCCC BIT, @ClientCanEditProfile BIT, @ClientCanBuyServicesinCCC  BIT, @ORGRemoveAllowed BIT, @ExchDomainManagement BIT,         
 @ExchDomainAdd  BIT, @ExchDomainRemove BIT, @ExchDomainEdit BIT, @ExchPublicFolderManage BIT, @ExchWirelessManage BIT, @ExchDisclaimerManage BIT, @ExchRetentionManage  BIT,         
 @ExchMobileDevicePolicy BIT, @ExchMailboxPermissions BIT, @ExchMailboxRemove  BIT, @ExchLitigationHold BIT, @ExchLinkedMBManage BIT, @ExchSharedMBManage BIT,         
 @ExchRoomMBManage BIT, @ExchEquipmentMBManage  BIT, @ExchMailFlowSettings BIT, @ExchaForwardingManage  BIT, @ExchLimitsManage  BIT, @ExchRestrictionsManage BIT,         
 @ExchMBPermissionManage BIT, @ExchMBAdvanceManage  BIT, @ExchStorageQuotaManage BIT, @ExchMBFeaturesManage BIT, @ExchMBPersonalArchive BIT,  @ExchUMManage BIT,         
 @ExchAutoReplyManage  BIT, @ADOrganizationRemove BIT, @ADSecurityGroupManage  BIT, @ADSecurityGroupAdd BIT, @ADSecurityGroupRemove  BIT, @ADUserAdd  BIT, @ADUserRemove BIT,         
 @ADManage BIT, @ExchSPAMFilterManage BIT, @ExchJournaling BIT, @ExchDLAdvanceManage  BIT, @ExchDLSendAsManage BIT, @ExchManagement BIT, @ExchMBEnableDisable  BIT,         
 @LyncDomainManage BIT, @LyncDomainAdd  BIT, @LyncDomainRemove BIT, @LyncDomainSetDefault BIT, @LyncUserManage BIT, @LyncUserAdd  BIT, @LyncUserAddBulk  BIT,         
 @LyncUserRemove BIT, @LyncUserEdit BIT, @LyncUserAllowUM  BIT, @LyncUserEnableDisable  BIT, @LyncUserGroupActions BIT, @LyncFederationManage BIT, @LyncFederationAdd  BIT,         
 @LyncFederationRemove BIT, @LyncFederationEdit BIT, @LyncFederationSync BIT, @LyncPhoneNumberManage  BIT, @LyncResponseGroupManage  BIT, @LyncPersistentChatManage BIT,         
 @LyncShowCallReport BIT, @LyncShowConfCallReport BIT, @LyncShowCallBilling  BIT, @ShowNotification BIT, @AllowLyncManage  BIT, @AllowADOrgSync BIT, @ADUserEdit BIT,         
 @ShowOverDueInvoices  BIT, @ShowBilling  BIT, @ExchDeleteItemRetention  BIT, @ExchMBCalanderManage BIT, @DownloadOutlookProfile BIT, @ShowAuditLogs  BIT, @RunGroupJob  BIT,         
 @ADUserAutoDelete BIT, @AllowO365Management  BIT, @AllowToManageTenants BIT, @AllowToAddNewTenants BIT, @AllowToEditExistingTenants BIT, @AllowToRemoveTenant  BIT,         
 @AllowToManageO365Domains BIT, @AllowToSetO365DomainDefaultState BIT, @AllowToRemoveO365Domain  BIT, @AllowtoManageO365Users BIT, @AllowToAddNewO365Users BIT,         
 @AllowToEditExistingO365Users BIT, @AllowToRemoveO365User  BIT, @AllowToManageO365SharedMbx BIT, @AllowToAddNewO365SharedMbx BIT, @AllowToEditExistingO365SharedMbx BIT,         
 @AllowToRemoveO365SharedMbx BIT, @AllowToManageResourceMbx BIT, @AllowToAddNewO365ResourceMbx BIT, @AllowToEditExistingO365ResourceMbx BIT, @AllowToRemoveO365ResourceMbx BIT,         
 @AllowToManageO365Contacts  BIT, @AllowToAddNewO365Contacts  BIT, @AllowToEditExistingO365Contacts  BIT, @AllowToRemoveO365Contact BIT, @AllowToManageO365Groups  BIT,         
 @AllowToAddNewO365Groups  BIT, @AllowToEditExistingO365Groups  BIT, @AllowToRemoveO365Group BIT, @AllowToManageO365GroupJobs BIT, @AllowToRunO365GroupJob BIT,         
 @AllowToCancelO365GroupJob  BIT, @ExchApplicationImpersonation BIT, @ExchMailBoxMobileDevices BIT, @EnableResellerAPIAccess  BIT, @EnableResellerBillingModule  BIT,         
 @EnableResellerHelpDeskModule BIT, @ResellerAbilityForHelpDeskModule BIT, @EnableADSyncAllowed  BIT, @ShowADProfileTab BIT, @EditADProfileAllowed BIT,         
 @ShowDomainUserName  BIT, @AllowAddOnCancel BIT, @AllowCustomMBTemplate  BIT, @AllowAddOnEdit BIT, @AllowVPSManagement BIT, @AllowtoAddVM BIT, @AllowtoRemoveVM  BIT,          
 @Allowtomanagemachineoperations BIT, @Allowtochangehostname  BIT, @Allowtochangememorysettings  BIT, @Allowtochangevirtualprocessors BIT, @Allowtomanagesnapshots BIT,         
 @Allowtochangesnapshotlimit BIT, @Allowtoadddisk BIT, @Allowtoremovedisk  BIT, @Allowtoexpanddisk  BIT, @AllowtoaddNIC  BIT, @AllowtomanageNIC BIT, @AllowtoremoveNIC BIT,         
 @AllowEmailAddress  BIT, @AllowToSetPassword BIT, @AllowtoDistributionListMembership  BIT, @AllowCustomerToChangePassword  BIT, @AllowContactToChangePassword BIT,         
 @AllowCustomSettings  BIT, @AllowPSTDownload BIT, @AllowSPManagement  BIT, @AllowSPFrontEndBbindings BIT, @AllowSPPortalEdit  BIT,  @AllowSPDomainManage  BIT,         
 @AllowSPDomainAdd BIT, @AllowSPDomainRemove  BIT, @AllowSPDomainEdit  BIT, @AllowSPPermLevelManage BIT, @AllowSPPermLevelAdd  BIT,  @AllowSPPermLevelEdit BIT,         
 @AllowSPPermLevelRemove BIT, @AllowSPGroupsManage  BIT, @AllowSPGroupsAdd BIT, @AllowSPGroupsEdit  BIT, @AllowSPGroupsRemove  BIT, @AllowSPUsersManage BIT,         
 @AllowSPUsersAdd  BIT, @AllowSPUsersEdit BIT, @AllowSPUsersRemove BIT, @AllowSPUsersGroupAction  BIT, @AllowCRMManagement BIT, @AllowCRMSync BIT, @AllowCRMDomainsManage  BIT,         
 @AllowCRMDomainsAdd BIT, @AllowCRMDomainsRemove  BIT, @AllowCRMDomainsEdit  BIT, @AllowCRMBUManage BIT, @AllowCRMBUAdd  BIT, @AllowCRMBURemove BIT, @AllowCRMBUEdit BIT,         
 @AllowCRMUsersManage  BIT, @AllowCRMUsersAdd BIT, @AllowCRMUsersEdit  BIT, @AllowCRMUsersRemove  BIT, @AllowCRMUsersGroupAction BIT, @ExchPublicFolderAdd  BIT,         
 @ExchPublicFolderEdit BIT,  @ExchPublicFolderRemove BIT, @ExchMailContactManagement  BIT, @ExchMailContactAdd BIT, @ExchMailContactEdit  BIT, @ExchMailContactRemove  BIT,         
 @ExchDLManagement BIT, @ExchDLAdd  BIT, @ExchDLEdit BIT, @ExchDLMsgApprovalEdit  BIT, @ExchDLRemoveListMembers  BIT, @ExchDLEmailManagement  BIT, @ExchDLAddEmailAddress  BIT,         
 @ExchDLEditEmailAddress BIT, @ExchDLRemoveEmailAddress BIT, @ExchDLRemove BIT, @RDSManageAllowed BIT, @RDSPolicyManageAllowed BIT, @RDSPolicyAddAllowed BIT,         
 @RDSPolicyEditAllowed BIT, @RDSPolicyRemoveAllowed BIT, @RDSUserManageAllowed BIT, @RDSUserAddAllowed  BIT, @RDSUserEditAllowed BIT, @RDSUserRemoveAllowed BIT,         
 @WorkfolderHostingManageAllowed BIT, @WorkfolderOrgManageAllowed BIT, @WorkfoldersManageAllowed BIT, @WorkfoldersAddAllowed  BIT, @WorkfoldersEditAllowed BIT,          
 @WorkfoldersRemoveAllowed BIT, @WorkfoldersSyncAllowed BIT, @EditCustomerResourcesAllowed BIT, @SyncFromBackendAllowed BIT, @ExchangeRBACManageAllowed  BIT,         
 @MailboxAuditLogManagementAllowed BIT, @AllowToManageVLAN  BIT, @AllowToEnableDisable2FA  BIT,  @AllowResellerToProcessSQ BIT, @AllowAutoSQProcessing  BIT,         
 @AllowExportMailboxPermissions  BIT, @AllowToAddUserMailbox  BIT, @O365SPManagementAllowed  BIT, @ExchAllowExternalRelayDomainManage BIT, @ExchAllowExternalRelayDomainAdd  BIT,         
 @ExchAllowExternalRelayDomainRemove BIT, @ExchAllowExternalRelayDomainEdit BIT, @ExchAllowInternalRelayDomainManage BIT, @ExchAllowInternalRelayDomainAdd  BIT,         
 @ExchAllowInternalRelayDomainRemove BIT, @ExchAllowInternalRelayDomainEdit BIT, @AllowPSTExport BIT, @AllowPSTImport BIT, @AllowToManageGroupMembership BIT,         
 @AllowToEditCustomAttributes  BIT, @ShowADReports  BIT, @ShowExchReports  BIT, @ShowSkype4BReports BIT, @ShowCSPReports  BIT, @ShowSharePointReports  BIT,          
 @ShowCRMReports  BIT, @ShowVPSReports  BIT, @ShowRDSReports  BIT, @ShowWFReports  BIT, @ShowWebHostingReports BIT, @AllowVoiceManagement  BIT, @ShowVoiceBilling BIT,          
 @ShowAddons BIT, @ShowDomains  BIT, @ShowAccounts  BIT, @ShowTrunks BIT, @ShowCloudPBX  BIT, @ShowPhoneNumber  BIT, @AllowToAddPhoneNumbers  BIT, @AllowNumberPorting BIT,          
 @ShowForwarding BIT, @ShowFilterLists  BIT, @ShowDirectRouting  BIT, @ShowCallRecords  BIT, @ShowDestinations  BIT, @ShowVoiceReports BIT, @QuickMigrationAllowed bit,        
 @LiveMigrationAllowed bit,@ChangeBandwidthAllowed  bit, @ShowDiskManagement bit, @ShowISOImageManagement  bit, @ShowNICManagement  bit, @AllowWebHostingManage bit,         
 @WebAccountsManageAllowed bit, @DomainAddAllowed bit, @DomainEditAllowed bit, @DedicatedIPManageAllowed bit, @WebHostingAccounts bit, @DNSOnlyHostingAccounts bit,         
 @DBOnlyHostingAccounts bit, @MailOnlyHostingAccounts bit, @TempURLManageAllowed bit, @MailDomainTurnOnOffAllowed bit, @MailDomainAliasesAllowed bit , @ManageTeamNumbers bit,        
 @ManagePendingVerificationDomain BIT,@ManageVerifiedDomain BIT, @DigiCertSSLManageAllowed bit, @MailboxTemplateCreationAllowed bit, @ExportMailboxForwardingAllowed  bit,          
 @ExportDynamicDLAllowed  bit, @ExportDLToExcelAllowed  bit, @ExportMembersReportAllowed bit, @UpdateReceiptSettingAllowed bit, @ComplianceManagementAllowed bit,          
 @InPlaceHoldAllowed bit, @AuditingAllowed bit, @MoveVMAllowed bit, @SyncAllwithMicrosoftCSP bit, @SyncDomainsLicensesPoliciesAndRoles  bit, @SyncDomains  bit,          
 @SyncAllUsersWithMicrosoftCSP bit, @SyncAllContactsWithMicrosoftCSP bit, @SyncAllGroupsWithMicrosoftCSP bit, @SyncAllSharePointSitesWithMicrosoft365 bit,          
 @ShowVMCredsInWHMCS BIT, @AllowManageDomainNameProds BIT, @AllowManageMiscProds BIT, @AllowManageDedicatedProds BIT, @AllowChangingMailboxType BIT ,          
 @AllowToManageInPlaceHold BIT, @AllowToManageEmailAddresses BIT, @AllowToConfigureLinkedADSettings BIT, @DomainNameManageAllowed bit, @ContactManageAllowed bit,         
 @ContactAddAllowed bit, @ContactEditAllowed bit, @ContactRemoveAllowed bit, @LockUnLockManageAllowed bit, @DomainNameServerManageAllowed bit,         
 @CustomNameServerManageAllowed bit, @TransferCodeManageAllowed bit, @DomainDNSManageAllowed bit, @CustomerImportAllowed bit, @CustomerExportAllowed bit,        
 @AllowCustomerDeletion BIT,@ShowBillingToCustomer BIT, @AllowToManageNICMACAddress BIT, @AllowToManageBandwidthDetail BIT, @AllowToChangePassword  BIT,          
 @AllowToSyncVM BIT, @AllowToManageBootOrder BIT, @MailUserManagementAllowed BIT, @AllowContactTab BIT,         
 @DeleteSPAMExpertsFilterting BIT, @EnableDisableSPAMExpertsArchiving BIT, @AllowToManagePasswordLessAuthentication bit, @GenerateRenewalInvoice bit,        
 @AllowToUpdatePasswordSettings bit, @ExchSignatureManage bit, @MailFlowMoniteringAllowed bit, @ExchTransportRulesManage bit, @ShowHelpdeskToCustomer bit,        
 @AllowToCancelWebSubscription bit, @AllowToCancelADSubscription bit, @AllowToCancelDomainSubscription bit, @AllowToCancelCRMSubscription bit,        
 @AllowToCancelExchangeSubscription bit, @AllowToCancelSPSubscription bit, @AllowToCancelOCSSubscription bit, @AllowToCancelVPSSubscription bit,        
 @AllowToCancelCSPSubscription bit, @AllowToCancelRDSSubscription bit, @AllowToCancelWFSubscription bit, @AllowToCancelVoiceSubscription bit,      
 @AllowToManageADUserCertificates bit, @OWAPolicyManagementAllowed bit, @AddOWAPolicyAllowed bit, @RecoveryManagementAllowed bit,       
 @ManageRecycleBin bit, @AllowGeneralSection bit, @AllowToEditADOrg bit, @AllowToManageADGroupAction bit, @AllowToExportADUsers bit,     
 @AllowTrunOnOffVM bit, @AllowShutDownVM bit, @AllowResetHardVM bit, @AllowSuspendResumeVM bit, @AllowManageWebConsoleVM bit, @AllowResetHNVSettingsVM bit,     
 @AllowShieldUnShieldVM bit, @AllowToExportMailboxes bit, @AllowToExportADGroups bit,     
 @ExchEnableDisableADUsersSharedMailbox bit, @ExchEnableDisableADUsersResourceMailbox bit, @ManageExchMailboxDevices bit,   
 @SDNManagementAllowed bit, @ManageADUserReports bit, @ManageADGroupReports bit, @ExchangeAllowUsageReportsView bit, 
 @ExchangeAllowSubscriptionsReportView bit, @ExchangeAllowOtherReportsView bit, @ExchangeAdminAuditLogManagementAllowed bit, 
 @ExchangeAllowCalenderPermissionsView bit, @AllowVirtualMachinesUsageReportView bit, @AllowVirtualMachinesUpTimeReport bit    
)          
AS        
BEGIN          
UPDATE [HB_tblCustomerAccessTemplate]          
SET         
TemplateId = @TemplateId, [CPAccess] = @CPAccess_2, [CPWhiteLabel] = @CPWhiteLabel_3, [SubDomains] = @SubDomains_4, [DomainAlias] = @DomainAlias_5,         
[DomainLimits] = @DomainLimits_6, [IISAppPool] = @IISAppPool_7, [FTPUsers] = @FTPUsers_8, [RenameDomain] = @RenameDomain_9, [DomainDeletion] = @DomainDeletion_10,         
[DomainTurnOff] = @DomainTurnOff_11, [URlRedirection] = @URlRedirection_12, [DefaultDoc] = @DefaultDoc_13, [CustomError] = @CustomError_14, [MIMEType] = @MIMEType_15,         
[VirtualFolders] = @VirtualFolders_16, [FrontPageExt] = @FrontPageExt_17, [ASPScripting] = @ASPScripting_18, [ASPNetScripting] = @ASPNetScripting_19,       
[PHPScripting] = @PHPScripting_20, [PerlScripting] = @PerlScripting_21, [ColdFusionScripting] = @ColdFusionScripting_22, [Databases] = @Databases_23, [ODBCDSN] = @ODBCDSN_24,         
[FileManager] = @FileManager_25, [SSLCert] = @SSLCert_26, [SharedSSL] = @SharedSSL_27, [WebsiteStats] = @WebsiteStats_28, [DNSZone] = @DNSZone_29,         
[MailDomains] = @MailDomains_30, [EmailAccounts] = @EmailAccounts_31, [EmailLists] = @EmailLists_32, [EmailGroups] = @EmailGroups_33,         
[ResellerTemplate] = @ResellerTemplate_34, [ResourceOverSell] = @ResourceOverSell_35, [CustomButtons] = @CustomButtons_36,         
ClientCanUpgradeDownGradePackage = @ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC = @AddonsPurchaseAllowedinCCC, ClientCanEditProfile = @ClientCanEditProfile,         
ClientCanBuyServicesinCCC = @ClientCanBuyServicesinCCC, ORGRemoveAllowed = @ORGRemoveAllowed, ExchDomainManagement = @ExchDomainManagement, ExchDomainAdd = @ExchDomainAdd,         
ExchDomainRemove = @ExchDomainRemove, ExchDomainEdit = @ExchDomainEdit, ExchPublicFolderManage = @ExchPublicFolderManage, ExchWirelessManage = @ExchWirelessManage,         
ExchDisclaimerManage = @ExchDisclaimerManage, ExchRetentionManage = @ExchRetentionManage, ExchMobileDevicePolicy = @ExchMobileDevicePolicy,         
ExchMailboxPermissions = @ExchMailboxPermissions, ExchMailboxRemove = @ExchMailboxRemove, ExchLitigationHold = @ExchLitigationHold, ExchLinkedMBManage = @ExchLinkedMBManage,         
ExchSharedMBManage = @ExchSharedMBManage, ExchRoomMBManage = @ExchRoomMBManage, ExchEquipmentMBManage = @ExchEquipmentMBManage, ExchMailFlowSettings = @ExchMailFlowSettings,         
ExchaForwardingManage = @ExchaForwardingManage, ExchLimitsManage = @ExchLimitsManage, ExchRestrictionsManage = @ExchRestrictionsManage,         
ExchMBPermissionManage = @ExchMBPermissionManage, ExchMBAdvanceManage = @ExchMBAdvanceManage, ExchStorageQuotaManage = @ExchStorageQuotaManage,         
ExchMBFeaturesManage = @ExchMBFeaturesManage, ExchMBPersonalArchive = @ExchMBPersonalArchive, ExchUMManage = @ExchUMManage, ExchAutoReplyManage = @ExchAutoReplyManage,         
ADOrganizationRemove = @ADOrganizationRemove, ADSecurityGroupManage = @ADSecurityGroupManage, ADSecurityGroupAdd = @ADSecurityGroupAdd,         
ADSecurityGroupRemove = @ADSecurityGroupRemove, ADUserAdd = @ADUserAdd, ADUserRemove = @ADUserRemove, ADManage = @ADManage, ExchSPAMFilterManage = @ExchSPAMFilterManage,         
ExchJournaling = @ExchJournaling, ExchDLAdvanceManage = @ExchDLAdvanceManage, ExchDLSendAsManage = @ExchDLSendAsManage, ExchManagement = @ExchManagement,         
ExchMBEnableDisable = @ExchMBEnableDisable, LyncDomainManage = @LyncDomainManage, LyncDomainAdd = @LyncDomainAdd, LyncDomainRemove = @LyncDomainRemove,         
LyncDomainSetDefault = @LyncDomainSetDefault, LyncUserManage = @LyncUserManage, LyncUserAdd = @LyncUserAdd, LyncUserAddBulk = @LyncUserAddBulk,         
LyncUserRemove = @LyncUserRemove, LyncUserEdit = @LyncUserEdit, LyncUserAllowUM = @LyncUserAllowUM, LyncUserEnableDisable = @LyncUserEnableDisable,         
LyncUserGroupActions = @LyncUserGroupActions, LyncFederationManage = @LyncFederationManage, LyncFederationAdd = @LyncFederationAdd,         
LyncFederationRemove = @LyncFederationRemove, LyncFederationEdit = @LyncFederationEdit, LyncFederationSync = @LyncFederationSync,         
LyncPhoneNumberManage = @LyncPhoneNumberManage, LyncResponseGroupManage = @LyncResponseGroupManage, LyncPersistentChatManage = @LyncPersistentChatManage,         
LyncShowCallReport = @LyncShowCallReport, LyncShowConfCallReport = @LyncShowConfCallReport, LyncShowCallBilling = @LyncShowCallBilling, ShowNotification = @ShowNotification,          
AllowLyncManage = @AllowLyncManage, AllowADOrgSync = @AllowADOrgSync, ADUserEdit = @ADUserEdit, ShowOverDueInvoices = @ShowOverDueInvoices, ShowBilling = @ShowBilling,         
ExchDeleteItemRetention = @ExchDeleteItemRetention, ExchMBCalanderManage = @ExchMBCalanderManage, DownloadOutlookProfile = @DownloadOutlookProfile,         
ShowAuditLogs = @ShowAuditLogs, RunGroupJob = @RunGroupJob, ADUserAutoDelete = @ADUserAutoDelete, AllowO365Management = @AllowO365Management,         
AllowToManageTenants = @AllowToManageTenants, AllowToAddNewTenants = @AllowToAddNewTenants, AllowToEditExistingTenants = @AllowToEditExistingTenants,         
AllowToRemoveTenant = @AllowToRemoveTenant, AllowToManageO365Domains = @AllowToManageO365Domains, AllowToSetO365DomainDefaultState = @AllowToSetO365DomainDefaultState,         
AllowToRemoveO365Domain = @AllowToRemoveO365Domain, AllowtoManageO365Users = @AllowtoManageO365Users, AllowToAddNewO365Users = @AllowToAddNewO365Users,         
AllowToEditExistingO365Users = @AllowToEditExistingO365Users, AllowToRemoveO365User = @AllowToRemoveO365User, AllowToManageO365SharedMbx = @AllowToManageO365SharedMbx,         
AllowToAddNewO365SharedMbx = @AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx = @AllowToEditExistingO365SharedMbx,         
AllowToRemoveO365SharedMbx = @AllowToRemoveO365SharedMbx, AllowToManageResourceMbx = @AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx = @AllowToAddNewO365ResourceMbx,         
AllowToEditExistingO365ResourceMbx = @AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx = @AllowToRemoveO365ResourceMbx,         
AllowToManageO365Contacts = @AllowToManageO365Contacts, AllowToAddNewO365Contacts = @AllowToAddNewO365Contacts,         
AllowToEditExistingO365Contacts = @AllowToEditExistingO365Contacts, AllowToRemoveO365Contact = @AllowToRemoveO365Contact, AllowToManageO365Groups = @AllowToManageO365Groups,         
AllowToAddNewO365Groups = @AllowToAddNewO365Groups, AllowToEditExistingO365Groups = @AllowToEditExistingO365Groups, AllowToRemoveO365Group = @AllowToRemoveO365Group,         
AllowToManageO365GroupJobs = @AllowToManageO365GroupJobs, AllowToRunO365GroupJob = @AllowToRunO365GroupJob, AllowToCancelO365GroupJob = @AllowToCancelO365GroupJob,         
ExchApplicationImpersonation = @ExchApplicationImpersonation, ExchMailBoxMobileDevices = @ExchMailBoxMobileDevices, EnableResellerAPIAccess = @EnableResellerAPIAccess,         
EnableResellerBillingModule = @EnableResellerBillingModule, EnableResellerHelpDeskModule = @EnableResellerHelpDeskModule,         
ResellerAbilityForHelpDeskModule = @ResellerAbilityForHelpDeskModule, EnableADSyncAllowed = @EnableADSyncAllowed, ShowADProfileTab = @ShowADProfileTab,         
EditADProfileAllowed = @EditADProfileAllowed, ShowDomainUserName = @ShowDomainUserName, AllowAddOnCancel = @AllowAddOnCancel, AllowCustomMBTemplate = @AllowCustomMBTemplate,         
AllowAddOnEdit = @AllowAddOnEdit, AllowVPSManagement = @AllowVPSManagement, AllowtoAddVM = @AllowtoAddVM, AllowtoRemoveVM = @AllowtoRemoveVM,         
Allowtomanagemachineoperations = @Allowtomanagemachineoperations, Allowtochangehostname = @Allowtochangehostname, Allowtochangememorysettings = @Allowtochangememorysettings,         
Allowtochangevirtualprocessors = @Allowtochangevirtualprocessors, Allowtomanagesnapshots = @Allowtomanagesnapshots, Allowtochangesnapshotlimit = @Allowtochangesnapshotlimit,         
Allowtoadddisk = @Allowtoadddisk, Allowtoremovedisk = @Allowtoremovedisk, Allowtoexpanddisk = @Allowtoexpanddisk, AllowtoaddNIC = @AllowtoaddNIC,         
AllowtomanageNIC = @AllowtomanageNIC, AllowtoremoveNIC = @AllowtoremoveNIC, AllowEmailAddress = @AllowEmailAddress, AllowToSetPassword = @AllowToSetPassword,         
AllowtoDistributionListMembership = @AllowtoDistributionListMembership, AllowCustomerToChangePassword = @AllowCustomerToChangePassword,         
AllowContactToChangePassword = @AllowContactToChangePassword, AllowCustomSettings = @AllowCustomSettings, AllowPSTDownload = @AllowPSTDownload,         
AllowSPManagement = @AllowSPManagement, AllowSPFrontEndBbindings = @AllowSPFrontEndBbindings, AllowSPPortalEdit = @AllowSPPortalEdit,         
AllowSPDomainManage = @AllowSPDomainManage, AllowSPDomainAdd = @AllowSPDomainAdd, AllowSPDomainRemove = @AllowSPDomainRemove, AllowSPDomainEdit = @AllowSPDomainEdit,         
AllowSPPermLevelManage = @AllowSPPermLevelManage, AllowSPPermLevelAdd = @AllowSPPermLevelAdd, AllowSPPermLevelEdit = @AllowSPPermLevelEdit,         
AllowSPPermLevelRemove = @AllowSPPermLevelRemove, AllowSPGroupsManage = @AllowSPGroupsManage, AllowSPGroupsAdd = @AllowSPGroupsAdd, AllowSPGroupsEdit = @AllowSPGroupsEdit,         
AllowSPGroupsRemove = @AllowSPGroupsRemove, AllowSPUsersManage = @AllowSPUsersManage, AllowSPUsersAdd = @AllowSPUsersAdd, AllowSPUsersEdit = @AllowSPUsersEdit,         
AllowSPUsersRemove = @AllowSPUsersRemove, AllowSPUsersGroupAction = @AllowSPUsersGroupAction, AllowCRMManagement = @AllowCRMManagement, AllowCRMSync = @AllowCRMSync,         
AllowCRMDomainsManage = @AllowCRMDomainsManage, AllowCRMDomainsAdd = @AllowCRMDomainsAdd, AllowCRMDomainsRemove = @AllowCRMDomainsRemove,         
AllowCRMDomainsEdit = @AllowCRMDomainsEdit, AllowCRMBUManage = @AllowCRMBUManage, AllowCRMBUAdd = @AllowCRMBUAdd, AllowCRMBURemove = @AllowCRMBURemove,         
AllowCRMBUEdit = @AllowCRMBUEdit, AllowCRMUsersManage = @AllowCRMUsersManage, AllowCRMUsersAdd = @AllowCRMUsersAdd, AllowCRMUsersEdit = @AllowCRMUsersEdit,         
AllowCRMUsersRemove = @AllowCRMUsersRemove, AllowCRMUsersGroupAction = @AllowCRMUsersGroupAction, ExchPublicFolderAdd = @ExchPublicFolderAdd,         
ExchPublicFolderEdit = @ExchPublicFolderEdit, ExchPublicFolderRemove = @ExchPublicFolderRemove, ExchMailContactManagement = @ExchMailContactManagement,         
ExchMailContactAdd = @ExchMailContactAdd, ExchMailContactEdit = @ExchMailContactEdit, ExchMailContactRemove = @ExchMailContactRemove, ExchDLManagement = @ExchDLManagement,         
ExchDLAdd = @ExchDLAdd, ExchDLEdit = @ExchDLEdit, ExchDLMsgApprovalEdit = @ExchDLMsgApprovalEdit, ExchDLRemoveListMembers = @ExchDLRemoveListMembers,         
ExchDLEmailManagement = @ExchDLEmailManagement, ExchDLAddEmailAddress = @ExchDLAddEmailAddress, ExchDLEditEmailAddress = @ExchDLEditEmailAddress,         
ExchDLRemoveEmailAddress = @ExchDLRemoveEmailAddress, ExchDLRemove = @ExchDLRemove, RDSManageAllowed = @RDSManageAllowed, RDSPolicyManageAllowed = @RDSPolicyManageAllowed,         
RDSPolicyAddAllowed = @RDSPolicyAddAllowed, RDSPolicyEditAllowed = @RDSPolicyEditAllowed, RDSPolicyRemoveAllowed = @RDSPolicyRemoveAllowed,         
RDSUserManageAllowed = @RDSUserManageAllowed, RDSUserAddAllowed = @RDSUserAddAllowed, RDSUserEditAllowed = @RDSUserEditAllowed, RDSUserRemoveAllowed = @RDSUserRemoveAllowed,         
WorkfolderHostingManageAllowed = @WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed = @WorkfolderOrgManageAllowed,         
WorkfoldersManageAllowed = @WorkfoldersManageAllowed, WorkfoldersAddAllowed = @WorkfoldersAddAllowed, WorkfoldersEditAllowed = @WorkfoldersEditAllowed,         
WorkfoldersRemoveAllowed = @WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed = @WorkfoldersSyncAllowed, EditCustomerResourcesAllowed = @EditCustomerResourcesAllowed,         
SyncFromBackendAllowed = @SyncFromBackendAllowed, ExchangeRBACManageAllowed = @ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed = @MailboxAuditLogManagementAllowed,         
AllowToManageVLAN = @AllowToManageVLAN, AllowToEnableDisable2FA = @AllowToEnableDisable2FA, AllowResellerToProcessSQ = @AllowResellerToProcessSQ,         
AllowAutoSQProcessing = @AllowAutoSQProcessing, AllowExportMailboxPermissions = @AllowExportMailboxPermissions, AllowToAddUserMailbox = @AllowToAddUserMailbox,         
O365SPManagementAllowed = @O365SPManagementAllowed, ExchAllowExternalRelayDomainManage = @ExchAllowExternalRelayDomainManage,         
ExchAllowExternalRelayDomainAdd = @ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove = @ExchAllowExternalRelayDomainRemove,        
ExchAllowExternalRelayDomainEdit = @ExchAllowExternalRelayDomainEdit, ExchAllowInternalRelayDomainManage = @ExchAllowInternalRelayDomainManage,         
ExchAllowInternalRelayDomainAdd = @ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove = @ExchAllowInternalRelayDomainRemove,         
ExchAllowInternalRelayDomainEdit = @ExchAllowInternalRelayDomainEdit, AllowPSTExport = @AllowPSTExport, AllowPSTImport = @AllowPSTImport,         
AllowToManageGroupMembership = @AllowToManageGroupMembership, AllowToEditCustomAttributes = @AllowToEditCustomAttributes,  ShowADReports = @ShowADReports,          
ShowExchReports = @ShowExchReports, ShowSkype4BReports = @ShowSkype4BReports, ShowCSPReports = @ShowCSPReports, ShowSharePointReports = @ShowSharePointReports,          
ShowCRMReports=@ShowCRMReports, ShowVPSReports=@ShowVPSReports, ShowRDSReports=@ShowRDSReports, ShowWFReports=@ShowWFReports, ShowWebHostingReports = @ShowWebHostingReports,          
AllowVoiceManagement = @AllowVoiceManagement, ShowVoiceBilling  = @ShowVoiceBilling, ShowAddons  = @ShowAddons, ShowDomains  = @ShowDomains, ShowAccounts  = @ShowAccounts,          
ShowTrunks  = @ShowTrunks, ShowCloudPBX  =@ShowCloudPBX, ShowPhoneNumber =@ShowPhoneNumber, AllowToAddPhoneNumbers =@AllowToAddPhoneNumbers,         
AllowNumberPorting  =@AllowNumberPorting, ShowForwarding  = @ShowForwarding, ShowFilterLists =@ShowFilterLists, ShowDirectRouting=@ShowDirectRouting,          
ShowCallRecords=@ShowCallRecords, ShowDestinations = @ShowDestinations, ShowVoiceReports = @ShowVoiceReports, QuickMigrationAllowed =  @QuickMigrationAllowed,        
LiveMigrationAllowed = @LiveMigrationAllowed, ChangeBandwidthAllowed = @ChangeBandwidthAllowed, ShowDiskManagement =  @ShowDiskManagement,        
ShowISOImageManagement = @ShowISOImageManagement, ShowNICManagement = @ShowNICManagement, AllowWebHostingManage = @AllowWebHostingManage,         
WebAccountsManageAllowed = @WebAccountsManageAllowed, DomainAddAllowed = @DomainAddAllowed, DomainEditAllowed = @DomainEditAllowed,         
DedicatedIPManageAllowed = @DedicatedIPManageAllowed, WebHostingAccounts = @WebHostingAccounts, DNSOnlyHostingAccounts = @DNSOnlyHostingAccounts,         
DBOnlyHostingAccounts = @DBOnlyHostingAccounts, MailOnlyHostingAccounts = @MailOnlyHostingAccounts, TempURLManageAllowed = @TempURLManageAllowed,         
MailDomainTurnOnOffAllowed = @MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed = @MailDomainAliasesAllowed, ManageTeamNumbers = @ManageTeamNumbers,          
ManagePendingVerificationDomain = @ManagePendingVerificationDomain,ManageVerifiedDomain = @ManageVerifiedDomain, DigiCertSSLManageAllowed = @DigiCertSSLManageAllowed,          
MailboxTemplateCreationAllowed = @MailboxTemplateCreationAllowed, ExportMailboxForwardingAllowed = @ExportMailboxForwardingAllowed,         
ExportDynamicDLAllowed = @ExportDynamicDLAllowed, ExportDLToExcelAllowed = @ExportDLToExcelAllowed, ExportMembersReportAllowed = @ExportMembersReportAllowed,          
UpdateReceiptSettingAllowed = @UpdateReceiptSettingAllowed, ComplianceManagementAllowed = @ComplianceManagementAllowed, InPlaceHoldAllowed = @InPlaceHoldAllowed,          
AuditingAllowed = @AuditingAllowed, MoveVMAllowed = @MoveVMAllowed, SyncAllwithMicrosoftCSP = @SyncAllwithMicrosoftCSP,         
SyncDomainsLicensesPoliciesAndRoles = @SyncDomainsLicensesPoliciesAndRoles, SyncDomains = @SyncDomains, SyncAllUsersWithMicrosoftCSP = @SyncAllUsersWithMicrosoftCSP,         
SyncAllContactsWithMicrosoftCSP = @SyncAllContactsWithMicrosoftCSP, SyncAllGroupsWithMicrosoftCSP = @SyncAllGroupsWithMicrosoftCSP,         
SyncAllSharePointSitesWithMicrosoft365 = @SyncAllSharePointSitesWithMicrosoft365, ShowVMCredsInWHMCS = @ShowVMCredsInWHMCS,        
AllowManageDomainNameProds = @AllowManageDomainNameProds, AllowManageMiscProds = @AllowManageMiscProds, AllowManageDedicatedProds = @AllowManageDedicatedProds,        
AllowChangingMailboxType = @AllowChangingMailboxType, AllowToManageInPlaceHold = @AllowToManageInPlaceHold, AllowToManageEmailAddresses = @AllowToManageEmailAddresses,        
AllowToConfigureLinkedADSettings = @AllowToConfigureLinkedADSettings, DomainNameManageAllowed = @DomainNameManageAllowed, ContactManageAllowed = @ContactManageAllowed,          
ContactAddAllowed = @ContactAddAllowed, ContactEditAllowed = @ContactEditAllowed, ContactRemoveAllowed = @ContactRemoveAllowed,         
LockUnLockManageAllowed = @LockUnLockManageAllowed, DomainNameServerManageAllowed = @DomainNameServerManageAllowed,        
CustomNameServerManageAllowed = @CustomNameServerManageAllowed, TransferCodeManageAllowed = @TransferCodeManageAllowed, @DomainDNSManageAllowed = @DomainDNSManageAllowed,          
CustomerImportAllowed = @CustomerImportAllowed, CustomerExportAllowed = @CustomerExportAllowed, AllowCustomerDeletion = @AllowCustomerDeletion,        
ShowBillingToCustomer = @ShowBillingToCustomer, AllowToManageNICMACAddress = @AllowToManageNICMACAddress, AllowToManageBandwidthDetail = @AllowToManageBandwidthDetail,         
AllowToChangePassword = @AllowToChangePassword, AllowToSyncVM = @AllowToSyncVM, AllowToManageBootOrder = @AllowToManageBootOrder,         
MailUserManagementAllowed = @MailUserManagementAllowed, AllowContactTab = @AllowContactTab, DeleteSPAMExpertsFilterting = @DeleteSPAMExpertsFilterting,        
EnableDisableSPAMExpertsArchiving = @EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication = @AllowToManagePasswordLessAuthentication,        
GenerateRenewalInvoice = @GenerateRenewalInvoice, AllowToUpdatePasswordSettings = @AllowToUpdatePasswordSettings, ExchSignatureManage = @ExchSignatureManage,        
MailFlowMoniteringAllowed = @MailFlowMoniteringAllowed, ExchTransportRulesManage = @ExchTransportRulesManage, ShowHelpdeskToCustomer = @ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription = @AllowToCancelWebSubscription, AllowToCancelADSubscription = @AllowToCancelADSubscription,         
AllowToCancelDomainSubscription = @AllowToCancelDomainSubscription, AllowToCancelCRMSubscription = @AllowToCancelCRMSubscription,        
AllowToCancelExchangeSubscription = @AllowToCancelExchangeSubscription, AllowToCancelSPSubscription = @AllowToCancelSPSubscription,         
AllowToCancelOCSSubscription = @AllowToCancelOCSSubscription, AllowToCancelVPSSubscription = @AllowToCancelVPSSubscription,        
AllowToCancelCSPSubscription = @AllowToCancelCSPSubscription, AllowToCancelRDSSubscription = @AllowToCancelRDSSubscription,         
AllowToCancelWFSubscription = @AllowToCancelWFSubscription, AllowToCancelVoiceSubscription = @AllowToCancelVoiceSubscription,      
AllowToManageADUserCertificates = @AllowToManageADUserCertificates, OWAPolicyManagementAllowed = @OWAPolicyManagementAllowed,       
AddOWAPolicyAllowed = @AddOWAPolicyAllowed, RecoveryManagementAllowed = @RecoveryManagementAllowed, ManageRecycleBin = @ManageRecycleBin       
,AllowGeneralSection = @AllowGeneralSection, AllowToEditADOrg = @AllowToEditADOrg, AllowToManageADGroupAction = @AllowToManageADGroupAction,     
AllowToExportADUsers = @AllowToExportADUsers, AllowTrunOnOffVM = @AllowTrunOnOffVM, AllowShutDownVM = @AllowShutDownVM, AllowResetHardVM = @AllowResetHardVM,     
AllowSuspendResumeVM = @AllowSuspendResumeVM, AllowManageWebConsoleVM = @AllowManageWebConsoleVM, AllowResetHNVSettingsVM = @AllowResetHNVSettingsVM,     
AllowShieldUnShieldVM = @AllowShieldUnShieldVM, AllowToExportMailboxes = @AllowToExportMailboxes, AllowToExportADGroups = @AllowToExportADGroups,     
ExchEnableDisableADUsersSharedMailbox = @ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox = @ExchEnableDisableADUsersResourceMailbox,     
ManageExchMailboxDevices = @ManageExchMailboxDevices, SDNManagementAllowed = @SDNManagementAllowed, ManageADUserReports = @ManageADUserReports, 
ManageADGroupReports = @ManageADGroupReports, ExchangeAllowUsageReportsView = @ExchangeAllowUsageReportsView, 
ExchangeAllowSubscriptionsReportView = @ExchangeAllowSubscriptionsReportView, ExchangeAllowOtherReportsView = @ExchangeAllowOtherReportsView, 
ExchangeAdminAuditLogManagementAllowed = @ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView = @ExchangeAllowCalenderPermissionsView, 
AllowVirtualMachinesUsageReportView = @AllowVirtualMachinesUsageReportView, AllowVirtualMachinesUpTimeReport = @AllowVirtualMachinesUpTimeReport    
WHERE([CustomerId] = @CustomerId_1);          
EXEC SPR_UpdateChildPermissionsAsPerParent;          
END          
GO

ALTER PROCEDURE SP_EM_UpdateResellerAccessTemplate          
(@CompanyId_1  [INT], @TemplateId [INT], @CPAccess_2 [BIT], @CPWhiteLabel_3 [BIT], @SubDomains_4 [BIT], @DomainAlias_5  [BIT], @DomainLimits_6 [BIT], @IISAppPool_7 [BIT],         
 @FTPUsers_8 [BIT], @RenameDomain_9 [BIT], @DomainDeletion_10  [BIT], @DomainTurnOff_11 [BIT], @URlRedirection_12  [BIT], @DefaultDoc_13  [BIT], @CustomError_14 [BIT],         
 @MIMEType_15  [BIT], @VirtualFolders_16  [BIT], @FrontPageExt_17  [BIT], @ASPScripting_18  [BIT], @ASPNetScripting_19 [BIT], @PHPScripting_20  [BIT], @PerlScripting_21 [BIT],         
 @ColdFusionScripting_22 [BIT], @Databases_23 [BIT], @ODBCDSN_24 [BIT], @FileManager_25 [BIT], @SSLCert_26 [BIT], @SharedSSL_27 [BIT], @WebsiteStats_28  [BIT],         
 @DNSZone_29 [BIT], @MailDomains_30 [BIT], @EmailAccounts_31 [BIT], @EmailLists_32  [BIT], @EmailGroups_33 [BIT], @ResellerTemplate_34  [BIT], @ResourceOverSell_35  [BIT],         
 @CustomButtons_36 [BIT], @ClientCanUpgradeDownGradePackage BIT, @AddonsPurchaseAllowedinCCC BIT, @ClientCanEditProfile BIT, @ClientCanBuyServicesinCCC  BIT,         
 @ORGRemoveAllowed BIT, @ExchDomainManagement BIT, @ExchDomainAdd  BIT, @ExchDomainRemove BIT, @ExchDomainEdit BIT, @ExchPublicFolderManage BIT, @ExchWirelessManage BIT,         
 @ExchDisclaimerManage BIT, @ExchRetentionManage  BIT, @ExchMobileDevicePolicy BIT, @ExchMailboxPermissions BIT, @ExchMailboxRemove  BIT, @ExchLitigationHold BIT,         
 @ExchLinkedMBManage BIT, @ExchSharedMBManage BIT, @ExchRoomMBManage BIT, @ExchEquipmentMBManage  BIT, @ExchMailFlowSettings BIT, @ExchaForwardingManage  BIT,         
 @ExchLimitsManage BIT, @ExchRestrictionsManage BIT, @ExchMBPermissionManage BIT, @ExchMBAdvanceManage  BIT, @ExchStorageQuotaManage BIT, @ExchMBFeaturesManage BIT,         
 @ExchMBPersonalArchive  BIT, @ExchUMManage BIT, @ExchAutoReplyManage BIT, @ADOrganizationRemove BIT, @ADSecurityGroupManage  BIT, @ADSecurityGroupAdd BIT,         
 @ADSecurityGroupRemove  BIT, @ADUserAdd  BIT, @ADUserRemove BIT, @ADManage BIT, @ExchSPAMFilterManage BIT, @ExchJournaling BIT, @ExchDLAdvanceManage  BIT,         
 @ExchDLSendAsManage BIT, @ExchManagement BIT, @ExchMBEnableDisable  BIT, @LyncDomainManage BIT, @LyncDomainAdd  BIT, @LyncDomainRemove BIT, @LyncDomainSetDefault BIT,         
 @LyncUserManage BIT, @LyncUserAdd  BIT, @LyncUserAddBulk  BIT, @LyncUserRemove BIT, @LyncUserEdit BIT, @LyncUserAllowUM  BIT, @LyncUserEnableDisable  BIT,         
 @LyncUserGroupActions BIT, @LyncFederationManage BIT, @LyncFederationAdd  BIT, @LyncFederationRemove BIT, @LyncFederationEdit BIT, @LyncFederationSync BIT,         
 @LyncPhoneNumberManage  BIT, @LyncResponseGroupManage  BIT, @LyncPersistentChatManage BIT, @LyncShowCallReport BIT, @LyncShowConfCallReport BIT, @LyncShowCallBilling  BIT,         
 @ShowNotification BIT, @AllowLyncManage  BIT, @AllowADOrgSync BIT, @ADUserEdit BIT, @ShowOverDueInvoices  BIT, @ShowBilling  BIT, @ExchDeleteItemRetention  BIT,         
 @ExchMBCalanderManage BIT, @DownloadOutlookProfile BIT, @ShowAuditLogs  BIT, @RunGroupJob  BIT, @ADUserAutoDelete BIT, @AllowO365Management  BIT, @AllowToManageTenants BIT,         
 @AllowToAddNewTenants BIT, @AllowToEditExistingTenants BIT, @AllowToRemoveTenant  BIT, @AllowToManageO365Domains BIT, @AllowToSetO365DomainDefaultState BIT,         
 @AllowToRemoveO365Domain  BIT, @AllowtoManageO365Users BIT, @AllowToAddNewO365Users BIT, @AllowToEditExistingO365Users BIT, @AllowToRemoveO365User  BIT,         
 @AllowToManageO365SharedMbx BIT, @AllowToAddNewO365SharedMbx BIT, @AllowToEditExistingO365SharedMbx BIT, @AllowToRemoveO365SharedMbx BIT, @AllowToManageResourceMbx BIT,         
 @AllowToAddNewO365ResourceMbx BIT, @AllowToEditExistingO365ResourceMbx BIT, @AllowToRemoveO365ResourceMbx BIT, @AllowToManageO365Contacts  BIT,         
 @AllowToAddNewO365Contacts  BIT, @AllowToEditExistingO365Contacts  BIT, @AllowToRemoveO365Contact  BIT, @AllowToManageO365Groups  BIT, @AllowToAddNewO365Groups  BIT,      
 @AllowToEditExistingO365Groups  BIT, @AllowToRemoveO365Group BIT, @AllowToManageO365GroupJobs BIT, @AllowToRunO365GroupJob BIT, @AllowToCancelO365GroupJob  BIT,         
 @ExchApplicationImpersonation BIT, @ExchMailBoxMobileDevices BIT, @EnableResellerAPIAccess  BIT, @EnableResellerBillingModule  BIT, @EnableResellerHelpDeskModule BIT,         
 @ResellerAbilityForHelpDeskModule BIT, @EnableADSyncAllowed  BIT, @ShowADProfileTab BIT, @EditADProfileAllowed BIT, @ShowDomainUserName  BIT, @AllowAddOnCancel BIT,         
 @AllowCustomMBTemplate  BIT, @AllowAddOnEdit BIT, @AllowVPSManagement BIT, @AllowtoAddVM BIT, @AllowtoRemoveVM  BIT, @Allowtomanagemachineoperations BIT,         
 @Allowtochangehostname  BIT, @Allowtochangememorysettings  BIT, @Allowtochangevirtualprocessors BIT, @Allowtomanagesnapshots BIT, @Allowtochangesnapshotlimit BIT,         
 @Allowtoadddisk BIT, @Allowtoremovedisk  BIT, @Allowtoexpanddisk  BIT, @AllowtoaddNIC  BIT, @AllowtomanageNIC BIT, @AllowtoremoveNIC BIT, @AllowEmailAddress  BIT,         
 @AllowToSetPassword BIT, @AllowtoDistributionListMembership  BIT, @AllowCustomerToChangePassword  BIT, @AllowContactToChangePassword BIT, @AllowCustomSettings  BIT,         
 @AllowPSTDownload BIT, @AllowSPManagement  BIT, @AllowSPFrontEndBbindings BIT, @AllowSPPortalEdit  BIT, @AllowSPDomainManage  BIT, @AllowSPDomainAdd BIT,         
 @AllowSPDomainRemove  BIT, @AllowSPDomainEdit  BIT, @AllowSPPermLevelManage BIT, @AllowSPPermLevelAdd  BIT, @AllowSPPermLevelEdit BIT, @AllowSPPermLevelRemove BIT,         
 @AllowSPGroupsManage  BIT, @AllowSPGroupsAdd BIT, @AllowSPGroupsEdit  BIT, @AllowSPGroupsRemove  BIT, @AllowSPUsersManage BIT, @AllowSPUsersAdd  BIT, @AllowSPUsersEdit BIT,         
 @AllowSPUsersRemove BIT, @AllowSPUsersGroupAction  BIT, @AllowCRMManagement BIT, @AllowCRMSync BIT, @AllowCRMDomainsManage  BIT, @AllowCRMDomainsAdd BIT,         
 @AllowCRMDomainsRemove  BIT, @AllowCRMDomainsEdit  BIT, @AllowCRMBUManage BIT, @AllowCRMBUAdd  BIT, @AllowCRMBURemove BIT, @AllowCRMBUEdit BIT, @AllowCRMUsersManage  BIT,         
 @AllowCRMUsersAdd BIT, @AllowCRMUsersEdit  BIT, @AllowCRMUsersRemove  BIT, @AllowCRMUsersGroupAction BIT, @ExchPublicFolderAdd  BIT, @ExchPublicFolderEdit BIT,          
 @ExchPublicFolderRemove BIT, @ExchMailContactManagement  BIT, @ExchMailContactAdd BIT, @ExchMailContactEdit  BIT, @ExchMailContactRemove  BIT, @ExchDLManagement BIT,         
 @ExchDLAdd  BIT, @ExchDLEdit BIT, @ExchDLMsgApprovalEdit BIT, @ExchDLRemoveListMembers  BIT, @ExchDLEmailManagement  BIT, @ExchDLAddEmailAddress  BIT,         
 @ExchDLEditEmailAddress BIT, @ExchDLRemoveEmailAddress BIT, @ExchDLRemove BIT, @RDSManageAllowed BIT, @RDSPolicyManageAllowed BIT, @RDSPolicyAddAllowed  BIT,         
 @RDSPolicyEditAllowed BIT, @RDSPolicyRemoveAllowed BIT, @RDSUserManageAllowed BIT, @RDSUserAddAllowed  BIT, @RDSUserEditAllowed BIT, @RDSUserRemoveAllowed BIT,         
 @WorkfolderHostingManageAllowed BIT, @WorkfolderOrgManageAllowed BIT, @WorkfoldersManageAllowed BIT, @WorkfoldersAddAllowed  BIT, @WorkfoldersEditAllowed BIT,         
 @WorkfoldersRemoveAllowed BIT, @WorkfoldersSyncAllowed BIT, @EditCustomerResourcesAllowed BIT, @SyncFromBackendAllowed BIT, @ExchangeRBACManageAllowed  BIT,         
 @MailboxAuditLogManagementAllowed BIT, @AllowToManageVLAN  BIT, @AllowToEnableDisable2FA  BIT, @AllowResellerToProcessSQ BIT, @AllowAutoSQProcessing  BIT,         
 @AllowExportMailboxPermissions  BIT, @AllowToAddUserMailbox  BIT, @O365SPManagementAllowed  BIT, @ExchAllowExternalRelayDomainManage BIT,         
 @ExchAllowExternalRelayDomainAdd  BIT, @ExchAllowExternalRelayDomainRemove BIT, @ExchAllowExternalRelayDomainEdit BIT, @ExchAllowInternalRelayDomainManage BIT,         
 @ExchAllowInternalRelayDomainAdd  BIT, @ExchAllowInternalRelayDomainRemove BIT, @ExchAllowInternalRelayDomainEdit BIT, @AllowPSTExport BIT, @AllowPSTImport BIT,         
 @AllowToManageGroupMembership BIT, @AllowToEditCustomAttributes BIT, @ShowADReports BIT, @ShowExchReports BIT, @ShowSkype4BReports BIT, @ShowCSPReports  BIT,          
 @ShowSharePointReports  BIT, @ShowCRMReports  BIT, @ShowVPSReports  BIT, @ShowRDSReports  BIT, @ShowWFReports  BIT, @ShowWebHostingReports BIT, @AllowVoiceManagement  BIT,          
 @ShowVoiceBilling BIT, @ShowAddons BIT, @ShowDomains BIT, @ShowAccounts  BIT, @ShowTrunks BIT, @ShowCloudPBX  BIT, @ShowPhoneNumber  BIT, @AllowToAddPhoneNumbers  BIT,          
 @AllowNumberPorting BIT, @ShowForwarding BIT, @ShowFilterLists  BIT, @ShowDirectRouting  BIT, @ShowCallRecords  BIT, @ShowDestinations  BIT, @ShowVoiceReports BIT ,          
 @QuickMigrationAllowed bit, @LiveMigrationAllowed bit, @ChangeBandwidthAllowed  bit, @ShowDiskManagement bit, @ShowISOImageManagement  bit, @ShowNICManagement  bit,          
 @AllowWebHostingManage bit, @WebAccountsManageAllowed bit, @DomainAddAllowed bit, @DomainEditAllowed bit, @DedicatedIPManageAllowed bit, @WebHostingAccounts bit,         
 @DNSOnlyHostingAccounts bit, @DBOnlyHostingAccounts bit, @MailOnlyHostingAccounts bit, @TempURLManageAllowed bit, @MailDomainTurnOnOffAllowed bit,         
 @MailDomainAliasesAllowed bit  , @ManageTeamNumbers bit, @ManagePendingVerificationDomain bit, @ManageVerifiedDomain bit, @DigiCertSSLManageAllowed bit,          
 @MailboxTemplateCreationAllowed bit, @ExportMailboxForwardingAllowed  bit, @ExportDynamicDLAllowed  bit, @ExportDLToExcelAllowed  bit, @ExportMembersReportAllowed bit,          
 @UpdateReceiptSettingAllowed bit, @ComplianceManagementAllowed bit, @InPlaceHoldAllowed bit, @AuditingAllowed bit, @MoveVMAllowed bit, @SyncAllwithMicrosoftCSP bit,          
 @SyncDomainsLicensesPoliciesAndRoles  bit, @SyncDomains  bit, @SyncAllUsersWithMicrosoftCSP bit, @SyncAllContactsWithMicrosoftCSP bit, @SyncAllGroupsWithMicrosoftCSP bit,          
 @SyncAllSharePointSitesWithMicrosoft365 bit, @ShowVMCredsInWHMCS BIT, @AllowManageDomainNameProds BIT, @AllowManageMiscProds BIT, @AllowManageDedicatedProds BIT,        
 @AllowChangingMailboxType BIT, @AllowToManageInPlaceHold BIT, @AllowToManageEmailAddresses BIT, @AllowToConfigureLinkedADSettings BIT, @DomainNameManageAllowed bit,         
 @ContactManageAllowed bit, @ContactAddAllowed bit, @ContactEditAllowed bit, @ContactRemoveAllowed bit, @LockUnLockManageAllowed bit, @DomainNameServerManageAllowed bit,         
 @CustomNameServerManageAllowed bit, @TransferCodeManageAllowed bit, @DomainDNSManageAllowed bit, @CustomerImportAllowed bit, @CustomerExportAllowed bit,        
 @AllowCustomerDeletion BIT, @ShowBillingToCustomer BIT, @AllowToManageNICMACAddress BIT, @AllowToManageBandwidthDetail BIT, @AllowToChangePassword  BIT,          
 @AllowToSyncVM BIT, @AllowToManageBootOrder BIT, @MailUserManagementAllowed BIT, @AllowContactTab BIT,         
 @DeleteSPAMExpertsFilterting BIT, @EnableDisableSPAMExpertsArchiving BIT, @AllowToManagePasswordLessAuthentication bit, @GenerateRenewalInvoice bit,        
 @AllowToUpdatePasswordSettings bit, @ExchSignatureManage bit, @MailFlowMoniteringAllowed bit, @ExchTransportRulesManage bit, @ShowHelpdeskToCustomer bit,        
 @AllowToCancelWebSubscription bit, @AllowToCancelADSubscription bit, @AllowToCancelDomainSubscription bit, @AllowToCancelCRMSubscription bit,        
 @AllowToCancelExchangeSubscription bit, @AllowToCancelSPSubscription bit, @AllowToCancelOCSSubscription bit, @AllowToCancelVPSSubscription bit,        
 @AllowToCancelCSPSubscription bit, @AllowToCancelRDSSubscription bit, @AllowToCancelWFSubscription bit, @AllowToCancelVoiceSubscription bit,      
 @AllowToManageADUserCertificates bit, @OWAPolicyManagementAllowed bit, @AddOWAPolicyAllowed bit, @RecoveryManagementAllowed bit,       
 @ManageRecycleBin bit, @AllowGeneralSection bit, @AllowToEditADOrg bit, @AllowToManageADGroupAction bit, @AllowToExportADUsers bit,     
 @AllowTrunOnOffVM bit, @AllowShutDownVM bit, @AllowResetHardVM bit, @AllowSuspendResumeVM bit, @AllowManageWebConsoleVM bit, @AllowResetHNVSettingsVM bit,     
 @AllowShieldUnShieldVM bit, @AllowToExportMailboxes bit, @AllowToExportADGroups bit,     
 @ExchEnableDisableADUsersSharedMailbox bit, @ExchEnableDisableADUsersResourceMailbox bit, @ManageExchMailboxDevices bit,   
 @SDNManagementAllowed bit, @ManageADUserReports bit, @ManageADGroupReports bit, @ExchangeAllowUsageReportsView bit, 
 @ExchangeAllowSubscriptionsReportView bit, @ExchangeAllowOtherReportsView bit, @ExchangeAdminAuditLogManagementAllowed bit, 
 @ExchangeAllowCalenderPermissionsView bit, @AllowVirtualMachinesUsageReportView bit, @AllowVirtualMachinesUpTimeReport bit    
)          
AS          
BEGIN          
UPDATE [HB_tblResellerAccessTemplate] SET         
TemplateId = @TemplateId, [CPAccess] = @CPAccess_2, [CPWhiteLabel] = @CPWhiteLabel_3, [SubDomains] = @SubDomains_4, [DomainAlias] = @DomainAlias_5,         
[DomainLimits] = @DomainLimits_6, [IISAppPool] = @IISAppPool_7, [FTPUsers] = @FTPUsers_8, [RenameDomain] = @RenameDomain_9, [DomainDeletion] = @DomainDeletion_10,         
[DomainTurnOff] = @DomainTurnOff_11, [URlRedirection] = @URlRedirection_12, [DefaultDoc] = @DefaultDoc_13, [CustomError] = @CustomError_14, [MIMEType] = @MIMEType_15,         
[VirtualFolders] = @VirtualFolders_16, [FrontPageExt] = @FrontPageExt_17, [ASPScripting] = @ASPScripting_18, [ASPNetScripting] = @ASPNetScripting_19,         
[PHPScripting] = @PHPScripting_20, [PerlScripting] = @PerlScripting_21, [ColdFusionScripting] = @ColdFusionScripting_22, [Databases] = @Databases_23, [ODBCDSN] = @ODBCDSN_24,         
[FileManager] = @FileManager_25, [SSLCert] = @SSLCert_26, [SharedSSL] = @SharedSSL_27, [WebsiteStats] = @WebsiteStats_28, [DNSZone] = @DNSZone_29,         
[MailDomains] = @MailDomains_30, [EmailAccounts] = @EmailAccounts_31, [EmailLists] = @EmailLists_32, [EmailGroups] = @EmailGroups_33,         
[ResellerTemplate] = @ResellerTemplate_34, [ResourceOverSell] = @ResourceOverSell_35, [CustomButtons] = @CustomButtons_36,         
ClientCanUpgradeDownGradePackage = @ClientCanUpgradeDownGradePackage, AddonsPurchaseAllowedinCCC = @AddonsPurchaseAllowedinCCC, ClientCanEditProfile = @ClientCanEditProfile,         
ClientCanBuyServicesinCCC = @ClientCanBuyServicesinCCC, ORGRemoveAllowed = @ORGRemoveAllowed, ExchDomainManagement = @ExchDomainManagement, ExchDomainAdd = @ExchDomainAdd,         
ExchDomainRemove = @ExchDomainRemove, ExchDomainEdit = @ExchDomainEdit, ExchPublicFolderManage = @ExchPublicFolderManage, ExchWirelessManage = @ExchWirelessManage,         
ExchDisclaimerManage = @ExchDisclaimerManage, ExchRetentionManage = @ExchRetentionManage, ExchMobileDevicePolicy = @ExchMobileDevicePolicy,         
ExchMailboxPermissions = @ExchMailboxPermissions, ExchMailboxRemove = @ExchMailboxRemove, ExchLitigationHold = @ExchLitigationHold, ExchLinkedMBManage = @ExchLinkedMBManage,         
ExchSharedMBManage = @ExchSharedMBManage, ExchRoomMBManage = @ExchRoomMBManage, ExchEquipmentMBManage = @ExchEquipmentMBManage, ExchMailFlowSettings = @ExchMailFlowSettings,         
ExchaForwardingManage = @ExchaForwardingManage, ExchLimitsManage = @ExchLimitsManage, ExchRestrictionsManage = @ExchRestrictionsManage,         
ExchMBPermissionManage = @ExchMBPermissionManage, ExchMBAdvanceManage = @ExchMBAdvanceManage, ExchStorageQuotaManage = @ExchStorageQuotaManage,         
ExchMBFeaturesManage = @ExchMBFeaturesManage, ExchMBPersonalArchive = @ExchMBPersonalArchive, ExchUMManage = @ExchUMManage, ExchAutoReplyManage = @ExchAutoReplyManage,         
ADOrganizationRemove = @ADOrganizationRemove, ADSecurityGroupManage = @ADSecurityGroupManage, ADSecurityGroupAdd = @ADSecurityGroupAdd,         
ADSecurityGroupRemove = @ADSecurityGroupRemove, ADUserAdd = @ADUserAdd, ADUserRemove = @ADUserRemove, ADManage = @ADManage, ExchSPAMFilterManage = @ExchSPAMFilterManage,         
ExchJournaling = @ExchJournaling, ExchDLAdvanceManage = @ExchDLAdvanceManage, ExchDLSendAsManage = @ExchDLSendAsManage, ExchManagement = @ExchManagement,         
ExchMBEnableDisable = @ExchMBEnableDisable, LyncDomainManage = @LyncDomainManage, LyncDomainAdd = @LyncDomainAdd, LyncDomainRemove = @LyncDomainRemove,         
LyncDomainSetDefault = @LyncDomainSetDefault, LyncUserManage = @LyncUserManage, LyncUserAdd = @LyncUserAdd,  LyncUserAddBulk = @LyncUserAddBulk,         
LyncUserRemove = @LyncUserRemove, LyncUserEdit = @LyncUserEdit, LyncUserAllowUM = @LyncUserAllowUM, LyncUserEnableDisable = @LyncUserEnableDisable,         
LyncUserGroupActions = @LyncUserGroupActions, LyncFederationManage = @LyncFederationManage, LyncFederationAdd = @LyncFederationAdd,         
LyncFederationRemove = @LyncFederationRemove, LyncFederationEdit = @LyncFederationEdit, LyncFederationSync = @LyncFederationSync,         
LyncPhoneNumberManage = @LyncPhoneNumberManage, LyncResponseGroupManage = @LyncResponseGroupManage, LyncPersistentChatManage = @LyncPersistentChatManage,         
LyncShowCallReport = @LyncShowCallReport, LyncShowConfCallReport = @LyncShowConfCallReport, LyncShowCallBilling = @LyncShowCallBilling, ShowNotification = @ShowNotification,          
AllowLyncManage = @AllowLyncManage, AllowADOrgSync = @AllowADOrgSync, ADUserEdit = @ADUserEdit, ShowOverDueInvoices = @ShowOverDueInvoices, ShowBilling = @ShowBilling,         
ExchDeleteItemRetention = @ExchDeleteItemRetention, ExchMBCalanderManage = @ExchMBCalanderManage, DownloadOutlookProfile = @DownloadOutlookProfile,         
ShowAuditLogs = @ShowAuditLogs, RunGroupJob = @RunGroupJob, ADUserAutoDelete = @ADUserAutoDelete, AllowO365Management = @AllowO365Management,         
AllowToManageTenants = @AllowToManageTenants, AllowToAddNewTenants = @AllowToAddNewTenants, AllowToEditExistingTenants = @AllowToEditExistingTenants,         
AllowToRemoveTenant = @AllowToRemoveTenant, AllowToManageO365Domains = @AllowToManageO365Domains, AllowToSetO365DomainDefaultState = @AllowToSetO365DomainDefaultState,         
AllowToRemoveO365Domain = @AllowToRemoveO365Domain, AllowtoManageO365Users = @AllowtoManageO365Users, AllowToAddNewO365Users = @AllowToAddNewO365Users,         
AllowToEditExistingO365Users = @AllowToEditExistingO365Users, AllowToRemoveO365User = @AllowToRemoveO365User, AllowToManageO365SharedMbx = @AllowToManageO365SharedMbx,         
AllowToAddNewO365SharedMbx = @AllowToAddNewO365SharedMbx, AllowToEditExistingO365SharedMbx = @AllowToEditExistingO365SharedMbx,         
AllowToRemoveO365SharedMbx = @AllowToRemoveO365SharedMbx, AllowToManageResourceMbx = @AllowToManageResourceMbx, AllowToAddNewO365ResourceMbx = @AllowToAddNewO365ResourceMbx,         
AllowToEditExistingO365ResourceMbx = @AllowToEditExistingO365ResourceMbx, AllowToRemoveO365ResourceMbx = @AllowToRemoveO365ResourceMbx,         
AllowToManageO365Contacts = @AllowToManageO365Contacts, AllowToAddNewO365Contacts = @AllowToAddNewO365Contacts,         
AllowToEditExistingO365Contacts = @AllowToEditExistingO365Contacts, AllowToRemoveO365Contact = @AllowToRemoveO365Contact, AllowToManageO365Groups = @AllowToManageO365Groups,         
AllowToAddNewO365Groups = @AllowToAddNewO365Groups, AllowToEditExistingO365Groups = @AllowToEditExistingO365Groups, AllowToRemoveO365Group = @AllowToRemoveO365Group,         
AllowToManageO365GroupJobs = @AllowToManageO365GroupJobs, AllowToRunO365GroupJob = @AllowToRunO365GroupJob, AllowToCancelO365GroupJob = @AllowToCancelO365GroupJob,         
ExchApplicationImpersonation = @ExchApplicationImpersonation, ExchMailBoxMobileDevices = @ExchMailBoxMobileDevices, EnableResellerAPIAccess = @EnableResellerAPIAccess,         
EnableResellerBillingModule = @EnableResellerBillingModule, EnableResellerHelpDeskModule = @EnableResellerHelpDeskModule,         
ResellerAbilityForHelpDeskModule = @ResellerAbilityForHelpDeskModule, EnableADSyncAllowed = @EnableADSyncAllowed, ShowADProfileTab = @ShowADProfileTab,         
EditADProfileAllowed = @EditADProfileAllowed, ShowDomainUserName = @ShowDomainUserName, AllowAddOnCancel = @AllowAddOnCancel, AllowCustomMBTemplate = @AllowCustomMBTemplate,         
AllowAddOnEdit = @AllowAddOnEdit, AllowVPSManagement = @AllowVPSManagement, AllowtoAddVM = @AllowtoAddVM, AllowtoRemoveVM = @AllowtoRemoveVM,         
Allowtomanagemachineoperations = @Allowtomanagemachineoperations, Allowtochangehostname = @Allowtochangehostname, Allowtochangememorysettings = @Allowtochangememorysettings,         
Allowtochangevirtualprocessors = @Allowtochangevirtualprocessors, Allowtomanagesnapshots = @Allowtomanagesnapshots, Allowtochangesnapshotlimit = @Allowtochangesnapshotlimit,         
Allowtoadddisk = @Allowtoadddisk, Allowtoremovedisk = @Allowtoremovedisk, Allowtoexpanddisk = @Allowtoexpanddisk, AllowtoaddNIC = @AllowtoaddNIC,         
AllowtomanageNIC = @AllowtomanageNIC, AllowtoremoveNIC = @AllowtoremoveNIC, AllowEmailAddress = @AllowEmailAddress, AllowToSetPassword = @AllowToSetPassword,         
AllowtoDistributionListMembership = @AllowtoDistributionListMembership, AllowCustomerToChangePassword = @AllowCustomerToChangePassword,         
AllowContactToChangePassword = @AllowContactToChangePassword, AllowCustomSettings = @AllowCustomSettings, AllowPSTDownload = @AllowPSTDownload,         
AllowSPManagement = @AllowSPManagement, AllowSPFrontEndBbindings = @AllowSPFrontEndBbindings, AllowSPPortalEdit = @AllowSPPortalEdit,         
AllowSPDomainManage = @AllowSPDomainManage, AllowSPDomainAdd = @AllowSPDomainAdd, AllowSPDomainRemove = @AllowSPDomainRemove, AllowSPDomainEdit = @AllowSPDomainEdit,         
AllowSPPermLevelManage = @AllowSPPermLevelManage, AllowSPPermLevelAdd = @AllowSPPermLevelAdd, AllowSPPermLevelEdit = @AllowSPPermLevelEdit,         
AllowSPPermLevelRemove = @AllowSPPermLevelRemove, AllowSPGroupsManage = @AllowSPGroupsManage, AllowSPGroupsAdd = @AllowSPGroupsAdd, AllowSPGroupsEdit = @AllowSPGroupsEdit,         
AllowSPGroupsRemove = @AllowSPGroupsRemove, AllowSPUsersManage = @AllowSPUsersManage, AllowSPUsersAdd = @AllowSPUsersAdd, AllowSPUsersEdit = @AllowSPUsersEdit,         
AllowSPUsersRemove = @AllowSPUsersRemove, AllowSPUsersGroupAction = @AllowSPUsersGroupAction, AllowCRMManagement = @AllowCRMManagement, AllowCRMSync = @AllowCRMSync,         
AllowCRMDomainsManage = @AllowCRMDomainsManage, AllowCRMDomainsAdd = @AllowCRMDomainsAdd, AllowCRMDomainsRemove = @AllowCRMDomainsRemove,         
AllowCRMDomainsEdit = @AllowCRMDomainsEdit, AllowCRMBUManage = @AllowCRMBUManage, AllowCRMBUAdd = @AllowCRMBUAdd, AllowCRMBURemove = @AllowCRMBURemove,         
AllowCRMBUEdit = @AllowCRMBUEdit, AllowCRMUsersManage = @AllowCRMUsersManage, AllowCRMUsersAdd = @AllowCRMUsersAdd, AllowCRMUsersEdit = @AllowCRMUsersEdit,          
AllowCRMUsersRemove = @AllowCRMUsersRemove, AllowCRMUsersGroupAction = @AllowCRMUsersGroupAction, ExchPublicFolderAdd = @ExchPublicFolderAdd,         
ExchPublicFolderEdit = @ExchPublicFolderEdit, ExchPublicFolderRemove = @ExchPublicFolderRemove, ExchMailContactManagement = @ExchMailContactManagement,         
ExchMailContactAdd = @ExchMailContactAdd, ExchMailContactEdit = @ExchMailContactEdit, ExchMailContactRemove = @ExchMailContactRemove, ExchDLManagement = @ExchDLManagement,         
ExchDLAdd = @ExchDLAdd, ExchDLEdit = @ExchDLEdit, ExchDLMsgApprovalEdit = @ExchDLMsgApprovalEdit, ExchDLRemoveListMembers = @ExchDLRemoveListMembers,         
ExchDLEmailManagement = @ExchDLEmailManagement, ExchDLAddEmailAddress = @ExchDLAddEmailAddress, ExchDLEditEmailAddress = @ExchDLEditEmailAddress,         
ExchDLRemoveEmailAddress = @ExchDLRemoveEmailAddress, ExchDLRemove = @ExchDLRemove, RDSManageAllowed = @RDSManageAllowed, RDSPolicyManageAllowed = @RDSPolicyManageAllowed,         
RDSPolicyAddAllowed = @RDSPolicyAddAllowed, RDSPolicyEditAllowed = @RDSPolicyEditAllowed, RDSPolicyRemoveAllowed = @RDSPolicyRemoveAllowed,         
RDSUserManageAllowed = @RDSUserManageAllowed, RDSUserAddAllowed = @RDSUserAddAllowed, RDSUserEditAllowed = @RDSUserEditAllowed, RDSUserRemoveAllowed = @RDSUserRemoveAllowed,         
WorkfolderHostingManageAllowed = @WorkfolderHostingManageAllowed, WorkfolderOrgManageAllowed = @WorkfolderOrgManageAllowed,         
WorkfoldersManageAllowed = @WorkfoldersManageAllowed, WorkfoldersAddAllowed = @WorkfoldersAddAllowed, WorkfoldersEditAllowed = @WorkfoldersEditAllowed,         
WorkfoldersRemoveAllowed = @WorkfoldersRemoveAllowed, WorkfoldersSyncAllowed = @WorkfoldersSyncAllowed, EditCustomerResourcesAllowed = @EditCustomerResourcesAllowed,         
SyncFromBackendAllowed = @SyncFromBackendAllowed, ExchangeRBACManageAllowed = @ExchangeRBACManageAllowed, MailboxAuditLogManagementAllowed = @MailboxAuditLogManagementAllowed,         
AllowToManageVLAN = @AllowToManageVLAN, AllowToEnableDisable2FA = @AllowToEnableDisable2FA, AllowResellerToProcessSQ = @AllowResellerToProcessSQ,         
AllowAutoSQProcessing = @AllowAutoSQProcessing, AllowExportMailboxPermissions = @AllowExportMailboxPermissions, AllowToAddUserMailbox = @AllowToAddUserMailbox,         
O365SPManagementAllowed = @O365SPManagementAllowed, ExchAllowExternalRelayDomainManage = @ExchAllowExternalRelayDomainManage,         
ExchAllowExternalRelayDomainAdd = @ExchAllowExternalRelayDomainAdd, ExchAllowExternalRelayDomainRemove = @ExchAllowExternalRelayDomainRemove,         
ExchAllowExternalRelayDomainEdit = @ExchAllowExternalRelayDomainEdit, ExchAllowInternalRelayDomainManage = @ExchAllowInternalRelayDomainManage,         
ExchAllowInternalRelayDomainAdd = @ExchAllowInternalRelayDomainAdd, ExchAllowInternalRelayDomainRemove = @ExchAllowInternalRelayDomainRemove,         
ExchAllowInternalRelayDomainEdit = @ExchAllowInternalRelayDomainEdit, AllowPSTExport = @AllowPSTExport, AllowPSTImport = @AllowPSTImport,         
AllowToManageGroupMembership = @AllowToManageGroupMembership, AllowToEditCustomAttributes = @AllowToEditCustomAttributes, ShowADReports = @ShowADReports,          
ShowExchReports = @ShowExchReports, ShowSkype4BReports = @ShowSkype4BReports, ShowCSPReports = @ShowCSPReports, ShowSharePointReports = @ShowSharePointReports,         
ShowCRMReports=@ShowCRMReports, ShowVPSReports=@ShowVPSReports, ShowRDSReports=@ShowRDSReports, ShowWFReports=@ShowWFReports, ShowWebHostingReports=@ShowWebHostingReports,        
AllowVoiceManagement = @AllowVoiceManagement, ShowVoiceBilling  = @ShowVoiceBilling, ShowAddons  = @ShowAddons, ShowDomains  = @ShowDomains, ShowAccounts  = @ShowAccounts,          
ShowTrunks  = @ShowTrunks, ShowCloudPBX  =@ShowCloudPBX, ShowPhoneNumber =@ShowPhoneNumber, AllowToAddPhoneNumbers =@AllowToAddPhoneNumbers,         
AllowNumberPorting  =@AllowNumberPorting, ShowForwarding  = @ShowForwarding, ShowFilterLists =@ShowFilterLists, ShowDirectRouting=@ShowDirectRouting,          
ShowCallRecords=@ShowCallRecords, ShowDestinations = @ShowDestinations, ShowVoiceReports = @ShowVoiceReports, QuickMigrationAllowed =  @QuickMigrationAllowed,        
LiveMigrationAllowed = @LiveMigrationAllowed, ChangeBandwidthAllowed = @ChangeBandwidthAllowed, ShowDiskManagement =  @ShowDiskManagement,        
ShowISOImageManagement = @ShowISOImageManagement, ShowNICManagement = @ShowNICManagement, AllowWebHostingManage = @AllowWebHostingManage,         
WebAccountsManageAllowed = @WebAccountsManageAllowed, DomainAddAllowed = @DomainAddAllowed, DomainEditAllowed = @DomainEditAllowed,         
DedicatedIPManageAllowed = @DedicatedIPManageAllowed, WebHostingAccounts = @WebHostingAccounts, DNSOnlyHostingAccounts = @DNSOnlyHostingAccounts,         
DBOnlyHostingAccounts = @DBOnlyHostingAccounts, MailOnlyHostingAccounts = @MailOnlyHostingAccounts, TempURLManageAllowed = @TempURLManageAllowed,         
MailDomainTurnOnOffAllowed = @MailDomainTurnOnOffAllowed, MailDomainAliasesAllowed = @MailDomainAliasesAllowed, ManageTeamNumbers =@ManageTeamNumbers,        
ManagePendingVerificationDomain = @ManagePendingVerificationDomain,ManageVerifiedDomain = @ManageVerifiedDomain, DigiCertSSLManageAllowed = @DigiCertSSLManageAllowed,         
MailboxTemplateCreationAllowed = @MailboxTemplateCreationAllowed, ExportMailboxForwardingAllowed = @ExportMailboxForwardingAllowed,         
ExportDynamicDLAllowed = @ExportDynamicDLAllowed, ExportDLToExcelAllowed = @ExportDLToExcelAllowed, ExportMembersReportAllowed = @ExportMembersReportAllowed,          
UpdateReceiptSettingAllowed = @UpdateReceiptSettingAllowed, ComplianceManagementAllowed = @ComplianceManagementAllowed, InPlaceHoldAllowed = @InPlaceHoldAllowed,          
AuditingAllowed = @AuditingAllowed, MoveVMAllowed = @MoveVMAllowed, SyncAllwithMicrosoftCSP = @SyncAllwithMicrosoftCSP,        
SyncDomainsLicensesPoliciesAndRoles = @SyncDomainsLicensesPoliciesAndRoles, SyncDomains = @SyncDomains, SyncAllUsersWithMicrosoftCSP = @SyncAllUsersWithMicrosoftCSP,          
SyncAllContactsWithMicrosoftCSP = @SyncAllContactsWithMicrosoftCSP, SyncAllGroupsWithMicrosoftCSP = @SyncAllGroupsWithMicrosoftCSP,         
SyncAllSharePointSitesWithMicrosoft365 = @SyncAllSharePointSitesWithMicrosoft365, ShowVMCredsInWHMCS = @ShowVMCredsInWHMCS,        
AllowManageDomainNameProds = @AllowManageDomainNameProds, AllowManageMiscProds = @AllowManageMiscProds, AllowManageDedicatedProds = @AllowManageDedicatedProds,        
AllowChangingMailboxType = @AllowChangingMailboxType, AllowToManageInPlaceHold = @AllowToManageInPlaceHold, AllowToManageEmailAddresses = @AllowToManageEmailAddresses,        
AllowToConfigureLinkedADSettings = @AllowToConfigureLinkedADSettings, DomainNameManageAllowed = @DomainNameManageAllowed, ContactManageAllowed = @ContactManageAllowed,          
ContactAddAllowed = @ContactAddAllowed, ContactEditAllowed = @ContactEditAllowed, ContactRemoveAllowed = @ContactRemoveAllowed,         
LockUnLockManageAllowed = @LockUnLockManageAllowed, DomainNameServerManageAllowed = @DomainNameServerManageAllowed,         
CustomNameServerManageAllowed = @CustomNameServerManageAllowed, TransferCodeManageAllowed = @TransferCodeManageAllowed, @DomainDNSManageAllowed = @DomainDNSManageAllowed,          
CustomerImportAllowed = @CustomerImportAllowed, CustomerExportAllowed = @CustomerExportAllowed, AllowCustomerDeletion = @AllowCustomerDeletion,        
ShowBillingToCustomer = @ShowBillingToCustomer, AllowToManageNICMACAddress = @AllowToManageNICMACAddress, AllowToManageBandwidthDetail = @AllowToManageBandwidthDetail,         
AllowToChangePassword = @AllowToChangePassword, AllowToSyncVM = @AllowToSyncVM, AllowToManageBootOrder = @AllowToManageBootOrder,         
MailUserManagementAllowed = @MailUserManagementAllowed, AllowContactTab = @AllowContactTab, DeleteSPAMExpertsFilterting = @DeleteSPAMExpertsFilterting,         
EnableDisableSPAMExpertsArchiving = @EnableDisableSPAMExpertsArchiving, AllowToManagePasswordLessAuthentication = @AllowToManagePasswordLessAuthentication,        
GenerateRenewalInvoice = @GenerateRenewalInvoice, AllowToUpdatePasswordSettings = @AllowToUpdatePasswordSettings, ExchSignatureManage = @ExchSignatureManage,        
MailFlowMoniteringAllowed = @MailFlowMoniteringAllowed, ExchTransportRulesManage = @ExchTransportRulesManage, ShowHelpdeskToCustomer = @ShowHelpdeskToCustomer,        
AllowToCancelWebSubscription = @AllowToCancelWebSubscription, AllowToCancelADSubscription = @AllowToCancelADSubscription,         
AllowToCancelDomainSubscription = @AllowToCancelDomainSubscription, AllowToCancelCRMSubscription = @AllowToCancelCRMSubscription,        
AllowToCancelExchangeSubscription = @AllowToCancelExchangeSubscription, AllowToCancelSPSubscription = @AllowToCancelSPSubscription,         
AllowToCancelOCSSubscription = @AllowToCancelOCSSubscription, AllowToCancelVPSSubscription = @AllowToCancelVPSSubscription,        
AllowToCancelCSPSubscription = @AllowToCancelCSPSubscription, AllowToCancelRDSSubscription = @AllowToCancelRDSSubscription,         
AllowToCancelWFSubscription = @AllowToCancelWFSubscription, AllowToCancelVoiceSubscription = @AllowToCancelVoiceSubscription,      
AllowToManageADUserCertificates = @AllowToManageADUserCertificates, OWAPolicyManagementAllowed = @OWAPolicyManagementAllowed,       
AddOWAPolicyAllowed = @AddOWAPolicyAllowed, RecoveryManagementAllowed = @RecoveryManagementAllowed, ManageRecycleBin = @ManageRecycleBin,     
AllowGeneralSection = @AllowGeneralSection, AllowToEditADOrg = @AllowToEditADOrg, AllowToManageADGroupAction = @AllowToManageADGroupAction,     
AllowToExportADUsers = @AllowToExportADUsers, AllowTrunOnOffVM = @AllowTrunOnOffVM, AllowShutDownVM = @AllowShutDownVM, AllowResetHardVM = @AllowResetHardVM,     
AllowSuspendResumeVM = @AllowSuspendResumeVM, AllowManageWebConsoleVM = @AllowManageWebConsoleVM, AllowResetHNVSettingsVM = @AllowResetHNVSettingsVM,     
AllowShieldUnShieldVM = @AllowShieldUnShieldVM, AllowToExportMailboxes = @AllowToExportMailboxes, AllowToExportADGroups = @AllowToExportADGroups,     
ExchEnableDisableADUsersSharedMailbox = @ExchEnableDisableADUsersSharedMailbox, ExchEnableDisableADUsersResourceMailbox = @ExchEnableDisableADUsersResourceMailbox,     
ManageExchMailboxDevices = @ManageExchMailboxDevices, SDNManagementAllowed = @SDNManagementAllowed, ManageADUserReports = @ManageADUserReports, 
ManageADGroupReports = @ManageADGroupReports, ExchangeAllowUsageReportsView = @ExchangeAllowUsageReportsView, 
ExchangeAllowSubscriptionsReportView = @ExchangeAllowSubscriptionsReportView, ExchangeAllowOtherReportsView = @ExchangeAllowOtherReportsView, 
ExchangeAdminAuditLogManagementAllowed = @ExchangeAdminAuditLogManagementAllowed, ExchangeAllowCalenderPermissionsView = @ExchangeAllowCalenderPermissionsView, 
AllowVirtualMachinesUsageReportView = @AllowVirtualMachinesUsageReportView, AllowVirtualMachinesUpTimeReport = @AllowVirtualMachinesUpTimeReport    
WHERE([CompanyId] = @CompanyId_1);          
EXEC SPR_UpdateChildPermissionsAsPerParent;          
END          
GO

ALTER PROCEDURE SPR_UpdateChildPermissionsAsPerParent        
AS        
BEGIN       
Update HB_tblAccessTemplates SET ExchDomainManagement='0',        
 ExchDomainAdd='0', ExchDomainRemove='0', ExchDomainEdit='0', ExchPublicFolderManage='0', ExchWirelessManage='0', ExchDisclaimerManage='0', ExchRetentionManage='0',        
 ExchMobileDevicePolicy='0', ExchMailboxPermissions='0', ExchMailboxRemove='0', ExchLitigationHold='0', ExchLinkedMBManage='0', ExchSharedMBManage='0',        
 ExchRoomMBManage='0', ExchEquipmentMBManage='0', ExchMailFlowSettings='0', ExchaForwardingManage='0', ExchLimitsManage='0', ExchRestrictionsManage='0',        
 ExchMBPermissionManage='0', ExchMBAdvanceManage='0', ExchStorageQuotaManage='0', ExchMBFeaturesManage='0', ExchMBPersonalArchive='0', ExchUMManage='0',        
 ExchAutoReplyManage='0', ExchSPAMFilterManage='0', ExchJournaling='0', ExchDLAdvanceManage ='0', ExchDLSendAsManage ='0', ExchMBEnableDisable='0',        
 ExchDeleteItemRetention ='0', ExchMBCalanderManage='0', DownloadOutlookProfile='0', ExchApplicationImpersonation = '0' , ExchMailBoxMobileDevices='0',        
 ShowDomainUserName='0', AllowCustomMBTemplate ='0' , ExchPublicFolderAdd = '0', ExchPublicFolderEdit = '0', ExchPublicFolderRemove = '0',        
 ExchMailContactManagement ='0',ExchMailContactAdd ='0',ExchMailContactEdit ='0',ExchMailContactRemove ='0',ExchDLManagement ='0',ExchDLAdd ='0',        
  ExchDLEdit ='0',ExchDLMsgApprovalEdit ='0' ,ExchDLRemoveListMembers ='0',ExchDLEmailManagement ='0',ExchDLAddEmailAddress ='0',        
 ExchDLEditEmailAddress ='0',ExchDLRemoveEmailAddress ='0',ExchDLRemove = '0', SyncFromBackendAllowed = '0', ExchangeRBACManageAllowed = '0',        
 MailboxAuditLogManagementAllowed = '0', AllowToAddUserMailbox = '0', ExchAllowExternalRelayDomainManage = '0', ExchAllowExternalRelayDomainAdd = '0',        
 ExchAllowExternalRelayDomainRemove = '0', ExchAllowExternalRelayDomainEdit = '0', ExchAllowInternalRelayDomainManage = '0', ExchAllowInternalRelayDomainAdd = '0',        
 ExchAllowInternalRelayDomainRemove = '0', ExchAllowInternalRelayDomainEdit = '0', DeleteSPAMExpertsFilterting = '0', EnableDisableSPAMExpertsArchiving = '0',      
 AllowExportMailboxPermissions = '0', ExchSignatureManage = '0', MailFlowMoniteringAllowed = '0', ExchTransportRulesManage = '0', AllowToCancelExchangeSubscription = '0',     
 OWAPolicyManagementAllowed = '0', AddOWAPolicyAllowed = '0', AllowToExportMailboxes = '0', ExchEnableDisableADUsersSharedMailbox = '0',     
 ExchEnableDisableADUsersResourceMailbox = '0', ManageExchMailboxDevices = '0'       
Where ExchManagement='0'       
Update HB_tblCustomerAccessTemplate SET ExchDomainManagement='0',        
  ExchDomainAdd='0', ExchDomainRemove='0', ExchDomainEdit='0', ExchPublicFolderManage='0', ExchWirelessManage='0', ExchDisclaimerManage='0', ExchRetentionManage='0',        
 ExchMobileDevicePolicy='0', ExchMailboxPermissions='0', ExchMailboxRemove='0', ExchLitigationHold='0', ExchLinkedMBManage='0', ExchSharedMBManage='0',        
 ExchRoomMBManage='0', ExchEquipmentMBManage='0', ExchMailFlowSettings='0', ExchaForwardingManage='0', ExchLimitsManage='0', ExchRestrictionsManage='0',        
 ExchMBPermissionManage='0', ExchMBAdvanceManage='0', ExchStorageQuotaManage='0', ExchMBFeaturesManage='0', ExchMBPersonalArchive='0', ExchUMManage='0',        
 ExchAutoReplyManage='0', ExchSPAMFilterManage='0', ExchJournaling='0', ExchDLAdvanceManage ='0', ExchDLSendAsManage ='0', ExchMBEnableDisable='0',        
 ExchDeleteItemRetention ='0', ExchMBCalanderManage='0', DownloadOutlookProfile='0', ExchApplicationImpersonation = '0' , ExchMailBoxMobileDevices='0',        
 ShowDomainUserName='0', AllowCustomMBTemplate ='0' , ExchPublicFolderAdd = '0', ExchPublicFolderEdit = '0', ExchPublicFolderRemove = '0',        
 ExchMailContactManagement ='0',ExchMailContactAdd ='0',ExchMailContactEdit ='0',ExchMailContactRemove ='0',ExchDLManagement ='0',ExchDLAdd ='0',       
 ExchDLEdit ='0',ExchDLMsgApprovalEdit ='0' ,ExchDLRemoveListMembers ='0',ExchDLEmailManagement ='0',ExchDLAddEmailAddress ='0',        
 ExchDLEditEmailAddress ='0',ExchDLRemoveEmailAddress ='0',ExchDLRemove ='0', SyncFromBackendAllowed = '0', ExchangeRBACManageAllowed = '0',        
 MailboxAuditLogManagementAllowed = '0', AllowToAddUserMailbox = '0', ExchAllowExternalRelayDomainManage = '0', ExchAllowExternalRelayDomainAdd = '0',        
 ExchAllowExternalRelayDomainRemove = '0', ExchAllowExternalRelayDomainEdit = '0', ExchAllowInternalRelayDomainManage = '0', ExchAllowInternalRelayDomainAdd = '0',        
 ExchAllowInternalRelayDomainRemove = '0', ExchAllowInternalRelayDomainEdit = '0', DeleteSPAMExpertsFilterting = '0', EnableDisableSPAMExpertsArchiving = '0',      
 AllowExportMailboxPermissions = '0', ExchSignatureManage = '0', MailFlowMoniteringAllowed = '0', ExchTransportRulesManage = '0', AllowToCancelExchangeSubscription = '0',     
 OWAPolicyManagementAllowed = '0', AddOWAPolicyAllowed = '0', AllowToExportMailboxes = '0', ExchEnableDisableADUsersSharedMailbox = '0',     
 ExchEnableDisableADUsersResourceMailbox = '0', ManageExchMailboxDevices = '0'        
Where ExchManagement='0'        
Update HB_tblResellerAccessTemplate SET ExchDomainManagement='0',        
  ExchDomainAdd='0', ExchDomainRemove='0', ExchDomainEdit='0', ExchPublicFolderManage='0', ExchWirelessManage='0', ExchDisclaimerManage='0', ExchRetentionManage='0',        
 ExchMobileDevicePolicy='0', ExchMailboxPermissions='0', ExchMailboxRemove='0', ExchLitigationHold='0', ExchLinkedMBManage='0', ExchSharedMBManage='0',        
 ExchRoomMBManage='0', ExchEquipmentMBManage='0', ExchMailFlowSettings='0', ExchaForwardingManage='0', ExchLimitsManage='0', ExchRestrictionsManage='0',        
 ExchMBPermissionManage='0', ExchMBAdvanceManage='0', ExchStorageQuotaManage='0', ExchMBFeaturesManage='0', ExchMBPersonalArchive='0', ExchUMManage='0',        
 ExchAutoReplyManage='0', ExchSPAMFilterManage='0', ExchJournaling='0', ExchDLAdvanceManage ='0', ExchDLSendAsManage ='0', ExchMBEnableDisable='0',        
 ExchDeleteItemRetention ='0', ExchMBCalanderManage='0', DownloadOutlookProfile='0', ExchApplicationImpersonation = '0' , ExchMailBoxMobileDevices='0',        
 ShowDomainUserName='0', AllowCustomMBTemplate ='0' , ExchPublicFolderAdd = '0', ExchPublicFolderEdit = '0', ExchPublicFolderRemove = '0',        
 ExchMailContactManagement ='0',ExchMailContactAdd ='0',ExchMailContactEdit ='0',ExchMailContactRemove ='0',ExchDLManagement ='0',ExchDLAdd ='0',       
 ExchDLEdit ='0',ExchDLMsgApprovalEdit ='0' ,ExchDLRemoveListMembers ='0',ExchDLEmailManagement ='0',ExchDLAddEmailAddress ='0',        
 ExchDLEditEmailAddress ='0',ExchDLRemoveEmailAddress ='0',ExchDLRemove ='0', SyncFromBackendAllowed = '0', ExchangeRBACManageAllowed = '0',        
 MailboxAuditLogManagementAllowed = '0', AllowToAddUserMailbox = '0', ExchAllowExternalRelayDomainManage = '0', ExchAllowExternalRelayDomainAdd = '0',        
 ExchAllowExternalRelayDomainRemove = '0', ExchAllowExternalRelayDomainEdit = '0', ExchAllowInternalRelayDomainManage = '0', ExchAllowInternalRelayDomainAdd = '0',        
 ExchAllowInternalRelayDomainRemove = '0', ExchAllowInternalRelayDomainEdit = '0', DeleteSPAMExpertsFilterting = '0', EnableDisableSPAMExpertsArchiving = '0',      
 AllowExportMailboxPermissions = '0', ExchSignatureManage = '0', MailFlowMoniteringAllowed = '0', ExchTransportRulesManage = '0', AllowToCancelExchangeSubscription = '0',     
 OWAPolicyManagementAllowed = '0', AddOWAPolicyAllowed = '0', AllowToExportMailboxes = '0', ExchEnableDisableADUsersSharedMailbox = '0',     
 ExchEnableDisableADUsersResourceMailbox = '0', ManageExchMailboxDevices = '0'       
Where ExchManagement='0'        
        
Update HB_tblAccessTemplates SET ExchDomainAdd='0', ExchDomainRemove='0', ExchDomainEdit='0'        
Where ExchDomainManagement ='0'        
Update HB_tblCustomerAccessTemplate SET ExchDomainAdd='0', ExchDomainRemove='0', ExchDomainEdit='0'        
Where ExchDomainManagement='0'        
Update HB_tblResellerAccessTemplate SET ExchDomainAdd='0', ExchDomainRemove='0', ExchDomainEdit='0'        
Where ExchDomainManagement='0'        
        
Update HB_tblAccessTemplates SET ExchAllowExternalRelayDomainAdd='0', ExchAllowExternalRelayDomainRemove='0', ExchAllowExternalRelayDomainEdit='0'        
Where ExchAllowExternalRelayDomainManage ='0'        
Update HB_tblCustomerAccessTemplate SET ExchAllowExternalRelayDomainAdd='0', ExchAllowExternalRelayDomainRemove='0', ExchAllowExternalRelayDomainEdit='0'        
Where ExchAllowExternalRelayDomainManage='0'        
Update HB_tblResellerAccessTemplate SET ExchAllowExternalRelayDomainAdd='0', ExchAllowExternalRelayDomainRemove='0', ExchAllowExternalRelayDomainEdit='0'        
Where ExchAllowExternalRelayDomainManage='0'       
        
Update HB_tblAccessTemplates SET ExchAllowInternalRelayDomainAdd='0', ExchAllowInternalRelayDomainRemove='0', ExchAllowInternalRelayDomainEdit='0'        
Where ExchAllowInternalRelayDomainManage ='0'        
Update HB_tblCustomerAccessTemplate SET ExchAllowInternalRelayDomainAdd='0', ExchAllowInternalRelayDomainRemove='0', ExchAllowInternalRelayDomainEdit='0'       
Where ExchAllowInternalRelayDomainManage='0'         
Update HB_tblResellerAccessTemplate SET ExchAllowInternalRelayDomainAdd='0', ExchAllowInternalRelayDomainRemove='0', ExchAllowInternalRelayDomainEdit='0'        
Where ExchAllowInternalRelayDomainManage='0'        
        
Update HB_tblAccessTemplates SET AddOWAPolicyAllowed='0'     
Where OWAPolicyManagementAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET AddOWAPolicyAllowed='0'     
Where OWAPolicyManagementAllowed='0'        
Update HB_tblResellerAccessTemplate SET AddOWAPolicyAllowed='0'     
Where OWAPolicyManagementAllowed='0'        
    
Update HB_tblAccessTemplates       
 SET ExchPublicFolderAdd='0', ExchPublicFolderEdit='0', ExchPublicFolderRemove='0'        
Where ExchPublicFolderManage='0'      
Update HB_tblCustomerAccessTemplate       
 SET ExchPublicFolderAdd='0', ExchPublicFolderEdit='0', ExchPublicFolderRemove='0'        
Where ExchPublicFolderManage='0'        
Update HB_tblResellerAccessTemplate       
 SET ExchPublicFolderAdd='0', ExchPublicFolderEdit='0', ExchPublicFolderRemove='0'        
Where ExchPublicFolderManage='0'        
       
Update HB_tblAccessTemplates       
 SET  ExchMailContactAdd ='0', ExchMailContactEdit ='0', ExchMailContactRemove ='0'        
Where ExchMailContactManagement='0'        
Update HB_tblCustomerAccessTemplate       
 SET  ExchMailContactAdd ='0', ExchMailContactEdit ='0', ExchMailContactRemove ='0'        
Where ExchMailContactManagement='0'        
Update HB_tblResellerAccessTemplate       
 SET  ExchMailContactAdd ='0',ExchMailContactEdit ='0',ExchMailContactRemove ='0'        
Where ExchMailContactManagement='0'        
        
Update HB_tblAccessTemplates       
 SET ExchDLAdd ='0', ExchDLEdit ='0',ExchDLMsgApprovalEdit ='0' ,ExchDLRemoveListMembers ='0',        
 ExchDLEmailManagement ='0',ExchDLAddEmailAddress ='0',ExchDLEditEmailAddress ='0',ExchDLRemoveEmailAddress ='0',ExchDLRemove ='0'        
Where  ExchDLManagement='0'        
Update HB_tblCustomerAccessTemplate       
 SET ExchDLAdd ='0', ExchDLEdit ='0',ExchDLMsgApprovalEdit ='0' ,ExchDLRemoveListMembers ='0',        
 ExchDLEmailManagement ='0',ExchDLAddEmailAddress ='0',ExchDLEditEmailAddress ='0',ExchDLRemoveEmailAddress ='0',ExchDLRemove ='0'        
Where  ExchDLManagement='0'        
Update HB_tblResellerAccessTemplate       
 SET  ExchDLAdd ='0', ExchDLEdit ='0',ExchDLMsgApprovalEdit ='0' ,ExchDLRemoveListMembers ='0',        
 ExchDLEmailManagement ='0',ExchDLAddEmailAddress ='0',ExchDLEditEmailAddress ='0',ExchDLRemoveEmailAddress ='0',ExchDLRemove ='0'        
Where  ExchDLManagement='0'        
        
Update HB_tblAccessTemplates SET ExchaForwardingManage='0', ExchLimitsManage='0',  ExchRestrictionsManage='0', ExchDeleteItemRetention ='0'        
Where ExchMailFlowSettings='0'        
Update HB_tblCustomerAccessTemplate SET ExchaForwardingManage='0', ExchLimitsManage='0',  ExchRestrictionsManage='0', ExchDeleteItemRetention ='0'        
Where ExchMailFlowSettings='0'        
Update HB_tblResellerAccessTemplate SET  ExchaForwardingManage='0', ExchLimitsManage='0',  ExchRestrictionsManage='0', ExchDeleteItemRetention ='0'        
Where ExchMailFlowSettings='0'        
    
Update HB_tblAccessTemplates SET DeleteSPAMExpertsFilterting = '0', EnableDisableSPAMExpertsArchiving = '0'      
Where ExchSPAMFilterManage='0'        
Update HB_tblCustomerAccessTemplate SET DeleteSPAMExpertsFilterting = '0', EnableDisableSPAMExpertsArchiving = '0'      
Where ExchSPAMFilterManage='0'        
Update HB_tblResellerAccessTemplate SET  DeleteSPAMExpertsFilterting = '0', EnableDisableSPAMExpertsArchiving = '0'      
Where ExchSPAMFilterManage='0'       
      
Update HB_tblAccessTemplates SET ExchStorageQuotaManage='0', ExchMBFeaturesManage='0'       
Where ExchMBAdvanceManage='0'        
Update HB_tblCustomerAccessTemplate SET ExchStorageQuotaManage='0', ExchMBFeaturesManage='0'        
Where ExchMBAdvanceManage='0'        
Update HB_tblResellerAccessTemplate SET ExchStorageQuotaManage='0', ExchMBFeaturesManage='0'        
Where ExchMBAdvanceManage='0'        
      
Update HB_tblAccessTemplates SET MailboxAuditLogManagementAllowed='0', ExchangeAdminAuditLogManagementAllowed='0', ExchangeAllowCalenderPermissionsView = '0' 
Where AuditingAllowed='0'        
Update HB_tblCustomerAccessTemplate SET MailboxAuditLogManagementAllowed='0', ExchangeAdminAuditLogManagementAllowed='0', ExchangeAllowCalenderPermissionsView = '0' 
Where AuditingAllowed='0'        
Update HB_tblResellerAccessTemplate SET MailboxAuditLogManagementAllowed='0', ExchangeAdminAuditLogManagementAllowed='0', ExchangeAllowCalenderPermissionsView = '0' 
Where AuditingAllowed='0'        

Update HB_tblAccessTemplates SET ExchangeAllowUsageReportsView='0', ExchangeAllowSubscriptionsReportView='0', ExchangeAllowOtherReportsView = '0' 
Where ShowExchReports='0'        
Update HB_tblCustomerAccessTemplate SET ExchangeAllowUsageReportsView='0', ExchangeAllowSubscriptionsReportView='0', ExchangeAllowOtherReportsView = '0' 
Where ShowExchReports='0'        
Update HB_tblResellerAccessTemplate SET ExchangeAllowUsageReportsView='0', ExchangeAllowSubscriptionsReportView='0', ExchangeAllowOtherReportsView = '0' 
Where ShowExchReports='0'

Update HB_tblAccessTemplates SET AllowSPFrontEndBbindings = '0', AllowSPPortalEdit = '0', AllowSPDomainManage = '0', AllowSPDomainAdd = '0',        
  AllowSPDomainRemove = '0', AllowSPDomainEdit = '0', AllowSPPermLevelManage = '0', AllowSPPermLevelAdd = '0', AllowSPPermLevelEdit = '0',     
  AllowSPPermLevelRemove = '0', AllowSPGroupsManage = '0', AllowSPGroupsAdd = '0', AllowSPGroupsEdit = '0', AllowSPGroupsRemove = '0',        
  AllowSPUsersManage = '0', AllowSPUsersAdd = '0', AllowSPUsersEdit = '0', AllowSPUsersRemove = '0', AllowSPUsersGroupAction = '0',      
  AllowToCancelSPSubscription = '0'      
Where AllowSPManagement = '0'        
Update HB_tblCustomerAccessTemplate SET AllowSPFrontEndBbindings = '0', AllowSPPortalEdit = '0', AllowSPDomainManage = '0', AllowSPDomainAdd = '0',        
  AllowSPDomainRemove = '0', AllowSPDomainEdit = '0', AllowSPPermLevelManage = '0', AllowSPPermLevelAdd = '0', AllowSPPermLevelEdit = '0',        
  AllowSPPermLevelRemove = '0', AllowSPGroupsManage = '0', AllowSPGroupsAdd = '0', AllowSPGroupsEdit = '0', AllowSPGroupsRemove = '0',        
  AllowSPUsersManage = '0', AllowSPUsersAdd = '0', AllowSPUsersEdit = '0', AllowSPUsersRemove = '0', AllowSPUsersGroupAction = '0',      
  AllowToCancelSPSubscription = '0'      
Where AllowSPManagement = '0'        
Update HB_tblResellerAccessTemplate SET AllowSPFrontEndBbindings = '0', AllowSPPortalEdit = '0', AllowSPDomainManage = '0', AllowSPDomainAdd = '0',        
  AllowSPDomainRemove = '0', AllowSPDomainEdit = '0', AllowSPPermLevelManage = '0', AllowSPPermLevelAdd = '0', AllowSPPermLevelEdit = '0',        
  AllowSPPermLevelRemove = '0', AllowSPGroupsManage = '0', AllowSPGroupsAdd = '0', AllowSPGroupsEdit = '0', AllowSPGroupsRemove = '0',        
  AllowSPUsersManage = '0', AllowSPUsersAdd = '0', AllowSPUsersEdit = '0', AllowSPUsersRemove = '0', AllowSPUsersGroupAction = '0',      
  AllowToCancelSPSubscription = '0'      
Where AllowSPManagement = '0'        
        
Update HB_tblAccessTemplates SET AllowSPDomainAdd = '0', AllowSPDomainRemove = '0', AllowSPDomainEdit = '0'        
Where AllowSPDomainManage ='0'        
Update HB_tblCustomerAccessTemplate SET AllowSPDomainAdd = '0', AllowSPDomainRemove = '0', AllowSPDomainEdit = '0'        
Where AllowSPDomainManage ='0'        
Update HB_tblResellerAccessTemplate SET AllowSPDomainAdd = '0', AllowSPDomainRemove = '0', AllowSPDomainEdit = '0'        
Where AllowSPDomainManage ='0'        
       
Update HB_tblAccessTemplates SET AllowSPUsersAdd = '0', AllowSPUsersEdit = '0', AllowSPUsersRemove = '0', AllowSPUsersGroupAction = '0'        
Where AllowSPUsersManage ='0'        
Update HB_tblCustomerAccessTemplate SET AllowSPUsersAdd = '0', AllowSPUsersEdit = '0', AllowSPUsersRemove = '0', AllowSPUsersGroupAction = '0'        
Where AllowSPUsersManage ='0'       
Update HB_tblResellerAccessTemplate SET AllowSPUsersAdd = '0', AllowSPUsersEdit = '0', AllowSPUsersRemove = '0', AllowSPUsersGroupAction = '0'        
Where AllowSPUsersManage ='0'        
        
Update HB_tblAccessTemplates SET AllowSPGroupsAdd = '0', AllowSPGroupsEdit = '0', AllowSPGroupsRemove = '0'        
Where AllowSPGroupsManage ='0'        
Update HB_tblCustomerAccessTemplate SET AllowSPGroupsAdd = '0', AllowSPGroupsEdit = '0', AllowSPGroupsRemove = '0'        
Where AllowSPGroupsManage ='0'        
Update HB_tblResellerAccessTemplate SET AllowSPGroupsAdd = '0', AllowSPGroupsEdit = '0', AllowSPGroupsRemove = '0'        
Where AllowSPGroupsManage ='0'        
        
Update HB_tblAccessTemplates SET AllowCRMSync = '0', AllowCRMDomainsManage = '0', AllowCRMDomainsAdd = '0', AllowCRMDomainsRemove = '0',        
  AllowCRMDomainsEdit = '0', AllowCRMBUManage = '0', AllowCRMBUAdd = '0', AllowCRMBURemove = '0', AllowCRMBUEdit = '0', AllowCRMUsersManage = '0',        
  AllowCRMUsersAdd = '0', AllowCRMUsersEdit = '0', AllowCRMUsersRemove = '0', AllowCRMUsersGroupAction = '0', AllowToCancelCRMSubscription = '0'       
Where AllowCRMManagement = '0'        
Update HB_tblCustomerAccessTemplate SET AllowCRMSync = '0', AllowCRMDomainsManage = '0', AllowCRMDomainsAdd = '0', AllowCRMDomainsRemove = '0',        
  AllowCRMDomainsEdit = '0', AllowCRMBUManage = '0', AllowCRMBUAdd = '0', AllowCRMBURemove = '0', AllowCRMBUEdit = '0', AllowCRMUsersManage = '0',        
  AllowCRMUsersAdd = '0', AllowCRMUsersEdit = '0', AllowCRMUsersRemove = '0', AllowCRMUsersGroupAction = '0', AllowToCancelCRMSubscription = '0'        
Where AllowCRMManagement = '0'       
Update HB_tblResellerAccessTemplate SET AllowCRMSync = '0', AllowCRMDomainsManage = '0', AllowCRMDomainsAdd = '0', AllowCRMDomainsRemove = '0',        
  AllowCRMDomainsEdit = '0', AllowCRMBUManage = '0', AllowCRMBUAdd = '0', AllowCRMBURemove = '0', AllowCRMBUEdit = '0', AllowCRMUsersManage = '0',        
 AllowCRMUsersAdd = '0', AllowCRMUsersEdit = '0', AllowCRMUsersRemove = '0', AllowCRMUsersGroupAction = '0', AllowToCancelCRMSubscription = '0'        
Where AllowCRMManagement = '0'        
        
Update HB_tblAccessTemplates SET AllowCRMDomainsAdd = '0', AllowCRMDomainsRemove = '0', AllowCRMDomainsEdit = '0'        
Where AllowCRMDomainsManage ='0'        
Update HB_tblCustomerAccessTemplate SET AllowCRMDomainsAdd = '0', AllowCRMDomainsRemove = '0', AllowCRMDomainsEdit = '0'        
Where AllowCRMDomainsManage ='0'        
Update HB_tblResellerAccessTemplate SET AllowCRMDomainsAdd = '0', AllowCRMDomainsRemove = '0', AllowCRMDomainsEdit = '0'        
Where AllowCRMDomainsManage ='0'        
        
Update HB_tblAccessTemplates SET AllowCRMBUAdd = '0', AllowCRMBURemove = '0', AllowCRMBUEdit = '0'        
Where AllowCRMBUManage ='0'        
Update HB_tblCustomerAccessTemplate SET AllowCRMBUAdd = '0', AllowCRMBURemove = '0', AllowCRMBUEdit = '0'        
Where AllowCRMBUManage ='0'        
Update HB_tblResellerAccessTemplate SET AllowCRMBUAdd = '0', AllowCRMBURemove = '0', AllowCRMBUEdit = '0'        
Where AllowCRMBUManage ='0'        
        
Update HB_tblAccessTemplates SET AllowCRMUsersAdd = '0', AllowCRMUsersEdit = '0', AllowCRMUsersRemove = '0', AllowCRMUsersGroupAction = '0'        
Where AllowCRMUsersManage ='0'        
Update HB_tblCustomerAccessTemplate SET AllowCRMUsersAdd = '0', AllowCRMUsersEdit = '0', AllowCRMUsersRemove = '0', AllowCRMUsersGroupAction = '0'        
Where AllowCRMUsersManage ='0'        
Update HB_tblResellerAccessTemplate SET AllowCRMUsersAdd = '0', AllowCRMUsersEdit = '0', AllowCRMUsersRemove = '0', AllowCRMUsersGroupAction = '0'        
Where AllowCRMUsersManage ='0'       
        
Update HB_tblAccessTemplates SET LyncDomainManage = '0',        
  LyncDomainAdd = '0', LyncDomainRemove = '0', LyncDomainSetDefault = '0', LyncUserManage = '0', LyncUserAdd = '0', LyncUserAddBulk = '0',        
  LyncUserRemove = '0', LyncUserEdit = '0', LyncUserAllowUM = '0', LyncUserEnableDisable = '0', LyncUserGroupActions = '0', LyncFederationManage = '0',        
  LyncFederationAdd = '0', LyncFederationRemove = '0', LyncFederationEdit = '0', LyncFederationSync = '0', LyncPhoneNumberManage = '0',        
  LyncResponseGroupManage = '0', LyncPersistentChatManage = '0', LyncShowCallReport = '0', LyncShowConfCallReport = '0', LyncShowCallBilling = '0',       
  AllowToCancelOCSSubscription = '0'       
Where AllowLyncManage='0'        
Update HB_tblCustomerAccessTemplate SET LyncDomainManage = '0',        
  LyncDomainAdd = '0', LyncDomainRemove = '0', LyncDomainSetDefault = '0', LyncUserManage = '0', LyncUserAdd = '0', LyncUserAddBulk = '0',        
  LyncUserRemove = '0', LyncUserEdit = '0', LyncUserAllowUM = '0', LyncUserEnableDisable = '0', LyncUserGroupActions = '0', LyncFederationManage = '0',        
  LyncFederationAdd = '0', LyncFederationRemove = '0', LyncFederationEdit = '0', LyncFederationSync = '0', LyncPhoneNumberManage = '0',        
  LyncResponseGroupManage = '0', LyncPersistentChatManage = '0', LyncShowCallReport = '0', LyncShowConfCallReport = '0', LyncShowCallBilling = '0',       
  AllowToCancelOCSSubscription = '0'       
Where AllowLyncManage='0'        
Update HB_tblResellerAccessTemplate SET LyncDomainManage = '0',        
  LyncDomainAdd = '0', LyncDomainRemove = '0', LyncDomainSetDefault = '0', LyncUserManage = '0', LyncUserAdd = '0', LyncUserAddBulk = '0',          
  LyncUserRemove = '0', LyncUserEdit = '0', LyncUserAllowUM = '0', LyncUserEnableDisable = '0', LyncUserGroupActions = '0', LyncFederationManage = '0',        
  LyncFederationAdd = '0', LyncFederationRemove = '0', LyncFederationEdit = '0', LyncFederationSync = '0', LyncPhoneNumberManage = '0',        
  LyncResponseGroupManage = '0', LyncPersistentChatManage = '0', LyncShowCallReport = '0', LyncShowConfCallReport = '0', LyncShowCallBilling = '0',       
  AllowToCancelOCSSubscription = '0'        
Where AllowLyncManage='0'        
        
Update HB_tblAccessTemplates SET LyncDomainAdd = '0', LyncDomainRemove = '0', LyncDomainSetDefault = '0'        
Where LyncDomainManage='0'        
Update HB_tblCustomerAccessTemplate SET LyncDomainAdd = '0', LyncDomainRemove = '0', LyncDomainSetDefault = '0'        
Where LyncDomainManage='0'        
Update HB_tblResellerAccessTemplate SET LyncDomainAdd = '0', LyncDomainRemove = '0', LyncDomainSetDefault = '0'        
Where LyncDomainManage='0'        
        
Update HB_tblAccessTemplates SET LyncUserAdd = '0', LyncUserAddBulk = '0', LyncUserRemove = '0', LyncUserEdit = '0',        
  LyncUserAllowUM = '0', LyncUserEnableDisable = '0', LyncUserGroupActions = '0'        
Where LyncUserManage='0'        
Update HB_tblCustomerAccessTemplate SET LyncUserAdd = '0', LyncUserAddBulk = '0', LyncUserRemove = '0', LyncUserEdit = '0',        
  LyncUserAllowUM = '0', LyncUserEnableDisable = '0', LyncUserGroupActions = '0'        
Where LyncUserManage='0'        
Update HB_tblResellerAccessTemplate SET LyncUserAdd = '0', LyncUserAddBulk = '0', LyncUserRemove = '0', LyncUserEdit = '0',        
  LyncUserAllowUM = '0', LyncUserEnableDisable = '0', LyncUserGroupActions = '0'        
Where LyncUserManage='0'        
        
Update HB_tblAccessTemplates SET LyncFederationAdd = '0', LyncFederationRemove = '0', LyncFederationEdit = '0', LyncFederationSync = '0'        
Where LyncFederationManage='0'        
Update HB_tblCustomerAccessTemplate SET LyncFederationAdd = '0', LyncFederationRemove = '0', LyncFederationEdit = '0', LyncFederationSync = '0'        
Where LyncFederationManage='0'        
Update HB_tblResellerAccessTemplate SET LyncFederationAdd = '0', LyncFederationRemove = '0', LyncFederationEdit = '0', LyncFederationSync = '0'        
Where LyncFederationManage='0'        
        
Update HB_tblAccessTemplates SET ADOrganizationRemove='0',        
 ADSecurityGroupManage='0', ADSecurityGroupAdd='0', ADSecurityGroupRemove='0', ADUserAdd='0', ADUserRemove='0', AllowADOrgSync = '0',        
 ADUserEdit = '0', EnableADSyncAllowed = '0', ShowADProfileTab = '0', EditADProfileAllowed = '0', AllowToUpdatePasswordSettings = '0',      
 AllowToCancelADSubscription = '0', AllowToManageADUserCertificates = '0', AllowToEditADOrg = '0', AllowToManageADGroupAction = '0',     
AllowToExportADUsers = '0', AllowToExportADGroups = '0'      
Where ADManage='0'        
Update HB_tblCustomerAccessTemplate SET ADOrganizationRemove='0',        
 ADSecurityGroupManage='0', ADSecurityGroupAdd='0', ADSecurityGroupRemove='0', ADUserAdd='0', ADUserRemove='0', AllowADOrgSync = '0',        
 ADUserEdit = '0', EnableADSyncAllowed = '0', ShowADProfileTab = '0', EditADProfileAllowed = '0', AllowToUpdatePasswordSettings = '0',      
 AllowToCancelADSubscription = '0' , AllowToManageADUserCertificates = '0', AllowToEditADOrg = '0', AllowToManageADGroupAction = '0',     
AllowToExportADUsers = '0', AllowToExportADGroups = '0'     
Where ADManage='0'        
Update HB_tblResellerAccessTemplate SET ADOrganizationRemove='0',        
 ADSecurityGroupManage='0', ADSecurityGroupAdd='0', ADSecurityGroupRemove='0', ADUserAdd='0', ADUserRemove='0', AllowADOrgSync = '0',        
 ADUserEdit = '0', EnableADSyncAllowed = '0', ShowADProfileTab = '0', EditADProfileAllowed = '0', AllowToUpdatePasswordSettings = '0',      
 AllowToCancelADSubscription = '0', AllowToManageADUserCertificates = '0', AllowToEditADOrg = '0', AllowToManageADGroupAction = '0',     
AllowToExportADUsers = '0', AllowToExportADGroups = '0'     
Where ADManage='0'        
        
Update HB_tblAccessTemplates SET ADSecurityGroupAdd='0', ADSecurityGroupRemove='0'        
Where ADSecurityGroupManage='0'        
Update HB_tblCustomerAccessTemplate SET ADSecurityGroupAdd='0', ADSecurityGroupRemove='0'        
Where ADSecurityGroupManage='0'        
Update HB_tblResellerAccessTemplate SET ADSecurityGroupAdd='0', ADSecurityGroupRemove='0'        
Where ADSecurityGroupManage='0'            
    
Update HB_tblAccessTemplates SET EditADProfileAllowed='0'        
Where ShowADProfileTab='0'        
Update HB_tblCustomerAccessTemplate SET EditADProfileAllowed='0'        
Where ShowADProfileTab='0'        
Update HB_tblResellerAccessTemplate SET EditADProfileAllowed='0'        
Where ShowADProfileTab='0'        

Update HB_tblAccessTemplates SET ManageADUserReports='0', ManageADGroupReports='0'        
Where ShowADReports='0'        
Update HB_tblCustomerAccessTemplate SET ManageADUserReports='0', ManageADGroupReports='0'        
Where ShowADReports='0'        
Update HB_tblResellerAccessTemplate SET ManageADUserReports='0', ManageADGroupReports='0'        
Where ShowADReports='0'

Update HB_tblAccessTemplates SET AllowToManageTenants = '0', AllowToAddNewTenants = '0', AllowToEditExistingTenants = '0', AllowToRemoveTenant = '0',        
AllowToManageO365Domains = '0', AllowToSetO365DomainDefaultState = '0', AllowToRemoveO365Domain = '0', AllowtoManageO365Users = '0', AllowToAddNewO365Users = '0',        
AllowToEditExistingO365Users = '0', AllowToRemoveO365User = '0', AllowToManageO365SharedMbx = '0', AllowToAddNewO365SharedMbx = '0', AllowToEditExistingO365SharedMbx = '0',        
AllowToRemoveO365SharedMbx = '0', AllowToManageResourceMbx = '0', AllowToAddNewO365ResourceMbx = '0', AllowToEditExistingO365ResourceMbx = '0',       
AllowToRemoveO365ResourceMbx = '0',  AllowToManageO365Contacts = '0', AllowToAddNewO365Contacts = '0', AllowToEditExistingO365Contacts = '0', AllowToRemoveO365Contact = '0',        
AllowToManageO365Groups = '0', AllowToAddNewO365Groups = '0', AllowToEditExistingO365Groups = '0', AllowToRemoveO365Group = '0', AllowToManageO365GroupJobs = '0',        
AllowToRunO365GroupJob = '0', AllowToCancelO365GroupJob = '0', O365SPManagementAllowed = '0', AllowToCancelCSPSubscription = '0'        
Where AllowO365Management='0'        
Update HB_tblCustomerAccessTemplate SET AllowToManageTenants = '0', AllowToAddNewTenants = '0', AllowToEditExistingTenants = '0', AllowToRemoveTenant = '0',        
AllowToManageO365Domains = '0', AllowToSetO365DomainDefaultState = '0', AllowToRemoveO365Domain = '0', AllowtoManageO365Users = '0', AllowToAddNewO365Users = '0',        
AllowToEditExistingO365Users = '0', AllowToRemoveO365User = '0', AllowToManageO365SharedMbx = '0', AllowToAddNewO365SharedMbx = '0', AllowToEditExistingO365SharedMbx = '0',        
AllowToRemoveO365SharedMbx = '0', AllowToManageResourceMbx = '0', AllowToAddNewO365ResourceMbx = '0', AllowToEditExistingO365ResourceMbx = '0',       
AllowToRemoveO365ResourceMbx = '0',  AllowToManageO365Contacts = '0', AllowToAddNewO365Contacts = '0', AllowToEditExistingO365Contacts = '0', AllowToRemoveO365Contact = '0',        
AllowToManageO365Groups = '0', AllowToAddNewO365Groups = '0', AllowToEditExistingO365Groups = '0', AllowToRemoveO365Group = '0', AllowToManageO365GroupJobs = '0',        
AllowToRunO365GroupJob = '0', AllowToCancelO365GroupJob = '0', O365SPManagementAllowed = '0', AllowToCancelCSPSubscription = '0'        
Where AllowO365Management='0'        
Update HB_tblResellerAccessTemplate SET AllowToManageTenants = '0', AllowToAddNewTenants = '0', AllowToEditExistingTenants = '0', AllowToRemoveTenant = '0',        
AllowToManageO365Domains = '0', AllowToSetO365DomainDefaultState = '0', AllowToRemoveO365Domain = '0', AllowtoManageO365Users = '0', AllowToAddNewO365Users = '0',        
AllowToEditExistingO365Users = '0', AllowToRemoveO365User = '0', AllowToManageO365SharedMbx = '0', AllowToAddNewO365SharedMbx = '0', AllowToEditExistingO365SharedMbx = '0',        
AllowToRemoveO365SharedMbx = '0', AllowToManageResourceMbx = '0', AllowToAddNewO365ResourceMbx = '0', AllowToEditExistingO365ResourceMbx = '0',       
AllowToRemoveO365ResourceMbx = '0',  AllowToManageO365Contacts = '0', AllowToAddNewO365Contacts = '0', AllowToEditExistingO365Contacts = '0', AllowToRemoveO365Contact = '0',        
AllowToManageO365Groups = '0', AllowToAddNewO365Groups = '0', AllowToEditExistingO365Groups = '0', AllowToRemoveO365Group = '0', AllowToManageO365GroupJobs = '0',        
AllowToRunO365GroupJob = '0', AllowToCancelO365GroupJob = '0', O365SPManagementAllowed = '0', AllowToCancelCSPSubscription = '0'         
Where AllowO365Management='0'        
        
Update HB_tblAccessTemplates SET ResellerAbilityForHelpDeskModule= '0'        
 Where EnableResellerHelpDeskModule='0'        
Update HB_tblCustomerAccessTemplate SET ResellerAbilityForHelpDeskModule= '0'        
 Where EnableResellerHelpDeskModule='0'        
Update HB_tblResellerAccessTemplate SET ResellerAbilityForHelpDeskModule= '0'        
 Where EnableResellerHelpDeskModule='0'        
        
Update HB_tblAccessTemplates SET ShowBilling= '0'        
 Where EnableResellerBillingModule='0'        
Update HB_tblCustomerAccessTemplate SET ShowBilling= '0'        
 Where EnableResellerBillingModule='0'        
Update HB_tblResellerAccessTemplate SET ShowBilling= '0'        
 Where EnableResellerBillingModule='0'        
        
Update HB_tblAccessTemplates SET AllowtoAddVM = '0' ,AllowtoRemoveVM = '0' ,Allowtomanagemachineoperations = '0',        
 Allowtochangehostname = '0', Allowtochangememorysettings = '0', Allowtochangevirtualprocessors = '0',        
 Allowtomanagesnapshots = '0', Allowtochangesnapshotlimit = '0', Allowtoadddisk = '0', Allowtoremovedisk = '0',        
 Allowtoexpanddisk = '0', AllowtoaddNIC = '0', AllowtomanageNIC = '0', AllowtoremoveNIC = '0',       
 QuickMigrationAllowed = '0' ,LiveMigrationAllowed = '0' ,ChangeBandwidthAllowed = '0'      
,ShowDiskManagement = '0' ,ShowISOImageManagement = '0' ,ShowNICManagement = '0', ShowVMCredsInWHMCS = '0'        
,AllowToManageNICMACAddress = '0' ,AllowToManageBandwidthDetail = '0'      
, AllowToChangePassword = '0',AllowToSyncVM = '0' ,AllowToManageBootOrder = '0', AllowToCancelVPSSubscription = '0',   
SDNManagementAllowed = '0'   
Where AllowVPSManagement='0'        
Update HB_tblCustomerAccessTemplate SET AllowtoAddVM = '0' ,AllowtoRemoveVM = '0' ,Allowtomanagemachineoperations = '0',        
 Allowtochangehostname = '0', Allowtochangememorysettings = '0', Allowtochangevirtualprocessors = '0',        
 Allowtomanagesnapshots = '0', Allowtochangesnapshotlimit = '0', Allowtoadddisk = '0', Allowtoremovedisk = '0',        
 Allowtoexpanddisk = '0', AllowtoaddNIC = '0', AllowtomanageNIC = '0', AllowtoremoveNIC = '0',       
 QuickMigrationAllowed = '0' ,LiveMigrationAllowed = '0' ,ChangeBandwidthAllowed = '0'      
,ShowDiskManagement = '0' ,ShowISOImageManagement = '0' ,ShowNICManagement = '0', ShowVMCredsInWHMCS = '0'        
,AllowToManageNICMACAddress = '0' ,AllowToManageBandwidthDetail = '0'      
, AllowToChangePassword = '0',AllowToSyncVM = '0' ,AllowToManageBootOrder = '0', AllowToCancelVPSSubscription = '0',   
SDNManagementAllowed = '0'   
Where AllowVPSManagement='0'        
Update HB_tblResellerAccessTemplate SET AllowtoAddVM = '0' ,AllowtoRemoveVM = '0' ,Allowtomanagemachineoperations = '0',        
 Allowtochangehostname = '0', Allowtochangememorysettings = '0', Allowtochangevirtualprocessors = '0',        
 Allowtomanagesnapshots = '0', Allowtochangesnapshotlimit = '0', Allowtoadddisk = '0', Allowtoremovedisk = '0',        
 Allowtoexpanddisk = '0', AllowtoaddNIC = '0', AllowtomanageNIC = '0', AllowtoremoveNIC = '0',       
 QuickMigrationAllowed = '0' ,LiveMigrationAllowed = '0' ,ChangeBandwidthAllowed = '0'      
,ShowDiskManagement = '0' ,ShowISOImageManagement = '0' ,ShowNICManagement = '0', ShowVMCredsInWHMCS = '0'        
,AllowToManageNICMACAddress = '0' ,AllowToManageBandwidthDetail = '0'      
, AllowToChangePassword = '0',AllowToSyncVM = '0' ,AllowToManageBootOrder = '0', AllowToCancelVPSSubscription = '0',   
SDNManagementAllowed = '0'   
Where AllowVPSManagement='0'        
    
Update HB_tblAccessTemplates SET AllowTrunOnOffVM = '0', AllowShutDownVM = '0', AllowResetHardVM = '0', AllowSuspendResumeVM = '0',    
 AllowManageWebConsoleVM = '0', MoveVMAllowed = '0', AllowToChangePassword = '0', AllowToSyncVM = '0', QuickMigrationAllowed = '0',    
 LiveMigrationAllowed = '0', AllowResetHNVSettingsVM = '0', AllowShieldUnShieldVM = '0'    
Where Allowtomanagemachineoperations='0'        
Update HB_tblCustomerAccessTemplate SET  AllowTrunOnOffVM = '0', AllowShutDownVM = '0', AllowResetHardVM = '0', AllowSuspendResumeVM = '0',    
 AllowManageWebConsoleVM = '0', MoveVMAllowed = '0', AllowToChangePassword = '0', AllowToSyncVM = '0', QuickMigrationAllowed = '0',    
 LiveMigrationAllowed = '0', AllowResetHNVSettingsVM = '0', AllowShieldUnShieldVM = '0'    
Where Allowtomanagemachineoperations='0'        
Update HB_tblResellerAccessTemplate SET  AllowTrunOnOffVM = '0', AllowShutDownVM = '0', AllowResetHardVM = '0', AllowSuspendResumeVM = '0',    
 AllowManageWebConsoleVM = '0', MoveVMAllowed = '0', AllowToChangePassword = '0', AllowToSyncVM = '0', QuickMigrationAllowed = '0',    
 LiveMigrationAllowed = '0', AllowResetHNVSettingsVM = '0', AllowShieldUnShieldVM = '0'    
Where Allowtomanagemachineoperations='0'        

Update HB_tblAccessTemplates SET AllowVirtualMachinesUsageReportView='0', AllowVirtualMachinesUpTimeReport='0'        
Where ShowVPSReports='0'        
Update HB_tblCustomerAccessTemplate SET AllowVirtualMachinesUsageReportView='0', AllowVirtualMachinesUpTimeReport='0'        
Where ShowVPSReports='0'        
Update HB_tblResellerAccessTemplate SET AllowVirtualMachinesUsageReportView='0', AllowVirtualMachinesUpTimeReport='0'        
Where ShowVPSReports='0'

Update HB_tblAccessTemplates SET WorkfolderOrgManageAllowed = '0', WorkfoldersManageAllowed = '0', WorkfoldersAddAllowed = '0', WorkfoldersEditAllowed = '0',        
 WorkfoldersRemoveAllowed = '0', WorkfoldersSyncAllowed = '0', AllowToCancelWFSubscription = '0'       
Where WorkfolderHostingManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET WorkfolderOrgManageAllowed = '0', WorkfoldersManageAllowed = '0', WorkfoldersAddAllowed = '0', WorkfoldersEditAllowed = '0',        
 WorkfoldersRemoveAllowed = '0', WorkfoldersSyncAllowed = '0', AllowToCancelWFSubscription = '0'        
Where WorkfolderHostingManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET WorkfolderOrgManageAllowed = '0', WorkfoldersManageAllowed = '0', WorkfoldersAddAllowed = '0', WorkfoldersEditAllowed = '0',        
 WorkfoldersRemoveAllowed = '0', WorkfoldersSyncAllowed = '0', AllowToCancelWFSubscription = '0'        
Where WorkfolderHostingManageAllowed ='0'        
        
Update HB_tblAccessTemplates SET WorkfoldersAddAllowed = '0', WorkfoldersEditAllowed = '0', WorkfoldersRemoveAllowed = '0', WorkfoldersSyncAllowed = '0'        
Where WorkfoldersManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET WorkfoldersAddAllowed = '0', WorkfoldersEditAllowed = '0', WorkfoldersRemoveAllowed = '0', WorkfoldersSyncAllowed = '0'        
Where WorkfoldersManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET WorkfoldersAddAllowed = '0', WorkfoldersEditAllowed = '0', WorkfoldersRemoveAllowed = '0', WorkfoldersSyncAllowed = '0'        
Where WorkfoldersManageAllowed ='0'        
        
Update HB_tblAccessTemplates SET RDSPolicyManageAllowed = '0', RDSPolicyAddAllowed = '0', RDSPolicyEditAllowed = '0', RDSPolicyRemoveAllowed = '0', RDSUserManageAllowed = '0',        
 RDSUserAddAllowed = '0', RDSUserEditAllowed = '0', RDSUserRemoveAllowed = '0', AllowToCancelRDSSubscription = '0'        
Where RDSManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET RDSPolicyManageAllowed = '0', RDSPolicyAddAllowed = '0', RDSPolicyEditAllowed = '0', RDSPolicyRemoveAllowed = '0', RDSUserManageAllowed = '0',        
 RDSUserAddAllowed = '0', RDSUserEditAllowed = '0', RDSUserRemoveAllowed = '0', AllowToCancelRDSSubscription = '0'        
Where RDSManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET RDSPolicyManageAllowed = '0', RDSPolicyAddAllowed = '0', RDSPolicyEditAllowed = '0', RDSPolicyRemoveAllowed = '0', RDSUserManageAllowed = '0',        
 RDSUserAddAllowed = '0', RDSUserEditAllowed = '0', RDSUserRemoveAllowed = '0', AllowToCancelRDSSubscription = '0'       
Where RDSManageAllowed ='0'        
        
Update HB_tblAccessTemplates SET RDSPolicyAddAllowed = '0', RDSPolicyEditAllowed = '0', RDSPolicyRemoveAllowed = '0'        
Where RDSPolicyManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET RDSPolicyAddAllowed = '0', RDSPolicyEditAllowed = '0', RDSPolicyRemoveAllowed = '0'        
Where RDSPolicyManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET RDSPolicyAddAllowed = '0', RDSPolicyEditAllowed = '0', RDSPolicyRemoveAllowed = '0'        
Where RDSPolicyManageAllowed ='0'        
        
Update HB_tblAccessTemplates SET RDSUserAddAllowed = '0', RDSUserEditAllowed = '0', RDSUserRemoveAllowed = '0'        
Where RDSUserManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET RDSUserAddAllowed = '0', RDSUserEditAllowed = '0', RDSUserRemoveAllowed = '0'        
Where RDSUserManageAllowed ='0'       
Update HB_tblResellerAccessTemplate SET RDSUserAddAllowed = '0', RDSUserEditAllowed = '0', RDSUserRemoveAllowed = '0'        
Where RDSUserManageAllowed ='0'       
        
Update HB_tblAccessTemplates SET SubDomains = '0', DomainAlias = '0', DomainLimits = '0', IISAppPool = '0', FTPUsers = '0', RenameDomain = '0',       
DomainDeletion = '0', DomainTurnOff = '0', URlRedirection = '0', DefaultDoc = '0', CustomError = '0', MIMEType = '0', VirtualFolders = '0',       
FrontPageExt = '0', ASPScripting = '0', ASPNetScripting = '0', PHPScripting = '0', PerlScripting = '0', ColdFusionScripting = '0', Databases = '0',       
ODBCDSN = '0', FileManager = '0', SSLCert = '0', SharedSSL = '0', WebsiteStats = '0', DNSZone = '0', MailDomains = '0', EmailAccounts = '0',        
EmailLists = '0', EmailGroups = '0', WebAccountsManageAllowed = '0', DomainAddAllowed = '0', DomainEditAllowed = '0', DedicatedIPManageAllowed = '0',       
TempURLManageAllowed = '0', MailDomainTurnOnOffAllowed = '0', MailDomainAliasesAllowed = '0', WebHostingAccounts = '0', DNSOnlyHostingAccounts = '0',       
DBOnlyHostingAccounts = '0', MailOnlyHostingAccounts = '0', ShowWebHostingReports = '0', CustomButtons = '0', AllowToCancelWebSubscription = '0'          
Where AllowWebHostingManage ='0'        
Update HB_tblCustomerAccessTemplate SET SubDomains = '0', DomainAlias = '0', DomainLimits = '0', IISAppPool = '0', FTPUsers = '0', RenameDomain = '0',       
DomainDeletion = '0', DomainTurnOff = '0', URlRedirection = '0', DefaultDoc = '0', CustomError = '0', MIMEType = '0', VirtualFolders = '0',       
FrontPageExt = '0', ASPScripting = '0', ASPNetScripting = '0', PHPScripting = '0', PerlScripting = '0', ColdFusionScripting = '0', Databases = '0',       
ODBCDSN = '0', FileManager = '0', SSLCert = '0', SharedSSL = '0', WebsiteStats = '0', DNSZone = '0', MailDomains = '0', EmailAccounts = '0',        
EmailLists = '0', EmailGroups = '0', WebAccountsManageAllowed = '0', DomainAddAllowed = '0', DomainEditAllowed = '0', DedicatedIPManageAllowed = '0',       
TempURLManageAllowed = '0', MailDomainTurnOnOffAllowed = '0', MailDomainAliasesAllowed = '0', WebHostingAccounts = '0', DNSOnlyHostingAccounts = '0',       
DBOnlyHostingAccounts = '0', MailOnlyHostingAccounts = '0', ShowWebHostingReports = '0', CustomButtons = '0', AllowToCancelWebSubscription = '0'       
Where AllowWebHostingManage ='0'        
Update HB_tblResellerAccessTemplate SET SubDomains = '0', DomainAlias = '0', DomainLimits = '0', IISAppPool = '0', FTPUsers = '0', RenameDomain = '0',       
DomainDeletion = '0', DomainTurnOff = '0', URlRedirection = '0', DefaultDoc = '0', CustomError = '0', MIMEType = '0', VirtualFolders = '0',       
FrontPageExt = '0', ASPScripting = '0', ASPNetScripting = '0', PHPScripting = '0', PerlScripting = '0', ColdFusionScripting = '0', Databases = '0',       
ODBCDSN = '0', FileManager = '0', SSLCert = '0', SharedSSL = '0', WebsiteStats = '0', DNSZone = '0', MailDomains = '0', EmailAccounts = '0',        
EmailLists = '0', EmailGroups = '0', WebAccountsManageAllowed = '0', DomainAddAllowed = '0', DomainEditAllowed = '0', DedicatedIPManageAllowed = '0',       
TempURLManageAllowed = '0', MailDomainTurnOnOffAllowed = '0', MailDomainAliasesAllowed = '0', WebHostingAccounts = '0', DNSOnlyHostingAccounts = '0',       
DBOnlyHostingAccounts = '0', MailOnlyHostingAccounts = '0', ShowWebHostingReports = '0', CustomButtons = '0', AllowToCancelWebSubscription = '0'       
Where AllowWebHostingManage ='0'        

Update HB_tblAccessTemplates SET WebHostingAccounts = '0', DNSOnlyHostingAccounts = '0', DBOnlyHostingAccounts = '0', MailOnlyHostingAccounts = '0'        
Where WebAccountsManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET WebHostingAccounts = '0', DNSOnlyHostingAccounts = '0', DBOnlyHostingAccounts = '0', MailOnlyHostingAccounts = '0'        
Where WebAccountsManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET WebHostingAccounts = '0', DNSOnlyHostingAccounts = '0', DBOnlyHostingAccounts = '0', MailOnlyHostingAccounts = '0'        
Where WebAccountsManageAllowed ='0'        
        
Update HB_tblAccessTemplates SET ContactManageAllowed = '0', ContactAddAllowed = '0', ContactEditAllowed = '0', ContactRemoveAllowed = '0',        
LockUnLockManageAllowed = '0', DomainNameServerManageAllowed = '0', CustomNameServerManageAllowed = '0', TransferCodeManageAllowed = '0',        
DomainDNSManageAllowed  = '0', AllowToCancelDomainSubscription = '0'      
Where DomainNameManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET ContactManageAllowed = '0', ContactAddAllowed = '0', ContactEditAllowed = '0', ContactRemoveAllowed = '0',        
LockUnLockManageAllowed = '0', DomainNameServerManageAllowed = '0', CustomNameServerManageAllowed = '0', TransferCodeManageAllowed = '0',        
DomainDNSManageAllowed  = '0', AllowToCancelDomainSubscription = '0'      
Where DomainNameManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET ContactManageAllowed = '0', ContactAddAllowed = '0', ContactEditAllowed = '0', ContactRemoveAllowed = '0',        
LockUnLockManageAllowed = '0', DomainNameServerManageAllowed = '0', CustomNameServerManageAllowed = '0', TransferCodeManageAllowed = '0',        
DomainDNSManageAllowed  = '0', AllowToCancelDomainSubscription = '0'      
Where DomainNameManageAllowed ='0'        
        
Update HB_tblAccessTemplates SET ContactAddAllowed = '0', ContactEditAllowed = '0', ContactRemoveAllowed = '0'        
Where ContactManageAllowed ='0'        
Update HB_tblCustomerAccessTemplate SET ContactAddAllowed = '0', ContactEditAllowed = '0', ContactRemoveAllowed = '0'        
Where ContactManageAllowed ='0'        
Update HB_tblResellerAccessTemplate SET ContactAddAllowed = '0', ContactEditAllowed = '0', ContactRemoveAllowed = '0'        
Where ContactManageAllowed ='0'        
END        
GO

     
ALTER Procedure [CSP_GetAvailableSubnet]        
(        
@VPSHostingId int,        
@Type bit         
)        
AS        
Declare @IsSingleVM AS BIT      
SET @IsSingleVM = (Select IsSingleVM from HB_tblPackages P INNER JOIN HB_tblPackagesSold PS ON PS.PackageID = P.PackageID       
INNER JOIN HB_tblVPSHosting VPSH ON VPSH.SoldPackageId = PS.SoldPackageID WHERE VPSHostingID = @VPSHostingId)      
IF (@IsSingleVM = 0)      
BEGIN      
 Select SubNetId,SubNet, Gateway, VLanId,IPPoolName ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),      
 Case when VLanId=0 then '' else VLanId End)+','+Convert(Varchar(50),SubNetId)+','+Convert(Varchar(50),AllocationType)  AS IPSubnetGatwayVlanIdSubnetId , AllocationType   , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN
 From HB_VPS_tblVPSServerSubNets        
 Where [Type]=@Type AND (SubNetId IN (Select Distinct SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSHostingId=@VPSHostingId and VPSId='0')  OR AllocationType=1)      
 AND VPSServerGroupID = (Select VPSServerID from HB_tblVPSHosting Where VPSHostingID = @VPSHostingId)      
END      
ELSE      
BEGIN      
 Select SubNetId,SubNet, Gateway, VLanId,IPPoolName ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),      
 Case when VLanId=0 then '' else VLanId End)+','+Convert(Varchar(50),SubNetId)+','+Convert(Varchar(50),AllocationType)   AS IPSubnetGatwayVlanIdSubnetId  , AllocationType    , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN
 From HB_VPS_tblVPSServerSubNets        
 Where [Type]=@Type AND (SubNetId IN (Select Distinct SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSHostingId=0 and VPSId='0')  OR AllocationType=1)    
 AND VPSServerGroupID = (Select VPSServerID from HB_tblVPSHosting Where VPSHostingID = @VPSHostingId)      
 AND IsSharedVPSHostingPool = 1      
END      
GO

ALTER Procedure [CSP_GetAvailableSubnetAgainstCompanyID]         
(        
        
@VPSHostingId int,        
@Type bit,        
@CompanyID varchar(10)        
        
)        
        
AS        
Declare @IsSingleVM AS BIT      
SET @IsSingleVM = (Select IsSingleVM from HB_tblPackages P INNER JOIN HB_tblPackagesSold PS ON PS.PackageID = P.PackageID       
INNER JOIN HB_tblVPSHosting VPSH ON VPSH.SoldPackageId = PS.SoldPackageID WHERE VPSHostingID = @VPSHostingId)      
IF (@IsSingleVM = 0)      
BEGIN        
Select SubNetId,SubNet, Gateway, VLanId,IPPoolName          
,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)+','+Convert(Varchar(50),SubNetId)+','+Convert(Varchar(50),AllocationType)         
AS IPSubnetGatwayVlanIdSubnetId, AllocationType , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN
From HB_VPS_tblVPSServerSubNets        
Where [Type] =@Type and (SubNetId in (Select Distinct SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSHostingId=@VPSHostingId and VPSId='0')  OR AllocationType=1)         
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%' OR PoolAssignedToResellers like '%,0,%' OR PoolAssignedToResellers is Null)     
AND VPSServerGroupID = (Select VPSServerID from HB_tblVPSHosting Where VPSHostingID = @VPSHostingId)    
END      
ELSE      
BEGIN      
Select SubNetId,SubNet, Gateway, VLanId,IPPoolName          
,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)+','+Convert(Varchar(50),SubNetId)+','+Convert(Varchar(50),AllocationType)        
AS IPSubnetGatwayVlanIdSubnetId, AllocationType  , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN
From HB_VPS_tblVPSServerSubNets        
Where [Type] =@Type and (SubNetId in (Select Distinct SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSId='0')  OR AllocationType=1)  and IsSharedVPSHostingPool=1       
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%' OR PoolAssignedToResellers like '%,0,%' OR PoolAssignedToResellers is Null)      
AND VPSServerGroupID = (Select VPSServerID from HB_tblVPSHosting Where VPSHostingID = @VPSHostingId)      
END    
GO

ALTER Procedure CSP_GetFreeSubNets        
(        
@VPSServerGroupID bigint,        
@Type bit        
)        
AS        
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId ,'0' AllocationType ,'IP Pool Name [VLANID]' AS  PoolNameWithVLAN    
Union        
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],         
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName        
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)   
 +','+Convert(Varchar(2),AllocationType) AS IPSubnetGatwayVlanIdSubnetId   , AllocationType 
 , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN      
 from [HB_VPS_tblVPSServerSubNets]         
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0      
 GO

 ALTER  Procedure CSP_GetFreeSubNetsAgainstCompanyID        
(        
        
@VPSServerGroupID bigint,        
@Type bit,        
@CompanyID varchar(10)        
        
)        
        
AS           
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId,'0' AllocationType   ,'IP Pool Name [VLANID]' AS  PoolNameWithVLAN        
Union        
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],               
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName        
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)        
 AS IPSubnetGatwayVlanIdSubnetId , AllocationType  
 , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN 
 from [HB_VPS_tblVPSServerSubNets]         
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0      
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%'  OR PoolAssignedToResellers like '%,0,%')        

GO

  
  
ALTER Procedure [CSP_VPS_HB_tblVPSAccountsNICSettings_Get1]            
(            
   @ID int            
            
)            
            
AS            
            
Declare @ServerGroupId bigint     
Declare @IsSharedPool BIT    
Set @ServerGroupId=(Select  VPSServerID FRom HB_tblVPSHosting Where VPSHostingID=(Select VPSHostingId from HB_tblVPSAccounts Where VPSId=(Select VPSId from [HB_tblVPSAccountsNICSettings] Where Id=@ID)))       
SET @IsSharedPool =   (select IsSingleVM from HB_tblVPSHosting INNER JOIN HB_tblVPSAccounts ON HB_tblVPSAccounts.VPSHostingId=HB_tblVPSHosting.VPSHostingID  INNER JOIN HB_tblPackagesSold ON HB_tblVPSHosting.SoldPackageId=HB_tblPackagesSold.SoldPackageId INNER JOIN HB_tblPackages   
ON HB_tblPackages.PackageID=HB_tblPackagesSold.PackageID where VPSId=(Select top 1 VPSId from [HB_tblVPSAccountsNICSettings] Where Id=@ID))    
  
Select *, IPPoolName+' [VLanId='+Convert(Varchar(50),HB_VPS_tblVPSServerSubNets.VLanId)+']' AS PoolNameWithVLAN    From [HB_tblVPSAccountsNICSettings],HB_VPS_tblVPSServerSubNets 

Where Id=@ID            
and HB_VPS_tblVPSServerSubNets.Subnet=HB_tblVPSAccountsNICSettings.Subnet            
and VPSServerGroupID=@ServerGroupId                
and HB_VPS_tblVPSServerSubNets.[Type]=HB_tblVPSAccountsNICSettings.[Type]       
AND (left(IP, charindex(',', IP + ',') - 1) IN (Select IP from HB_VPS_tblVPSSubNetsIPs WHERE SubNetId=HB_VPS_tblVPSServerSubNets.SubNetId)  OR AllocationType=1) AND IsSharedVPSHostingPool = @IsSharedPool    
UNION ALL            
Select HB_tblVPSAccountsNICSettings.*,'','','','','','','','','','','','','',''
from HB_tblVPSAccountsNICSettings INNER JOIN             
HB_tblVPSAccounts ON HB_tblVPSAccountsNICSettings.VPSId = HB_tblVPSAccounts.VPSId     

INNER JOIN HB_tblVPSHosting ON HB_tblVPSHosting.VPSHostingID = HB_tblVPSAccounts.VPSHostingId            
INNER JOIN HB_VPS_tblVPSServerGroups on HB_tblVPSHosting.VPSServerID = HB_VPS_tblVPSServerGroups.VPSServerGroupID             
WHERE HB_tblVPSAccountsNICSettings.Id=@ID AND HVNEnabled = 1  and Type=0       
Union ALL  
Select HB_tblVPSAccountsNICSettings.*,'','','','','','','','','','','','','1','' from HB_tblVPSAccountsNICSettings               
INNER JOIN   HB_tblVPSAccounts ON HB_tblVPSAccountsNICSettings.VPSId = HB_tblVPSAccounts.VPSId                 
INNER JOIN HB_tblVPSHosting ON HB_tblVPSHosting.VPSHostingID = HB_tblVPSAccounts.VPSHostingId                
INNER JOIN HB_VPS_tblVPSServerGroups on HB_tblVPSHosting.VPSServerID = HB_VPS_tblVPSServerGroups.VPSServerGroupID                 
WHERE HB_tblVPSAccountsNICSettings.Id=@ID AND HVNEnabled = 0  and Type=0 and VPSServerGroupID=@ServerGroupId    
and HB_tblVPSAccountsNICSettings.Subnet=''  
GO

IF OBJECT_ID('CSP_GetVPSSubNetPoolIPDetails', 'P') IS NOT NULL
    DROP PROCEDURE CSP_GetVPSSubNetPoolIPDetails
GO  
CREATE PROCEDURE [CSP_GetVPSSubNetPoolIPDetails]  
(  
    @IPAddress NVARCHAR(50),
	@VLANId integer,
	@VirtualSwitch nvarchar(500),
	@ServerGroupId integer
)  
AS  
BEGIN  
    SELECT *  
    FROM HB_VPS_tblVPSSubNetsIPs    
    INNER JOIN HB_VPS_tblVPSServerSubNets     
        ON HB_VPS_tblVPSSubNetsIPs.SubNetId = HB_VPS_tblVPSServerSubNets.SubNetId  
    WHERE HB_VPS_tblVPSSubNetsIPs.IP = @IPAddress  
	and VLanId=@VLANId
	and VirtualSwitch=@VirtualSwitch
	and VPSServerGroupID=@ServerGroupId
END  
GO




IF OBJECT_ID('HB_tblVPSHostingDynamicSubnets', 'U') IS NULL
BEGIN
    CREATE TABLE HB_tblVPSHostingDynamicSubnets
    (
        ID INT IDENTITY(1,1) PRIMARY KEY,
        SubnetId INT,
        VPSHostingId INT
    )
END
GO

IF OBJECT_ID('CSP_InsertVPSHostingDynamicSubnet', 'P') IS NOT NULL
    DROP PROCEDURE CSP_InsertVPSHostingDynamicSubnet
GO

CREATE PROCEDURE [CSP_InsertVPSHostingDynamicSubnet]
(
    @SubnetId INT,
    @VPSHostingId INT
)
AS
BEGIN
    INSERT INTO HB_tblVPSHostingDynamicSubnets (SubnetId, VPSHostingId)
    VALUES (@SubnetId, @VPSHostingId)
END
GO


Alter Procedure CSP_GetFreeSubNets        
(        
@VPSServerGroupID bigint,        
@Type bit,
@CustomerId int
)        
AS        
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId ,'0' AllocationType ,
'IP Pool Name [VLANID]' AS  PoolNameWithVLAN    
Union        
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],         
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName        
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)   
 +','+Convert(Varchar(2),AllocationType) AS IPSubnetGatwayVlanIdSubnetId   , AllocationType 
 , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN      
 from [HB_VPS_tblVPSServerSubNets]         
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0      
 and (Exists (Select SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSHostingId = 0 and HB_VPS_tblVPSSubNetsIPs.SubNetId = [HB_VPS_tblVPSServerSubNets].SubNetId) 
 Or Exists (Select SubnetId from HB_VPS_tblVPSSubNetsIPs,HB_tblVPSHosting Where HB_VPS_tblVPSSubNetsIPs.SubNetId = [HB_VPS_tblVPSServerSubNets].SubNetId 
 and HB_tblVPSHosting.CustomerID=@CustomerId and HB_VPS_tblVPSSubNetsIPs.VPSHostingId = HB_tblVPSHosting.VPSHostingId)
 Or Exists (Select SubnetId from HB_tblVPSHostingDynamicSubnets, HB_tblVPSHosting where HB_tblVPSHostingDynamicSubnets.VPSHostingId = HB_tblVPSHosting.VPSHostingID
 and CustomerID=@CustomerId)
 )
GO

Alter Procedure CSP_GetFreeSubNetsShared     
(      
@VPSServerGroupID bigint,      
@Type bit      
)      
AS      
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId  ,'0' as AllocationType    
Union      
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],       
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName      
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)      
 AS IPSubnetGatwayVlanIdSubnetId ,AllocationType    
 from [HB_VPS_tblVPSServerSubNets]       
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=1    
and 
(Exists (Select SubnetId From HB_VPS_tblVPSSubNetsIPs Where VPSHostingId='0' and SUbNetId=[HB_VPS_tblVPSServerSubNets].SubNetId) 
OR 
	[HB_VPS_tblVPSServerSubNets].AllocationType=1)
GO

Alter  Procedure CSP_GetFreeSubNetsAgainstCompanyID        
(        
        
@VPSServerGroupID bigint,        
@Type bit,        
@CompanyID varchar(10),
@CustomerId int
        
)        
        
AS           
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId,'0' AllocationType   ,
'IP Pool Name [VLANID]' AS  PoolNameWithVLAN        
Union        
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],               
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName        
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)        
 AS IPSubnetGatwayVlanIdSubnetId , AllocationType  
 , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN 
 from [HB_VPS_tblVPSServerSubNets]         
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0      
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%'  OR PoolAssignedToResellers like '%,0,%')
and (Exists (Select SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSHostingId = 0 and HB_VPS_tblVPSSubNetsIPs.SubNetId = [HB_VPS_tblVPSServerSubNets].SubNetId) 
 Or Exists (Select SubnetId from HB_VPS_tblVPSSubNetsIPs,HB_tblVPSHosting Where HB_VPS_tblVPSSubNetsIPs.SubNetId = [HB_VPS_tblVPSServerSubNets].SubNetId 
 and HB_tblVPSHosting.CustomerID=@CustomerId and HB_VPS_tblVPSSubNetsIPs.VPSHostingId = HB_tblVPSHosting.VPSHostingId)
 Or Exists (Select SubnetId from HB_tblVPSHostingDynamicSubnets, HB_tblVPSHosting where HB_tblVPSHostingDynamicSubnets.VPSHostingId = HB_tblVPSHosting.VPSHostingID
 and CustomerID=@CustomerId)
 )
GO

Alter  Procedure CSP_GetFreeSubNetsAgainstCompanyIDShared    
(    
    
@VPSServerGroupID bigint,    
@Type bit,    
@CompanyID varchar(10)    
    
)    
AS      
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId    
Union    
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],     
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName    
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)    
 AS IPSubnetGatwayVlanIdSubnetId    
 from [HB_VPS_tblVPSServerSubNets]     
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=1  
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%'  OR PoolAssignedToResellers like '%,0,%')    
and (Exists (Select SubnetId From HB_VPS_tblVPSSubNetsIPs Where VPSHostingId='0' and SUbNetId=[HB_VPS_tblVPSServerSubNets].SubNetId)
Or [HB_VPS_tblVPSServerSubNets].AllocationType=1)
GO

Alter Procedure [CSP_GetAvailableSubnetAgainstCompanyID]         
(        
        
@VPSHostingId int,        
@Type bit,        
@CompanyID varchar(10)        
        
)        
        
AS        
	Declare @IsSingleVM AS BIT     
	Declare @VPSServerGroupID int

	Select @IsSingleVM = IsSingleVM, @VPSServerGroupID = VPSServerID from HB_tblPackages P INNER JOIN HB_tblPackagesSold PS ON PS.PackageID = P.PackageID       
	INNER JOIN HB_tblVPSHosting VPSH ON VPSH.SoldPackageId = PS.SoldPackageID WHERE VPSHostingID = @VPSHostingId
	
	      
	Select SubNetId,SubNet, Gateway, VLanId,IPPoolName          
	,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),
	Case when VLanId=0 then '' else VLanId End)+','+Convert(Varchar(50),SubNetId)+','+Convert(Varchar(50),AllocationType)        
	AS IPSubnetGatwayVlanIdSubnetId, AllocationType  , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN
	From HB_VPS_tblVPSServerSubNets        
	Where [Type] = @Type and IsSharedVPSHostingPool=@IsSingleVM        
	and (SubNetId in (Select Distinct SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSId='0' and (VPSHostingId = @VPSHostingId or @IsSingleVM = 1))  
	OR (AllocationType=1 and SubNetId in (Select SubnetId from HB_tblVPSHostingDynamicSubnets Where VPSHostingId=@VPSHostingId)))         
	AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%' OR PoolAssignedToResellers like '%,0,%' OR PoolAssignedToResellers is Null)      
	AND VPSServerGroupID = @VPSServerGroupID
	    
GO

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'SPR_GetVLANSForTrunkPort')
BEGIN
	DROP PROCEDURE SPR_GetVLANSForTrunkPort
END
GO

CREATE PROCEDURE SPR_GetVLANSForTrunkPort
(
	@VPSHostingId INT
)
AS
BEGIN

	DECLARE @VPSServerGroupId AS INTEGER
	DECLARE @CustomerId AS INTEGER
	SELECT @VPSServerGroupId = VPSServerID, @CustomerID = CustomerId 
	FROM HB_tblVPSHosting WHERE VPSHostingID = @VPSHostingId

	SELECT N.VLanId, N.VPSId FROM 
	HB_tblVPSAccountsNICSettings N, HB_tblVPSAccounts A, HB_tblVPSHosting H,
	HB_VPS_tblVPSServerSubNets S
	WHERE 
	S.Type = 0
	AND N.Type=0
	AND N.VLanId=S.VLanId
	AND N.Switch=S.VirtualSwitch
	AND S.AllocationType = 1
	AND S.Subnet = ''
	AND N.Subnet=''
	AND S.VPSServerGroupID=@VPSServerGroupId
	AND N.VPSId = A.VPSId
	AND A.VPSHostingId = H.VPSHostingID
	AND H.IsCancelled=0
	AND H.IsPending=0
	AND H.VPSServerID = @VPSServerGroupId
	AND H.CustomerID = @CustomerId

END
GO


Alter Procedure [CSP_GetAvailableSubnetAgainstCompanyID]         
(        
        
@VPSHostingId int,        
@Type bit 
        
)        
        
AS        
 Declare @IsSingleVM AS BIT     
 Declare @VPSServerGroupID int
 Declare @CompanyId int

 Select @IsSingleVM = IsSingleVM, @VPSServerGroupID = VPSServerID, @CompanyId= VPSH.CompanyId from HB_tblPackages P INNER JOIN HB_tblPackagesSold PS ON PS.PackageID = P.PackageID       
 INNER JOIN HB_tblVPSHosting VPSH ON VPSH.SoldPackageId = PS.SoldPackageID WHERE VPSHostingID = @VPSHostingId
 
       
 Select SubNetId,SubNet, Gateway, VLanId,IPPoolName          
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),
 Case when VLanId=0 then '' else VLanId End)+','+Convert(Varchar(50),SubNetId)+','+Convert(Varchar(50),AllocationType)        
 AS IPSubnetGatwayVlanIdSubnetId, AllocationType  , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN
 From HB_VPS_tblVPSServerSubNets        
 Where [Type] = @Type and IsSharedVPSHostingPool=@IsSingleVM        
 and (SubNetId in (Select Distinct SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSId='0' and (VPSHostingId = @VPSHostingId or @IsSingleVM = 1))  
 OR (AllocationType=1 and SubNetId in (Select SubnetId from HB_tblVPSHostingDynamicSubnets Where VPSHostingId=@VPSHostingId)))         
 AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%' OR PoolAssignedToResellers like '%,0,%' OR PoolAssignedToResellers is Null)      
 AND VPSServerGroupID = @VPSServerGroupID
 
GO


if (not exists (select * from HB_tblVPSHostingDynamicSubnets) and exists (select * from HB_VPS_tblVPSServerSubNets where AllocationType=1))
Begin

	Insert into HB_tblVPSHostingDynamicSubnets (SubnetId, VPSHostingId)
	Select Distinct SubnetId, A.VPSHostingId from HB_tblVPSAccounts A, HB_tblVPSAccountsNICSettings N, HB_VPS_tblVPSServerSubNets S
	 Where 
	 S.AllocationType = 1
	 and S.VLanId = N.VLanId
	 and S.VirtualSwitch  = N.Switch
	 And N.Type = 0
	 and S.Type = 0
	 and A.VPSId = N.VPSId
	 and S.VLanId!=0
End
GO


Alter PROCEDURE SPR_GetVLANSForTrunkPort 
(
 @VPSHostingId INT
)
AS
BEGIN

 DECLARE @VPSServerGroupId AS INTEGER
 DECLARE @CustomerId AS INTEGER
 SELECT @VPSServerGroupId = VPSServerID, @CustomerID = CustomerId 
 FROM HB_tblVPSHosting WHERE VPSHostingID = @VPSHostingId

 SELECT S.VLanId, A.VPSId FROM  HB_tblVPSAccounts A, HB_tblVPSHosting H,
 HB_VPS_tblVPSServerSubNets S, HB_tblVPSHostingDynamicSubnets D
 WHERE 
 S.SubnetId = D.SubnetId
 and D.VPSHostingId = H.VPSHostingID
 and H.VPSHostingID  = A.VPSHostingId
 and H.CustomerID=@CustomerId
 and H.VPSServerID = @VPSServerGroupId
 AND H.IsCancelled=0
 AND H.IsPending=0
 and S.AllocationType = 1

END
GO


Alter PROCEDURE SPR_GetMailFlowLogsByOrgId            
(              
 @OrganizationId int,              
 @StartDate datetime,              
 @EndDate datetime,            
 @PageNo int,            
 @PageSize int,            
 @SortExpression nvarchar(20),            
 @SortDirection nvarchar(5)            
)              
AS              
    BEGIN        
      
  IF EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id(N'[#MailFlowLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)                     
  BEGIN                
    DROP TABLE #MailFlowLog                     
  END    
            
  CREATE TABLE #MailFlowLog                      
  (                
   ResultId Int IDENTITY (1,1),             
   Mailbox nvarchar(500) collate database_default,              
   [Sent] int,    
   [Recieve] int,    
   [Total] int    
  )    
    
  Insert into #MailFlowLog (Mailbox, [Sent], Recieve, Total)     
  Select Distinct Sender,0,0,0 from Hb_tblExchangeMailFlowLogs Where OrganizationId=@OrganizationId    
  and Timestamp >= @StartDate and Timestamp <= @EndDate     
  and exists (Select Mailbox from Hb_tblExchangeMailFlowLogsMailboxes     
  where Hb_tblExchangeMailFlowLogs.Sender = Hb_tblExchangeMailFlowLogsMailboxes.Mailbox and OrganizationId=@OrganizationId)    
    
  Insert into #MailFlowLog (Mailbox, [Sent], Recieve, Total)     
  Select Distinct Mailbox,0,0,0 from Hb_tblExchangeMailFlowLogsMailboxes Where OrganizationId=@OrganizationId    
  and exists (Select Sender from Hb_tblExchangeMailFlowLogs where  OrganizationId=@OrganizationId    
  and Timestamp >= @StartDate and Timestamp <= @EndDate and ',' + Recipients +',' like ',%'+Hb_tblExchangeMailFlowLogsMailboxes.Mailbox+'%,'    
  )    
  and not exists (Select Mailbox from #MailFlowLog where Mailbox = Hb_tblExchangeMailFlowLogsMailboxes.Mailbox)    
    
  Update #MailFlowLog Set [Sent] = Isnull((Select Count(1) from Hb_tblExchangeMailFlowLogs F Where    
  F.EventId='SEND' and    
  F.OrganizationId=@OrganizationId    
  and F.Timestamp >= @StartDate and F.Timestamp <= @EndDate and F.Sender=#MailFlowLog.Mailbox),0)    
    
  Update #MailFlowLog Set [Recieve] = Isnull((Select Count(1) from Hb_tblExchangeMailFlowLogs F Where F.EventId='RECEIVE' and    
  F.OrganizationId=@OrganizationId    
  and F.Timestamp >= @StartDate and F.Timestamp <= @EndDate and ',' + F.Recipients + ',' like ',%' + #MailFlowLog.Mailbox + '%,'),0)    
    
  Update #MailFlowLog Set [Total] = ([Sent] + [Recieve])    
    
  Select IsNull(sum(Total),0) as OrgTotal, IsNull(Sum([Sent]),0) OrgSent, IsNull(Sum(Recieve),0) as OrgRecieve, IsNull(Max(ResultId),0) as TotalRecords from #MailFlowLog    
                 
  Declare @SortExp nvarchar(200)                
  Set @SortExp = @SortExpression +' '+ @SortDirection     
      
  Declare @SQL nvarchar(Max)                
  Set @SQL = 'Select  '                
                
  if(@PageSize != 0)                
  Begin                
   Set @SQL += 'Top(@PageSize) '                
  End               
     
  Set @SQL += ' *                 
 FROM (SELECT   Mailbox , [Sent], [Recieve], [Total], RowIndex= ROW_NUMBER() OVER(ORDER BY '+ @SortExp +')    
        FROM #MailFlowLog ) '    
                
SET @SQL += ' Records '            
                          
If (@PageSize != 0)                 
  SET @SQL += ' Where RowIndex > ((@PageNo - 1 ) * @PageSize) '                
            
Set @SQL += ' ORDER BY '+ @SortExp         
    
   EXEC sp_executesql @SQL, N'                 
   @OrganizationId int,              
   @StartDate datetime,              
   @EndDate datetime,            
   @PageNo int,            
   @PageSize int,            
   @SortExpression nvarchar(20),            
   @SortDirection nvarchar(5)',                
   @OrganizationId,              
   @StartDate,        
   @EndDate,            
   @PageNo,            
   @PageSize,            
@SortExpression,            
   @SortDirection        
       
    
 drop table #MailFlowLog    
END; 
GO

ALTER Procedure SPR_GetSettingsForVMServerMapping  
(  
@VPSId int  
)  
AS  
Declare @CurrentServerId int   
Declare @CustomerId int  
Declare @ServerGroupId int  
  
Select @CustomerId = H.CustomerId, @ServerGroupId = H.VPSServerID, @CurrentServerId = A.VPSServerId   
from HB_tblVPSHosting H INNER JOIN HB_tblVPSAccounts A ON H.VPSHostingID = A.VPSHostingId   
and A.VPSId=@VPSId  
   
Select Distinct @CurrentServerId as VPSServerId, [IP], ReferenceId As ServerName, 1 as CurrentServer, @CustomerId as CustomerId,  
@ServerGroupId as VPSServerGroupID  
from HB_VPS_tblVPSServer Where VPSServerID = @CurrentServerId   
  
Union  
  
Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,  
S.VPSServerGroupID  
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)  
and CustomerId = @CustomerId   
  
Union  
  
Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,  
S.VPSServerGroupID  
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)  
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping M2 Where M2.CustomerId=@CustomerId  
and M2.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId))
  
Order by CurrentServer Desc  
GO

ALTER Procedure SPR_GetSettingsForVMServerMappingForProvisioning  
(  
@VPSHostingId int  
)  
AS  
Declare @CustomerId int  
Declare @ServerGroupId int  
  
Select @CustomerId = H.CustomerId, @ServerGroupId = H.VPSServerID from HB_tblVPSHosting H Where H.VPSHostingID = @VPSHostingId  
  
Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,  
S.VPSServerGroupID  
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)  
and CustomerId = @CustomerId   
  
Union  
  
Select  S.VPSServerId, S.[IP], S.ReferenceId As ServerName, 0 as CurrentServer, M.CustomerId,  
S.VPSServerGroupID  
from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId)  
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping M2 Where M2.CustomerId=@CustomerId  
and M2.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @ServerGroupId))  
  
Order by CurrentServer Desc  
GO

ALTER Procedure CSP_GetRAMDetailOFServersAgainstServerGroup   
 @VPSServerGroupID int,   
 @CustomerId int  
AS        
Select Srv.VPSServerId, Srv.ReferenceID, isnull(sum(A.RAM),0) as RAMAllocad, IsNull(Srv.MaxRAM,0)*1024 as MaxRAMOnServer,        
(IsNull(Srv.MaxRAM,0)*1024)-(isnull(sum(A.RAM),0)) as FreeRAMOnServer, (isnull(sum(A.RAM),0)*100)/(IsNull(Srv.MaxRAM,0)*1024) AS PercentUsed,    
Srv.ServerRole    
from HB_VPS_tblVPSServer Srv left outer join HB_tblVPSAccounts A on Srv.VPSServerID = A.VPSServerId         
where Srv.VPSServerGroupID=@VPSServerGroupID and Srv.Active=1    
and Srv.VPSServerId IN   
(  
Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId) and CustomerId = @CustomerId  
  
Union  
  
Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId)  
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping M2 Where M2.CustomerId=@CustomerId  
and M2.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId))  
)  
group by Srv.VPSServerId, Srv.MaxRAM, Srv.ReferenceID, Srv.ServerRole       
Order By PercentUsed asc     
GO

ALTER PROCEDURE SP_EM_VPSMappedServersSelectBySGIdCustomerId  
 @VPSServerGroupID bigint,  
 @CustomerId int  
AS     
BEGIN    
 SELECT *  FROM [HB_VPS_tblVPSServer] WHERE  VPSServerGroupID = @VPSServerGroupID AND Active=1  
 and VPSServerId IN   
(  
Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId) and CustomerId = @CustomerId  
  
Union  
  
Select S.VPSServerId from HB_VPS_tblVPSServer S INNER JOIN HB_tblVPSCustomerToServerMapping M ON S.VPSServerID = M.VPSServerId  
Where S.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId)  
and CustomerId = -1 and not exists (Select * from HB_tblVPSCustomerToServerMapping M2 Where M2.CustomerId=@CustomerId  
and M2.VPSServerId in (Select VPSServerId from HB_VPS_tblVPSServer Where VPSServerGroupID = @VPSServerGroupId))  
)  
END       
GO

ALTER PROCEDURE SP_EM_VPS_GetAccounts   
(                                          
 @CompanyId nvarchar(10),                                          
 @CustomerId nvarchar(10),                                          
 @CustomerName nvarchar(200),                                          
 @AccountId nvarchar (50),                                          
 @VMName nvarchar (50),                                          
 @Status nvarchar(10),                               
 @ProviderID nvarchar(10),                                         
 @PageNo int,                                          
 @Total int,                                          
 @SortExp nvarchar(100),                                          
 @SortDir nvarchar(5),                                          
 @GetAll bit,                              
 @SubResellerId INT,                            
 @CustomerCompanyName nvarchar(200),   
 @Label nvarchar(100), @StaffRoleId int            
)                                          
As            
       
Update HB_tblVPSAccounts set OnDiskVMFolderName = replace(OnDiskVMFolderName, '\\', '\') where OnDiskVMFolderName like '%\\%'       
Update HB_tblVPSAccounts set OnDiskVHDFolderName = replace(OnDiskVHDFolderName, '\\', '\') where OnDiskVHDFolderName like '%\\%'       
Update HB_tblVPSAccountHardDiskSettings set VHDName= replace(VHDName, '\\','\') where VHDName like '%\\%'       
       
EXEC SPR_HandleEscapeCharsAndApostrophe @Text = @CustomerName OUTPUT       
      
if exists (select * from dbo.sysobjects where id = object_id(N'[#VPSAccounts]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)       
  drop table #VPSAccounts       
      
Create table #VPSAccounts       
(       
  [ID] int identity(1,1),       
  VPSHostingId int, VPSId bigint, VMName nvarchar(50),       
  CPUCores int, RAM INT, TotalDiskSpace INT, Generation INT, IP nvarchar(200), State nvarchar(50), OS nvarchar(200),       
  TimeUpdated DateTime, SealedImageTypeId INT, [Status] int, CustomerId int, [Name] nvarchar(200), CustCompanyName nvarchar(128),       
  SoldPackageId int, PackageId int, PackageName nvarchar(200), ResellerPackage bit, OwnerName nvarchar(200), OwnerId int, Counter int default(0),       
  IsSingleVM BIT, Label nvarchar(100), LastUpdated nvarchar(100), SealedImageID INT, VMHostName varchar(200), OperatingSystemId int ,SubStatus int    
 )       
                                          
 Declare @VPSHostingId int       
 Declare @VPSId bigint       
 Declare @Status_01 int       
 Declare @CustomerId_01 int       
 Declare @CustomerName_01 nvarchar(200)       
 Declare @SoldPackageId int       
 Declare @PackageId int       
 Declare @PackageName nvarchar(200)       
 Declare @ResellerPackage bit       
 Declare @UserCount int       
 Declare @IsSingleVM BIT;       
       
 set @UserCount = 1       
       
 Declare @SQL nvarchar(max)       
       
 Set @SQL='Insert Into #VPSAccounts(       
 VPSHostingId, VPSId, VMName, CPUCores, RAM, TotalDiskSpace, Generation, IP, State, OS, OperatingSystemId, TimeUpdated, SealedImageTypeId,       
 Status, CustomerId, [Name], CustCompanyName, SoldPackageId, PackageId, PackageName, ResellerPackage, OwnerName, OwnerId, IsSingleVM,       
 Label, LastUpdated, SealedImageID, VMHostName , SubStatus    
 )       
 Select HB_tblVPSHosting.VPSHostingId, VPSId, HB_tblVPSAccounts.VMName, CPUCores, RAM, TotalDiskSpace, ISNULL(Generation,''''), IP,       
 ISNULL((Select TOP 1 State  From HB_tblVPSServerHypervisors where VMName = HB_tblVPSAccounts.VMName       
 and HB_tblVPSServerHypervisors.serverid = HB_tblVPSAccounts.VPSServerid order by RecordId desc),''--'') As State,       
 ISNULL(NULLIF(HB_tblVPSAccounts.OperatingSystem,''''),1),       
 ISNULL((SELECT TOP 1 OperatingSystem FROM HB_VPS_tblSealedImages Inner Join HB_VPS_tblSealedImageTypes ON HB_VPS_tblSealedImageTypes.SealedImageTypeID=HB_VPS_tblSealedImages.SealedImageTypeID       
 WHERE SealedImageID = HB_tblVPSAccounts.SealedImageID), 1) As OperatingSystemId,       
 ISNULL((Select TOP 1 TimeUpdated From HB_tblVPSServerHypervisors where VMName = HB_tblVPSAccounts.VMName       
and HB_tblVPSServerHypervisors.serverid = HB_tblVPSAccounts.VPSServerid order by RecordId desc),'''') As TimeUpdated,       
 HB_tblVPSAccounts.SealedImageTypeId, HB_tblVPSAccounts.Status, HB_tblVPSHosting.CustomerId, tblCustomers.FirstName+'' ''+tblCustomers.LastName as Name,       
 tblCustomers.CompanyName, Hb_tblPackagesSold.SoldPackageId, Hb_tblPackagesSold.PackageId, Hb_tblPackagesSold.PackageName, Hb_tblPackages.ResellerPackage,       
 tblCompanies.FirstName+'' ''+tblCompanies.LastName,       
 CASE WHEN tblCustomers.CompanyId != 1 THEN (Select C2.CustomerId from tblCustomers C2 Where C2.OwnerId= tblCustomers.CompanyId) ELSE 0 END,       
 IsSingleVM, Label, LastUpdated, HB_tblVPSAccounts.SealedImageID, ISNULL(VMHostName,'''') , HB_tblVPSHosting.status     
 From HB_tblVPSHosting INNER JOIN HB_tblVPSAccounts ON HB_tblVPSHosting.VPSHostingId=HB_tblVPSAccounts.VPSHostingId       
 INNER JOIN Hb_tblPackagesSold ON HB_tblVPSHosting.SoldPackageId = Hb_tblPackagesSold.SoldPackageId       
 INNER JOIN Hb_tblPackages ON Hb_tblPackages.PackageId = Hb_tblPackagesSold.PackageId       
 INNER JOIN tblCustomers ON HB_tblVPSHosting.CustomerId=tblCustomers.CustomerId       
 INNER JOIN tblCompanies ON tblCustomers.CompanyId = tblCompanies.CompanyId       
 INNER JOIN HB_VPS_tblVPSServer ON HB_VPS_tblVPSServer.VPSServerID = HB_tblVPSAccounts.VPSServerid       
 LEFT OUTER JOIN HB_VPS_tblSealedImages ON HB_tblVPSAccounts.SealedImageID = HB_VPS_tblSealedImages.SealedImageID       
 Where 1=1 '                  
                
If (@Status !='2' and @Status != '-1' and @Status != '0')                
Set @SQL = @SQL + ' and HB_tblVPSAccounts.Status != 2 '                
                             
 IF @CompanyId != '' AND IsNumeric(@CompanyId) = 1 AND @CompanyId > 0                              
 BEGIN                              
  SET @SQL = @SQL + ' and tblCustomers.CompanyId='''+@CompanyId+''''                              
 END                               
                                          
 If @AccountId!=''                                          
 Begin                                   
  Set @SQL=@SQL+' and HB_tblVPSHosting.VPSHostingId='''+@AccountId+''''                                          
 End                                          
 If @CustomerId!=''                                          
 Begin                                          
  Set @SQL=@SQL+' and tblCustomers.CustomerId='''+@CustomerId+''''                                          
 End                            
 If @CustomerCompanyName != ''                                          
 Begin                                          
  Set @SQL=@SQL+' and tblCustomers.CompanyName like ''%''+N'''+replace(@CustomerCompanyName,'''','''''')+'''+''%'''                                          
 End                            
 If @CustomerName!=''                                          
 Begin                                          
  Set @SQL=@SQL+' and tblCustomers.FirstName+'' ''+tblCustomers.LastName like ''%''+N'''+ @CustomerName +'''+''%'''                                          
 End                                          
 If @VMName!=''                                          
 Begin                                          
  Set @SQL=@SQL+' and VMName like ''%''+N'''+replace(@VMName,'''','''''')+'''+''%'''                       
 End                                          
                                          
if @Label!=''                                                  
 Begin                                                  
  set @SQL=@SQL + ' and Label LIKE ''%''+N'''+ replace(@Label,'''','''''')+'''+''%'''                     
 End                                           
                               
if @ProviderID != '0'                              
Begin                              
   SET @SQL = @SQL + ' and HB_tblVPSHosting.VPSServerID in (Select VPSServerGroupID from HB_VPS_tblVPSServerGroups Where Provider = '+@ProviderID+')'                              
END             
If @SubResellerId!='0'     Begin     Set @SQL=@SQL+' and tblCustomers.SubResellerId='+convert(nvarchar(10),@SubResellerId)       End                               
  
if @StaffRoleId > 0  
BEGIN  
Set @SQL=@SQL+' and NOT Exists(Select 1 from tblCustomers_RestrictedRoles RA   
 Where RA.CustomerId = tblCustomers.CustomerId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
  
Set @SQL=@SQL+' and NOT Exists(Select 1 from tblResellers_RestrictedRoles RA   
 Where RA.CompanyId = tblCustomers.CompanyId And RA.RoleId = ' + convert(nvarchar(10),@StaffRoleId) + ')'  
END  
  
Set @SQL=@SQL+' order by HB_tblVPSHosting.VPSHostingId desc'   
                                          
EXEC (@SQL)                              
                              
update #VPSAccounts set [Status] =                              
case when (Select ActionType From HB_tblServiceQueue Where PackageTypeId='19' And AccountId=#VPSAccounts.VPSHostingId) is null then #VPSAccounts.Status else                              
 case when (Select ActionType From HB_tblServiceQueue Where PackageTypeId='19' And AccountId=#VPSAccounts.VPSHostingId) = 1 then 7 else                              
  case when (Select ActionType From HB_tblServiceQueue Where PackageTypeId='19' And AccountId=#VPSAccounts.VPSHostingId) = 3 then 8 else                              
   case when (Select ActionType From HB_tblServiceQueue Where PackageTypeId='19' And AccountId=#VPSAccounts.VPSHostingId) = 4 then 9 else                              
    case when (Select ActionType From HB_tblServiceQueue Where PackageTypeId='19' And AccountId=#VPSAccounts.VPSHostingId) = 5 then 10 else #VPSAccounts.Status End                              
   END                              
  END                              
 End                              
END                              
where VPSId = #VPSAccounts.VPSId                              
                              
update #VPSAccounts set [Status] =                              
Case When #VPSAccounts.Status='1' and (Select [Status] From HB_tblVPSHosting Where VPSHostingID= @VPSHostingId)='3' Then 3 ELSE                              
 Case When Exists(Select ActionType From HB_tblServiceQueue Where PackageTypeId='19' And AccountId=@VPSId and ActionTYpe='9') THEN 4 ELSE #VPSAccounts.Status END             
END                              
where VPSId = #VPSAccounts.VPSId                              
                        
UPDATE #VPSAccounts SET #VPSAccounts.Counter = (Select Max(ID) From #VPSAccounts)                                          
if @GetAll = 1                                           
begin                                 
 set @SQL = 'SELECT * FROM #VPSAccounts WHERE 1=1'                               
 If @Status!='0' and @Status != '-1' and @Status != ''       
  Begin                              
   Set @SQL = @SQL + ' AND Status='''+@Status+''''                                             
  End                   
 ELSE                  
  Begin                              
   Set @SQL = @SQL + ' AND Status!=2'                                             
  End                   
 Set @SQL = @SQL + ' order by '+@SortExp+' '+@SortDir                                        
end                              
else                                          
begin                                          
 Declare @Offset int;                                          
 IF @PageNo > 0                                          
 BEGIN                              
  set @Offset = (@PageNo-1) * @Total;                                          
 END                                          
 set @SQL = 'SELECT TOP '+ convert(nvarchar, @Total) +' * FROM #VPSAccounts WHERE 1=1'                              
                              
 If @Status!='0' and @Status != '-1' and @Status != ''      
  Begin                              
   Set @SQL = @SQL + ' AND Status='''+@Status+''''                                             
  End                              
 ELSE                   
  Begin                              
   Set @SQL = @SQL + ' AND Status!=2'                                           
  End                       
                 
 set @SQL = @SQL + ' AND ID NOT IN (SELECT ID FROM                                          
 (SELECT TOP '+ convert(nvarchar, @Offset) +' ID FROM #VPSAccounts order by '+@SortExp+' '+@SortDir+') as Tbl1) order by '+@SortExp+' '+@SortDir                                        
end                                          
 If @Status!='0' and @Status != '-1' and @Status != ''      
 Begin                    
  UPDATE #VPSAccounts SET #VPSAccounts.Counter = (Select Count(ID) From #VPSAccounts WHERE [Status] = @Status )                                 
 End                          
      
 EXEC (@SQL)                                          
DROP TABLE #VPSAccounts       
GO



  
ALTER  Procedure CSP_GetFreeSubNetsAgainstCompanyID          
(          
          
@VPSServerGroupID bigint,          
@Type bit,          
@CompanyID varchar(10),  
@CustomerId int  
          
)          
          
AS             
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId,'0' AllocationType   ,  
'IP Pool Name [VLANID]' AS  PoolNameWithVLAN          
Union          
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],                 
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName          
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End) 
 +','+Convert(Varchar(2),AllocationType) 
 AS IPSubnetGatwayVlanIdSubnetId , AllocationType    
 , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN   
 from [HB_VPS_tblVPSServerSubNets]           
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=0        
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%'  OR PoolAssignedToResellers like '%,0,%')  
and (Exists (Select SubNetId from HB_VPS_tblVPSSubNetsIPs Where VPSHostingId = 0 and HB_VPS_tblVPSSubNetsIPs.SubNetId = [HB_VPS_tblVPSServerSubNets].SubNetId)   
 Or Exists (Select SubnetId from HB_VPS_tblVPSSubNetsIPs,HB_tblVPSHosting Where HB_VPS_tblVPSSubNetsIPs.SubNetId = [HB_VPS_tblVPSServerSubNets].SubNetId   
 and HB_tblVPSHosting.CustomerID=@CustomerId and HB_VPS_tblVPSSubNetsIPs.VPSHostingId = HB_tblVPSHosting.VPSHostingId)  
 Or Exists (Select SubnetId from HB_tblVPSHostingDynamicSubnets, HB_tblVPSHosting where HB_tblVPSHostingDynamicSubnets.VPSHostingId = HB_tblVPSHosting.VPSHostingID  
 and CustomerID=@CustomerId)  
 )  
 GO
  
ALTER  Procedure CSP_GetFreeSubNetsAgainstCompanyIDShared      
(      
      
@VPSServerGroupID bigint,      
@Type bit,      
@CompanyID varchar(10)      
      
)      
AS        
Select '0' SubNetId,'0' VPSServerGroupID,'0' Subnet,'0' Gateway,'0' VLanId,'0' [Type],'IP Pool Name' IPPoolName,'0' IPSubnetGatwayVlanIdSubnetId ,'0' AllocationType   ,  
'IP Pool Name [VLANID]' AS  PoolNameWithVLAN       
Union      
Select SubNetId, VPSServerGroupID, Subnet, Gateway, VLanId, [Type],       
 Case when IPPoolName='IP Pool #Subnet' Then 'IP Pool '+Subnet else IPPoolName end AS IPPoolName      
 ,Convert(Varchar(50),SubNet)+','+Convert(Varchar(50),Gateway)+','+Convert(Varchar(50),Case when VLanId=0 then '' else VLanId End)
 +','+Convert(Varchar(2),AllocationType)      
 AS IPSubnetGatwayVlanIdSubnetId , AllocationType    
 , IPPoolName+' [VLanId='+Convert(Varchar(50),VLanId)+']' AS PoolNameWithVLAN     
 from [HB_VPS_tblVPSServerSubNets]       
 Where VPSServerGroupID=@VPSServerGroupID and [Type]=@Type  and IsSharedVPSHostingPool=1    
AND (PoolAssignedToResellers like '%,'+Convert(varchar(10),@CompanyID)+',%'  OR PoolAssignedToResellers like '%,0,%')      
and (Exists (Select SubnetId From HB_VPS_tblVPSSubNetsIPs Where VPSHostingId='0' and SUbNetId=[HB_VPS_tblVPSServerSubNets].SubNetId)  
Or [HB_VPS_tblVPSServerSubNets].AllocationType=1)  
GO

Alter PROCEDURE SPR_GetVLANSForTrunkPort 
(
 @VPSHostingId INT
)
AS
BEGIN

 DECLARE @VPSServerGroupId AS INTEGER
 DECLARE @CustomerId AS INTEGER
 SELECT @VPSServerGroupId = VPSServerID, @CustomerID = CustomerId 
 FROM HB_tblVPSHosting WHERE VPSHostingID = @VPSHostingId

 SELECT Distinct S.VLanId FROM  HB_tblVPSAccounts A, HB_tblVPSHosting H,
 HB_VPS_tblVPSServerSubNets S, HB_tblVPSHostingDynamicSubnets D
 WHERE 
 S.SubnetId = D.SubnetId
 and D.VPSHostingId = H.VPSHostingID
 and H.VPSHostingID  = A.VPSHostingId
 and H.CustomerID=@CustomerId
 and H.VPSServerID = @VPSServerGroupId
 AND H.IsCancelled=0
 AND H.IsPending=0
 and S.AllocationType = 1

END
GO

