pears.NetReportTimesheetsExpanded
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE PROCEDURE "pears"."NetReportTimesheetsExpanded"( IN "pWebUserID" CHAR(20),IN "From__D" CHAR(20),IN "To__D" CHAR(20) ) RESULT( "Title__H" CHAR(100),"Number__1" CHAR(20),"Temp" CHAR(60),"Position" CHAR(60),"Client__B" CHAR(100),"End_Date__DXA" DATE,"Pay_Type" CHAR(100),"Unit" CHAR(100),"Units__R" DOUBLE,"Rate__MR" DOUBLE,"Total__MR" DOUBLE ) BEGIN DECLARE "pstart" DATE; DECLARE "pend" DATE; DECLARE "pStartPeriod" INTEGER; DECLARE "pEndPeriod" INTEGER; DECLARE "rTitle" CHAR(100); DECLARE "userClass" CHAR(20); DECLARE LOCAL TEMPORARY TABLE "IDs"( "ID" CHAR(20) NULL, ) NOT transactional;SET "pstart" = "iqxnetstringtodate"("From__D"); SET "pend" = "iqxnetstringtodate"("To__D"); SET "rTitle" = "dateformat"("pstart",'dd/mm/yyyy')+' - '+"dateformat"("pend",'dd/mm/yyyy'); SET "pStartPeriod" = "weekcontaining"("pstart"); SET "pEndPeriod" = "weekcontaining"("pend"); SET "userClass" = (SELECT FIRST "iqxnetuserclassid" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pWebUserID"); IF "userClass" = 'CANDIDATE' THEN INSERT INTO "IDs"( "ID" ) SELECT DISTINCT "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID"; SELECT "rTitle","t"."serialnumber","string"("person"."surname",', ',"person"."forenames") AS "tempname","vacancy"."position","company"."name" AS "companyname","weekmonthenddate"("t"."period","t"."periodlength") AS "weekenddate", "b"."description", "tl"."unitspaid", "tl"."payrate", "tl"."unitspaid"*"tl"."payrate" FROM "temppayband" AS "b" KEY JOIN "temptimesheetline" AS "tl" KEY JOIN "temptimesheet" AS "t" KEY JOIN "placement" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company" ,"temptimesheet" AS "t" KEY JOIN "tempdesk" ,"temptimesheet" AS "t" KEY JOIN "person" WHERE "t"."personid" = any(SELECT "id" FROM "ids") AND "t"."Period" BETWEEN "pStartPeriod" AND "pEndPeriod" AND "t"."PeriodLength" = 'W' GROUP BY GROUPING sets((),("weekenddate"),(("weekenddate"),"rTitle","t"."serialnumber","tempname","vacancy"."position","companyname","b"."description","tl"."unitspaid","tl"."payrate")) ELSE IF "userClass" = 'AGENCY' THEN INSERT INTO "IDs"( "ID" ) SELECT DISTINCT "e"."companyid" FROM "iqxnetuserlink" AS "l" KEY JOIN "employment" AS "e" WHERE "l"."iqxnetuserid" = "pWebUserID"; SELECT "rTitle","t"."serialnumber","string"("person"."surname",', ',"person"."forenames") AS "tempname","vacancy"."position","company"."name" AS "companyname","weekmonthenddate"("t"."period","t"."periodlength") AS "weekenddate", "b"."description", "tl"."unitspaid", "tl"."payrate", "tl"."unitspaid"*"tl"."payrate" FROM "temppayband" AS "b" KEY JOIN "temptimesheetline" AS "tl" KEY JOIN "temptimesheet" AS "t" KEY JOIN "placement" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company" ,"temptimesheet" AS "t" KEY JOIN "tempdesk" ,"temptimesheet" AS "t" KEY JOIN "person" KEY JOIN "pay_employee" KEY JOIN "company" AS "agcomp" WHERE "agcomp"."companyid" = any(SELECT "id" FROM "ids") AND "weekenddate" >= "IQXNetCompanyStartDate"("agcomp"."companyid") AND "t"."Period" BETWEEN "pStartPeriod" AND "pEndPeriod" AND "t"."PeriodLength" = 'W' GROUP BY GROUPING sets((),("weekenddate"),(("weekenddate"),"rTitle","t"."serialnumber","tempname","vacancy"."position","companyname","b"."description","tl"."unitspaid","tl"."payrate")) ELSE -- CLIENT INSERT INTO "IDs"( "ID" ) SELECT DISTINCT "e"."companyid" FROM "iqxnetuserlink" AS "l" KEY JOIN "employment" AS "e" WHERE "l"."iqxnetuserid" = "pWebUserID"; SELECT "rTitle","t"."serialnumber","string"("person"."surname",', ',"person"."forenames") AS "tempname","vacancy"."position","company"."name" AS "companyname","weekmonthenddate"("t"."period","t"."periodlength") AS "weekenddate", "b"."description", "tl"."unitscharged", "tl"."chargerate", "tl"."unitscharged"*"tl"."chargerate" FROM "temppayband" AS "b" KEY JOIN "temptimesheetline" AS "tl" KEY JOIN "temptimesheet" AS "t" KEY JOIN "placement" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company" ,"temptimesheet" AS "t" KEY JOIN "tempdesk" ,"temptimesheet" AS "t" KEY JOIN "person" WHERE "company"."companyid" = any(SELECT "id" FROM "ids") AND "weekenddate" >= "IQXNetCompanyStartDate"("company"."companyid") AND "t"."Period" BETWEEN "pStartPeriod" AND "pEndPeriod" AND "t"."PeriodLength" = 'W' GROUP BY GROUPING sets((),("weekenddate"),(("weekenddate"),"t"."serialnumber","tempname","vacancy"."position","companyname","t"."temptimesheetid","b"."description","tl"."unitspaid","tl"."payrate")) END IF END IF END GO COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetReportTimesheetsExpanded" IS {CREATE PROCEDURE pears."NetReportTimesheetsExpanded"( IN "pWebUserID" CHAR(20),IN "From__D" CHAR(20),IN "To__D" CHAR(20) ) RESULT( "Title__H" CHAR(100),"Number__1" CHAR(20),"Temp" CHAR(60),"Position" CHAR(60),"Client__B" CHAR(100),"End_Date__DXA" DATE,"Pay_Type" CHAR(100),"Unit" CHAR(100),"Units__R" DOUBLE,"Rate__MR" DOUBLE,"Total__MR" DOUBLE ) BEGIN DECLARE "pstart" DATE; DECLARE "pend" DATE; DECLARE "pStartPeriod" INTEGER; DECLARE "pEndPeriod" INTEGER; DECLARE "rTitle" CHAR(100); DECLARE "userClass" CHAR(20); DECLARE LOCAL TEMPORARY TABLE "IDs"( "ID" CHAR(20) NULL, ) NOT transactional;SET "pstart" = "iqxnetstringtodate"("From__D"); SET "pend" = "iqxnetstringtodate"("To__D"); SET "rTitle" = "dateformat"("pstart",'dd/mm/yyyy')+' - '+"dateformat"("pend",'dd/mm/yyyy'); SET "pStartPeriod" = "weekcontaining"("pstart"); SET "pEndPeriod" = "weekcontaining"("pend"); SET "userClass" = (SELECT FIRST "iqxnetuserclassid" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pWebUserID"); IF "userClass" = 'CANDIDATE' THEN INSERT INTO "IDs"( "ID" ) SELECT DISTINCT "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID"; SELECT "rTitle","t"."serialnumber","string"("person"."surname",', ',"person"."forenames") AS "tempname","vacancy"."position","company"."name" AS "companyname","weekmonthenddate"("t"."period","t"."periodlength") AS "weekenddate", "b"."description", "tl"."unitspaid", "tl"."payrate", "tl"."unitspaid"*"tl"."payrate" FROM "temppayband" AS "b" KEY JOIN "temptimesheetline" AS "tl" KEY JOIN "temptimesheet" AS "t" KEY JOIN "placement" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company" ,"temptimesheet" AS "t" KEY JOIN "tempdesk" ,"temptimesheet" AS "t" KEY JOIN "person" WHERE "t"."personid" = any(SELECT "id" FROM "ids") AND "t"."Period" BETWEEN "pStartPeriod" AND "pEndPeriod" AND "t"."PeriodLength" = 'W' GROUP BY GROUPING sets((),("weekenddate"),(("weekenddate"),"rTitle","t"."serialnumber","tempname","vacancy"."position","companyname","b"."description","tl"."unitspaid","tl"."payrate")) ELSE IF "userClass" = 'AGENCY' THEN INSERT INTO "IDs"( "ID" ) SELECT DISTINCT "e"."companyid" FROM "iqxnetuserlink" AS "l" KEY JOIN "employment" AS "e" WHERE "l"."iqxnetuserid" = "pWebUserID"; SELECT "rTitle","t"."serialnumber","string"("person"."surname",', ',"person"."forenames") AS "tempname","vacancy"."position","company"."name" AS "companyname","weekmonthenddate"("t"."period","t"."periodlength") AS "weekenddate", "b"."description", "tl"."unitspaid", "tl"."payrate", "tl"."unitspaid"*"tl"."payrate" FROM "temppayband" AS "b" KEY JOIN "temptimesheetline" AS "tl" KEY JOIN "temptimesheet" AS "t" KEY JOIN "placement" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company" ,"temptimesheet" AS "t" KEY JOIN "tempdesk" ,"temptimesheet" AS "t" KEY JOIN "person" KEY JOIN "pay_employee" KEY JOIN "company" AS "agcomp" WHERE "agcomp"."companyid" = any(SELECT "id" FROM "ids") AND "weekenddate" >= "IQXNetCompanyStartDate"("agcomp"."companyid") AND "t"."Period" BETWEEN "pStartPeriod" AND "pEndPeriod" AND "t"."PeriodLength" = 'W' GROUP BY GROUPING sets((),("weekenddate"),(("weekenddate"),"rTitle","t"."serialnumber","tempname","vacancy"."position","companyname","b"."description","tl"."unitspaid","tl"."payrate")) ELSE -- CLIENT INSERT INTO "IDs"( "ID" ) SELECT DISTINCT "e"."companyid" FROM "iqxnetuserlink" AS "l" KEY JOIN "employment" AS "e" WHERE "l"."iqxnetuserid" = "pWebUserID"; SELECT "rTitle","t"."serialnumber","string"("person"."surname",', ',"person"."forenames") AS "tempname","vacancy"."position","company"."name" AS "companyname","weekmonthenddate"("t"."period","t"."periodlength") AS "weekenddate", "b"."description", "tl"."unitscharged", "tl"."chargerate", "tl"."unitscharged"*"tl"."chargerate" FROM "temppayband" AS "b" KEY JOIN "temptimesheetline" AS "tl" KEY JOIN "temptimesheet" AS "t" KEY JOIN "placement" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company" ,"temptimesheet" AS "t" KEY JOIN "tempdesk" ,"temptimesheet" AS "t" KEY JOIN "person" WHERE "company"."companyid" = any(SELECT "id" FROM "ids") AND "weekenddate" >= "IQXNetCompanyStartDate"("company"."companyid") AND "t"."Period" BETWEEN "pStartPeriod" AND "pEndPeriod" AND "t"."PeriodLength" = 'W' GROUP BY GROUPING sets((),("weekenddate"),(("weekenddate"),"t"."serialnumber","tempname","vacancy"."position","companyname","t"."temptimesheetid","b"."description","tl"."unitspaid","tl"."payrate")) END IF END IF END }