====== pears.NetProvTimesheetSendForApproval ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetProvTimesheetSendForApproval"( in "pWebUserID" char(20),in "ptempprovtimesheetid" char(20),in "pfaxnumber" char(20),in "pemailaddress" char(100) )
result( "pResult" char(250) )
begin
declare "returnMsg" char(250);
declare "faxdomain" long varchar;
if "pfaxnumber" is not null or "pemailaddress" is not null then
if "pfaxnumber" is not null and "pfaxnumber" <> '' then
set "faxdomain" = (select first "EmailFaxAddress" from "params");
set "faxdomain" = "replace"("faxdomain",'#',"pfaxnumber");
set "faxdomain" = "replace"("faxdomain",' ','');
set "faxdomain" = "replace"("faxdomain",'(','');
set "faxdomain" = "replace"("faxdomain",')','');
set "faxdomain" = "replace"("faxdomain",'+','');
insert into "IQXNetAction"( "IQXNetActionID","IQXNetUserID","ActionType","TargetType","ActionState","WhenRequested","TargetID","ActionAddress" ) values
( "uniquekey"("ptempprovtimesheetid"),"pWebUserID",'SendApproveEfax','T',0,"NOW"(),"ptempprovtimesheetid","faxdomain" ) ;
set "returnMsg" = '0:~Success'
end if;
if "pemailaddress" is not null and "pemailaddress" <> '' then
insert into "IQXNetAction"( "IQXNetActionID","IQXNetUserID","ActionType","TargetType","ActionState","WhenRequested","TargetID","ActionAddress" ) values
( "uniquekey"("ptempprovtimesheetid"),"pWebUserID",'SendApproveEmail','T',0,"NOW"(),"ptempprovtimesheetid","pemailaddress" ) ;
set "returnMsg" = '0:~Success'
end if
else set "returnMsg" = '99:~No Fax number or Email Address provided.'
end if;
select "returnMsg"
end /* DOC
2016-12-05 PC test and doc
2018-07-26 PC include improved error handler
Tests:
invalid pWebUserID
valid pWebUserID, invalid pTempProvTimesheetID
valid pWebUserID, invalid pTempProvTimesheetID, invalid pfaxnumber, pemailaddress
valid pWebUserID, invalid pTempProvTimesheetID, pfaxnumber, invalid pemailaddress
valid pWebUserID, invalid pTempProvTimesheetID, pemailaddress, invalid pfaxnumber
valid pWebUserID, invalid pTempProvTimesheetID, pemailaddress, pfaxnumber
*/
/* TEST
call NetTestSetup('');
delete from iqxnetaction where iqxnetuserid='test.candidate';
select * from NetProvTimesheetSendForApproval(null,null,null,null);
expect 99*;
select * from NetProvTimesheetSendForApproval('test.candidate',null,null,null);
expect 99*;
select * from NetProvTimesheetSendForApproval('test.candidate','TEST',null,null);
expect 99*;
select * from NetProvTimesheetSendForApproval('test.candidate','TEST','0999999999',null);
expect 0*;
select * from NetProvTimesheetSendForApproval('test.candidate','TEST',null,'a@b.com');
expect 0*;
select top 1 * from iqxnetaction where iqxnetuserid='test.candidate' order by iqxnetactionid desc;
expect ActionType=SendApproveEmail,TargetType=T,TargetID=TEST,ActionAddress=a@b.com;
*/
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetProvTimesheetSendForApproval" IS
{create PROCEDURE pears."NetProvTimesheetSendForApproval"( in pWebUserID char(20), in ptempprovtimesheetid char(20), in pfaxnumber char(20), in pemailaddress char(100) )
result(pResult char(250))
BEGIN
DECLARE returnMsg char(250);
DECLARE faxdomain long varchar;
IF pfaxnumber is not null OR pemailaddress is not null THEN
IF pfaxnumber is not null AND pfaxnumber != '' THEN
set faxdomain = (SELECT first EmailFaxAddress FROM params);
set faxdomain = replace(faxdomain,'#',pfaxnumber);
set faxdomain = replace(faxdomain,' ','');
set faxdomain = replace(faxdomain,'(','');
set faxdomain = replace(faxdomain,')','');
set faxdomain = replace(faxdomain,'+','');
INSERT into IQXNetAction(IQXNetActionID, IQXNetUserID, ActionType, TargetType, ActionState, WhenRequested, TargetID, ActionAddress)
VALUES( uniquekey(ptempprovtimesheetid), pWebUserID, 'SendApproveEfax', 'T', 0, NOW(), ptempprovtimesheetid, faxdomain);
set returnMsg = '0:~Success';
END IF;
IF pemailaddress is not null AND pemailaddress != '' THEN
INSERT into IQXNetAction(IQXNetActionID, IQXNetUserID, ActionType, TargetType, ActionState, WhenRequested, TargetID, ActionAddress)
VALUES( uniquekey(ptempprovtimesheetid), pWebUserID, 'SendApproveEmail', 'T', 0, NOW(), ptempprovtimesheetid, pemailaddress);
set returnMsg = '0:~Success'
END IF;
ELSE
set returnMsg = '99:~No Fax number or Email Address provided.';
END IF;
SELECT returnMsg;
END
/* DOC
2016-12-05 PC test and doc
2018-07-26 PC include improved error handler
Tests:
invalid pWebUserID
valid pWebUserID, invalid pTempProvTimesheetID
valid pWebUserID, invalid pTempProvTimesheetID, invalid pfaxnumber, pemailaddress
valid pWebUserID, invalid pTempProvTimesheetID, pfaxnumber, invalid pemailaddress
valid pWebUserID, invalid pTempProvTimesheetID, pemailaddress, invalid pfaxnumber
valid pWebUserID, invalid pTempProvTimesheetID, pemailaddress, pfaxnumber
*/
/* TEST
call NetTestSetup('');
delete from iqxnetaction where iqxnetuserid='test.candidate';
select * from NetProvTimesheetSendForApproval(null,null,null,null);
expect 99*;
select * from NetProvTimesheetSendForApproval('test.candidate',null,null,null);
expect 99*;
select * from NetProvTimesheetSendForApproval('test.candidate','TEST',null,null);
expect 99*;
select * from NetProvTimesheetSendForApproval('test.candidate','TEST','0999999999',null);
expect 0*;
select * from NetProvTimesheetSendForApproval('test.candidate','TEST',null,'a@b.com');
expect 0*;
select top 1 * from iqxnetaction where iqxnetuserid='test.candidate' order by iqxnetactionid desc;
expect ActionType=SendApproveEmail,TargetType=T,TargetID=TEST,ActionAddress=a@b.com;
*/
}