USE [AIADatabaseV5]
GO
/****** Object:  StoredProcedure [dbo].[usp_GetSiteAccountSites]    Script Date: 2/1/2018 12:15:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		magic
-- Create date: 5/6/2018
-- Description:	Fetch building level accounts details for corresponding given Account Number.
-- =============================================

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[usp_GetSiteAccountSites]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[usp_GetSiteAccountSites]
GO

CREATE PROCEDURE [dbo].[usp_GetSiteAccountSites] 
	-- Add the parameters for the stored procedure here
	@strAccountNumber varchar(50)='', @pageNo int, @pageLength int, @recordCount int out
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--Get the records on the basis of parameters page length and page number rows
	 select LD.Id, LD.SiteIp, LD.Title,	LD.SiteIPTo, LD.SiteMasterIPTo,	LD.CreationDate, LD.ModifiedDate, LD.InstituteName,
		LD.Department, LD.UserId, LD.FirstName,	LD.EmailId
	 from 
	 (Select ROW_NUMBER() OVER (ORDER BY Site.Id) AS RowNo, 
	 Site.Id,Site.SiteIp,Site.Title,ISNULL(Site.SiteIPTo,'') as SiteIPTo,ISNULL(Site.SiteMasterIPTo,'') as SiteMasterIPTo,
		CONVERT(VARCHAR,Site.CreationDate,101) as CreationDate,
		CONVERT(VARCHAR,Site.ModifiedDate,101) as ModifiedDate,
		Site.InstituteName, Site.Department, AIAUser.Id as UserId,AIAUser.FirstName,AIAUser.EmailId
		 from License join LicenseToEdition on License.Id = LicenseToEdition.LicenseId 
		join SiteToLicenseEdition on LicenseToEdition.Id = SiteToLicenseEdition.LicenseEditionId
		join AIAUserToLicenseEdition on SiteToLicenseEdition.LicenseEditionId = AIAUserToLicenseEdition.LicenseEditionId
		join AIAUserToSite on SiteToLicenseEdition.SiteId = AIAUserToSite.SiteId
		join Site on SiteToLicenseEdition.SiteId = Site.Id
		join AIAUser on AIAUserToLicenseEdition.UserId = AIAUser.Id 
		where Site.IsActive=1 and License.AccountNumber=@strAccountNumber)
	 as LD
	 where
	 RowNo > @pageLength * (@pageNo - 1) AND 
	 RowNo <= @pageLength * @pageNo

	--Calculate total number of records
	select @recordCount = count(ResultTable.Id) from 
	(Select Site.Id,Site.SiteIp,Site.Title,ISNULL(Site.SiteIPTo,'') as SiteIPTo,ISNULL(Site.SiteMasterIPTo,'') as SiteMasterIPTo,
		CONVERT(VARCHAR,Site.CreationDate,101) as CreationDate,
		CONVERT(VARCHAR,Site.ModifiedDate,101) as ModifiedDate,
		Site.InstituteName, Site.Department, AIAUser.Id as UserId,AIAUser.FirstName,AIAUser.EmailId
		 from License join LicenseToEdition on License.Id = LicenseToEdition.LicenseId 
		join SiteToLicenseEdition on LicenseToEdition.Id = SiteToLicenseEdition.LicenseEditionId
		join AIAUserToLicenseEdition on SiteToLicenseEdition.LicenseEditionId = AIAUserToLicenseEdition.LicenseEditionId
		join AIAUserToSite on SiteToLicenseEdition.SiteId = AIAUserToSite.SiteId
		join Site on SiteToLicenseEdition.SiteId = Site.Id
		join AIAUser on AIAUserToLicenseEdition.UserId = AIAUser.Id 
		where Site.IsActive=1 and License.AccountNumber=@strAccountNumber) as ResultTable;

END



GO
