USP_DATAFORMTEMPLATE_VIEW_SALESDEPOSITTEMPLATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@NAME | nvarchar(100) | INOUT | |
@SALESCHANNELOPTIONCODE | tinyint | INOUT | |
@PAYMENTMETHODOPTIONCODE | tinyint | INOUT | |
@SALESCHANNELS | xml | INOUT | |
@PAYMENTMETHODS | xml | INOUT | |
@CONFLICTS | xml | INOUT | |
@BANKACCOUNTNAME | nvarchar(100) | INOUT | |
@CURRENCYOPTIONCODE | tinyint | INOUT | |
@CURRENCIES | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_SALESDEPOSITTEMPLATE
(
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@NAME nvarchar(100) = null output
,@SALESCHANNELOPTIONCODE tinyint = null output
,@PAYMENTMETHODOPTIONCODE tinyint = null output
,@SALESCHANNELS xml = null output
,@PAYMENTMETHODS xml = null output
,@CONFLICTS xml = null output
,@BANKACCOUNTNAME nvarchar(100) = null output
,@CURRENCYOPTIONCODE tinyint = null output
,@CURRENCIES xml = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message.
select @DATALOADED = 1
,@NAME = T.NAME
,@SALESCHANNELOPTIONCODE = T.SALESCHANNELOPTIONCODE
,@PAYMENTMETHODOPTIONCODE = T.PAYMENTMETHODOPTIONCODE
,@CURRENCYOPTIONCODE = T.CURRENCYOPTIONCODE
,@BANKACCOUNTNAME = BA.ACCOUNTNAME
,@SALESCHANNELS = (select C.SALESMETHODTYPECODE, C.SALESMETHODTYPE
from dbo.SALESDEPOSITTEMPLATESALESCHANNEL C
where C.SALESDEPOSITTEMPLATEID = @ID
for xml raw ('ITEM'), type, elements, root('SALESCHANNELS'), binary base64)
,@CURRENCIES = (select SDTC.CURRENCYID, dbo.UFN_CURRENCY_GETDESCRIPTION(C.ID) as CURRENCY
from dbo.SALESDEPOSITTEMPLATECURRENCY SDTC
inner join dbo.CURRENCY C on SDTC.CURRENCYID = C.ID
where SDTC.SALESDEPOSITTEMPLATEID = @ID
order by C.NAME
for xml raw ('ITEM'), type, elements, root('CURRENCIES'), binary base64)
,@PAYMENTMETHODS = (select PM.PAYMENTMETHODCODE
,COALESCE(OC.DESCRIPTION, CC.DESCRIPTION, PM.PAYMENTMETHOD) PAYMENTMETHOD
,PM.CREDITTYPECODEID
,PM.OTHERPAYMENTMETHODCODEID
from dbo.SALESDEPOSITTEMPLATEPAYMENTMETHOD PM
left join dbo.CREDITTYPECODE CC on CC.ID = PM.CREDITTYPECODEID
left join dbo.OTHERPAYMENTMETHODCODE OC on OC.ID = PM.OTHERPAYMENTMETHODCODEID
where PM.SALESDEPOSITTEMPLATEID = @ID
for xml raw ('ITEM'), type, elements, root('PAYMENTMETHODS'), binary base64)
,@CONFLICTS = (select distinct T2.ID, T2.NAME
from dbo.SALESDEPOSITTEMPLATE T1
left join dbo.SALESDEPOSITTEMPLATESALESCHANNEL C1 on T1.ID = C1.SALESDEPOSITTEMPLATEID
left join dbo.SALESDEPOSITTEMPLATEPAYMENTMETHOD PM1 on T1.ID = PM1.SALESDEPOSITTEMPLATEID
left join dbo.SALESDEPOSITTEMPLATECURRENCY TC1 on T1.ID = TC1.SALESDEPOSITTEMPLATEID
inner join dbo.SALESDEPOSITTEMPLATE T2 on T1.ID != T2.ID
left join dbo.SALESDEPOSITTEMPLATESALESCHANNEL C2 on T2.ID = C2.SALESDEPOSITTEMPLATEID
left join dbo.SALESDEPOSITTEMPLATEPAYMENTMETHOD PM2 on T2.ID = PM2.SALESDEPOSITTEMPLATEID
left join dbo.SALESDEPOSITTEMPLATECURRENCY TC2 on T2.ID = TC2.SALESDEPOSITTEMPLATEID
where T1.ID = T.ID
and ((T1.PAYMENTMETHODOPTIONCODE = 0 and (T2.PAYMENTMETHODOPTIONCODE = 0 or PM2.ID is not null))
or (T2.PAYMENTMETHODOPTIONCODE = 0 and (T1.PAYMENTMETHODOPTIONCODE = 0 or PM1.ID is not null))
or (PM1.PAYMENTMETHODCODE = PM2.PAYMENTMETHODCODE
and ((PM1.CREDITTYPECODEID is null and PM2.CREDITTYPECODEID is null)
or (PM1.CREDITTYPECODEID = PM2.CREDITTYPECODEID))
and ((PM2.OTHERPAYMENTMETHODCODEID is null and PM2.OTHERPAYMENTMETHODCODEID is null)
or (PM1.OTHERPAYMENTMETHODCODEID = PM2.OTHERPAYMENTMETHODCODEID))))
and ((T1.SALESCHANNELOPTIONCODE = 0 and (T2.SALESCHANNELOPTIONCODE = 0 or C2.ID is not null))
or (T2.SALESCHANNELOPTIONCODE = 0 and (T1.SALESCHANNELOPTIONCODE = 0 or C1.ID is not null))
or (C1.SALESMETHODTYPECODE = C2.SALESMETHODTYPECODE))
and ((T1.CURRENCYOPTIONCODE = 0 and (T2.CURRENCYOPTIONCODE = 0 or TC2.ID is not null))
or (T2.CURRENCYOPTIONCODE = 0 and (T1.CURRENCYOPTIONCODE = 0 or TC1.ID is not null))
or (TC1.CURRENCYID = TC2.CURRENCYID))
for xml raw ('ITEM'), type, elements, root('CONFLICTS'), binary base64)
from dbo.SALESDEPOSITTEMPLATE T
inner join dbo.BANKACCOUNT BA on BA.ID = T.BANKACCOUNTID
where T.ID = @ID
return 0;