====== pears.NetOwnerCandidateProfileSet ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetOwnerCandidateProfileSet"( in "pWebUserID" char(20),in "ppersonid" char(20),in "pForenames" char(50) default 'NOT-SET',in "pSurname" char(50) default 'NOT-SET',in "pGender" char(20) default 'NOT-SET',in "pdob" char(20) default 'NOT-SET',in "phomephone" char(250) default 'NOT-SET',in "pDayPhone" char(250) default 'NOT-SET',in "pMobile" char(250) default 'NOT-SET',in "pemail" char(250) default 'NOT-SET',in "pAddr1" char(50) default 'NOT-SET',in "pAddr2" char(50) default 'NOT-SET',in "pAddr3" char(50) default 'NOT-SET',in "pTown" char(50) default 'NOT-SET',in "pCounty" char(50) default 'NOT-SET',in "pCountry" char(50) default 'NOT-SET',in "pPostcode" char(50) default 'NOT-SET',in "pOLDForenames" char(50) default 'NOT-SET',in "pOLDSurname" char(50) default 'NOT-SET',in "pOLDGender" char(20) default 'NOT-SET',in "pOLDdob" char(20) default 'NOT-SET',in "pOLDhomephone" char(250) default 'NOT-SET',in "pOLDDayPhone" char(250) default 'NOT-SET',in "pOLDMobile" char(250) default 'NOT-SET',in "pOLDemail" char(250) default 'NOT-SET',in "pOLDAddr1" char(50) default 'NOT-SET',in "pOLDAddr2" char(50) default 'NOT-SET',in "pOLDAddr3" char(50) default 'NOT-SET',in "pOLDTown" char(50) default 'NOT-SET',in "pOLDCounty" char(50) default 'NOT-SET',in "pOLDCountry" char(50) default 'NOT-SET',in "pOLDPostcode" char(50) default 'NOT-SET',
in "qanswers" long varchar default null )
result( "pResult" char(250) )
begin
declare "dateofbirth" date;
declare "bnamechanged" smallint;
declare "ssql" char(255);
declare "DivId" char(20);
declare "PersID" char(20);
declare @StaffID char(20);
declare "PayrollCoID" char(20);
set "bnamechanged" = 0;
set "ssql" = '';
set "DivID" = (select first "staff"."divisionid" from "iqxnetuser" key join "staff" where "iqxnetuser"."iqxnetuserid" = "pWebUserID");
if "IQXNetHasPermission"("pWebUserID",'ADDCANDIDATES') = 0 then
select '99:~Permission denied';
return
end if;
if "isnull"("pForenames",'') = '' or "isnull"("pSurname",'') = '' then
select '100:~Please enter both a forename and a surname';
return
end if;
if((select "count"() from "person" where "person"."personid" = "ppersonid") = 0) then
set @StaffID = (select first "staffid" from "iqxnetuser" where "iqxnetuserid" = "pWebUserID");
set "PersID" = "uniquekey"("pForenames"+"pSurname");
set "PayrollCoID" = (select "DefPayrollCoID" from "Division" where "divisionid" = "DivID");
insert into "person"( "personid","staffid","divisionid","name","keyname","status","forenames","surname","salutation","registrationdate","payrollnumber","PayrollIdentifier" ) values( "PersID",@StaffID,"DivID","pForenames"+' '+"pSurname","ucase"("pSurname")+' '+"ucase"("pForenames"),'C',"pForenames","pSurname","pForenames","now"(),'NEW',"PayrollCoID" )
else
set "PersID" = "ppersonid";
if "isnull"("pforenames",'') <> "isnull"("poldforenames",'') then
set "ssql" = "ssql"+',forenames=pforenames';
set "ssql" = "ssql"+',salutation=getword(pforenames,1)';
set "bnamechanged" = 1
end if;
if "isnull"("psurname",'') <> "isnull"("poldsurname",'') then
set "ssql" = "ssql"+',surname=psurname';
set "bnamechanged" = 1
end if;
if "bnamechanged" = 1 then
set "ssql" = "ssql"+',name=string(getword(pforenames,1),'' '',psurname)';
set "ssql" = "ssql"+',keyname=makekeyname(string(psurname,'' '',pforenames))'
end if end if;
if "isnull"("pgender",'') <> "isnull"("poldgender",'') then
set "ssql" = "ssql"+',sex=pgender'
end if;
if "isnull"("pdob",'') <> "isnull"("pOLDdob",'') then
set "dateofbirth" = "IQXNetStringToDate"("pdob");
if "trim"("isnull"("pdob",'')) <> '' and "dateofbirth" is null then
select '1:~Invalid date of birth';
return
end if;
set "ssql" = "ssql"+',dob = dateofbirth'
end if;
if "isnull"("paddr1",'') <> "isnull"("poldaddr1",'') then
set "ssql" = "ssql"+',addr1=paddr1'
end if;
if "isnull"("paddr2",'') <> "isnull"("poldaddr2",'') then
set "ssql" = "ssql"+',addr2=paddr2'
end if;
if "isnull"("paddr3",'') <> "isnull"("poldaddr3",'') then
set "ssql" = "ssql"+',addr3=paddr3'
end if;
if "isnull"("ptown",'') <> "isnull"("poldtown",'') then
set "ssql" = "ssql"+',town=ptown'
end if;
if "isnull"("pcounty",'') <> "isnull"("poldcounty",'') then
set "ssql" = "ssql"+',county=pcounty'
end if;
if "isnull"("pcountry",'') <> "isnull"("poldcountry",'') then
set "ssql" = "ssql"+',country=pcountry'
end if;
if "isnull"("ppostcode",'') <> "isnull"("poldpostcode",'') then
set "ssql" = "ssql"+',postcode=ucase(ppostcode)'
end if;
if "ssql" <> '' then
execute immediate 'update person set '+"stuff"("ssql",1,1,'')+' where personid=PersID'
end if;
if "isnull"("phomephone",'') <> "isnull"("pOLDhomephone",'') then
call "setphone"('P','Home Telephone',"PersID","phomephone")
end if;
if "isnull"("pdayphone",'') <> "isnull"("pOLDdayphone",'') then
call "setphone"('P','Day Telephone',"PersID","pdayphone")
end if;
if "isnull"("pmobile",'') <> "isnull"("pOLDmobile",'') then
call "setphone"('P','Mobile',"PersID","pmobile")
end if;
if "isnull"("pemail",'') <> "isnull"("pOLDemail",'') then
call "setphone"('P','E-mail',"PersID","pemail");
update "iqxnetuserlink" key join "iqxnetuser" set "iqxnetuser"."emailaddress" = "pemail" where "iqxnetuserlink"."personid" = "PersID"
end if;
call "IQXNetSaveQuestionnaire"("PersID","qanswers");
call "personrecordupdated"("PersID");
select '0:~Success'
end
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetOwnerCandidateProfileSet" IS
{create PROCEDURE pears."NetOwnerCandidateProfileSet"( in "pWebUserID" char(20),in "ppersonid" char(20),in "pForenames" char(50) default 'NOT-SET',in "pSurname" char(50) default 'NOT-SET',in "pGender" char(20) default 'NOT-SET',in "pdob" char(20) default 'NOT-SET',in "phomephone" char(250) default 'NOT-SET',in "pDayPhone" char(250) default 'NOT-SET',in "pMobile" char(250) default 'NOT-SET',in "pemail" char(250) default 'NOT-SET',in "pAddr1" char(50) default 'NOT-SET',in "pAddr2" char(50) default 'NOT-SET',in "pAddr3" char(50) default 'NOT-SET',in "pTown" char(50) default 'NOT-SET',in "pCounty" char(50) default 'NOT-SET',in "pCountry" char(50) default 'NOT-SET',in "pPostcode" char(50) default 'NOT-SET',in "pOLDForenames" char(50) default 'NOT-SET',in "pOLDSurname" char(50) default 'NOT-SET',in "pOLDGender" char(20) default 'NOT-SET',in "pOLDdob" char(20) default 'NOT-SET',in "pOLDhomephone" char(250) default 'NOT-SET',in "pOLDDayPhone" char(250) default 'NOT-SET',in "pOLDMobile" char(250) default 'NOT-SET',in "pOLDemail" char(250) default 'NOT-SET',in "pOLDAddr1" char(50) default 'NOT-SET',in "pOLDAddr2" char(50) default 'NOT-SET',in "pOLDAddr3" char(50) default 'NOT-SET',in "pOLDTown" char(50) default 'NOT-SET',in "pOLDCounty" char(50) default 'NOT-SET',in "pOLDCountry" char(50) default 'NOT-SET',in "pOLDPostcode" char(50) default 'NOT-SET',
in "qanswers" long varchar default null )
result( "pResult" char(250) )
begin
declare "dateofbirth" date;
declare "bnamechanged" smallint;
declare "ssql" char(255);
declare "DivId" char(20);
declare "PersID" char(20);
declare @StaffID char(20);
declare "PayrollCoID" char(20);
set "bnamechanged" = 0;
set "ssql" = '';
set "DivID" = (select first "staff"."divisionid" from "iqxnetuser" key join "staff" where "iqxnetuser"."iqxnetuserid" = "pWebUserID");
if "IQXNetHasPermission"("pWebUserID",'ADDCANDIDATES') = 0 then
select '99:~Permission denied';
return
end if;
if "isnull"("pForenames",'') = '' or "isnull"("pSurname",'') = '' then
select '100:~Please enter both a forename and a surname';
return
end if;
if((select "count"() from "person" where "person"."personid" = "ppersonid") = 0) then
set @StaffID = (select first "staffid" from "iqxnetuser" where "iqxnetuserid" = "pWebUserID");
set "PersID" = "uniquekey"("pForenames"+"pSurname");
set "PayrollCoID" = (select "DefPayrollCoID" from "Division" where "divisionid" = "DivID");
insert into "person"( "personid","staffid","divisionid","name","keyname","status","forenames","surname","salutation","registrationdate","payrollnumber","PayrollIdentifier" ) values( "PersID",@StaffID,"DivID","pForenames"+' '+"pSurname","ucase"("pSurname")+' '+"ucase"("pForenames"),'C',"pForenames","pSurname","pForenames","now"(),'NEW',"PayrollCoID" )
else
set "PersID" = "ppersonid";
if "isnull"("pforenames",'') <> "isnull"("poldforenames",'') then
set "ssql" = "ssql"+',forenames=pforenames';
set "ssql" = "ssql"+',salutation=getword(pforenames,1)';
set "bnamechanged" = 1
end if;
if "isnull"("psurname",'') <> "isnull"("poldsurname",'') then
set "ssql" = "ssql"+',surname=psurname';
set "bnamechanged" = 1
end if;
if "bnamechanged" = 1 then
set "ssql" = "ssql"+',name=string(getword(pforenames,1),'' '',psurname)';
set "ssql" = "ssql"+',keyname=makekeyname(string(psurname,'' '',pforenames))'
end if end if;
if "isnull"("pgender",'') <> "isnull"("poldgender",'') then
set "ssql" = "ssql"+',sex=pgender'
end if;
if "isnull"("pdob",'') <> "isnull"("pOLDdob",'') then
set "dateofbirth" = "IQXNetStringToDate"("pdob");
if "trim"("isnull"("pdob",'')) <> '' and "dateofbirth" is null then
select '1:~Invalid date of birth';
return
end if;
set "ssql" = "ssql"+',dob = dateofbirth'
end if;
if "isnull"("paddr1",'') <> "isnull"("poldaddr1",'') then
set "ssql" = "ssql"+',addr1=paddr1'
end if;
if "isnull"("paddr2",'') <> "isnull"("poldaddr2",'') then
set "ssql" = "ssql"+',addr2=paddr2'
end if;
if "isnull"("paddr3",'') <> "isnull"("poldaddr3",'') then
set "ssql" = "ssql"+',addr3=paddr3'
end if;
if "isnull"("ptown",'') <> "isnull"("poldtown",'') then
set "ssql" = "ssql"+',town=ptown'
end if;
if "isnull"("pcounty",'') <> "isnull"("poldcounty",'') then
set "ssql" = "ssql"+',county=pcounty'
end if;
if "isnull"("pcountry",'') <> "isnull"("poldcountry",'') then
set "ssql" = "ssql"+',country=pcountry'
end if;
if "isnull"("ppostcode",'') <> "isnull"("poldpostcode",'') then
set "ssql" = "ssql"+',postcode=ucase(ppostcode)'
end if;
if "ssql" <> '' then
execute immediate 'update person set '+"stuff"("ssql",1,1,'')+' where personid=PersID'
end if;
if "isnull"("phomephone",'') <> "isnull"("pOLDhomephone",'') then
call "setphone"('P','Home Telephone',"PersID","phomephone")
end if;
if "isnull"("pdayphone",'') <> "isnull"("pOLDdayphone",'') then
call "setphone"('P','Day Telephone',"PersID","pdayphone")
end if;
if "isnull"("pmobile",'') <> "isnull"("pOLDmobile",'') then
call "setphone"('P','Mobile',"PersID","pmobile")
end if;
if "isnull"("pemail",'') <> "isnull"("pOLDemail",'') then
call "setphone"('P','E-mail',"PersID","pemail");
update "iqxnetuserlink" key join "iqxnetuser" set "iqxnetuser"."emailaddress" = "pemail" where "iqxnetuserlink"."personid" = "PersID"
end if;
call "IQXNetSaveQuestionnaire"("PersID","qanswers");
call "personrecordupdated"("PersID");
select '0:~Success'
end
}