USP_DATAFORMTEMPLATE_ADD_SALESDEPOSITTEMPLATE

The save procedure used by the add dataform template "Sales Deposit Template Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@SALESDEPOSITPROCESSID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@BANKACCOUNTID uniqueidentifier IN Bank account
@POSTSTATUSCODE tinyint IN Post status
@REFERENCECODE tinyint IN Reference
@PAYMENTTYPE xml IN Payment types

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESDEPOSITTEMPLATE
                (
                    @ID uniqueidentifier = null output,
                    @SALESDEPOSITPROCESSID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @NAME nvarchar(100) = '',
                    @BANKACCOUNTID uniqueidentifier = null,
                    @POSTSTATUSCODE tinyint = 1,
                    @REFERENCECODE tinyint = 0,
                    @PAYMENTTYPE xml = null
                )
                as

                set nocount on;

                if @ID is null
                    set @ID = newid()

                if @CHANGEAGENTID is null  
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                begin try
                    insert into dbo.[SALESDEPOSITTEMPLATE]
                    (
                        [ID], 
                        [SALESDEPOSITPROCESSID],
                        [NAME],
                        [BANKACCOUNTID],
                        [REFERENCECODE],
                        [ADDEDBYID],
                        [CHANGEDBYID],
                        [DATEADDED],
                        [DATECHANGED]
                    )
                    values
                    (
                        @ID
                        @SALESDEPOSITPROCESSID,
                        @NAME,
                        @BANKACCOUNTID,
                        @REFERENCECODE,
                        @CHANGEAGENTID
                        @CHANGEAGENTID
                        @CURRENTDATE
                        @CURRENTDATE
                    )

                    --populate the payment types with selected payment types
                    if @PAYMENTTYPE is not null
                    begin
                        insert into dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
                        (
                            [ID],
                            [SALESDEPOSITTEMPLATEID],
                            [PAYMENTMETHODCODE],
                            [CREDITTYPECODEID],
                            [OTHERPAYMENTMETHODCODEID],
                            [ADDEDBYID],
                            [CHANGEDBYID],
                            [DATEADDED],
                            [DATECHANGED]
                        )
                        select
                            newid(),
                            @ID,
                            T.paymenttype.value('(PAYMENTMETHODCODE)[1]', 'tinyint'),
                            case when (T.paymenttype.value('(PAYMENTMETHODCODE)[1]', 'tinyint') = 2) then
                                    T.paymenttype.value('(CREDITTYPECODEID)[1]', 'uniqueidentifier')
                                else null end,
                            case when (T.paymenttype.value('(PAYMENTMETHODCODE)[1]', 'tinyint') = 10) then
                                    T.paymenttype.value('(OTHERPAYMENTMETHODCODEID)[1]', 'uniqueidentifier')
                                else null end,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        from @PAYMENTTYPE.nodes('/PAYMENTTYPE/ITEM') T(paymenttype)
                        where T.paymenttype.value('(ISAVAILABLE)[1]', 'bit') = 1
                    end
                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch

                return 0;