====== pears.NetClientContactSet ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Original SQL ===== create procedure "pears"."NetClientContactSet"( in "pWebUserID" char(20),in "pemploymentid" char(20),in "pdirectphone" char(250) default null,in "pmobile" char(250) default null,in "pemail" char(250) default null,in "pdirectfax" char(250) default null,in "pposition" char(250) default null,in "pdepartment" char(250) default null ) result( "pResult" char(250) ) //IQXWeb begin declare "cid" char(20); declare "ssql" char(250); declare "scomma" char(1); if not "pemploymentid" = any(select "employmentid" from "iqxnetuserlink" where "iqxnetuserid" = "pwebuserid") then select '99:~Permission denied'; return end if; if("pemail" is not null and "pemail" = (select "iqxnetuser"."emailaddress" from "iqxnetuser" where "iqxnetuser"."iqxnetuserid" = "pWebUserID")) then set "pemail" = null end if; if("pemail" is not null and(select "count"() from "iqxnetuser" where "emailaddress" = "pemail") > 0) then select '100:~that email address already exists. Please check it or contact your consultant' end if; if "pdirectphone" is not null then call "IQXNetSetPhones"("pWebUserID",'CP','Direct Telephone',"pdirectphone") end if; if "pmobile" is not null then call "IQXNetSetPhones"("pWebUserID",'CP','Mobile',"pmobile") end if; if "pemail" is not null then update "iqxnetuserlink" key join "iqxnetuser" set "iqxnetuser"."emailaddress" = "pemail" where "iqxnetuserlink"."employmentid" = "pemploymentid" and "iqxnetuser"."iqxnetuserid" <> 'ADMINUSER'; call "IQXNetSetPhones"("pWebUserID",'CP','E-mail',"pemail") end if; if "pdirectfax" is not null then call "IQXNetSetPhones"("pWebUserID",'CP','Direct Fax',"pdirectfax") end if; set "ssql" = ''; set "scomma" = ''; if "pposition" is not null then set "ssql" = "string"("ssql","scomma",'position=pposition'); set "scomma" = ',' end if; if "pdepartment" is not null then set "ssql" = "string"("ssql","scomma",'department=pdepartment'); set "scomma" = ',' end if; if "ssql" <> '' then execute immediate "string"('update employment set ',"ssql",' where employmentid in (select employmentid from iqxnetuserlink where iqxnetuserid=''',"pWebUserID",''')') end if; select '0:~Success' end /* TEST call NetTestSetup(''); insert into employment (employmentid,companyid,personid,position) on existing update defaults off values ('TEST2','TEST','TEST','TestPosition2'); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.agency','test.candidate','test.owner'); update iqxnetuserlink set employmentid='TEST2' where IQXNetUserLinkID='test.client'; select * from NetClientContactSet('test.client9','TEST2','0999 999 999',null,null,null,null,null,null,null,null,null,null,null); expect 99:*; select * from NetClientContactSet('test.client','TEST2','0999 999 999',null,null,null,null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,'0999 999 998',null,null,null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,'test2@test.com',null,null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,'0999 999 997',null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com,df=0999!999!997; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,'TestPosition',null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com,df=0999!999!997,Position=TestPosition; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,'TEST',null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com,df=0999!999!997,Position=TestPosition,Department=TEST; expect EOF; select * from NetClientContactSet('test.client','TEST2','0999 999 996',null,null,null,null,null,'0999 999 999',null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,'0999 999 995',null,null,null,null,null,'0999 999 998',null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,'test3@test.com',null,null,null,null,null,'test2@test.com',null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,'0999 999 994',null,null,null,null,null,'0999 999 997',null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com,df=0999!999!994; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,'TestPosition2',null,null,null,null,null,'TestPosition',null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com,df=0999!999!994,Position=TestPosition2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,'TEST2',null,null,null,null,null,'TEST'); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com,df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,'0999 999 999',null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect mob=0999!999!995,email=test3@test.com,df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,'0999 999 998',null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect email=test3@test.com,df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,'test3@test.com',null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,null,'0999 999 997',null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,null,null,'TestPosition',null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,null,null,null,'TEST'); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect; expect EOF; delete from employment where employmentid='TEST2'; */ /* DOC 2016-08-23 PC add doc and test 2018-01-30 PC check that email does not already exist and avoid updating iqxnetuserlink for records linked to adminuser 2018-08-22 PC improve error handling 2020-07-09 GJ/ET/JHG IW2-182 Changed to make it simpler and modified to work with web v2 tests: invalid pWebUserID valid pWebUserID with no employment pdirectphone is not null and pOldDirectPhone is null pMobile is not null and pOldMobile is null pEmail is not null and pOldEmail is null pDirectfax is not null and pOldDirectFax is null pPosition is not null and pOldPosition is null pDepartment is not null and pOldDepartment is null pdirectphone is different and pOldDirectPhone is not null pMobile is different and pOldMobile is not null pEmail is different and pOldEmail is not null pDirectfax is different and pOldDirectFax is not null pPosition is different and pOldPosition is not null pDepartment is different and pOldDepartment is not null pdirectphone is null and pOldDirectPhone is not null pMobile is null and pOldMobile is not null pEmail is null and pOldEmail is not null pDirectfax is null and pOldDirectFax is not null pPosition is null and pOldPosition is not null pDepartment is null and pOldDepartment is not null */ go COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetClientContactSet" IS {create PROCEDURE pears."NetClientContactSet"(in pWebUserID char(20),in pemploymentid char(20),in pdirectphone char(250) default null,in pmobile char(250) default null,in pemail char(250) default null,in pdirectfax char(250) default null,in pposition char(250) default null,in pdepartment char(250) default null) result(pResult char(250)) //IQXWeb begin declare cid char(20); declare ssql char(250); declare scomma char(1); if not pemploymentid = any(select employmentid from iqxnetuserlink where iqxnetuserid = pwebuserid) then select '99:~Permission denied'; return end if; if(pemail is not null and pemail = (select iqxnetuser.emailaddress from iqxnetuser where iqxnetuser.iqxnetuserid = pWebUserID)) then set pemail = null; end if; if (pemail is not null and (select count(*) from iqxnetuser where emailaddress=pemail) > 0) then select '100:~that email address already exists. Please check it or contact your consultant'; end if; if pdirectphone is not null then call IQXNetSetPhones(pWebUserID,'CP','Direct Telephone',pdirectphone) end if; if pmobile is not null then call IQXNetSetPhones(pWebUserID,'CP','Mobile',pmobile) end if; if pemail is not null then update iqxnetuserlink key join iqxnetuser set iqxnetuser.emailaddress = pemail where iqxnetuserlink.employmentid = pemploymentid and iqxnetuser.iqxnetuserid !='ADMINUSER'; call IQXNetSetPhones(pWebUserID,'CP','E-mail',pemail) end if; if pdirectfax is not null then call IQXNetSetPhones(pWebUserID,'CP','Direct Fax',pdirectfax) end if; set ssql=''; set scomma=''; if pposition is not null then set ssql=string(ssql,scomma,'position=pposition'); set scomma=',' end if; if pdepartment is not null then set ssql=string(ssql,scomma,'department=pdepartment'); set scomma=',' end if; if ssql <> '' then execute immediate string('update employment set ',ssql,' where employmentid in (select employmentid from iqxnetuserlink where iqxnetuserid=''',pWebUserID,''')') end if; select '0:~Success' end /* TEST call NetTestSetup(''); insert into employment (employmentid,companyid,personid,position) on existing update defaults off values ('TEST2','TEST','TEST','TestPosition2'); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.agency','test.candidate','test.owner'); update iqxnetuserlink set employmentid='TEST2' where IQXNetUserLinkID='test.client'; select * from NetClientContactSet('test.client9','TEST2','0999 999 999',null,null,null,null,null,null,null,null,null,null,null); expect 99:*; select * from NetClientContactSet('test.client','TEST2','0999 999 999',null,null,null,null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,'0999 999 998',null,null,null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,'test2@test.com',null,null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,'0999 999 997',null,null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com,df=0999!999!997; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,'TestPosition',null,null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com,df=0999!999!997,Position=TestPosition; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,'TEST',null,null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!999,mob=0999!999!998,email=test2@test.com,df=0999!999!997,Position=TestPosition,Department=TEST; expect EOF; select * from NetClientContactSet('test.client','TEST2','0999 999 996',null,null,null,null,null,'0999 999 999',null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,'0999 999 995',null,null,null,null,null,'0999 999 998',null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,'test3@test.com',null,null,null,null,null,'test2@test.com',null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,'0999 999 994',null,null,null,null,null,'0999 999 997',null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com,df=0999!999!994; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,'TestPosition2',null,null,null,null,null,'TestPosition',null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com,df=0999!999!994,Position=TestPosition2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,'TEST2',null,null,null,null,null,'TEST'); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect DP=0999!999!996,mob=0999!999!995,email=test3@test.com,df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,'0999 999 999',null,null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect mob=0999!999!995,email=test3@test.com,df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,'0999 999 998',null,null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect email=test3@test.com,df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,'test3@test.com',null,null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect df=0999!999!994,Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,null,'0999 999 997',null,null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect Position=TestPosition2,Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,null,null,'TestPosition',null); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect Department=TEST2; expect EOF; select * from NetClientContactSet('test.client','TEST2',null,null,null,null,null,null,null,null,null,null,null,'TEST'); expect 0:~Success; select replace(directphone,' ','!') as DP,replace(mobile,' ','!') as mob,email,replace(directfax,' ','!') as df,position,department from NetClientContact('test.client'); expect; expect EOF; delete from employment where employmentid='TEST2'; */ /* DOC 2016-08-23 PC add doc and test 2018-01-30 PC check that email does not already exist and avoid updating iqxnetuserlink for records linked to adminuser 2018-08-22 PC improve error handling 2020-07-09 GJ/ET/JHG IW2-182 Changed to make it simpler and modified to work with web v2 tests: invalid pWebUserID valid pWebUserID with no employment pdirectphone is not null and pOldDirectPhone is null pMobile is not null and pOldMobile is null pEmail is not null and pOldEmail is null pDirectfax is not null and pOldDirectFax is null pPosition is not null and pOldPosition is null pDepartment is not null and pOldDepartment is null pdirectphone is different and pOldDirectPhone is not null pMobile is different and pOldMobile is not null pEmail is different and pOldEmail is not null pDirectfax is different and pOldDirectFax is not null pPosition is different and pOldPosition is not null pDepartment is different and pOldDepartment is not null pdirectphone is null and pOldDirectPhone is not null pMobile is null and pOldMobile is not null pEmail is null and pOldEmail is not null pDirectfax is null and pOldDirectFax is not null pPosition is null and pOldPosition is not null pDepartment is null and pOldDepartment is not null */ }