USP_DATAFORMTEMPLATE_EDITSAVE_WPSECURITIES_2
The save procedure used by the edit dataform template "WealthPoint Securities Edit Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@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 | Date |
@REPORTDATEINDIRECT | datetime | IN | Report date indirect |
@AMOUNTOWNEDDIRECT | bigint | IN | Quantity |
@AMOUNTOWNEDINDIRECT | bigint | IN | Report indirect |
@PRICEDIRECT | money | IN | Price |
@PRICEINDIRECT | money | IN | Price indirect |
@VALUEDIRECT | money | IN | Value |
@VALUEINDIRECT | money | IN | Value indirect |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITSAVE_WPSECURITIES_2 (
@ID 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,
@REPORTDATEINDIRECT datetime,
@AMOUNTOWNEDDIRECT bigint,
@AMOUNTOWNEDINDIRECT bigint,
@PRICEDIRECT money,
@PRICEINDIRECT money,
@VALUEDIRECT money,
@VALUEINDIRECT money
) as begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime = getdate();
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
update dbo.WPSECURITIES set
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID,
SOURCE = @SOURCE,
CNOTES = @CNOTES,
FULLNAME = @FULLNAME,
CUSIP = @CUSIP,
FILERID = @FILERID,
RELATIONSHIP = @RELATIONSHIP,
TICKER = @TICKER,
ISSUERNAME = @ISSUERNAME,
REPORTDATEDIRECT = @REPORTDATEDIRECT,
REPORTDATEINDIRECT = @REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT = @AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT = @AMOUNTOWNEDINDIRECT,
PRICEDIRECT = @PRICEDIRECT,
PRICEINDIRECT = @PRICEINDIRECT,
VALUEDIRECT = @VALUEDIRECT,
VALUEINDIRECT = @VALUEINDIRECT
where
ID = @ID;
declare @WEALTHID uniqueidentifier;
select @WEALTHID=WEALTHID from dbo.WPSECURITIES where ID=@ID;
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