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;