USP_DATAFORMTEMPLATE_EDIT_SALESDEPOSITTEMPLATE_PRELOAD
The load procedure used by the edit dataform template "Sales Deposit Template Edit Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@PAYMENTTYPE | xml | INOUT | Payment types |
@DEPOSITDATE | nvarchar(10) | INOUT | Deposit date |
@STATUS | nvarchar(10) | INOUT | Status |
@NAME | nvarchar(100) | INOUT | Name |
@BANKACCOUNTID | uniqueidentifier | INOUT | Bank account |
@POSTSTATUSCODE | tinyint | INOUT | Post status |
@REFERENCECODE | tinyint | INOUT | Reference |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SALESDEPOSITTEMPLATE_PRELOAD
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@PAYMENTTYPE xml = null output,
@DEPOSITDATE nvarchar(10) = null output,
@STATUS nvarchar(10) = null output,
@NAME nvarchar(100) = null output,
@BANKACCOUNTID uniqueidentifier = null output,
@POSTSTATUSCODE tinyint = null output,
@REFERENCECODE tinyint = null output
)
as
set nocount on;
set @DEPOSITDATE = 'Today'
set @STATUS = 'Locked'
declare @SALESDEPOSITPROCESSID uniqueidentifier
select
@DATALOADED = 1,
@SALESDEPOSITPROCESSID = [SALESDEPOSITPROCESSID],
@NAME = [NAME],
@BANKACCOUNTID = [BANKACCOUNTID],
@REFERENCECODE = [REFERENCECODE],
@TSLONG = [TSLONG]
from dbo.[SALESDEPOSITTEMPLATE]
where [ID] = @ID;
--The payment types currently in a sales deposit template (other than this one) 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 and
[SALESDEPOSITTEMPLATE].[ID] <> @ID;
--The payment types temp table selectable in form
declare @PAYMENTTYPES table (
[ISAVAILABLE] bit,
[PAYMENTMETHOD] nvarchar(100),
[PAYMENTMETHODCODE] tinyint,
[CREDITTYPECODEID] uniqueidentifier,
[HASOTHERDEPOSIT] bit,
[SALESDEPOSITTEMPLATENAME] nvarchar(100),
[OTHERPAYMENTMETHODCODEID] uniqueidentifier
)
insert into @PAYMENTTYPES
select
case when 0 in (
select [PAYMENTMETHODCODE]
from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
where [SALESDEPOSITTEMPLATEID] = @ID
) then 1
else 0
end 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 [HASOTHERDEPOSIT],
(
select top 1 [CSDPT].[SALESDEPOSITTEMPLATENAME]
from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
where [CSDPT].[PAYMENTMETHODCODE] = 0
) as [SALESDEPOSITTEMPLATENAME],
null as [OTHERPAYMENTMETHODCODEID]
union all
select
case when 1 in (
select [PAYMENTMETHODCODE]
from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
where [SALESDEPOSITTEMPLATEID] = @ID
) then 1
else 0
end 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 [HASOTHERDEPOSIT],
(
select top 1 [CSDPT].[SALESDEPOSITTEMPLATENAME]
from @CURRENTSALESDEPOSITPAYMENTTYPES as [CSDPT]
where [CSDPT].[PAYMENTMETHODCODE] = 1
) as [SALESDEPOSITTEMPLATENAME],
null as [OTHERPAYMENTMETHODCODEID]
union all
select
case when [CREDITTYPECODE].[ID] in (
select [CREDITTYPECODEID]
from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
where
[SALESDEPOSITTEMPLATEID] = @ID and
[PAYMENTMETHODCODE] = 2
) then 1
else 0
end 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 [HASOTHERDEPOSIT],
(
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
case when [OTHERPAYMENTMETHODCODE].[ID] in (
select [OTHERPAYMENTMETHODCODEID]
from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
where
[SALESDEPOSITTEMPLATEID] = @ID and
[PAYMENTMETHODCODE] = 10
) then 1
else 0
end 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].[HASOTHERDEPOSIT],
[PAYMENTTYPES].[SALESDEPOSITTEMPLATENAME],
[PAYMENTTYPES].[OTHERPAYMENTMETHODCODEID]
from @PAYMENTTYPES as [PAYMENTTYPES]
for xml raw ('ITEM'), type, elements, root('PAYMENTTYPE'), BINARY BASE64
)
return 0;