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