USP_DATAFORMTEMPLATE_EDIT_PRINTMEMBERSHIPCARDSPREPRINT_2
The save procedure used by the edit dataform template "Print Membership Cards Preprint Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@MEMBERSHIPCARDFORMAT | nvarchar(255) | IN | Card format to use |
@LETTERTEMPLATEID | uniqueidentifier | IN | Letter template to use |
@REPORTCATALOGID | uniqueidentifier | IN | Report to use |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PRINTMEMBERSHIPCARDSPREPRINT_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@MEMBERSHIPCARDFORMAT nvarchar(255),
@LETTERTEMPLATEID uniqueidentifier,
@REPORTCATALOGID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin try
update
dbo.PRINTMEMBERSHIPCARDSPROCESS
set
MEMBERSHIPCARDFORMAT = @MEMBERSHIPCARDFORMAT,
LETTERTEMPLATEID = @LETTERTEMPLATEID,
REPORTCATALOGID = @REPORTCATALOGID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.PRINTMEMBERSHIPCARDSPROCESS PMCP
inner join dbo.PRINTMEMBERSHIPCARDSPROCESSSTATUS PMCPS
on PMCP.ID = PMCPS.PARAMETERSETID
where
PMCPS.ID = @ID
-- Update letter template if needed
declare @CURRENTLETTERTEMPLATEID uniqueidentifier
select @CURRENTLETTERTEMPLATEID = WORDTEMPLATEID
from dbo.BUSINESSPROCESSOUTPUTTEMPLATE
where BUSINESSPROCESSSTATUSID = @ID and BUSINESSPROCESSOUTPUTTABLEKEY = @ID
if @CURRENTLETTERTEMPLATEID <> @LETTERTEMPLATEID
update dbo.BUSINESSPROCESSOUTPUTTEMPLATE
set WORDTEMPLATEID = @LETTERTEMPLATEID,
LETTERTEMPLATE = LETTERTEMPLATE.LETTERFILE,
LETTERTEMPLATENAME = LETTERTEMPLATE.LETTERFILENAME
from dbo.LETTERTEMPLATE
where BUSINESSPROCESSSTATUSID = @ID and BUSINESSPROCESSOUTPUTTABLEKEY = @ID
and LETTERTEMPLATE.ID = @LETTERTEMPLATEID
declare @TABLENAME nvarchar(100)
select @TABLENAME = TABLENAME
from dbo.BUSINESSPROCESSOUTPUT
where BUSINESSPROCESSSTATUSID = @ID
declare @SQL nvarchar(max)
set @SQL = 'update dbo.' + @TABLENAME + ' set WORDTEMPLATEID = ''' + convert(nvarchar(50), @LETTERTEMPLATEID) + ''''
exec (@SQL)
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;