USP_DATAFORMTEMPLATE_ADD_SALESDEPOSITTEMPLATE_3
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SALESDEPOSITPROCESSID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@BANKACCOUNTID | uniqueidentifier | IN | |
@REFERENCECODE | tinyint | IN | |
@SALESCHANNELOPTIONCODE | tinyint | IN | |
@PAYMENTMETHODOPTIONCODE | tinyint | IN | |
@PAYMENTTYPE | xml | IN | |
@SALESCHANNEL | xml | IN | |
@CURRENCYOPTIONCODE | tinyint | IN | |
@CURRENCY | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESDEPOSITTEMPLATE_3
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@SALESDEPOSITPROCESSID uniqueidentifier,
@NAME nvarchar(100) = '',
@BANKACCOUNTID uniqueidentifier = null,
@REFERENCECODE tinyint = 0,
@SALESCHANNELOPTIONCODE tinyint = 0,
@PAYMENTMETHODOPTIONCODE tinyint = 0,
@PAYMENTTYPE xml = null,
@SALESCHANNEL xml = null,
@CURRENCYOPTIONCODE tinyint = 0,
@CURRENCY xml = null
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
insert into dbo.[SALESDEPOSITTEMPLATE]
(
[ID],
[NAME],
[SALESDEPOSITPROCESSID],
[BANKACCOUNTID],
[REFERENCECODE],
[SALESCHANNELOPTIONCODE],
[PAYMENTMETHODOPTIONCODE],
[CURRENCYOPTIONCODE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@NAME,
@SALESDEPOSITPROCESSID,
@BANKACCOUNTID,
@REFERENCECODE,
@SALESCHANNELOPTIONCODE,
@PAYMENTMETHODOPTIONCODE,
@CURRENCYOPTIONCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
--populate the sales channels with selected sales channels
if @SALESCHANNEL is not null and @SALESCHANNELOPTIONCODE = 1
begin
insert into dbo.[SALESDEPOSITTEMPLATESALESCHANNEL]
(
[ID], [SALESDEPOSITTEMPLATEID], [SALESMETHODTYPECODE],
[ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED]
)
select
isnull(SC.ID, newid()), @ID, SALESMETHODTYPECODE,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.UFN_SALESDEPOSITTEMPLATE_SALESCHANNELS_FROMITEMLISTXML(@SALESCHANNEL) SC
where INCLUDE = 1 and @SALESCHANNELOPTIONCODE = 1
end
--populate the payment types with selected payment types
if @PAYMENTTYPE is not null and @PAYMENTMETHODOPTIONCODE = 1
begin
insert into dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
(
[ID], [SALESDEPOSITTEMPLATEID], [PAYMENTMETHODCODE], [CREDITTYPECODEID], [OTHERPAYMENTMETHODCODEID],
[ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED]
)
select
isnull(PM.ID, newid()), @ID, PAYMENTMETHODCODE, CREDITTYPECODEID, OTHERPAYMENTMETHODCODEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.UFN_SALESDEPOSITTEMPLATE_PAYMENTMETHODS_FROMITEMLISTXML(@PAYMENTTYPE) PM
where INCLUDE = 1 and @PAYMENTMETHODOPTIONCODE = 1
end
--populate the currencies with selected currencies
if @CURRENCY is not null and @CURRENCYOPTIONCODE = 1
begin
insert into dbo.[SALESDEPOSITTEMPLATECURRENCY]
(
[ID], [SALESDEPOSITTEMPLATEID], [CURRENCYID],
[ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED]
)
select
isnull(C.ID, newid()), @ID, CURRENCYID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from UFN_SALESDEPOSITTEMPLATE_CURRENCY_FROMITEMLISTXML(@CURRENCY) C
where INCLUDE = 1 and @CURRENCYOPTIONCODE = 1
end
declare @isChannel bit = 0
if (@SALESCHANNELOPTIONCODE = 0) or exists(select ID from dbo.[SALESDEPOSITTEMPLATESALESCHANNEL] where SALESDEPOSITTEMPLATEID = @ID)
set @isChannel = 1
declare @isMethod bit = 0
if (@PAYMENTMETHODOPTIONCODE = 0) or exists(select ID from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD] where SALESDEPOSITTEMPLATEID = @ID)
set @isMethod = 1
declare @isCurrency bit = 0
if (@CURRENCYOPTIONCODE = 0) or exists(select ID from dbo.[SALESDEPOSITTEMPLATECURRENCY] where SALESDEPOSITTEMPLATEID = @ID)
set @isCurrency = 1
if (@isChannel = 0 and @isMethod = 0)
begin
raiserror('BBERR_MISSING_ALL', 16, 1)
return 1
end
else if (@isChannel = 0)
begin
raiserror('BBERR_MISSING_CHANNEL', 16, 1)
return 1
end
else if (@isMethod = 0)
begin
raiserror('BBERR_MISSING_METHOD', 16, 1)
return 1
end
if (@isCurrency = 0)
begin
raiserror('BBERR_MISSING_CURRENCY', 16, 1)
return 1
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;