pears.NetOwnerActionDialog

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

CREATE PROCEDURE "pears"."NetOwnerActionDialog"( IN "pWebUserID" CHAR(20),IN "pObjectID" CHAR(20) DEFAULT NULL ) 
RESULT( "number" CHAR(200),"PhoneCapabilities" CHAR(20),"PhoneType" CHAR(100) ) 
BEGIN
  DECLARE "NodeAddress" long VARCHAR;
  SET "NodeAddress" = (SELECT top 1 "addr1"+(IF "isnull"("Addr2",'') <> '' THEN ', '+"Addr2" endif)+(IF "isnull"("Addr3",'') <> '' THEN ', '+"Addr3" endif)+(IF "isnull"("Town",'') <> '' THEN ', '+"Town" endif)+(IF "isnull"("postcode",'') <> '' THEN ', '+"postcode" endif) FROM "person" WHERE "personid" = "pObjectID");
  IF "isnull"("NodeAddress",'') = '' THEN
    SET "NodeAddress" = (SELECT top 1 "addr1"+(IF "isnull"("Addr2",'') <> '' THEN ', '+"Addr2" endif)+(IF "isnull"("Addr3",'') <> '' THEN ', '+"Addr3" endif)+(IF "isnull"("Town",'') <> '' THEN ', '+"Town" endif)+(IF "isnull"("postcode",'') <> '' THEN ', '+"postcode" endif) FROM "company" KEY JOIN "employment" WHERE "employmentid" = "pObjectID")
  END IF;
  IF "isnull"("NodeAddress",'') = '' THEN
    SET "NodeAddress" = (SELECT top 1 "addr1"+(IF "isnull"("Addr2",'') <> '' THEN ', '+"Addr2" endif)+(IF "isnull"("Addr3",'') <> '' THEN ', '+"Addr3" endif)+(IF "isnull"("Town",'') <> '' THEN ', '+"Town" endif)+(IF "isnull"("postcode",'') <> '' THEN ', '+"postcode" endif) FROM "company" WHERE "companyid" = "pObjectID")
  END IF;
  SELECT DISTINCT "p"."number",
    (SELECT "list"("t"."capabilities" ORDER BY "t"."capabilities" ASC) AS "PhoneCapabilities" FROM "phone" AS "ph" KEY JOIN "phonetype" AS "t" WHERE "ph"."whoid" = "p"."whoid" AND "ph"."number" = "p"."number"),
    (SELECT "list"("t"."name" ORDER BY "t"."name" ASC) AS "PhoneType" FROM "phone" AS "ph" KEY JOIN "phonetype" AS "t" WHERE "ph"."whoid" = "p"."whoid" AND "ph"."number" = "p"."number")
    FROM "phone" AS "p"
    WHERE "whoid" = "pObjectID" UNION
  SELECT top 1(IF "isnull"("NodeAddress",'') <> '' THEN "NodeAddress" endif),(IF "isnull"("NodeAddress",'') <> '' THEN 'A' endif),(IF "isnull"("NodeAddress",'') <> '' THEN 'Address' endif)
END /* DOC
2016-08-20 PC
 
test:
select single entry phone
select double entry phone
select email
select person address
select company address
select contact address
 
*/
/* TEST
call NetTestSetup('');
update iqxnetuserlink set employmentid=null,personid=null where IQXNetUserLinkID in ('test.agency','test.client','test.candidate','test.owner');
update iqxnetuserlink set employmentid='TEST',personid='TEST' where IQXNetUserLinkID='test.candidate';
update person set addr1='TestAddr1',addr2='TestAddr2',town='TestTown',postcode='XX9 9XX' where personid='TEST';
select replace(replace(number,' ','!'),',','~') as A,replace(PhoneCapabilities,' ','!') as B,replace(PhoneType,' ','!') as C from NetOwnerActionDialog('test.owner','test');
expect A=0499!999!995,B=D,C=Direct!Telephone;
expect A=0999!999!994,B=DS,C=Mobile;
expect [email protected],B=E,C=E-mail;
expect A=0999!999!993,B=F,C=Direct!Fax;
expect A=TestAddr1~!TestAddr2~!TestTown~!XX9!9XX,B=A,C=Address;
Expect EOF;
update person set addr1=null,addr2=null,town=null,postcode=null where personid='TEST';
*/
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetOwnerActionDialog" IS 
{CREATE PROCEDURE pears."NetOwnerActionDialog"(IN pWebUserID CHAR(20),IN pObjectID CHAR(20) DEFAULT NULL)
RESULT(NUMBER CHAR(200),PhoneCapabilities CHAR(20),PhoneType CHAR(100))
BEGIN
    DECLARE NodeAddress long VARCHAR;
    SET NodeAddress=(SELECT top 1 addr1+(IF isnull(Addr2,'')!='' THEN ', '+Addr2 endif)+(IF isnull(Addr3,'')!='' THEN ', '+Addr3 endif)+(IF isnull(Town,'')!='' THEN ', '+Town endif)+(IF isnull(postcode,'')!='' THEN ', '+postcode endif) FROM person WHERE personid=pObjectID);
    IF isnull(NodeAddress,'')='' THEN 
        SET NodeAddress=(SELECT top 1 addr1+(IF isnull(Addr2,'')!='' THEN ', '+Addr2 endif)+(IF isnull(Addr3,'')!='' THEN ', '+Addr3 endif)+(IF isnull(Town,'')!='' THEN ', '+Town endif)+(IF isnull(postcode,'')!='' THEN ', '+postcode endif) FROM company KEY JOIN employment WHERE employmentid=pObjectID);
    END IF;
    IF isnull(NodeAddress,'')='' THEN 
        SET NodeAddress=(SELECT top 1 addr1+(IF isnull(Addr2,'')!='' THEN ', '+Addr2 endif)+(IF isnull(Addr3,'')!='' THEN ', '+Addr3 endif)+(IF isnull(Town,'')!='' THEN ', '+Town endif)+(IF isnull(postcode,'')!='' THEN ', '+postcode endif) FROM company WHERE companyid=pObjectID);
    END IF;
 
	SELECT DISTINCT p.number, 
(SELECT list(t.capabilities ORDER BY t.capabilities) AS PhoneCapabilities FROM phone ph KEY JOIN phonetype t  WHERE ph.whoid=p.whoid AND ph.number=p.number),
(SELECT list(t.name ORDER BY t.name) AS PhoneType FROM phone ph KEY JOIN phonetype t  WHERE ph.whoid=p.whoid AND ph.number=p.number)
FROM phone p
WHERE whoid=pObjectID
UNION 
SELECT top 1 (IF isnull(NodeAddress,'')!='' THEN NodeAddress endif),(IF isnull(NodeAddress,'')!='' THEN 'A' endif),(IF isnull(NodeAddress,'')!='' THEN 'Address' endif)
 
END
 
/* DOC
2016-08-20 PC
 
test:
    select single entry phone
    select double entry phone
    select email
    select person address
    select company address
    select contact address
 
*/
 
/* TEST
call NetTestSetup('');
update iqxnetuserlink set employmentid=null,personid=null where IQXNetUserLinkID in ('test.agency','test.client','test.candidate','test.owner');
update iqxnetuserlink set employmentid='TEST',personid='TEST' where IQXNetUserLinkID='test.candidate';
update person set addr1='TestAddr1',addr2='TestAddr2',town='TestTown',postcode='XX9 9XX' where personid='TEST';
select replace(replace(number,' ','!'),',','~') as A,replace(PhoneCapabilities,' ','!') as B,replace(PhoneType,' ','!') as C from NetOwnerActionDialog('test.owner','test');
expect A=0499!999!995,B=D,C=Direct!Telephone;
expect A=0999!999!994,B=DS,C=Mobile;
expect [email protected],B=E,C=E-mail;
expect A=0999!999!993,B=F,C=Direct!Fax;
expect A=TestAddr1~!TestAddr2~!TestTown~!XX9!9XX,B=A,C=Address;
Expect EOF;
update person set addr1=null,addr2=null,town=null,postcode=null where personid='TEST';
*/
}
  • database/procedures/pears_netowneractiondialog.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1