Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
CREATE PROCEDURE "pears"."NetTimesheetRates"( IN "pWebUserID" CHAR(20),IN "pTempTimesheetID" CHAR(20) ) RESULT( "TempTimesheetLineID" CHAR(20),"IsExpenses" SMALLINT,"BandDescription" CHAR(50),"UnitDescription" CHAR(100),"Units" DECIMAL(12,2),"Rate" DECIMAL(12,2),"Total" DECIMAL(12,2),"Rate2" DECIMAL(12,2),"Total2" DECIMAL(12,2),"ShiftDate" DATE ) // IQXWeb BEGIN DECLARE "uclass" CHAR(20); DECLARE "divid" CHAR(20); SET "uclass" = (SELECT FIRST "iqxnetuserclassid" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pWebUserID"); IF "uclass" = 'CLIENT' THEN SELECT "TempTimesheetLine"."TempTimesheetLineID", (IF "isnull"("temppayband"."payrollflag",'') = 'EXPENSES' OR "isnull"("temppayband"."isexpenses",0) = 1 THEN 1 ELSE 0 endif) AS "IsExpenses", "temppayband"."description", (IF "IsExpenses" = 1 THEN "temptimesheetline"."description" ELSE "temppayband"."unit" endif), "nullif"("temptimesheetline"."unitscharged",0.0) AS "units","nullif"("temptimesheetline"."chargerate",0.0) AS "rate","isnull"("units"*"rate",0.0) AS "total",NULL,NULL, "date"("temptimesheetline"."shifttime") FROM "temptimesheetline" KEY JOIN "temppayband" WHERE "temptimesheetline"."temptimesheetid" = "pTempTimesheetID" ORDER BY "temptimesheetline"."linenumber" ASC ELSE IF "uclass" = 'OWNER' THEN SELECT "TempTimesheetLine"."TempTimesheetLineID", (IF "isnull"("temppayband"."payrollflag",'') = 'EXPENSES' OR "isnull"("temppayband"."isexpenses",0) = 1 THEN 1 ELSE 0 endif) AS "IsExpenses", "temppayband"."description", (IF "IsExpenses" = 1 THEN "temptimesheetline"."description" ELSE "temppayband"."unit" endif), "nullif"("temptimesheetline"."unitspaid",0.0) AS "units","nullif"("temptimesheetline"."payrate",0.0) AS "rate","isnull"("units"*"rate",0.0) AS "total", "nullif"("temptimesheetline"."chargerate",0.0) AS "rate2","isnull"("units"*"rate2",0.0) AS "total2", "date"("temptimesheetline"."shifttime") FROM "temptimesheetline" KEY JOIN "temppayband" WHERE "temptimesheetline"."temptimesheetid" = "pTempTimesheetID" ORDER BY "temptimesheetline"."linenumber" ASC ELSE SELECT "TempTimesheetLine"."TempTimesheetLineID", (IF "isnull"("temppayband"."payrollflag",'') = 'EXPENSES' OR "isnull"("temppayband"."isexpenses",0) = 1 THEN 1 ELSE 0 endif) AS "IsExpenses", "temppayband"."description", (IF "IsExpenses" = 1 THEN "temptimesheetline"."description" ELSE "temppayband"."unit" endif), "nullif"("temptimesheetline"."unitspaid",0.0) AS "units","nullif"("temptimesheetline"."payrate",0.0) AS "rate","isnull"("units"*"rate",0.0) AS "total",NULL,NULL, "date"("temptimesheetline"."shifttime") FROM "temptimesheetline" KEY JOIN "temppayband" WHERE "temptimesheetline"."temptimesheetid" = "pTempTimesheetID" ORDER BY "temptimesheetline"."linenumber" ASC END IF END IF END /* TEST select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.candidate','test'); expect TempTimesheetLineID=test,IsExpenses=0,BandDescription=TestPayBandOne,UnitDescription=Day; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.client','test'); expect TempTimesheetLineID=test,IsExpenses=0,BandDescription=TestPayBandOne,UnitDescription=Day; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.owner','test'); expect TempTimesheetLineID=test,IsExpenses=0,BandDescription=TestPayBandOne,UnitDescription=Day; update temppayband set payrollflag='EXPENSES' where temppaybandid='TEST1'; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.candidate','test'); expect TempTimesheetLineID=test,IsExpenses=1,BandDescription=TestPayBandOne; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.client','test'); expect TempTimesheetLineID=test,IsExpenses=1,BandDescription=TestPayBandOne; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.owner','test'); expect TempTimesheetLineID=test,IsExpenses=1,BandDescription=TestPayBandOne; update temppayband set payrollflag='99' where temppaybandid='TEST1'; */ /* DOC 2018-09-11 PC test routines */ GO COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetTimesheetRates" IS {CREATE PROCEDURE pears."NetTimesheetRates"(IN pWebUserID CHAR(20),IN pTempTimesheetID CHAR(20)) RESULT(TempTimesheetLineID CHAR(20),IsExpenses SMALLINT,BandDescription CHAR(50),UnitDescription CHAR(100),Units DECIMAL(12,2),Rate DECIMAL(12,2),Total DECIMAL(12,2),Rate2 DECIMAL(12,2),Total2 DECIMAL(12,2),ShiftDate DATE) // IQXWeb BEGIN DECLARE uclass CHAR(20); DECLARE divid CHAR(20); SET uclass=(SELECT FIRST iqxnetuserclassid FROM iqxnetuser WHERE iqxnetuserid = pWebUserID); IF uclass = 'CLIENT' THEN SELECT TempTimesheetLine.TempTimesheetLineID, (IF isnull(temppayband.payrollflag,'') = 'EXPENSES' OR isnull(temppayband.isexpenses,0) = 1 THEN 1 ELSE 0 endif) AS IsExpenses,temppayband.description, (IF IsExpenses = 1 THEN temptimesheetline.description ELSE temppayband.unit endif),NULLIF(temptimesheetline.unitscharged,0.0) AS units,NULLIF(temptimesheetline.chargerate,0.0) AS rate,isnull(units*rate,0.0) AS total,NULL,NULL, DATE(temptimesheetline.shifttime) FROM temptimesheetline KEY JOIN temppayband WHERE temptimesheetline.temptimesheetid = pTempTimesheetID ORDER BY temptimesheetline.linenumber ASC ELSE IF uclass = 'OWNER' THEN SELECT TempTimesheetLine.TempTimesheetLineID, (IF isnull(temppayband.payrollflag,'') = 'EXPENSES' OR isnull(temppayband.isexpenses,0) = 1 THEN 1 ELSE 0 endif) AS IsExpenses,temppayband.description, (IF IsExpenses = 1 THEN temptimesheetline.description ELSE temppayband.unit endif),NULLIF(temptimesheetline.unitspaid,0.0) AS units,NULLIF(temptimesheetline.payrate,0.0) AS rate,isnull(units*rate,0.0) AS total, NULLIF(temptimesheetline.chargerate,0.0) AS rate2,isnull(units*rate2,0.0) AS total2, DATE(temptimesheetline.shifttime) FROM temptimesheetline KEY JOIN temppayband WHERE temptimesheetline.temptimesheetid = pTempTimesheetID ORDER BY temptimesheetline.linenumber ASC ELSE SELECT TempTimesheetLine.TempTimesheetLineID, (IF isnull(temppayband.payrollflag,'') = 'EXPENSES' OR isnull(temppayband.isexpenses,0) = 1 THEN 1 ELSE 0 endif) AS IsExpenses,temppayband.description, (IF IsExpenses = 1 THEN temptimesheetline.description ELSE temppayband.unit endif),NULLIF(temptimesheetline.unitspaid,0.0) AS units,NULLIF(temptimesheetline.payrate,0.0) AS rate,isnull(units*rate,0.0) AS total,NULL,NULL, DATE(temptimesheetline.shifttime) FROM temptimesheetline KEY JOIN temppayband WHERE temptimesheetline.temptimesheetid = pTempTimesheetID ORDER BY temptimesheetline.linenumber ASC END IF END IF END /* TEST select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.candidate','test'); expect TempTimesheetLineID=test,IsExpenses=0,BandDescription=TestPayBandOne,UnitDescription=Day; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.client','test'); expect TempTimesheetLineID=test,IsExpenses=0,BandDescription=TestPayBandOne,UnitDescription=Day; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.owner','test'); expect TempTimesheetLineID=test,IsExpenses=0,BandDescription=TestPayBandOne,UnitDescription=Day; update temppayband set payrollflag='EXPENSES' where temppaybandid='TEST1'; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.candidate','test'); expect TempTimesheetLineID=test,IsExpenses=1,BandDescription=TestPayBandOne; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.client','test'); expect TempTimesheetLineID=test,IsExpenses=1,BandDescription=TestPayBandOne; select TempTimesheetLineID,IsExpenses,BandDescription,UnitDescription from NetTimesheetRates('test.owner','test'); expect TempTimesheetLineID=test,IsExpenses=1,BandDescription=TestPayBandOne; update temppayband set payrollflag='99' where temppaybandid='TEST1'; */ /* DOC 2018-09-11 PC test routines */ }