SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

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

-- ====================================================  
-- Author: Ebix   
-- Create date: 12-Feb-2018  
-- Description: To delete  and insert User Rights  
-- ====================================================  
create PROCEDURE [dbo].[usp_InsertDeleteUserManageRights]
 -- Add the parameters for the stored procedure here  
	@RoleName varchar(50),@ActivityId int, @UserId int,@RequestType varchar(20),
	@Status bit out  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
SET NOCOUNT ON;  
declare @RoleId int;
declare @ParentId int;
Set @RoleId=(Select Id From UserType WHere Title=@RoleName);
set @ParentId=(select top 1 ParentId FROM Activity WHERE id =@ActivityId)
 set @Status = 0;  
 BEGIN TRY  
  BEGIN TRANSACTION  
	if(@RequestType='insert')
	   Begin
	        INSERT INTO AIAUserActivity(UserId,RoleId,ActivityId) 
			Select @UserId,@RoleId,Id from Activity Where ParentId=@ActivityId and IsActive=1
	   End;
	   if(@RequestType='Remove')
	   begin
	         DELETE FROM AIAUserActivity 
			 WHERE UserId = @UserId AND RoleId = @RoleId AND ActivityId IN (SELECT id FROM Activity WHERE ParentId=@ActivityId )
	   end
	

  COMMIT TRANSACTION  
  set @Status = 1;  
 END TRY  
 BEGIN CATCH  
  IF @@TRANCOUNT > 0  
   ROLLBACK TRANSACTION  
 END CATCH  
  
END  

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

