====== 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
*/
}