pears.EnsurePlacementForShift
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE PROCEDURE "pears"."EnsurePlacementForShift"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ IN "shiftid" CHAR(20),IN "vacid" CHAR(20),IN "persid" CHAR(20),IN "shiftdate" DATE ) BEGIN DECLARE "placid" CHAR(20); DECLARE "compid" CHAR(20); DECLARE "pos" CHAR(50); DECLARE "clientdept" CHAR(30); DECLARE "deptid" CHAR(20); DECLARE "contref" CHAR(20); DECLARE "tref" CHAR(50); DECLARE "curr" CHAR(3); IF NOT EXISTS(SELECT "placement"."placementid" FROM "placement" KEY JOIN "employment" WHERE "placement"."vacancyid" = "vacid" AND "employment"."personid" = "persid") THEN SELECT "vacancy"."contractref","vacancy"."theirref","vacancy"."departmentid","vacancy"."position","vacancy"."clientdepartment","vacancy"."currency","employment"."companyid" INTO "contref","tref","deptid","pos","clientdept","curr","compid" FROM "vacancy" KEY JOIN "employment" WHERE "vacancy"."vacancyid" = "vacid"; SET "placid" = "uniquekey"('X'); INSERT INTO "employment"( "employmentid","companyid","personid","position","department","startdate","leavedate","temp","concurrent" ) VALUES ( "placid","compid","persid","pos","clientdept","shiftdate","shiftdate",1,1 ) ; INSERT INTO "placement"( "placementid","employmentid","vacancyid","departmentid","staffid","contractref","theirref","placedate","temp", "daysperweek","currency" ) VALUES( "placid","placid","vacid","deptid","userstaffid","contref","tref",CURRENT DATE,1,5,"curr" ) ; UPDATE "progress" JOIN "status" ON "progress"."status" = "status"."status" AND "status"."type" = 'R' SET "progress"."status" = 'X',"progress"."actiondate" = NULL,"progress"."placementid" = "placid" WHERE "progress"."vacancyid" = "vacid" AND "progress"."personid" = "persid" AND "isnull"("status"."final",0) = 0 AND "progress"."placementid" IS NULL END IF END GO COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."EnsurePlacementForShift" IS {CREATE PROCEDURE EnsurePlacementForShift /* Application Maintained Function / Procedure - DO NOT EDIT*/ (IN shiftid CHAR(20),IN vacid CHAR(20),IN persid CHAR(20),IN shiftdate DATE) BEGIN DECLARE placid CHAR(20); DECLARE compid CHAR(20); DECLARE pos CHAR(50); DECLARE clientdept CHAR(30); DECLARE deptid CHAR(20); DECLARE contref CHAR(20); DECLARE tref CHAR(50); DECLARE curr CHAR(3); IF NOT EXISTS (SELECT placement.placementid FROM placement KEY JOIN employment WHERE placement.vacancyid = vacid AND employment.personid = persid) THEN SELECT vacancy.contractref,vacancy.theirref,vacancy.departmentid,vacancy.position,vacancy.clientdepartment, vacancy.currency, employment.companyid INTO contref, tref, deptid, pos, clientdept, curr, compid FROM vacancy KEY JOIN employment WHERE vacancy.vacancyid = vacid; SET placid = uniquekey('X'); INSERT INTO employment (employmentid,companyid,personid,POSITION,department,startdate,leavedate,temp,concurrent) VALUES (placid,compid,persid,pos,clientdept,shiftdate,shiftdate,1,1); INSERT INTO placement (placementid,employmentid,vacancyid,departmentid,staffid,contractref,theirref,placedate,temp, daysperweek,currency) VALUES (placid,placid,vacid,deptid,userstaffid,contref,tref,CURRENT DATE,1,5,curr); UPDATE progress JOIN STATUS ON progress.status=STATUS.status AND STATUS.type='R' SET progress.status='X',progress.actiondate = NULL,progress.placementid = placid WHERE progress.vacancyid = vacid AND progress.personid = persid AND isnull(STATUS.final,0)=0 AND progress.placementid IS NULL END IF END }