====== pears.NetQuestSet ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Original SQL ===== create procedure "pears"."NetQuestSet"( in "pWebUserID" char(20),in "qanswers" long varchar default null,in "pID" char(20) default null,in "pLocation" char(2) default null ) result( "pResult" char(250) ) //IQXWeb begin declare "userclass" char(20); select "iqxnetuserclassid" into "userclass" from "iqxnetuser" where "iqxnetuserid" = "pwebuserid"; if "pID" is null then if "userclass" = 'CANDIDATE' then set "pID" = "NetCandidateValidPersonID"("pWebUserID",null) else if "userclass" = 'CLIENT' then if(select "count"() from "iqxnetuserlink" where "iqxnetuserid" = "pwebuserid") = 1 then set "pID" = (select first "employment"."companyid" from "iqxnetuserlink" key join "employment" where "iqxnetuserlink"."iqxnetuserid" = "pwebuserid" order by 1 asc) end if end if end if; if "pID" is null then select '1:~No default ID found'; return end if end if; if "NetHasPermission"("pWebUserID","pID","pID") = 1 then call "IQXNetSaveQuestionnaire"("pID","qanswers","pLocation"); select '0:~Success' else select '99:~Permission denied' end if end /* DOC 2018-07-30 PC IW-513 Improve error handling 2018-10-22 MHS IW-456 multi-cand fix and tests */ /* TEST select * from NetQuestSet('test.candidate','','~~','~~~'); expect pResult=99:*; select * from NetQuestSet('test.candidate','',null,'~~~'); expect pResult=0:*; select * from NetQuestSet('test.client','',null,'~~~'); expect pResult=0:*; insert into iqxnetuserlink (iqxnetuserlinkid,iqxnetuserid,employmentid) values ('TESTXXX', 'test.client', 'TEST'); select * from NetQuestSet('test.client','',null,'~~~'); expect pResult=1:*; delete from iqxnetuserlink where iqxnetuserlinkid='TESTXXX'; */ go COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetQuestSet" IS {create PROCEDURE pears."NetQuestSet"(in pWebUserID char(20),in qanswers long varchar default null,in pID char(20) default null, in pLocation char(2) default null) result(pResult char(250)) //IQXWeb begin declare userclass char(20); select iqxnetuserclassid into userclass from iqxnetuser where iqxnetuserid=pwebuserid; if pID is null then if userclass='CANDIDATE' then set pID=NetCandidateValidPersonID(pWebUserID,null); else if userclass='CLIENT' then if (select count(*) from iqxnetuserlink where iqxnetuserid = pwebuserid)=1 then set pID=(select first employment.companyid from iqxnetuserlink key join employment where iqxnetuserlink.iqxnetuserid = pwebuserid order by 1); end if; end if; end if; if pID is null then select '1:~No default ID found'; return; end if; end if; if NetHasPermission(pWebUserID,pID,pID)=1 then call IQXNetSaveQuestionnaire(pID,qanswers,pLocation); select '0:~Success'; else select '99:~Permission denied'; end if; end /* DOC 2018-07-30 PC IW-513 Improve error handling 2018-10-22 MHS IW-456 multi-cand fix and tests */ /* TEST select * from NetQuestSet('test.candidate','','~~','~~~'); expect pResult=99:*; select * from NetQuestSet('test.candidate','',null,'~~~'); expect pResult=0:*; select * from NetQuestSet('test.client','',null,'~~~'); expect pResult=0:*; insert into iqxnetuserlink (iqxnetuserlinkid,iqxnetuserid,employmentid) values ('TESTXXX', 'test.client', 'TEST'); select * from NetQuestSet('test.client','',null,'~~~'); expect pResult=1:*; delete from iqxnetuserlink where iqxnetuserlinkid='TESTXXX'; */ }