pears.SetQuestAnswer

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

CREATE PROCEDURE "pears"."SetQuestAnswer"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "tlocation" CHAR(3),IN "tid" CHAR(3),IN "tchoiceid" CHAR(4),IN "parentid" CHAR(20),IN "tvalue" long VARCHAR ) 
BEGIN
  DECLARE "ttype" CHAR(1);
  DECLARE "nvalue" DOUBLE;
  DECLARE "mstep" DOUBLE;
  DECLARE "svalue" long VARCHAR;
  DECLARE "baudit" SMALLINT;
  DECLARE "sname" CHAR(200);
  DECLARE "sid" CHAR(20);
  DECLARE "stype" CHAR(12);
  DECLARE "oval" long VARCHAR;
  SET "ttype" = NULL;
  SET "svalue" = NULL;
  IF "tchoiceid" = '' THEN
    SET "tchoiceid" = NULL
  END IF;
  IF "tvalue" = 'Y' THEN
    SET "nvalue" = 1
  ELSE
    BEGIN
      SET "nvalue" = CAST("tvalue" AS DOUBLE)
    exception
      WHEN others THEN
        SET "nvalue" = 0
    END END IF;
  SELECT "tagtype","minstep","auditflag" INTO "ttype","mstep","baudit" FROM "tag" WHERE "taglocation" = "tlocation" AND "tagid" = "tid";
  IF "tlocation" LIKE 'V%' THEN
    UPDATE "vacancy" SET "QuestionnaireUpdated" = CURRENT TIMESTAMP WHERE "vacancyid" = "parentid"
  END IF;
  IF "baudit" = 1 THEN
    IF "tlocation" LIKE 'C%' THEN
      SET "stype" = 'COMPANY';
      SET "sid" = "parentid";
      SELECT "name" INTO "sname" FROM "company" WHERE "companyid" = "parentid"
    ELSE
      IF "tlocation" = 'P' OR "tlocation" LIKE 'A%' THEN
        SET "stype" = 'PERSON';
        SET "sid" = "parentid";
        SELECT "name" INTO "sname" FROM "person" WHERE "personid" = "parentid"
      ELSE IF "tlocation" = 'E' THEN
          SET "stype" = 'COMPANY';
          SELECT "company"."companyid","string"("person"."name",', ',"company"."name") INTO "sid","sname" FROM "employment" KEY JOIN("person","company") WHERE "employment"."employmentid" = "parentid"
        ELSE IF "tlocation" LIKE 'V%' THEN
            SET "stype" = 'VACANCY';
            SET "sid" = "parentid";
            SELECT "string"("Company"."Name",' - ',"vacancy"."position",'(',"vacancy"."RefCode",')') INTO "sname" FROM "vacancy" KEY JOIN "employment" KEY JOIN "Company" WHERE "vacancy"."vacancyid" = "parentid"
          ELSE IF "tlocation" LIKE 'L%' THEN
              SET "stype" = 'PLACEMENT';
              SET "sid" = "parentid";
              SELECT "string"("Company"."Name",' - ',"employment"."position") INTO "sname" FROM "placement" KEY JOIN "employment" KEY JOIN "Company" WHERE "placement"."placementid" = "parentid"
            ELSE IF "tlocation" LIKE 'S%' THEN
                SET "stype" = 'SHIFTPLAN';
                SET "sid" = "parentid" --;
              ELSE --select string(Company.Name,' - ',employment.position) into sname from placement key join employment key join Company where tempshift.tempshiftplanid = parentid
                IF "tlocation" LIKE 'T%' THEN
                  SET "stype" = 'TIMESHEET';
                  SET "sid" = "parentid";
                  SELECT
                    "isnull"(
                    (SELECT FIRST IF "c"."Name" IS NOT NULL THEN
                        "string"("t"."SerialNumber",': ',"p"."Name",' as ',"v"."Position",' at ',"c"."Name")
                      ELSE "string"("t"."SerialNumber",': ',"p"."Name",' - Internal ')
                      endif FROM "TempTimeSheet" AS "t" KEY JOIN "Person" AS "p","TempTimeSheet" AS "t" KEY LEFT OUTER JOIN("Placement" KEY JOIN "Vacancy" AS "v" KEY JOIN "Employment" KEY JOIN "Company" AS "c") WHERE "t"."TempTimeSheetID" = "parentid"),
                    (SELECT FIRST "string"("t"."SerialNumber",'(P): ',"p"."Name",' as ',"v"."Position",' at ',"c"."Name") FROM "TempProvTimeSheet" AS "t" KEY LEFT OUTER JOIN "Person" AS "p","TempProvTimeSheet" AS "t"
                        KEY LEFT OUTER JOIN("Vacancy" AS "v" KEY JOIN "Employment" KEY JOIN "Company" AS "c") WHERE "t"."TempProvTimeSheetID" = "parentid"))
                    INTO "sname"
                ELSE IF "tlocation" LIKE 'N%' THEN
                    SET "stype" = 'CEVENT';
                    SET "sid" = "parentid"
                  ELSE IF "tlocation" = 'U' THEN
                      SET "stype" = 'USER';
                      SET "sid" = "parentid"
                    ELSE IF "tlocation" LIKE 'R%' THEN
                        SET "stype" = 'REFER';
                        SET "sid" = "parentid"
                      ELSE IF "tlocation" = 'I' THEN
                          SET "stype" = 'PURCH';
                          SET "sid" = "parentid"
                        ELSE IF "tlocation" = 'X' THEN
                            SET "stype" = 'AGENCY';
                            SET "sid" = "parentid"
                          ELSE IF "tlocation" LIKE 'J%' THEN
                              SET "stype" = 'COLLECT';
                              SET "sid" = "parentid"
                            ELSE
                              SET "stype" = "string"('TAG ',"tlocation");
                              SET "sid" = "parentid";
                              SET "sname" = ''
                            END IF
                          END IF
                        END IF
                      END IF
                    END IF
                  END IF
                END IF
              END IF
            END IF
          END IF END IF END IF END IF;
    IF("length"("tchoiceid") > 0) AND("ttype" <> 'M') THEN
      SET "sname" = "string"((SELECT "string"("tag"."description",': ',"tagchoice"."description") FROM "tagchoice" KEY JOIN "tag"
          WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoice"."tagchoiceid" = "tchoiceid"),' Updated - ',"sname")
    ELSE
      SET "sname" = "string"((SELECT "description" FROM "tag" WHERE "taglocation" = "tlocation" AND "tagid" = "tid"),' Updated - ',"sname")
    END IF;
    IF "tlocation" LIKE 'U%' THEN
      SET "sname" = "string"("sname",' - ',(SELECT "userid" FROM "staff" WHERE "staffid" = "parentid"))
    END IF;
    IF "length"("tlocation") > 1 THEN
      SET "sname" = "string"((SELECT "name" FROM "department" WHERE "departmentid" = "substring"("tlocation",2)),' ',"sname")
    END IF;
    IF "ttype" IN( 'T','U' ) THEN
      SELECT FIRST "textvalue" INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "id" = "parentid"
    ELSE IF "ttype" = 'D' THEN
        SELECT FIRST "dateformat"("dateadd"("day","value","date"('1899-12-30')),'yyyy-mm-dd') INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "id" = "parentid"
      ELSE IF "ttype" = 'N' THEN
          SELECT FIRST "value" INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "id" = "parentid"
        ELSE IF "ttype" = 'M' THEN
            SELECT FIRST "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "oval" FROM "tagchoice" KEY JOIN "tagvalue" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "id" = "parentid";
            IF "oval" IS NULL THEN SELECT FIRST "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "oval" FROM "tagchoice" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoiceid" = '_'
            END IF
          ELSE SELECT FIRST "value" INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "tagchoiceid" = "tchoiceid" AND "id" = "parentid"
          END IF
        END IF END IF END IF END IF;
  IF "isnull"("mstep",0) = 0 THEN
    SET "mstep" = 1
  END IF;
  CASE "ttype"
  WHEN NULL THEN
    RETURN
  WHEN 'M' THEN IF "tchoiceid" = '_' OR "tchoiceid" = '' OR "tchoiceid" IS NULL THEN
      SET "nvalue" = 0;
      SET "tchoiceid" = NULL
    ELSE IF "nvalue" <> 0 THEN
        SET "nvalue" = 1
      END IF END IF WHEN 'T' THEN SET "tchoiceid" = NULL;
    IF "trim"("tvalue") <> '' THEN
      SET "svalue" = "tvalue";
      SET "nvalue" = 1
    ELSE
      SET "nvalue" = 0
    END IF WHEN 'U' THEN SET "tchoiceid" = NULL;
    IF "trim"("tvalue") <> '' THEN
      SET "svalue" = "ucase"("tvalue");
      SET "nvalue" = 1
    ELSE
      SET "nvalue" = 0
    END IF WHEN 'N' THEN SET "tchoiceid" = NULL;
    IF "nvalue" = 1 THEN
      SET "nvalue" = "mstep"
    END IF WHEN 'D' THEN SET "tchoiceid" = NULL;
    BEGIN
      SET "nvalue" = "date"("trim"("tvalue"))-"date"('1899-12-30')
    exception
      WHEN others THEN
        SET "nvalue" = 0
    END WHEN 'L' THEN IF "nvalue" <> 0 AND "tchoiceid" <> '*' THEN
      SET "nvalue" = 1
    END IF WHEN 'S' THEN IF "nvalue" = 1 THEN
      SET "nvalue" = "mstep"
    END IF WHEN 'G' THEN IF "nvalue" = 1 THEN
      SELECT "min"("value") INTO "nvalue" FROM "tagchoice" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "subchoice" = 1
    END IF WHEN 'Q' THEN IF "nvalue" <> 1 THEN
      SET "nvalue" = 1
    END IF ELSE
    RETURN
  END CASE;
  IF "tchoiceid" IS NOT NULL THEN
    IF EXISTS(SELECT "id" FROM "tagvalue" WHERE "tagchoiceid" = "tchoiceid" AND "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid") THEN
      IF((("ttype" = 'L' AND "tchoiceid" <> '*') OR "ttype" = 'M') AND "nvalue" <> 0) OR "tvalue" = 'Y' THEN
        RETURN
      END IF;
      DELETE FROM "tagvalue" WHERE "tagchoiceid" = "tchoiceid" AND "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid"
    END IF END IF;
  IF "tchoiceid" IS NULL OR "ttype" = 'M' THEN
    IF EXISTS(SELECT "id" FROM "tagvalue" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid") THEN
      DELETE FROM "tagvalue" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid"
    END IF END IF;
  IF "ttype" = 'Q' THEN
    DELETE FROM "tagvalue" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid" AND "tagchoiceid"
       = any(SELECT "tagchoiceid" FROM "tagchoice" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "tagchoiceparentid" = "tvalue");
    SET "svalue" = NULL;
    IF "isnull"("tchoiceid",'0') = '0' THEN
      SET "nvalue" = 0
    ELSE SET "nvalue" = 1
    END IF END IF;
  IF "nvalue" <> 0 THEN
    INSERT INTO "tagvalue"( "id","tagchoiceid","tagid","taglocation","value","textvalue" ) VALUES
      ( "parentid","tchoiceid","tid","tlocation","nvalue","svalue" ) 
  END IF;
  IF "baudit" = 1 THEN
    IF "ttype" = 'M' THEN
      SELECT "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "tvalue" FROM "tagchoice" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoice"."tagchoiceid" = "tchoiceid";
      IF("tvalue" IS NULL) OR("tvalue" = '1') THEN
        SELECT FIRST "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "tvalue" FROM "tagchoice" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoiceid" = '_'
      END IF;
      IF "tvalue" = '1' THEN
        SET "tvalue" = NULL
      END IF END IF;
    IF "ttype" = 'L' THEN
      IF "tvalue" = '1' THEN
        SET "tvalue" = 'Added';
        SET "oval" = ''
      ELSE
        SET "tvalue" = 'Removed';
        SET "oval" = ''
      END IF END IF;
    CALL "AuditLog"("stype","sid","sname","isnull"("oval",''),"isnull"("tvalue",''))
  END IF
exception
  WHEN others THEN RETURN
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."SetQuestAnswer" IS 
{CREATE PROCEDURE SetQuestAnswer 
 
/* Application Maintained Function / Procedure - DO NOT EDIT*/
 
( 
  IN "tlocation" CHAR(3),IN "tid" CHAR(3),IN "tchoiceid" CHAR(4),IN "parentid" CHAR(20),IN "tvalue" long VARCHAR ) 
BEGIN
  DECLARE "ttype" CHAR(1);
  DECLARE "nvalue" DOUBLE;
  DECLARE "mstep" DOUBLE;
  DECLARE "svalue" long VARCHAR;
  DECLARE "baudit" SMALLINT;
  DECLARE "sname" CHAR(200);
  DECLARE "sid" CHAR(20);
  DECLARE "stype" CHAR(12);
  DECLARE "oval" long VARCHAR;
  SET "ttype" = NULL;
  SET "svalue" = NULL;
  IF "tchoiceid" = '' THEN
    SET "tchoiceid" = NULL
  END IF;
  IF "tvalue" = 'Y' THEN
    SET "nvalue" = 1
  ELSE
    BEGIN
      SET "nvalue" = CAST("tvalue" AS DOUBLE)
    exception
      WHEN others THEN
        SET "nvalue" = 0
    END END IF;
  SELECT "tagtype","minstep","auditflag" INTO "ttype","mstep","baudit" FROM "tag" WHERE "taglocation" = "tlocation" AND "tagid" = "tid";
  IF "tlocation" LIKE 'V%' THEN
    UPDATE "vacancy" SET "QuestionnaireUpdated" = CURRENT TIMESTAMP WHERE "vacancyid" = "parentid"
  END IF;
  IF "baudit" = 1 THEN
    IF "tlocation" LIKE 'C%' THEN
      SET "stype" = 'COMPANY';
      SET "sid" = "parentid";
      SELECT "name" INTO "sname" FROM "company" WHERE "companyid" = "parentid"
    ELSE
      IF "tlocation" = 'P' OR "tlocation" LIKE 'A%' THEN
        SET "stype" = 'PERSON';
        SET "sid" = "parentid";
        SELECT "name" INTO "sname" FROM "person" WHERE "personid" = "parentid"
      ELSE IF "tlocation" = 'E' THEN
          SET "stype" = 'COMPANY';
          SELECT "company"."companyid","string"("person"."name",', ',"company"."name") INTO "sid","sname" FROM "employment" KEY JOIN("person","company") WHERE "employment"."employmentid" = "parentid"
        ELSE IF "tlocation" LIKE 'V%' THEN
            SET "stype" = 'VACANCY';
            SET "sid" = "parentid";
            SELECT "string"("Company"."Name",' - ',"vacancy"."position",'(',"vacancy"."RefCode",')') INTO "sname" FROM "vacancy" KEY JOIN "employment" KEY JOIN "Company" WHERE "vacancy"."vacancyid" = "parentid"
          ELSE IF "tlocation" LIKE 'L%' THEN
              SET "stype" = 'PLACEMENT';
              SET "sid" = "parentid";
              SELECT "string"("Company"."Name",' - ',"employment"."position") INTO "sname" FROM "placement" KEY JOIN "employment" KEY JOIN "Company" WHERE "placement"."placementid" = "parentid"
            ELSE IF "tlocation" LIKE 'S%' THEN
                SET "stype" = 'SHIFTPLAN';
                SET "sid" = "parentid" --;
              ELSE --select string(Company.Name,' - ',employment.position) into sname from placement key join employment key join Company where tempshift.tempshiftplanid = parentid
                IF "tlocation" LIKE 'T%' THEN
                  SET "stype" = 'TIMESHEET';
                  SET "sid" = "parentid";
                  SELECT
                    "isnull"(
                    (SELECT FIRST IF "c"."Name" IS NOT NULL THEN
                        "string"("t"."SerialNumber",': ',"p"."Name",' as ',"v"."Position",' at ',"c"."Name")
                      ELSE "string"("t"."SerialNumber",': ',"p"."Name",' - Internal ')
                      endif FROM "TempTimeSheet" AS "t" KEY JOIN "Person" AS "p","TempTimeSheet" AS "t" KEY LEFT OUTER JOIN("Placement" KEY JOIN "Vacancy" AS "v" KEY JOIN "Employment" KEY JOIN "Company" AS "c") WHERE "t"."TempTimeSheetID" = "parentid"),
                    (SELECT FIRST "string"("t"."SerialNumber",'(P): ',"p"."Name",' as ',"v"."Position",' at ',"c"."Name") FROM "TempProvTimeSheet" AS "t" KEY LEFT OUTER JOIN "Person" AS "p","TempProvTimeSheet" AS "t"
                        KEY LEFT OUTER JOIN("Vacancy" AS "v" KEY JOIN "Employment" KEY JOIN "Company" AS "c") WHERE "t"."TempProvTimeSheetID" = "parentid"))
                    INTO "sname"
                ELSE IF "tlocation" LIKE 'N%' THEN
                    SET "stype" = 'CEVENT';
                    SET "sid" = "parentid"
                  ELSE IF "tlocation" = 'U' THEN
                      SET "stype" = 'USER';
                      SET "sid" = "parentid"
                    ELSE IF "tlocation" LIKE 'R%' THEN
                        SET "stype" = 'REFER';
                        SET "sid" = "parentid"
                      ELSE IF "tlocation" = 'I' THEN
                          SET "stype" = 'PURCH';
                          SET "sid" = "parentid"
                        ELSE IF "tlocation" = 'X' THEN
                            SET "stype" = 'AGENCY';
                            SET "sid" = "parentid"
                          ELSE IF "tlocation" LIKE 'J%' THEN
                              SET "stype" = 'COLLECT';
                              SET "sid" = "parentid"
                            ELSE
                              SET "stype" = "string"('TAG ',"tlocation");
                              SET "sid" = "parentid";
                              SET "sname" = ''
                            END IF
                          END IF
                        END IF
                      END IF
                    END IF
                  END IF
                END IF
              END IF
            END IF
          END IF
        END IF END IF END IF;
    IF("length"("tchoiceid") > 0) AND("ttype" <> 'M') THEN
      SET "sname" = "string"((SELECT "string"(tag.description,': ',"tagchoice"."description") FROM "tagchoice" KEY JOIN "tag" 
        WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoice"."tagchoiceid" = "tchoiceid"),' Updated - ',"sname")
    ELSE
      SET "sname" = "string"((SELECT "description" FROM "tag" WHERE "taglocation" = "tlocation" AND "tagid" = "tid"),' Updated - ',"sname")
    END IF;
    IF "tlocation" LIKE 'U%' THEN
      SET "sname" = "string"("sname",' - ',(SELECT "userid" FROM "staff" WHERE "staffid" = "parentid"))
    END IF;
    IF "length"("tlocation") > 1 THEN
      SET "sname" = "string"((SELECT "name" FROM "department" WHERE "departmentid" = "substring"("tlocation",2)),' ',"sname")
    END IF;
    IF "ttype" IN( 'T','U' ) THEN
      SELECT FIRST "textvalue" INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "id" = "parentid"
    ELSE IF "ttype" = 'D' THEN
        SELECT FIRST "dateformat"("dateadd"("day","value","date"('1899-12-30')),'yyyy-mm-dd') INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "id" = "parentid"
      ELSE IF "ttype" = 'N' THEN
          SELECT FIRST "value" INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "id" = "parentid"
        ELSE IF "ttype" = 'M' THEN
            SELECT FIRST "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "oval" FROM "tagchoice" KEY JOIN "tagvalue" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "id" = "parentid";
            IF "oval" IS NULL THEN SELECT FIRST "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "oval" FROM "tagchoice" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoiceid" = '_'
            END IF
          ELSE SELECT FIRST "value" INTO "oval" FROM "tagvalue" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "tagchoiceid" = "tchoiceid" AND "id" = "parentid"
          END IF
        END IF
      END IF END IF END IF;
  IF "isnull"("mstep",0) = 0 THEN
    SET "mstep" = 1
  END IF;
  CASE "ttype"
  WHEN NULL THEN
    RETURN
  WHEN 'M' THEN IF "tchoiceid" = '_' OR "tchoiceid" = '' OR "tchoiceid" IS NULL THEN
      SET "nvalue" = 0;
      SET "tchoiceid" = NULL
    ELSE IF "nvalue" <> 0 THEN
        SET "nvalue" = 1
      END IF END IF WHEN 'T' THEN SET "tchoiceid" = NULL;
    IF "trim"("tvalue") <> '' THEN
      SET "svalue" = "tvalue";
      SET "nvalue" = 1
    ELSE
      SET "nvalue" = 0
    END IF WHEN 'U' THEN SET "tchoiceid" = NULL;
    IF "trim"("tvalue") <> '' THEN
      SET "svalue" = "ucase"("tvalue");
      SET "nvalue" = 1
    ELSE
      SET "nvalue" = 0
    END IF WHEN 'N' THEN SET "tchoiceid" = NULL;
    IF "nvalue" = 1 THEN
      SET "nvalue" = "mstep"
    END IF WHEN 'D' THEN SET "tchoiceid" = NULL;
    BEGIN
      SET "nvalue" = "date"("trim"("tvalue"))-"date"('1899-12-30')
    exception
      WHEN others THEN
        SET "nvalue" = 0
    END WHEN 'L' THEN IF "nvalue" <> 0 AND "tchoiceid" <> '*' THEN
      SET "nvalue" = 1
    END IF WHEN 'S' THEN IF "nvalue" = 1 THEN
      SET "nvalue" = "mstep"
    END IF WHEN 'G' THEN IF "nvalue" = 1 THEN
      SELECT "min"("value") INTO "nvalue" FROM "tagchoice" WHERE "taglocation" = "tlocation" AND "tagid" = "tid" AND "subchoice" = 1
    END IF WHEN 'Q' THEN IF "nvalue" <> 1 THEN
      SET "nvalue" = 1
    END IF ELSE
    RETURN
  END CASE;
  IF "tchoiceid" IS NOT NULL THEN
    IF EXISTS(SELECT "id" FROM "tagvalue" WHERE "tagchoiceid" = "tchoiceid" AND "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid") THEN
      IF((("ttype" = 'L' AND "tchoiceid" <> '*') OR "ttype" = 'M') AND "nvalue" <> 0) OR "tvalue" = 'Y' THEN
        RETURN
      END IF;
      DELETE FROM "tagvalue" WHERE "tagchoiceid" = "tchoiceid" AND "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid"
    END IF END IF;
  IF "tchoiceid" IS NULL OR "ttype" = 'M' THEN
    IF EXISTS(SELECT "id" FROM "tagvalue" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid") THEN
      DELETE FROM "tagvalue" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid"
    END IF END IF;
  IF "ttype" = 'Q' THEN
    DELETE FROM "tagvalue" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "id" = "parentid" AND "tagchoiceid"
       = any(SELECT "tagchoiceid" FROM "tagchoice" WHERE "tagid" = "tid" AND "taglocation" = "tlocation" AND "tagchoiceparentid" = "tvalue");
    SET "svalue" = NULL;
    IF "isnull"("tchoiceid",'0') = '0' THEN
      SET "nvalue" = 0
    ELSE SET "nvalue" = 1
    END IF END IF;
  IF "nvalue" <> 0 THEN
    INSERT INTO "tagvalue"( "id","tagchoiceid","tagid","taglocation","value","textvalue" ) VALUES
      ( "parentid","tchoiceid","tid","tlocation","nvalue","svalue" ) 
  END IF;
  IF "baudit" = 1 THEN
    IF "ttype" = 'M' THEN
      SELECT "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "tvalue" FROM "tagchoice" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoice"."tagchoiceid" = "tchoiceid";
      IF("tvalue" IS NULL) OR("tvalue" = '1') THEN
        SELECT FIRST "string"("tagchoice"."tagchoiceid",': ',"tagchoice"."description") INTO "tvalue" FROM "tagchoice" WHERE "tagchoice"."taglocation" = "tlocation" AND "tagchoice"."tagid" = "tid" AND "tagchoiceid" = '_'
      END IF;
      IF "tvalue" = '1' THEN
        SET "tvalue" = NULL
      END IF END IF;
    IF "ttype" = 'L' THEN
      IF "tvalue" = '1' THEN
        SET "tvalue" = 'Added';
        SET "oval" = ''
      ELSE
        SET "tvalue" = 'Removed';
        SET "oval" = ''
      END IF END IF;
    CALL "AuditLog"("stype","sid","sname","isnull"("oval",''),"isnull"("tvalue",''))
  END IF
exception
  WHEN others THEN RETURN
END
}
  • database/procedures/pears_setquestanswer.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1