pears.SetPhone

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

Original SQL

CREATE PROCEDURE "pears"."SetPhone"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "cpe" CHAR(2),IN "ptype" CHAR(25),IN "recid" CHAR(20),IN "snumber" CHAR(250) ) 
BEGIN
  DECLARE "i" INTEGER;
  DECLARE "s" CHAR(200);
  DECLARE "sname" CHAR(200);
  DECLARE "sid" CHAR(20);
  DECLARE "stype" CHAR(12);
  IF "cpe" = 'E' THEN
    SET "cpe" = 'CP'
  END IF;
  -- audit functionality
  IF EXISTS(SELECT * FROM "phonetype" WHERE "auditflag" = 1 AND "name" = "ptype" AND "cpe" = (CASE WHEN "company" = 1 THEN 'C' WHEN "contact" = 1 THEN 'CP' WHEN "applicant" = 1 THEN 'P' END)) THEN
    IF "cpe" = 'C' THEN
      SET "stype" = 'COMPANY';
      SET "sid" = "recid";
      SELECT "name" INTO "sname" FROM "company" WHERE "companyid" = "recid"
    END IF;
    IF "cpe" = 'P' THEN
      SET "stype" = 'PERSON';
      SET "sid" = "recid";
      SELECT "name" INTO "sname" FROM "person" WHERE "personid" = "recid"
    END IF;
    IF "cpe" = 'CP' THEN
      SET "stype" = 'COMPANY';
      SELECT "company"."companyid","string"("person"."name",', ',"company"."name") INTO "sid","sname" FROM "employment" KEY JOIN("person","company") WHERE "employment"."employmentid" = "recid"
    END IF;
    CALL "AuditLog"("stype","sid","string"("ptype",' Updated - ',"sname"),"getphone"("cpe","ptype","recid"),"snumber")
  END IF;
  --delete from phone from phone key join phonetype where phone.whoid = recid and phone.who = cpe and phonetype.name = ptype;
  DELETE FROM "phone" WHERE "whoid" = "recid" AND "who" = "cpe" AND "phonetypeid" = any(SELECT "phonetypeid" FROM "phonetype" WHERE "name" = "ptype");
  while "trim"("snumber") <> '' loop
    SET "i" = "patindex"('%[,;]%',"snumber");
    IF "i" > 0 THEN
      SET "s" = "left"("snumber","i"-1);
      SET "snumber" = "stuff"("snumber" || ' ',1,"i",NULL) -- stuff operation must not result in empty string or server bombs
    ELSE
      SET "s" = "snumber";
      SET "snumber" = ''
    END IF;
    CALL "addphone"("cpe","ptype","recid","trim"("s"))
  END loop;
  IF "ptype" = 'E-mail' THEN
    CALL "SetNetEmail"("cpe","ptype","recid","snumber")
  END IF
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."SetPhone" IS 
{CREATE PROCEDURE SetPhone 
 
/* Application Maintained Function / Procedure - DO NOT EDIT*/
 
( 
  IN cpe CHAR(2),IN ptype CHAR(25),IN recid CHAR(20),IN snumber CHAR(250) ) 
BEGIN
  DECLARE i INTEGER;
  DECLARE s CHAR(200);
  DECLARE sname CHAR(200);
  DECLARE sid CHAR(20);
  DECLARE stype CHAR(12);
  IF cpe = 'E' THEN
    SET cpe = 'CP'
  END IF;
  -- audit functionality
  IF EXISTS(SELECT * FROM phonetype WHERE auditflag = 1 AND name = ptype AND cpe = (CASE WHEN company = 1 THEN 'C' WHEN contact = 1 THEN 'CP' WHEN applicant = 1 THEN 'P' END)) THEN
    IF cpe = 'C' THEN
      SET stype = 'COMPANY';
      SET sid = recid;
      SELECT name INTO sname FROM company WHERE companyid = recid
    END IF;
    IF cpe = 'P' THEN
      SET stype = 'PERSON';
      SET sid = recid;
      SELECT name INTO sname FROM person WHERE personid = recid
    END IF;
    IF cpe = 'CP' THEN
      SET stype = 'COMPANY';
      SELECT company.companyid,string(person.name,', ',company.name) INTO sid,sname FROM employment KEY JOIN(person,company) WHERE employment.employmentid = recid
    END IF;
    CALL AuditLog(stype,sid,string(ptype,' Updated - ',sname),getphone(cpe,ptype,recid),snumber)
  END IF;
  --delete from phone from phone key join phonetype where phone.whoid = recid and phone.who = cpe and phonetype.name = ptype;
  DELETE FROM phone WHERE whoid = recid AND who = cpe AND phonetypeid = any(SELECT phonetypeid FROM phonetype WHERE name = ptype);
  while TRIM(snumber) <> '' loop
    SET i = patindex('%[,;]%',snumber);
    IF i > 0 THEN
      SET s = "left"(snumber,i-1);
      SET snumber = stuff(snumber || ' ',1,i,NULL) -- stuff operation must not result in empty string or server bombs
    ELSE
      SET s = snumber;
      SET snumber = ''
    END IF;
    CALL addphone(cpe,ptype,recid,TRIM(s))
  END loop;
  IF ptype = 'E-mail' THEN
    CALL SetNetEmail(cpe,ptype,recid,snumber)
  END IF
END
}