SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

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

-- ====================================================  
-- Author:  Magic Software  
-- Create date: 06-Feb-2018  
-- Description: To insert or update the module status on or off for a license
-- ====================================================  
CREATE PROCEDURE [dbo].[usp_UpdateLicenseModuleStatus]
  @LicenseId int,
	 @ModuleId int,
	 @ModuleStatus bit,
	@Status bit out  
AS
BEGIN
	
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;  
 set @Status = 0;  
 BEGIN TRY  
  BEGIN TRANSACTION  
  if(exists(select * from ModuleToLicense where ModuleId = @ModuleId and LicenseId = @LicenseId))
  begin
   UPDATE ModuleToLicense SET Status = @ModuleStatus where ModuleId = @ModuleId and LicenseId = @LicenseId;  
  end
  else
  begin
   insert into ModuleToLicense(LicenseId, ModuleId, Status) values(@LicenseId, @ModuleId, @ModuleStatus);
  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