====== pears.NetCandidateBankDetails ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetCandidateBankDetails"( in "pWebUserID" char(20),in "pPersonID" char(20) default null )
result( "BankName" char(30),"BankSortCode" char(8),"BankAcName" char(50),"BankAcNo" char(8),"BankRef" char(20),"ni" char(20),"TaxMethod" integer,"HideDetails" integer )
// IQXWeb
begin
set "pPersonID" = "NetCandidateValidPersonID"("pWebUserID","pPersonID");
if "IQXNetHasPermission"("pWebUserID",'CANDBANKDETAILSVIEW') = 0 then
return
end if;
select "e"."BankName",
"e"."BankSortCode",
"e"."BankAcName",
"string"("replicate"('*',"length"("e"."bankacno")-2),"right"("e"."bankacno",2)),
"e"."BankRef",
"ni",
"e"."taxmethod",
(if "e"."TaxMethod" = 1 then 0 else 1 endif) as "HideDetails"
from "person" key left outer join "Pay_Employee" as "e"
where "person"."personid" = "pPersonID"
end /* DOC
2016-10-12 PC procedure to return bank details for candidate
2017-01-17 PC provide flag to hide all details other than paye, to avoid candidates being able to edit payment agencies details.
2017-09-26 PC include tax details
2017-10-24 PC alter size of tax parameters
2018-04-24 PC add column to hide tax type tab
2018-05-06 PC IW-503 only display last two digits of bank code
2018-10-10 MHS IW-456 multi-cand fix and tests
2019-4-9 MHS strip out rogue tax code rubbish
Tests:
Valid pWebUserID without read permission
Valid pWebUserID with read permission
Flag names:
CandBankDetailsView
*/
/* TEST
NetTestSetup('');
insert into pay_employee (Personid,bankname,banksortcode,BankAcName,BankAcNo,BankRef,secondaryagencyid) on existing update defaults off values ('TEST','TestBank','99-99-99','TestTest','09988776','TestRef','TEST');
insert into iqxnetright (IQXNetRightID,Description,sortorder) on existing update defaults off values ('CANDBANKDETAILSVIEW','View candidate bank details',998);
insert into iqxnetrightallowed (iqxnetrightid,iqxnetuserclassid,id,maintainonweb) on existing update defaults off values ('CANDBANKDETAILSVIEW','CANDIDATE','*',1);
select * from NetCandidateBankDetails(null);
expect EOF;
select * from NetCandidateBankDetails(null);
expect EOF;
insert into iqxnetrightassigned (iqxnetuserid,iqxnetrightid,assigned) on existing update defaults off values ('test.candidate','candbankdetailsview',1);
select * from "NetCandidateBankDetails"("pWebUserID" = 'test.candidate');
expect BankName=TestBank,BankSortCode=99-99-99,BankAcName=TestTest,BankAcNo=******76,BankRef=TestRef;
delete from iqxnetrightassigned where iqxnetuserid='test.candidate' and iqxnetrightid='candbankdetailsview';
*/
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetCandidateBankDetails" IS
{create PROCEDURE pears."NetCandidateBankDetails"( in "pWebUserID" char(20), in pPersonID char(20) default null )
result("BankName" char(30),"BankSortCode" char(8),"BankAcName" char(50),"BankAcNo" char(8),"BankRef" char(20), ni char(20),TaxMethod integer, "HideDetails" integer)
// IQXWeb
begin
set pPersonID=NetCandidateValidPersonID(pWebUserID,pPersonID);
if "IQXNetHasPermission"("pWebUserID",'CANDBANKDETAILSVIEW') = 0 then
return;
end if;
select
e."BankName",
e."BankSortCode",
e."BankAcName",
string(replicate('*',length(e.bankacno)-2),right(e.bankacno,2)),
e.BankRef,
ni,
e.taxmethod,
(if e.TaxMethod = 1 then 0 else 1 endif) as HideDetails
from
person key left outer join "Pay_Employee" as e
where
person.personid=pPersonID
end
/* DOC
2016-10-12 PC procedure to return bank details for candidate
2017-01-17 PC provide flag to hide all details other than paye, to avoid candidates being able to edit payment agencies details.
2017-09-26 PC include tax details
2017-10-24 PC alter size of tax parameters
2018-04-24 PC add column to hide tax type tab
2018-05-06 PC IW-503 only display last two digits of bank code
2018-10-10 MHS IW-456 multi-cand fix and tests
2019-4-9 MHS strip out rogue tax code rubbish
Tests:
Valid pWebUserID without read permission
Valid pWebUserID with read permission
Flag names:
CandBankDetailsView
*/
/* TEST
NetTestSetup('');
insert into pay_employee (Personid,bankname,banksortcode,BankAcName,BankAcNo,BankRef,secondaryagencyid) on existing update defaults off values ('TEST','TestBank','99-99-99','TestTest','09988776','TestRef','TEST');
insert into iqxnetright (IQXNetRightID,Description,sortorder) on existing update defaults off values ('CANDBANKDETAILSVIEW','View candidate bank details',998);
insert into iqxnetrightallowed (iqxnetrightid,iqxnetuserclassid,id,maintainonweb) on existing update defaults off values ('CANDBANKDETAILSVIEW','CANDIDATE','*',1);
select * from NetCandidateBankDetails(null);
expect EOF;
select * from NetCandidateBankDetails(null);
expect EOF;
insert into iqxnetrightassigned (iqxnetuserid,iqxnetrightid,assigned) on existing update defaults off values ('test.candidate','candbankdetailsview',1);
select * from "NetCandidateBankDetails"("pWebUserID" = 'test.candidate');
expect BankName=TestBank,BankSortCode=99-99-99,BankAcName=TestTest,BankAcNo=******76,BankRef=TestRef;
delete from iqxnetrightassigned where iqxnetuserid='test.candidate' and iqxnetrightid='candbankdetailsview';
*/
}