USE [AIADatabaseV5] GO /****** Object: StoredProcedure [dbo].[InsertDemoLicenseAccount] Script Date: 2/1/2018 12:15:55 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertDemoLicenseAccount]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertDemoLicenseAccount] GO CREATE PROCEDURE [dbo].[InsertDemoLicenseAccount] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; BEGIN TRY BEGIN TRANSACTION DECLARE @sAccountNumber varchar(50) DECLARE @sLoginId varchar(50) DECLARE @iLicenseId int DECLARE @iLicenseEditionId int DECLARE @iAIAUserId int DECLARE @dtStartDate datetime DECLARE @dtEndDate datetime DECLARE @iLastAIAUserId int DECLARE @sMailBody varchar(1000) DECLARE @sLicenseeFname varchar(50) = 'Guest' DECLARE @sLicenseeLname varchar(50) = 'Account' DECLARE @sEmailId varchar(50) = 'edsales@adamcorp.com' -- license type of test account DECLARE @iLicenseTypeId tinyint = 5 -- user type of test account DECLARE @iUserTypeId tinyint = 8 -- set account type to High School DECLARE @iAccountTypeId tinyint = 1 DECLARE @iAmount tinyint = 0 DECLARE @iTotalLogins tinyint = 100 DECLARE @iActive tinyint = 1 DECLARE @iModesty tinyint = 0 DECLARE @dtCurrentDate datetime = getdate() DECLARE @iCountryId int = 233 DECLARE @iStateId int = 51 -- set edition to Instructor's Edition DECLARE @iEditionId tinyint = 1 DECLARE @iCreatorId int = 1 DECLARE @iLicenseExists tinyint = 0 DECLARE @iLicenseCounter int DECLARE @sErrorStatus char(2) = 'ok' -- set the startdate to current date & enddate to seven days ahead of current date SELECT @dtStartDate = @dtCurrentDate SELECT @dtEndDate = DATEADD(ms,-3,DATEADD(DAY,7,CONVERT(DATETIME,(CONVERT(VARCHAR,@dtCurrentDate,101))))) -- create a new guest license account INSERT INTO License(LicenseeFirstName, LicenseeLastName, LicenseTypeId, AccountTypeId, EmailId, Zip, StateId, CountryId, TotalLogins, IsActive, IsDistrictSiteLicense, CreationDate) VALUES (@sLicenseeFname, @sLicenseeLname, @iLicenseTypeId, @iAccountTypeId, @sEmailId, '', @iStateId, @iCountryId, @iTotalLogins, @iActive, 0, @dtCurrentDate ) -- to get the last inserted identity value in the current session SET @iLicenseId = SCOPE_IDENTITY() SET @sAccountNumber = 'AIAGA'+RIGHT('000000'+CONVERT(varchar(10),@iLicenseId),6) -- check if the created account number already exists if yes then create a new one SET @iLicenseExists = (SELECT 1 FROM License WHERE AccountNumber = @sAccountNumber) SET @iLicenseCounter = @iLicenseId WHILE @iLicenseExists > 0 BEGIN SET @iLicenseCounter = @iLicenseCounter + 1 SET @sAccountNumber = 'AIAGA'+RIGHT('000000'+CONVERT(varchar(10),@iLicenseCounter),6) SET @iLicenseExists = (SELECT 1 FROM License WHERE AccountNumber = @sAccountNumber) END UPDATE License SET AccountNumber = @sAccountNumber WHERE Id = @iLicenseId INSERT INTO LicenseSubscriptionDetail(LicenseId, SubscriptionValidFrom, SubscriptionValidThrough, TotalAmount, AmountPaid, AmountPending) VALUES(@iLicenseId, @dtStartDate, @dtEndDate, @iAmount, @iAmount, @iAmount) -- insert resource module of license INSERT INTO ModuleToLicense SELECT @iLicenseId as LicenseId,ResourceModule.Id as ModuleId,1 as Status FROM ResourceModule INSERT INTO LicenseToEdition(LicenseId, EditionId, TotalLogins, IsModesty) VALUES(@iLicenseId, @iEditionId, @iTotalLogins, @iModesty) SET @iLicenseEditionId = SCOPE_IDENTITY() -- fetch the last auto incremented id of aiauser table SET @iLastAIAUserId = (SELECT MAX(Id) FROM AIAUser) -- create a loginid for user SET @sLoginId = 'GA'+char(@iLastAIAUserId/260000%26+65)+ char(@iLastAIAUserId/10000%26+65)+ char(@iLastAIAUserId/1000%10+48)+char(@iLastAIAUserId/100%10+48)+ char(@iLastAIAUserId/10%10+48)+char(@iLastAIAUserId%10+48) INSERT INTO AIAUser(LoginId, Password, Firstname, Lastname, UserTypeId, EmailId, IsActive, CreatorId, CreationDate, ModifierId, ModifiedDate) VALUES(@sLoginId, @sLoginId, @sLicenseeFname, @sLicenseeLname, @iUserTypeId, @sEmailId, @iActive, @iCreatorId, @dtCurrentDate, @iCreatorId, @dtCurrentDate) SET @iAIAUserId = SCOPE_IDENTITY() INSERT INTO AIAUserToLicenseEdition(UserId, LicenseEditionId) VALUES(@iAIAUserId, @iLicenseEditionId) SET @sMailBody = 'Daily demo Account has been created:

User Id: '+@sLoginId+ '
Password: '+@sLoginId+ '

This demo account will be active for 7 days effective '+CONVERT(VARCHAR,@dtStartDate,101)+' to '+CONVERT(VARCHAR,@dtEndDate,101); COMMIT TRANSACTION EXEC msdb..sp_send_dbmail @profile_name='MailProfile', @recipients='info@tfei.org.uk;rahulr@Ebix.com;kpaul@ebix.com;digitalproducts@flr.follett.com;jennifer.hickey@ebix.com;debora.durazzo@ebix.com;renata.nascimento@ebix.com;thaisa.braguim@ebix.com;DigitalContentTrials@FollettSoftware.com; timothy.spaid@ebix.com; lori.byro@ebix.com; luis.maida@rackspace.ebix.com; Daniela.Laiati@rackspace.ebix.com', @body = @sMailBody, @body_format = 'HTML', @subject = 'Demo Account Created.' SELECT @sErrorStatus as SPStatus END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION SELECT Error_Message() as SPStatus END CATCH END GO