====== pears.NetCandidateSetRegistrationComplete ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetCandidateSetRegistrationComplete"( in "pWebUserID" char(20),in "pPersonID" char(20) default null )
result( "pResult" char(250) )
// IQXWeb
begin
declare "pnewstatus" char(1);
set "pPersonID" = "NetCandidateValidPersonID"("pWebUserID","pPersonID");
if "pPersonID" is null then
select '97:~Unique candidate link required';
return
end if;
set "pnewstatus" = "isnull"((select "textvalue" from "iqxnetswitch" where "IQXNetSwitchid" = 'DEFAULTCANDSTATE'),(select top 1 "initialapplicantstatus" from "params" order by "dbid" asc),'C');
update "person" set "status" = "pnewstatus" where "personid" = "pPersonID";
delete from "IQXNetWizardState" where "IQXNetUserID" = "pWebUserID";
select '0:~Success'
end /* DOC
2018-10-22 MHS IW-456 multi-cand fix and tests
2019-03-05 PC IW-873 add top 1 and order by on subqueries. Also modified method of extracting switch value
2019-4-8 MHS added cleanup of IQXNetWizardState
*/
/* TEST
call NetTestSetup('');
update person set status='C' where personid='test';
update iqxnetswitch set textvalue='C' where iqxnetswitchid='DEFAULTCANDSTATE';
update params set initialapplicantstatus='R';
select isnull(status,'!') as A from person where personid='test';
expect A=C;
select pResult from NetCandidateSetRegistrationComplete('test.candidate','test9');
expect 97*;
select pResult from NetCandidateSetRegistrationComplete('test.candidate1',null);
expect 97*;
update params set initialapplicantstatus=null;
update iqxnetswitch set textvalue=null where iqxnetswitchid='DEFAULTCANDSTATE';
select pResult from NetCandidateSetRegistrationComplete('test.candidate','test');
expect pResult=0*;
select isnull(status,'!') as B from person where personid='test';
expect B=C;
update params set initialapplicantstatus='X';
select pResult from NetCandidateSetRegistrationComplete('test.candidate','test');
expect pResult=0*;
select isnull(status,'!') as D from person where personid='test';
expect D=X;
update iqxnetswitch set textvalue='R' where iqxnetswitchid='DEFAULTCANDSTATE';
call NetCandidateSetRegistrationComplete('test.candidate','test');
select isnull(status,'!') as C from person where personid='test';
expect C=R;
update person set status='C' where personid='test';
update iqxnetswitch set textvalue='C' where iqxnetswitchid='DEFAULTCANDSTATE';
update params set initialapplicantstatus='R';
*/
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetCandidateSetRegistrationComplete" IS
{create PROCEDURE pears."NetCandidateSetRegistrationComplete"(pWebUserID char(20),in pPersonID char(20) default null)
RESULT(pResult char(250) )
// IQXWeb
BEGIN
declare pnewstatus char(1);
set pPersonID=NetCandidateValidPersonID(pWebUserID,pPersonID);
if pPersonID is null then
select '97:~Unique candidate link required';
return;
end if;
set pnewstatus = isnull((select textvalue from iqxnetswitch where IQXNetSwitchid='DEFAULTCANDSTATE'), (select top 1 "initialapplicantstatus" from "params" order by dbid), 'C');
update person set status=pnewstatus where personid=pPersonID;
delete from IQXNetWizardState where IQXNetUserID=pWebUserID;
select '0:~Success';
END
/* DOC
2018-10-22 MHS IW-456 multi-cand fix and tests
2019-03-05 PC IW-873 add top 1 and order by on subqueries. Also modified method of extracting switch value
2019-4-8 MHS added cleanup of IQXNetWizardState
*/
/* TEST
call NetTestSetup('');
update person set status='C' where personid='test';
update iqxnetswitch set textvalue='C' where iqxnetswitchid='DEFAULTCANDSTATE';
update params set initialapplicantstatus='R';
select isnull(status,'!') as A from person where personid='test';
expect A=C;
select pResult from NetCandidateSetRegistrationComplete('test.candidate','test9');
expect 97*;
select pResult from NetCandidateSetRegistrationComplete('test.candidate1',null);
expect 97*;
update params set initialapplicantstatus=null;
update iqxnetswitch set textvalue=null where iqxnetswitchid='DEFAULTCANDSTATE';
select pResult from NetCandidateSetRegistrationComplete('test.candidate','test');
expect pResult=0*;
select isnull(status,'!') as B from person where personid='test';
expect B=C;
update params set initialapplicantstatus='X';
select pResult from NetCandidateSetRegistrationComplete('test.candidate','test');
expect pResult=0*;
select isnull(status,'!') as D from person where personid='test';
expect D=X;
update iqxnetswitch set textvalue='R' where iqxnetswitchid='DEFAULTCANDSTATE';
call NetCandidateSetRegistrationComplete('test.candidate','test');
select isnull(status,'!') as C from person where personid='test';
expect C=R;
update person set status='C' where personid='test';
update iqxnetswitch set textvalue='C' where iqxnetswitchid='DEFAULTCANDSTATE';
update params set initialapplicantstatus='R';
*/
}