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,'[email protected]');
expect 0*;
select top 1 * from iqxnetaction where iqxnetuserid='test.candidate' order by iqxnetactionid desc;
expect ActionType=SendApproveEmail,TargetType=T,TargetID=TEST,[email protected];
 
*/
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,'[email protected]');
expect 0*;
select top 1 * from iqxnetaction where iqxnetuserid='test.candidate' order by iqxnetactionid desc;
expect ActionType=SendApproveEmail,TargetType=T,TargetID=TEST,[email protected];
 
*/
}