CREATE PROCEDURE rrhh.sp_guardarDocumentoPlanillaUnica
@numId int,
@numCodigo int,
@numTipoDocumento int,
@numUsuario int,
@dbRespuesta varchar(300) output,
@dbId int output
as
begin
	set nocount on;

	DECLARE @dbCnt int;
	DECLARE @dbError varchar(300);

	begin tran guardarDocumento
	begin try
		SELECT @dbCnt = COUNT(*) FROM rrhh.cat_tiposDocumentoPlanillaUnica WHERE (idDocumento = @numTipoDocumento OR codigo = @numCodigo) AND estado = 1 and id != @numId;

		if @dbCnt > 0
			begin
				set @dbError = 'duplicado';
			end

		if @dbError is null
			begin
				if @numId = 0
					begin
						insert into rrhh.cat_tiposDocumentoPlanillaUnica(codigo,idDocumento,idUsuario,idUltimoUsuario) values(@numCodigo,@numTipoDocumento,@numUsuario,@numUsuario);
						SELECT @dbId = SCOPE_IDENTITY();
					end
				else
					begin
						set @dbId = @numId;

						update rrhh.cat_tiposDocumentoPlanillaUnica SET codigo = @numCodigo,idDocumento = @numTipoDocumento,idUltimoUsuario = @numUsuario WHERE id = @dbId;
					end
			end

		set @dbRespuesta = ISNULL(@dbError,'success');
		commit tran guardarDocumento
	end try
	begin catch
		SET @dbRespuesta = 'Error: ' + ERROR_MESSAGE() + ', Linea: ' + CAST(ERROR_LINE() AS NVARCHAR(10));
		rollback tran guardarDocumento
	end catch
end