USP_DATAFORMTEMPLATE_EDITLOAD_SALESDEPOSITPROCESSPREPROCESS2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@TSLONG | bigint | INOUT | |
@NAME | nvarchar(100) | INOUT | |
@UNDEFINEDPAYMENTTEMPLATES | xml | INOUT | |
@DEPOSITDATEOPTIONCODE | tinyint | INOUT | |
@DEPOSITDATE | date | INOUT | |
@TEMPLATES | xml | INOUT | |
@TRANSACTIONDAYCOUNT | int | INOUT | |
@PAYMENTDATEOPTIONCODE | tinyint | INOUT | |
@PAYMENTDATE | date | INOUT | |
@CONTEXTID | uniqueidentifier | INOUT | |
@TRANSACTIONCURRENCYCOUNT | int | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_SALESDEPOSITPROCESSPREPROCESS2
(
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@TSLONG bigint = 0 output
,@NAME nvarchar(100) = null output
,@UNDEFINEDPAYMENTTEMPLATES xml = null output
,@DEPOSITDATEOPTIONCODE tinyint = null output
,@DEPOSITDATE date = null output
,@TEMPLATES xml = null output
,@TRANSACTIONDAYCOUNT integer = null output
,@PAYMENTDATEOPTIONCODE tinyint = null output
,@PAYMENTDATE date = null output
,@CONTEXTID uniqueidentifier = null output
,@TRANSACTIONCURRENCYCOUNT integer = null output
)
as
set nocount on;
set @DATALOADED = 0
set @TSLONG = 0
exec dbo.USP_DATAFORMTEMPLATE_EDITLOAD_SALESDEPOSITPROCESS2 @ID=@ID, @TEMPLATES=@TEMPLATES output;
create table #AllTransactions(
PAYMENTMETHODCODE tinyint,
PAYMENTMETHOD nvarchar(100) COLLATE database_default,
SALESMETHODCODE tinyint,
CREDITTYPECODEID uniqueidentifier,
OTHERPAYMENTMETHODCODEID uniqueidentifier,
TRANSACTIONCURRENCYID uniqueidentifier,
TRANSACTIONDATE date)
insert into #AllTransactions
select
PAYMENTMETHODCODE
,PAYMENTMETHOD
,SALESMETHODCODE
,CREDITTYPECODEID
,OTHERPAYMENTMETHODCODEID
,TRANSACTIONCURRENCYID
,cast(TRANSACTIONDATE as date)
from dbo.UFN_SALESDEPOSITPROCESS_GETACCOUNTSYSTEMTRANSACTIONS(@ID)
union all
select
PAYMENTMETHODCODE,
PAYMENTMETHOD,
SALESMETHODCODE,
null as CREDITTYPECODEID,
null as OTHERPAYMENTMETHODCODEID,
(select top 1 ID from dbo.CURRENCY where ISORGANIZATIONCURRENCY = 1) as TRANSACTIONCURRENCYID
,cast (TRANSACTIONDATE as date)
from dbo.UFN_SALESDEPOSITPROCESS_TEMPLATES_GETOVERSHORTS(@ID)
select
@DATALOADED = 1
,@TSLONG = P.TSLONG
,@NAME = P.NAME
,@DEPOSITDATEOPTIONCODE = P.DEPOSITDATEOPTIONCODE
,@DEPOSITDATE = P.DEPOSITDATE
,@PAYMENTDATEOPTIONCODE = P.PAYMENTDATEOPTIONCODE
,@PAYMENTDATE = P.PAYMENTDATE
,@CONTEXTID = P.ID
,@UNDEFINEDPAYMENTTEMPLATES = (
select
TRANSACTIONS.PAYMENTMETHODCODE
,TRANSACTIONS.PAYMENTMETHOD
,TRANSACTIONS.SALESMETHODCODE
,TRANSACTIONS.CREDITTYPECODEID
,TRANSACTIONS.OTHERPAYMENTMETHODCODEID
,TRANSACTIONS.TRANSACTIONCURRENCYID
,dbo.UFN_CURRENCY_GETDESCRIPTION(TRANSACTIONS.TRANSACTIONCURRENCYID) as TRANSACTIONCURRENCY
from (
select distinct
PAYMENTS.PAYMENTMETHODCODE
,PAYMENTS.PAYMENTMETHOD
,PAYMENTS.SALESMETHODCODE
,PAYMENTS.CREDITTYPECODEID
,PAYMENTS.OTHERPAYMENTMETHODCODEID
,PAYMENTS.TRANSACTIONCURRENCYID
from (
select distinct
T.PAYMENTMETHODCODE
,T.PAYMENTMETHOD
,T.SALESMETHODCODE
,T.CREDITTYPECODEID
,T.OTHERPAYMENTMETHODCODEID
,T.TRANSACTIONCURRENCYID
from #AllTransactions T
) PAYMENTS
where not exists(select 1
from dbo.SALESDEPOSITTEMPLATE T
left join dbo.SALESDEPOSITTEMPLATEPAYMENTMETHOD PM on T.ID = PM.SALESDEPOSITTEMPLATEID
left join dbo.SALESDEPOSITTEMPLATESALESCHANNEL C on T.ID = C.SALESDEPOSITTEMPLATEID
left join dbo.SALESDEPOSITTEMPLATECURRENCY CU on T.ID = cu.SALESDEPOSITTEMPLATEID
where T.SALESDEPOSITPROCESSID = @ID
and (T.SALESCHANNELOPTIONCODE = 0 or C.SALESMETHODTYPECODE = PAYMENTS.SALESMETHODCODE)
and (T.CURRENCYOPTIONCODE = 0 or CU.CURRENCYID = PAYMENTS.TRANSACTIONCURRENCYID)
and (T.PAYMENTMETHODOPTIONCODE = 0 or
(PM.PAYMENTMETHODCODE = PAYMENTS.PAYMENTMETHODCODE
and ((PM.CREDITTYPECODEID is null and PAYMENTS.CREDITTYPECODEID is null)
or (PM.CREDITTYPECODEID = PAYMENTS.CREDITTYPECODEID))
and ((PM.OTHERPAYMENTMETHODCODEID = PAYMENTS.OTHERPAYMENTMETHODCODEID)
or (PM.OTHERPAYMENTMETHODCODEID is null and PAYMENTS.OTHERPAYMENTMETHODCODEID is null)))))) TRANSACTIONS
for xml raw ('ITEM'), type, elements, root('UNDEFINEDPAYMENTTEMPLATES'), binary base64)
,@TRANSACTIONDAYCOUNT = (select COUNT(TRANS.[DATE])
from (
select distinct T.TRANSACTIONDATE [DATE], T.TRANSACTIONCURRENCYID
from #AllTransactions T) TRANS)
,@TRANSACTIONCURRENCYCOUNT = (select COUNT(TRANS.TRANSACTIONCURRENCYID)
from (
select distinct T.TRANSACTIONCURRENCYID
from #AllTransactions T) TRANS)
from dbo.SALESDEPOSITPROCESS P
where P.ID = @ID
drop table #AllTransactions
return 0;