USP_DATAFORMTEMPLATE_ADD_SALESDEPOSITTEMPLATE_PRELOAD

The load procedure used by the edit dataform template "Sales Deposit Template Add Data Form"

Parameters

Parameter Parameter Type Mode Description
@SALESDEPOSITPROCESSID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@PAYMENTTYPE xml INOUT Payment types
@DEPOSITDATE nvarchar(10) INOUT Deposit date
@STATUS nvarchar(10) INOUT Status

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESDEPOSITTEMPLATE_PRELOAD
                (
                    @SALESDEPOSITPROCESSID uniqueidentifier,
                    @PAYMENTTYPE xml = null output,
                    @DEPOSITDATE nvarchar(10) = null output,
                    @STATUS nvarchar(10) = null output
                )
                as
                    set nocount on;

                    set @DEPOSITDATE = 'Today'
                    set @STATUS = 'Locked'

                    --The payment types currently in a sales deposit template in this process
                    declare @CURRENTSALESDEPOSITPAYMENTTYPES table (
                        [SALESDEPOSITTEMPLATENAME] nvarchar(100),
                        [PAYMENTMETHODCODE] tinyint,
                        [CREDITTYPECODEID] uniqueidentifier,
                        [OTHERPAYMENTMETHODCODEID] uniqueidentifier
                    )

                    insert into @CURRENTSALESDEPOSITPAYMENTTYPES
                    select 
                        [SALESDEPOSITTEMPLATE].[NAME],
                        [SALESDEPOSITTEMPLATEPAYMENTMETHOD].[PAYMENTMETHODCODE],
                        [SALESDEPOSITTEMPLATEPAYMENTMETHOD].[CREDITTYPECODEID],
                        [SALESDEPOSITTEMPLATEPAYMENTMETHOD].[OTHERPAYMENTMETHODCODEID]
                    from dbo.[SALESDEPOSITTEMPLATE]
                    inner join dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD] 
                        on [SALESDEPOSITTEMPLATE].[ID] = [SALESDEPOSITTEMPLATEPAYMENTMETHOD].[SALESDEPOSITTEMPLATEID]
                    where [SALESDEPOSITTEMPLATE].[SALESDEPOSITPROCESSID] = @SALESDEPOSITPROCESSID;

                    --The payment types temp table selectable in form
                    declare @PAYMENTTYPES table (
                        [ISAVAILABLE] bit,
                        [PAYMENTMETHOD] nvarchar(100),
                        [PAYMENTMETHODCODE] tinyint,
                        [CREDITTYPECODEID] uniqueidentifier,
                        [HASDEPOSIT] bit,
                        [SALESDEPOSITTEMPLATENAME] nvarchar(100),
                        [OTHERPAYMENTMETHODCODEID] uniqueidentifier
                    )

                    insert into @PAYMENTTYPES
                    select
                        0 as [ISAVAILABLE],
                        dbo.UFN_REVENUEPAYMENTMETHOD_PAYMENTMETHODCODE_GETDESCRIPTION(0) as [PAYMENTMETHOD],
                        0 as [PAYMENTMETHODCODE],
                        null as [CREDITTYPECODEID],
                        case when exists (
                            select [CSDPT].[SALESDEPOSITTEMPLATENAME] 
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where [CSDPT].[PAYMENTMETHODCODE] = 0
                            ) then 1
                            else 0 
                        end as [HASDEPOSIT],
                        (
                            select top 1 [CSDPT].[SALESDEPOSITTEMPLATENAME] 
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where [CSDPT].[PAYMENTMETHODCODE] = 0
                        ) as [SALESDEPOSITTEMPLATENAME],
                        null as [OTHERPAYMENTMETHODCODEID]

                    union all
                    select
                        0 as [ISAVAILABLE],
                        dbo.UFN_REVENUEPAYMENTMETHOD_PAYMENTMETHODCODE_GETDESCRIPTION(1) as [PAYMENTMETHOD],
                        1 as [PAYMENTMETHODCODE],
                        null as [CREDITTYPECODEID],
                        case when exists (
                            select [CSDPT].[SALESDEPOSITTEMPLATENAME] 
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where [CSDPT].[PAYMENTMETHODCODE] = 1
                            ) then 1
                            else 0 
                        end as [HASDEPOSIT],
                        (
                            select top 1 [CSDPT].[SALESDEPOSITTEMPLATENAME] 
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where [CSDPT].[PAYMENTMETHODCODE] = 1
                        ) as [SALESDEPOSITTEMPLATENAME],
                        null as [OTHERPAYMENTMETHODCODEID]

                    union all
                    select 
                        0 as [ISAVAILABLE],
                        [CREDITTYPECODE].[DESCRIPTION] as [PAYMENTMETHOD],
                        2 as [PAYMENTMETHODCODE],
                        [CREDITTYPECODE].[ID] as [CREDITTYPECODEID],
                        case when [CREDITTYPECODE].[ID] in (
                            select [CSDPT].[CREDITTYPECODEID]
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where [CSDPT].[PAYMENTMETHODCODE] = 2
                            ) then 1
                            else 0 
                        end as [HASDEPOSIT],
                        (
                            select top 1 [CSDPT].[SALESDEPOSITTEMPLATENAME] 
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where 
                                [CSDPT].[PAYMENTMETHODCODE] = 2 and
                                [CSDPT].[CREDITTYPECODEID] = [CREDITTYPECODE].[ID]
                        ) as [SALESDEPOSITTEMPLATENAME],
                        null as [OTHERPAYMENTMETHODCODEID]

                    from dbo.[CREDITTYPECODE]
                    where [ACTIVE] = 1

                    union all
                    select 
                        0 as [ISAVAILABLE],
                        [OTHERPAYMENTMETHODCODE].[DESCRIPTION] as [PAYMENTMETHOD],
                        10 as [PAYMENTMETHODCODE],
                        null as [CREDITTYPECODEID],
                        case when [OTHERPAYMENTMETHODCODE].[ID] in (
                            select [CSDPT].[OTHERPAYMENTMETHODCODEID]
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where [CSDPT].[PAYMENTMETHODCODE] = 10
                            ) then 1
                            else 0 
                        end as [HASOTHERDEPOSIT],
                        (
                            select top 1 [CSDPT].[SALESDEPOSITTEMPLATENAME] 
                            from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
                            where 
                                [CSDPT].[PAYMENTMETHODCODE] = 10 and
                                [CSDPT].[OTHERPAYMENTMETHODCODEID] = [OTHERPAYMENTMETHODCODE].[ID]
                        ) as [SALESDEPOSITTEMPLATENAME],
                        [OTHERPAYMENTMETHODCODE].[ID] as [OTHERPAYMENTMETHODCODEID]
                    from dbo.[OTHERPAYMENTMETHODCODE]
                    where [ACTIVE] = 1
                        and [ID] not in (select ID from dbo.NONDEPOSITABLEPAYMENTMETHOD);

                    set @PAYMENTTYPE =
                        (
                            select
                                [PAYMENTTYPES].[ISAVAILABLE],
                                [PAYMENTTYPES].[PAYMENTMETHOD],
                                [PAYMENTTYPES].[PAYMENTMETHODCODE],
                                [PAYMENTTYPES].[CREDITTYPECODEID],
                                [PAYMENTTYPES].[HASDEPOSIT],
                                [PAYMENTTYPES].[SALESDEPOSITTEMPLATENAME],
                                [PAYMENTTYPES].[OTHERPAYMENTMETHODCODEID]
                            from @PAYMENTTYPES as [PAYMENTTYPES]
                            for xml raw ('ITEM'), type, elements, root('PAYMENTTYPE'), BINARY BASE64
                        )

                    return 0;