database:procedures:pears_netcandidatediaryactionsave



pears.NetCandidateDiaryActionSave

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

CREATE PROCEDURE "pears"."NetCandidateDiaryActionSave"( IN "pWebUserID" CHAR(20),IN "pActions" long VARCHAR ) 
RESULT( "pResult" CHAR(250) ) 
BEGIN
  DECLARE "i" SMALLINT;
  DECLARE "s" CHAR(100);
  DECLARE "sAction" CHAR(20);
  SET "pActions" = "trim"("isnull"("pActions",''));
  "looplabel": loop
    IF "pActions" = '' THEN
      leave "looplabel"
    END IF;
    SET "i" = "charindex"(',',"pActions");
    IF "i" = 0 THEN
      SET "s" = "pActions";
      SET "pActions" = ''
    ELSE
      SET "s" = "trim"("left"("pActions","i"-1));
      SET "pActions" = "trim"("right"("pActions","length"("pActions")-"i"))
    END IF;
    IF "s" LIKE 'Shift%' THEN
      SET "s" = "right"("s","length"("s")-6);
      SET "i" = "charindex"('=',"s");
      SET "sAction" = "right"("s","length"("s")-"i");
      SET "s" = "left"("s","i"-1);
      IF "saction" = 'Delete' THEN
        DELETE FROM "tempshift" WHERE "tempshiftid" = "s" AND "personid" = any(SELECT "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID") AND "state" IN( 'A','U','H' ) 
      ELSE IF "saction" = 'Confirm' THEN
          UPDATE "tempshift" SET "tempconfirmed" = 1 WHERE "tempshiftid" = "s" AND "personid" = any(SELECT "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID") AND "state" IN( 'P','C' ) ;
          CALL "IQXNetRequestAction"("pWebUserID",'CandidateConfirm','SHIFT',"s")
        ELSE IF "saction" = 'Reject' THEN
            UPDATE "tempshift" SET "state" = 'C',"whencancelled" = CURRENT TIMESTAMP,"whocancelled" = "userstaffid","crefill" = 1,"clientconfirmed" = 0,"tempconfirmed" = 1,"cancelreason" = 'T'
              WHERE "tempshiftid" = "s" AND "personid" = any(SELECT "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID") AND "state" = 'P';
            CALL "IQXNetRequestAction"("pWebUserID",'CandidateReject','SHIFT',"s")
          ELSE IF "saction" = 'Acknowledge' THEN
              UPDATE "tempshift" SET "tempconfirmed" = 1
                WHERE "tempshiftid" = "s" AND "personid" = any(SELECT "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID") AND "state" = 'C'
            END IF
          END IF
        END IF
      END IF
    END IF
  END loop "looplabel";
  SELECT '0:~Success'
END /* DOC
2018-10-10 MHS IW-456 multi-cand fix. Appears not currently in use so won't do tests
*/
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetCandidateDiaryActionSave" IS 
{CREATE PROCEDURE pears."NetCandidateDiaryActionSave"( IN "pWebUserID" CHAR(20),IN "pActions" long VARCHAR ) 
RESULT( "pResult" CHAR(250) ) 
BEGIN
  DECLARE "i" SMALLINT;
  DECLARE "s" CHAR(100);
  DECLARE "sAction" CHAR(20);
  SET "pActions" = "trim"("isnull"("pActions",''));
  "looplabel": loop
    IF "pActions" = '' THEN
      leave "looplabel"
    END IF;
    SET "i" = "charindex"(',',"pActions");
    IF "i" = 0 THEN
      SET "s" = "pActions";
      SET "pActions" = ''
    ELSE
      SET "s" = "trim"("left"("pActions","i"-1));
      SET "pActions" = "trim"("right"("pActions","length"("pActions")-"i"))
    END IF;
    IF "s" LIKE 'Shift%' THEN
      SET "s" = "right"("s","length"("s")-6);
      SET "i" = "charindex"('=',"s");
      SET "sAction" = "right"("s","length"("s")-"i");
      SET "s" = "left"("s","i"-1);
      IF "saction" = 'Delete' THEN
        DELETE FROM "tempshift" WHERE "tempshiftid" = "s" AND "personid" IN (SELECT personid FROM iqxnetuserlink WHERE iqxnetuserid=pWebUserID) AND "state" IN( 'A','U','H' ) 
      ELSE IF "saction" = 'Confirm' THEN
          UPDATE "tempshift" SET "tempconfirmed" = 1 WHERE "tempshiftid" = "s" AND "personid" IN (SELECT personid FROM iqxnetuserlink WHERE iqxnetuserid=pWebUserID) AND "state" IN( 'P','C' ) ;
          CALL "IQXNetRequestAction"("pWebUserID",'CandidateConfirm','SHIFT',"s")
        ELSE IF "saction" = 'Reject' THEN
            UPDATE "tempshift" SET "state" = 'C',"whencancelled" = CURRENT TIMESTAMP,"whocancelled" = "userstaffid","crefill" = 1,"clientconfirmed" = 0,"tempconfirmed" = 1,"cancelreason" = 'T'
              WHERE "tempshiftid" = "s" AND "personid" IN (SELECT personid FROM iqxnetuserlink WHERE iqxnetuserid=pWebUserID) AND "state" = 'P';
            CALL "IQXNetRequestAction"("pWebUserID",'CandidateReject','SHIFT',"s")
          ELSE IF "saction" = 'Acknowledge' THEN
              UPDATE "tempshift" SET "tempconfirmed" = 1
                WHERE "tempshiftid" = "s" AND "personid" IN (SELECT personid FROM iqxnetuserlink WHERE iqxnetuserid=pWebUserID) AND "state" = 'C'
            END IF
          END IF
        END IF
      END IF
    END IF
  END loop "looplabel";
  SELECT '0:~Success'
END
 
 /* DOC
2018-10-10 MHS IW-456 multi-cand fix. Appears not currently in use so won't do tests
*/
}
  • database/procedures/pears_netcandidatediaryactionsave.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1