create procedure rrhh.sp_guardarCodigoObservacionPlanillaUnica
@numId int,
@numCodigo int,
@txtConcepto varchar(150),
@numAplicaPersonaNatural bit,
@numAplicaPersonaJuridica bit,
@txtValidaciones text,
@numUsuario int,
@dbRespuesta varchar(300) output,
@dbId int output
as
begin
	set nocount on;
	declare @dbError varchar(300);
	declare @dbCnt int;

	begin tran guardarCodigo
	begin try
		SELECT @dbCnt = COUNT(*) FROM rrhh.cat_codigosObservacionPlanillaUnica WHERE codigo = @numCodigo and id != @numId and estado = 1;

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

		if @dbError is null
			begin
				if @numId = 0
					begin
						insert into rrhh.cat_codigosObservacionPlanillaUnica(codigo,concepto,aplicaPersonaJuridica,aplicaPersonaNatural,validaciones,idUsuario,idUltimoUsuario) values(@numCodigo,@txtConcepto,@numAplicaPersonaJuridica,@numAplicaPersonaNatural,@txtValidaciones,@numUsuario,@numUsuario);
						select @dbId = SCOPE_IDENTITY();
					end
				else
					begin
						set @dbId = @numId;
						update rrhh.cat_codigosObservacionPlanillaUnica set codigo = @numCodigo, concepto = @txtConcepto,aplicaPersonaJuridica = @numAplicaPersonaJuridica,aplicaPersonaNatural = @numAplicaPersonaNatural,validaciones = @txtValidaciones,idUltimoUsuario = @numUsuario WHERE id = @numId;
					end
			end
		
		set @dbRespuesta = ISNULL(@dbError,'success');
		commit tran guardarCodigo
	end try
	begin catch
		set @dbRespuesta = 'Error: ' + ERROR_MESSAGE() + ', Linea: ' + CAST(ERROR_LINE() AS NVARCHAR(10));
		rollback tran guardarCodigo
	end catch
end