USP_DATAFORMTEMPLATE_ADDSAVE_WPSECURITIES_2
The save procedure used by the add dataform template "WealthPoint Securities Add Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@WEALTHID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@SOURCE | nvarchar(100) | IN | Source |
@CNOTES | nvarchar(1024) | IN | Notes |
@FULLNAME | nvarchar(60) | IN | Name |
@CUSIP | nvarchar(9) | IN | Cusip |
@FILERID | nvarchar(20) | IN | Filer ID |
@RELATIONSHIP | nvarchar(50) | IN | Relationship |
@TICKER | nvarchar(8) | IN | Symbol |
@ISSUERNAME | nvarchar(60) | IN | Issuer name |
@REPORTDATEDIRECT | datetime | IN | Direct date |
@REPORTDATEINDIRECT | datetime | IN | Indirect date |
@AMOUNTOWNEDDIRECT | bigint | IN | Direct quantity |
@AMOUNTOWNEDINDIRECT | bigint | IN | Indirect quantity |
@PRICEDIRECT | money | IN | Price direct |
@PRICEINDIRECT | money | IN | Price indirect |
@VALUEDIRECT | money | IN | Value direct |
@VALUEINDIRECT | money | IN | Value indirect |
@ACTIVE | bit | IN | Active |
@WPSECURITIESTRANSACTIONS | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADDSAVE_WPSECURITIES_2(
@ID uniqueidentifier = null output,
@WEALTHID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SOURCE nvarchar(100),
@CNOTES nvarchar(1024) = '',
@FULLNAME nvarchar(60) = '',
@CUSIP nvarchar(9) = '',
@FILERID nvarchar(20) = '',
@RELATIONSHIP nvarchar(50) = '',
@TICKER nvarchar(8) = '',
@ISSUERNAME nvarchar(60) = '',
@REPORTDATEDIRECT datetime = null,
@REPORTDATEINDIRECT datetime = null,
@AMOUNTOWNEDDIRECT bigint = 0,
@AMOUNTOWNEDINDIRECT bigint = 0,
@PRICEDIRECT money = 0,
@PRICEINDIRECT money = 0,
@VALUEDIRECT money = 0,
@VALUEINDIRECT money = 0,
@ACTIVE bit = 1,
@WPSECURITIESTRANSACTIONS xml = null,
@CURRENTAPPUSERID uniqueidentifier
) as begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @ID is null
set @ID = newid();
if @AMOUNTOWNEDDIRECT is null
set @AMOUNTOWNEDDIRECT = 0;
if @AMOUNTOWNEDINDIRECT is null
set @AMOUNTOWNEDINDIRECT = 0;
exec dbo.USP_WEALTH_CREATE @WEALTHID, @CHANGEAGENTID;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @CONFIRMED bit;
declare @CONFIRMEDBYAPPUSERID uniqueidentifier;
declare @DATECONFIRMED datetime;
declare @REJECTED bit;
declare @REJECTEDBYAPPUSERID uniqueidentifier;
declare @DATEREJECTED datetime;
set @CONFIRMED = 0;
set @REJECTED = 0;
if @CURRENTAPPUSERID is not null
begin
select
@REJECTED = case MANUALCONFIDENCE
when 5 then 0
when 0 then 1
end,
@DATEREJECTED = case MANUALCONFIDENCE
when 5 then NULL
when 0 then @CURRENTDATE
end,
@REJECTEDBYAPPUSERID = case MANUALCONFIDENCE
when 5 then NULL
when 0 then @CURRENTAPPUSERID
end,
@CONFIRMED = case MANUALCONFIDENCE
when 5 then 1
when 0 then 0
end,
@DATECONFIRMED = case MANUALCONFIDENCE
when 5 then @CURRENTDATE
when 0 then NULL
end,
@CONFIRMEDBYAPPUSERID = case MANUALCONFIDENCE
when 5 then @CURRENTAPPUSERID
when 0 then NULL
end
from
dbo.WEALTHPOINTCONFIGURATION
where
MANUALCONFIDENCE in (0,5)
end
begin try
--wealth source updates
if(select
count(WEALTHSOURCE.SOURCE)
from
dbo.WEALTHSOURCE
where SOURCE = @SOURCE
) = 0
begin
insert into dbo.WEALTHSOURCE (
[SOURCE],
[ISBUILTIN],
[ADDEDBYID],
[CHANGEDBYID]
)values(
@SOURCE,
0,
@CHANGEAGENTID,
@CHANGEAGENTID
);
end
if(
not exists (select top 1 1 from dbo.WEALTHCAPACITYFORMULASECURITIESSOURCE where SOURCE = @SOURCE)
and
not exists (select top 1 1 from dbo.WPSECURITIES where SOURCE = @SOURCE)
)
begin
insert into WEALTHCAPACITYFORMULASECURITIESSOURCE(
WEALTHCAPACITYFORMULAID,
[SOURCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
ID,
@SOURCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from WEALTHCAPACITYFORMULA;
end
--Calculate the total securities value to ensure it does not exceed the maximum amount
--An overflow error will be processed in the catch block if the maximum money amount is exceeded.
declare @TOTAL money;
set @TOTAL = @VALUEDIRECT + @VALUEINDIRECT
insert into dbo.WPSECURITIES (
ID,
WEALTHID,
CHANGEDBYID,
ADDEDBYID,
SOURCE,
CNOTES,
FULLNAME,
CUSIP,
FILERID,
RELATIONSHIP,
TICKER,
ISSUERNAME,
REPORTDATEDIRECT,
REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT,
PRICEDIRECT,
PRICEINDIRECT,
VALUEDIRECT,
VALUEINDIRECT,
ACTIVE,
CONFIRMED,
CONFIRMEDBYAPPUSERID,
DATECONFIRMED,
REJECTED,
REJECTEDBYAPPUSERID,
DATEREJECTED
) values (
@ID,
@WEALTHID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@SOURCE,
@CNOTES,
@FULLNAME,
@CUSIP,
@FILERID,
@RELATIONSHIP,
@TICKER,
@ISSUERNAME,
@REPORTDATEDIRECT,
@REPORTDATEINDIRECT,
@AMOUNTOWNEDDIRECT,
@AMOUNTOWNEDINDIRECT,
@PRICEDIRECT,
@PRICEINDIRECT,
@VALUEDIRECT,
@VALUEINDIRECT,
@ACTIVE,
@CONFIRMED,
@CONFIRMEDBYAPPUSERID,
@DATECONFIRMED,
@REJECTED,
@REJECTEDBYAPPUSERID,
@DATEREJECTED
)
exec dbo.USP_WPSECURITIES_TRANSACTIONS_ADDFROMXML @ID, @WPSECURITIESTRANSACTIONS, @CHANGEAGENTID;
exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_SECURITIES @WEALTHID, @CHANGEAGENTID;
exec dbo.USP_WEALTHCAPACITY_UPDATE @WEALTHID, @CHANGEAGENTID;
end try
begin catch
-- catch the datatype money overflow error
if ERROR_NUMBER() = 8115
begin
raiserror('ERR_SECURITIESTOTALVALUE_MONEYOVERFLOW', 13, 1)
end
end catch
return 0;
end