====== pears.NetOwnerRequirementContracts ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetOwnerRequirementContracts"( in "pWebUserID" char(20),in "pSlice" integer default 1,in "pSliceSize" integer default 10,in "pStartDate" char(26) default null,in "pEndDate" char(26) default null,in "pStatus" char(1) default null,in "pTempdeskID" char(20) default null )
result( "RowID" char(20),"StartDate" char(20),"Position" char(50),"CompanyID" char(20),"CompanyName" char(60),"ContactID" char(20),"ContactName" char(60),"DetailStatus" char(30),"OurRef" char(20),"ContractRef" char(20),"ShiftRef" char(20),"FinishDate" char(30),"LongDescription" long varchar,"CompanyAddress" char(250),"TextStatus" char(100),"PONumber" char(50),"CreatedBy" char(255),"DeskType" char(20),"FilledBy" char(100) )
begin
// IQXNet
declare "DateRangeStart" date;
declare "DateRangeEnd" date;
declare "x" integer;
declare "y" integer;
declare "DefaultTempdeskID" char(20);
set "DateRangeStart" = "IQXNetStringToDate"("pStartDate");
set "DateRangeEnd" = "IQXNetStringToDate"("pEndDate");
set "DateRangeStart" = "isnull"("DateRangeStart","dateadd"("week",-1,current date));
set "DateRangeEnd" = "isnull"("DateRangeEnd","dateadd"("week",1,current date));
set "x" = "pSliceSize";
set "y" = "x"*"pSlice"+1;
if not exists(select * from "staff" key join "iqxnetuser" where "iqxnetuserid" = "pWebUserID" and "IQXNetUserClassID" = 'OWNER') then
return
end if;
set "DefaulttempdeskID" = "isnull"("pTempdeskID",(select top 1 "tempdeskid" from "staff" key join "iqxnetuser" where "iqxnetuserid" = "pWebUserID" and "IQXNetUserClassID" = 'OWNER' order by "tempdeskid" asc));
select top "x" start at "y"
"v"."VacancyID" as "RowID",
"v"."startdate" as "StartDate",
"v"."Position" as "Position",
"Company"."CompanyID",
"Company"."Name" as "CompanyName",
"Person"."PersonID",
"Person"."Name" as "ContactName",
(select "Name" from "Status" where "Status"."Status" = "v"."Status" and "Status"."Type" = 'V') as "DetailStatus",
"v"."RefCode" as "OurRef",
"v"."ContractRef",
"v"."refcode" as "ShiftRef",
"v"."finishdate" as "FinishDate",
"v"."OtherNotes" as "LongDescription",
"GetCompanyAddressOnLine"("e"."companyid") as "CompanyAddress",
(select "Name" from "Status" where "Status"."Status" = "v"."Status" and "Status"."Type" = 'V') as "statusText",
"v"."theirref" as "PONumber",
('Consultant: '+(select "name" from "staff" where "staffid" = "v"."staffid")+' at: '+"dateformat"("v"."whenentered",'dd/mm/yyyy hh:mm:ss')) as "CreatedBy",
"isnull"("td"."desktype",'') as "DeskType",
(select "list"("personname") from "NetOwnerRequirementShortListPlaced"("pWebUserID","v"."VacancyID",0)) as "FilledBy"
from "vacancy" as "v"
key join "Employment" as "e"
key join("Company","Person")
,"vacancy" as "v"
key join "tempdesk" as "td"
where("StartDate" <= "DateRangeEnd" and("FinishDate" is null or "FinishDate" >= "DateRangeStart")
and "v"."status" not in( 'D','[' )
and "v"."status" = "isnull"("pStatus","v"."status")
and "DeskType" <> 'S'
and "v"."tempdeskid" = "DefaulttempdeskID"
and "isnull"("company"."divisionid",'') = any(select "DivisionID" from "DashboardStaffDivisions"()))
order by "StartDate" desc
end /* DOC
2018-10-08 PC IW-700 Derived from NetOwnerRequirementList
2018-11-28 IW-759 prioritise selection by tempdesk
2019-7-4 VHS/MHS fixed erroneous date criteria and removed dangerous tests
*/
/* TEST
select * from NetOwnerRequirementContracts('test.owner',0,100,null,null,null,'Z');
expect EOF;
*/
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetOwnerRequirementContracts" IS
{create procedure pears.NetOwnerRequirementContracts( in pWebUserID char(20),in pSlice integer default 1,in pSliceSize integer default 10,in pStartDate char(26) default null,in pEndDate char(26) default null,in pStatus char(1) default null,in pTempdeskID char(20) default null )
result( RowID char(20),StartDate char(20),Position char(50),CompanyID char(20),CompanyName char(60),ContactID char(20),ContactName char(60),DetailStatus char(30),OurRef char(20),ContractRef char(20),ShiftRef char(20),FinishDate char(30),LongDescription long varchar,CompanyAddress char(250),TextStatus char(100),PONumber char(50),CreatedBy char(255),DeskType char(20),FilledBy char(100) )
begin
// IQXNet
declare DateRangeStart date;
declare DateRangeEnd date;
declare x integer;
declare y integer;
declare DefaultTempdeskID char(20);
set DateRangeStart = IQXNetStringToDate(pStartDate);
set DateRangeEnd = IQXNetStringToDate(pEndDate);
set DateRangeStart = isnull(DateRangeStart,dateadd(week,-1,current date));
set DateRangeEnd = isnull(DateRangeEnd,dateadd(week,1,current date));
set x = pSliceSize;
set y = x*pSlice+1;
if not exists(select * from staff key join iqxnetuser where iqxnetuserid = pWebUserID and IQXNetUserClassID = 'OWNER') then
return
end if;
set DefaulttempdeskID = isnull(pTempdeskID,(select top 1 tempdeskid from staff key join iqxnetuser where iqxnetuserid = pWebUserID and IQXNetUserClassID = 'OWNER' order by tempdeskid asc));
select top x start at y
v.VacancyID as RowID,
v.startdate as StartDate,
v.Position as Position,
Company.CompanyID,
Company.Name as CompanyName,
Person.PersonID,
Person.Name as ContactName,
(select Name from Status where Status.Status = v.Status and Status.Type = 'V') as DetailStatus,
v.RefCode as OurRef,
v.ContractRef,
v.refcode as ShiftRef,
v.finishdate as FinishDate,
v.OtherNotes as LongDescription,
GetCompanyAddressOnLine(e.companyid) as CompanyAddress,
(select Name from Status where Status.Status = v.Status and Status.Type = 'V') as statusText,
v.theirref as PONumber,
('Consultant: '+(select name from staff where staffid = v.staffid)+' at: '+dateformat(v.whenentered,'dd/mm/yyyy hh:mm:ss')) as CreatedBy,
isnull(td.desktype,'') as DeskType,
(select list(personname) from NetOwnerRequirementShortListPlaced(pWebUserID,v.VacancyID,0)) as FilledBy
from vacancy as v
key join Employment as e
key join(Company,Person)
,vacancy as v
key join tempdesk as td
where (StartDate <= DateRangeEnd and ( FinishDate is null or FinishDate >= DateRangeStart)
and v.status not in( 'D','[' )
and v.status = isnull(pStatus,v.status)
and DeskType <> 'S'
and v.tempdeskid = DefaulttempdeskID
and isnull(company.divisionid,'') = any(select DivisionID from DashboardStaffDivisions()))
order by StartDate desc
end /* DOC
2018-10-08 PC IW-700 Derived from NetOwnerRequirementList
2018-11-28 IW-759 prioritise selection by tempdesk
2019-7-4 VHS/MHS fixed erroneous date criteria and removed dangerous tests
*/
/* TEST
select * from NetOwnerRequirementContracts('test.owner',0,100,null,null,null,'Z');
expect EOF;
*/
}