USP_DATAFORMTEMPLATE_EDITLOAD_SALESDEPOSITPROCESS2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@TSLONG | bigint | INOUT | |
@NAME | nvarchar(100) | INOUT | |
@DESCRIPTION | nvarchar(255) | INOUT | |
@DEPOSITDATEOPTIONCODE | tinyint | INOUT | |
@DEPOSITDATE | date | INOUT | |
@TEMPLATES | xml | INOUT | |
@PAYMENTDATEOPTIONCODE | tinyint | INOUT | |
@PAYMENTDATE | date | INOUT | |
@ACCOUNTSYSTEMNAME | nvarchar(100) | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_SALESDEPOSITPROCESS2
(
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@TSLONG bigint = 0 output
,@NAME nvarchar(100) = null output
,@DESCRIPTION nvarchar(255) = null output
,@DEPOSITDATEOPTIONCODE tinyint = null output
,@DEPOSITDATE date = null output
,@TEMPLATES xml = null output
,@PAYMENTDATEOPTIONCODE tinyint = null output
,@PAYMENTDATE date = null output
,@ACCOUNTSYSTEMNAME nvarchar(100) = null output
)
as
set nocount on;
-- be sure to set these, in case the select returns no rows
set @DATALOADED = 0
set @TSLONG = 0
select
@DATALOADED = 1
,@NAME = P.NAME
,@DESCRIPTION = P.DESCRIPTION
,@TSLONG = P.TSLONG
,@DEPOSITDATEOPTIONCODE = P.DEPOSITDATEOPTIONCODE
,@DEPOSITDATE = P.DEPOSITDATE
,@PAYMENTDATEOPTIONCODE = P.PAYMENTDATEOPTIONCODE
,@PAYMENTDATE = P.PAYMENTDATE
,@ACCOUNTSYSTEMNAME = PDAS.NAME
,@TEMPLATES = (select T.ID
,T.NAME
,T.INCLUDEINPROCESS
,dbo.UFN_BANKACCOUNT_GETACCOUNTNAME(T.BANKACCOUNTID) as BANKACCOUNTNAME
,T.SALESCHANNELOPTIONCODE
,T.PAYMENTMETHODOPTIONCODE
,case when T.SALESCHANNELOPTIONCODE = 0 then T.SALESCHANNELOPTION
else (select dbo.UDA_BUILDLIST(C.SALESMETHODTYPE)
from dbo.SALESDEPOSITTEMPLATESALESCHANNEL C
where C.SALESDEPOSITTEMPLATEID = T.ID)
end as SALESCHANNELS
,case when T.PAYMENTMETHODOPTIONCODE = 0 then T.PAYMENTMETHODOPTION
else (select dbo.UDA_BUILDLIST(COALESCE(OC.DESCRIPTION, CC.DESCRIPTION, PM.PAYMENTMETHOD))
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 = T.ID)
end as PAYMENTMETHODS
,case when T.CURRENCYOPTIONCODE = 0 then T.CURRENCYOPTION
else (select dbo.UDA_BUILDLIST(dbo.UFN_CURRENCY_GETDESCRIPTION(C.ID))
from dbo.SALESDEPOSITTEMPLATECURRENCY SDTC
inner join dbo.CURRENCY C on C.ID = SDTC.CURRENCYID
where SDTC.SALESDEPOSITTEMPLATEID = T.ID)
end as CURRENCIES
,(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, binary base64) as CONFLICTS
from dbo.SALESDEPOSITTEMPLATE T
where (T.SALESDEPOSITPROCESSID = @ID or @ID is null)
order by T.NAME asc
for xml raw ('ITEM'), type, elements, root('TEMPLATES'), binary base64)
from dbo.SALESDEPOSITPROCESS P
left join dbo.PDACCOUNTSYSTEM PDAS on PDAS.ID = P.PDACCOUNTSYSTEMID
where P.ID = @ID
return 0;