pears.NetAgencyCurrentRequirementConfirmInterest
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE PROCEDURE "pears"."NetAgencyCurrentRequirementConfirmInterest"( IN "pWebUserID" CHAR(20),IN "pLineID" CHAR(22),IN "pTransactionType" CHAR(1),IN "pNote" CHAR(255),IN "pDeclinedReason" CHAR(20) DEFAULT NULL ) RESULT( "retval" CHAR(250) ) BEGIN // IQXWeb DECLARE "CEKey" CHAR(20); DECLARE "dStaffID" CHAR(20); DECLARE "dEmploymentID" CHAR(20); DECLARE "ConfirmContactClass" CHAR(2); DECLARE "DeclineContactClass" CHAR(2); DECLARE "CommentClass" CHAR(2); DECLARE "SecondaryAgencyID" CHAR(20); DECLARE "LineID" CHAR(20); DECLARE "ShiftRef" CHAR(20); DECLARE "dWhoID" CHAR(20); DECLARE "DeclinedReason" CHAR(255); SET "CEKey" = "uniquekey"("pLineID"); IF "isnull"("pTransactionType",'') NOT IN( 'C','D','N' ) THEN SELECT '99:~Invalid transaction type' END IF; IF "left"("pLineID",1) = 'V' THEN SET "LineID" = "right"("pLineID",20); SELECT "refcode" INTO "ShiftRef" FROM "vacancy" WHERE "vacancyID" = "LineID" END IF; IF "left"("pLineID",1) = 'P' THEN SET "LineID" = (SELECT "vacancyid" FROM "tempshiftplan" WHERE "tempshiftplanid" = "right"("pLineID",20)); SELECT "ShiftSerialNumber" INTO "ShiftRef" FROM "tempshiftplan" WHERE "tempshiftplanid" = "right"("pLineID",20) END IF; SELECT top 1 "employment"."employmentid" INTO "dEmploymentID" FROM "iqxnetuserlink" KEY JOIN "employment" WHERE "iqxnetuserid" = "pWebUserID" ORDER BY "isnull"("employment"."leavedate",CURRENT DATE) DESC; SELECT "e"."personid" INTO "dWhoID" FROM "employment" AS "e" WHERE "e"."employmentid" = "dEmploymentID"; SET "dStaffID" = (SELECT "staffid" FROM "vacancy" WHERE "vacancyid" = "LineID"); SET "ConfirmContactClass" = (SELECT top 1 "classcode" FROM "contactclass" WHERE "classdescrip" = 'Confirm Interest' ORDER BY "sortorder" ASC); SET "DeclineContactClass" = (SELECT top 1 "classcode" FROM "contactclass" WHERE "classdescrip" = 'Decline Interest' ORDER BY "sortorder" ASC); SET "CommentClass" = (SELECT top 1 "classcode" FROM "contactclass" WHERE "classdescrip" = 'Client Comment' ORDER BY "sortorder" ASC); SET "SecondaryAgencyID" = (SELECT "CompanyID" FROM "Employment" WHERE "EmploymentID" = "dEmploymentID"); -- Confirm IF "pTransactionType" = 'C' THEN INSERT INTO "contactevent"( "contacteventid","vacancyid","staffid","employmentid","contactdate","contacttime","description","classcode","notes","whoentered" ) VALUES ( "CEKey","LineID","dStaffID","dEmploymentID",CURRENT DATE,CURRENT TIME,'Confirm Interest:'+"ShiftRef","ConfirmContactClass","pNote","dWhoID" ) ; SELECT '0:~success#Confirm Interest at '+"dateformat"(CURRENT TIMESTAMP,'dd/mm/yyyy hh:mm') END IF; -- Decline IF "pTransactionType" = 'D' THEN -- Mark Shift or Vacancy Cascade record as declined IF "left"("pLineID",1) = 'P' THEN SET "DeclinedReason" = (SELECT top 1 "reason" FROM "rejectionreason" WHERE "rejectreasonid" = "pDeclinedReason" ORDER BY "sortorder" ASC); UPDATE "CascadedShift" SET "WhenDeclined" = CURRENT TIMESTAMP,"DeclinedNote" = "pNote","Details" = "DeclinedReason" WHERE "TempShiftPlanID" = "LineID" AND "SecondaryAgencyID" = "SecondaryAgencyID" END IF; IF "left"("pLineID",1) = 'V' THEN UPDATE "CascadedVacancy" SET "WhenDeclined" = CURRENT TIMESTAMP,"Details" = "pNote" WHERE "VacancyID" = "LineID" AND "SecondaryAgencyID" = "SecondaryAgencyID" END IF; INSERT INTO "contactevent"( "contacteventid","vacancyid","staffid","employmentid","contactdate","contacttime","description","classcode","notes","whoentered" ) VALUES ( "CEKey","LineID","dStaffID","dEmploymentID",CURRENT DATE,CURRENT TIME,'Decline Interest:'+"ShiftRef"+' '+"DeclinedReason","DeclineContactClass","pNote","dWhoID" ) ; SELECT '0:~success#Decline Interest at '+"dateformat"(CURRENT TIMESTAMP,'dd/mm/yyyy hh:mm') END IF; -- Note (comment) IF "pTransactionType" = 'N' THEN INSERT INTO "contactevent"( "contacteventid","vacancyid","staffid","employmentid","contactdate","contacttime","description","classcode","notes","whoentered" ) VALUES ( "CEKey","LineID","dStaffID","dEmploymentID",CURRENT DATE,CURRENT TIME,'Add comment:'+"ShiftRef","CommentClass","pNote","dWhoID" ) ; SELECT '0:~success#Comment made at '+"dateformat"(CURRENT TIMESTAMP,'dd/mm/yyyy hh:mm')+': '+"pNote" END IF END /* DOC 2016-10-06 PC set decline for cascaded shift / vacancy, and create confirm / decline / Note entry into the contact event table 2019-03-05 PC IW-873 add top 1 and order by on subqueries This routine requires three contact event types which must contain the following text: Confirm Interest Decline Interest Client Comment */ /* TEST call NetTestSetup(''); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.candidate','test.client','test.owner'); update iqxnetuserlink set employmentid='TEST' where IQXNetUserLinkID='test.agency'; delete from contactevent where vacancyid='TESTTESTTESTTESTTEST'; delete from vacancy where vacancyid='TESTTESTTESTTESTTEST'; insert into vacancy (vacancyid,departmentid,employmentid,status,position,staffid) values ('TESTTESTTESTTESTTEST','~~','TEST','[','test2','test'); select * from NetAgencyCurrentRequirementConfirmInterest('test.agency','VTESTTESTTESTTESTTEST','C','TestNote'); expect retval=0:~success#Confirm*; select top 1 staffid,vacancyid,employmentid,classcode,notes from contactevent order by whenentered desc,contacteventid desc; expect staffid=test,vacancyid=TESTTESTTESTTESTTEST,employmentid=TEST,classcode=CI,notes=TestNote; delete from contactevent where vacancyid='TESTTESTTESTTESTTEST'; delete from vacancy where vacancyid='TESTTESTTESTTESTTEST'; */ GO COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetAgencyCurrentRequirementConfirmInterest" IS {CREATE PROCEDURE pears."NetAgencyCurrentRequirementConfirmInterest"( IN "pWebUserID" CHAR(20),IN "pLineID" CHAR(22),IN "pTransactionType" CHAR(1), IN pNote CHAR(255),IN pDeclinedReason CHAR(20) DEFAULT NULL) RESULT( "retval" CHAR(250) ) BEGIN // IQXWeb DECLARE CEKey CHAR(20); DECLARE dStaffID CHAR(20); DECLARE dEmploymentID CHAR(20); DECLARE ConfirmContactClass CHAR(2); DECLARE DeclineContactClass CHAR(2); DECLARE CommentClass CHAR(2); DECLARE SecondaryAgencyID CHAR(20); DECLARE LineID CHAR(20); DECLARE ShiftRef CHAR(20); DECLARE dWhoID CHAR(20); DECLARE DeclinedReason CHAR(255); SET CEKey = "uniquekey"("pLineID"); IF isnull(pTransactionType,'') NOT IN ('C','D','N') THEN SELECT '99:~Invalid transaction type'; END IF; IF LEFT(pLineID,1)='V' THEN SET LineID = RIGHT(pLineID,20); SELECT "refcode" INTO ShiftRef FROM "vacancy" WHERE "vacancyID" = "LineID"; END IF; IF LEFT(pLineID,1)='P' THEN SET LineID = (SELECT vacancyid FROM tempshiftplan WHERE tempshiftplanid=RIGHT(pLineID,20)); SELECT "ShiftSerialNumber" INTO ShiftRef FROM tempshiftplan WHERE tempshiftplanid=RIGHT(pLineID,20); END IF; SELECT top 1 employment."employmentid" INTO dEmploymentID FROM "iqxnetuserlink" KEY JOIN employment WHERE "iqxnetuserid" = "pWebUserID" ORDER BY isnull(employment.leavedate,CURRENT DATE) DESC; SELECT e.personid INTO dWhoID FROM employment e WHERE e.employmentid = dEmploymentID; SET dStaffID = (SELECT "staffid" FROM "vacancy" WHERE "vacancyid" = "LineID"); SET ConfirmContactClass = (SELECT top 1 classcode FROM contactclass WHERE classdescrip='Confirm Interest' ORDER BY sortorder); SET DeclineContactClass = (SELECT top 1 classcode FROM contactclass WHERE classdescrip='Decline Interest' ORDER BY sortorder); SET CommentClass = (SELECT top 1 classcode FROM contactclass WHERE classdescrip='Client Comment' ORDER BY sortorder); SET SecondaryAgencyID = (SELECT "CompanyID" FROM "Employment" WHERE "EmploymentID" = dEmploymentID); -- Confirm IF "pTransactionType" = 'C' THEN INSERT INTO "contactevent"( "contacteventid","vacancyid","staffid","employmentid","contactdate","contacttime","description","classcode","notes",whoentered ) VALUES (CEKey,"LineID",dStaffID,dEmploymentID,CURRENT DATE,CURRENT TIME,'Confirm Interest:'+ShiftRef,ConfirmContactClass,"pNote",dWhoID ) ; SELECT '0:~success#Confirm Interest at '+"dateformat"(CURRENT TIMESTAMP,'dd/mm/yyyy hh:mm') END IF; -- Decline IF "pTransactionType" = 'D' THEN -- Mark Shift or Vacancy Cascade record as declined IF LEFT(pLineID,1)='P' THEN SET DeclinedReason = (SELECT top 1 reason FROM rejectionreason WHERE rejectreasonid = pDeclinedReason ORDER BY sortorder); UPDATE "CascadedShift" SET "WhenDeclined" = CURRENT TIMESTAMP,"DeclinedNote" = "pNote",Details=DeclinedReason WHERE "TempShiftPlanID" = "LineID" AND "SecondaryAgencyID" = SecondaryAgencyID END IF; IF LEFT(pLineID,1)='V' THEN UPDATE "CascadedVacancy" SET "WhenDeclined" = CURRENT TIMESTAMP,Details=pNote WHERE "VacancyID" = "LineID" AND "SecondaryAgencyID" = SecondaryAgencyID END IF; INSERT INTO "contactevent"( "contacteventid","vacancyid","staffid","employmentid","contactdate","contacttime","description","classcode","notes",whoentered ) VALUES ( "CEKey","LineID",dStaffID,dEmploymentID,CURRENT DATE,CURRENT TIME,'Decline Interest:'+ShiftRef+' '+DeclinedReason,DeclineContactClass,"pNote",dWhoID ) ; SELECT '0:~success#Decline Interest at '+"dateformat"(CURRENT TIMESTAMP,'dd/mm/yyyy hh:mm') END IF; -- Note (comment) IF "pTransactionType" = 'N' THEN INSERT INTO "contactevent"( "contacteventid","vacancyid","staffid","employmentid","contactdate","contacttime","description","classcode","notes",whoentered ) VALUES ( "CEKey","LineID",dStaffID,dEmploymentID,CURRENT DATE,CURRENT TIME,'Add comment:'+ShiftRef,CommentClass,"pNote",dWhoID ) ; SELECT '0:~success#Comment made at '+"dateformat"(CURRENT TIMESTAMP,'dd/mm/yyyy hh:mm')+': '+"pNote" END IF END /* DOC 2016-10-06 PC set decline for cascaded shift / vacancy, and create confirm / decline / Note entry into the contact event table 2019-03-05 PC IW-873 add top 1 and order by on subqueries This routine requires three contact event types which must contain the following text: Confirm Interest Decline Interest Client Comment */ /* TEST call NetTestSetup(''); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.candidate','test.client','test.owner'); update iqxnetuserlink set employmentid='TEST' where IQXNetUserLinkID='test.agency'; delete from contactevent where vacancyid='TESTTESTTESTTESTTEST'; delete from vacancy where vacancyid='TESTTESTTESTTESTTEST'; insert into vacancy (vacancyid,departmentid,employmentid,status,position,staffid) values ('TESTTESTTESTTESTTEST','~~','TEST','[','test2','test'); select * from NetAgencyCurrentRequirementConfirmInterest('test.agency','VTESTTESTTESTTESTTEST','C','TestNote'); expect retval=0:~success#Confirm*; select top 1 staffid,vacancyid,employmentid,classcode,notes from contactevent order by whenentered desc,contacteventid desc; expect staffid=test,vacancyid=TESTTESTTESTTESTTEST,employmentid=TEST,classcode=CI,notes=TestNote; delete from contactevent where vacancyid='TESTTESTTESTTESTTEST'; delete from vacancy where vacancyid='TESTTESTTESTTESTTEST'; */ }