USP_DATAFORMTEMPLATE_EDIT_PDCOMPOSITESEGMENTMAPPING_2

The save procedure used by the edit dataform template "Composite Segment Mapping Edit Form".

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.
@NAME nvarchar(50) IN Name
@FIRST uniqueidentifier IN First Table
@SECOND uniqueidentifier IN Second Table
@THIRD uniqueidentifier IN Third Table
@FOURTH uniqueidentifier IN Fourth Table
@PDACCOUNTSEGMENTVALUEID uniqueidentifier IN Segment value
@FIRST_2 uniqueidentifier IN First Table 2
@SECOND_2 uniqueidentifier IN Second Table 2
@THIRD_2 uniqueidentifier IN Third Table 2
@FOURTH_2 uniqueidentifier IN Fourth Table 2

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PDCOMPOSITESEGMENTMAPPING_2(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(50) ,    
    @FIRST    uniqueidentifier,
    @SECOND uniqueidentifier,
    @THIRD    uniqueidentifier,
    @FOURTH uniqueidentifier,
    @PDACCOUNTSEGMENTVALUEID uniqueidentifier,
    @FIRST_2 uniqueidentifier ,
    @SECOND_2 uniqueidentifier,
    @THIRD_2 uniqueidentifier ,
    @FOURTH_2 uniqueidentifier 

)
as

    set nocount on;

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()
    declare @PDCOMPOSITESEGMENTID uniqueidentifier = (select PDCOMPOSITESEGMENTID from PDCOMPOSITESEGMENTMAPPING where ID =  @ID)
    declare @DEFAULT bit = 0--(select ISDEFAULT from PDCOMPOSITESEGMENTMAPPING where ID =  @ID)    
    declare @ISDEFAULTENTRY bit
    declare @TABLECOUNT integer = (select count(a.ID) from  PDCOMPOSITESEGMENTTABLELIST as
            join PDCOMPOSITESEGMENTMAPPING as b on a.PDCOMPOSITESEGMENTID = b.PDCOMPOSITESEGMENTID
            where  b.ID =  @ID)

    declare @FIRSTGUID    uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as
            join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID 
            where b.SEQUENCE = 1 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
    declare @SECONDGUID uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as
            join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID 
            where b.SEQUENCE = 2 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
    declare @THIRDGUID    uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as
            join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID 
            where b.SEQUENCE = 3 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
    declare @FOURTHGUID uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as
            join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID 
            where b.SEQUENCE = 4 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)

    begin try
    begin tran
        if @FIRST is null and @FIRST_2 is null and @DEFAULT = 0
            raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYONE',13,1);
        else
            if @SECOND is null and @SECOND_2 is null and @DEFAULT = 0
            raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYTWO',13,1);
        else
            if @THIRD is null and @THIRD_2 is null and @TABLECOUNT > 2 and @DEFAULT = 0
            raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYTHREE',13,1);
        else
            if @FOURTH is null and @FOURTH_2 is null and @TABLECOUNT > 3 and @DEFAULT = 0
            raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYFOUR',13,1);        
        else    

                if @DEFAULT = 1 
                    update dbo.PDCOMPOSITESEGMENTMAPPING set
                    PDACCOUNTSEGMENTVALUEID = @PDACCOUNTSEGMENTVALUEID,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                    where ID = @ID

                else
                    begin

                        -- handle updating the data
                        update dbo.PDCOMPOSITESEGMENTMAPPING set
                            NAME = @NAME,
                            PDACCOUNTSEGMENTVALUEID = @PDACCOUNTSEGMENTVALUEID,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @ID

                        set @ISDEFAULTENTRY = 0
                        if @FIRST is null
                            set @FIRST = @FIRST_2 
                        if @FIRST='99999999-9999-9999-9999-999999999999' 
                            set @ISDEFAULTENTRY = 1
                        update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @FIRST, ISDEFAULT = @ISDEFAULTENTRY where ID = @FIRSTGUID

                        set @ISDEFAULTENTRY = 0
                        if @SECOND is null 
                            set @SECOND = @SECOND_2                    
                        if @SECOND='99999999-9999-9999-9999-999999999999' 
                            set @ISDEFAULTENTRY = 1
                        update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @SECOND, ISDEFAULT = @ISDEFAULTENTRY where ID = @SECONDGUID

                        --if @THIRDGUID is not null
                        if @TABLECOUNT > 2 
                            begin
                                set @ISDEFAULTENTRY = 0
                                if @THIRD is null 
                                    set @THIRD = @THIRD_2                                
                                if @THIRD='99999999-9999-9999-9999-999999999999' 
                                    set @ISDEFAULTENTRY = 1                
                                update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @THIRD, ISDEFAULT = @ISDEFAULTENTRY where ID = @THIRDGUID
                            end 
                        --if @FOURTHGUID is not null
                        if @TABLECOUNT > 3
                            begin
                                set @ISDEFAULTENTRY = 0
                                if @FOURTH is null
                                    set @FOURTH = @FOURTH_2                                
                                if @FOURTH='99999999-9999-9999-9999-999999999999' 
                                    set @ISDEFAULTENTRY = 1                
                                update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @FOURTH, ISDEFAULT = @ISDEFAULTENTRY where ID = @FOURTHGUID
                            end 

                    end 
            if  dbo.UFN_PDCOMPOSITESEGMENTMAPPINGENTRY_VALIDMAPPING(@ID,@ID)=0
                raiserror('ERR_PDCOMPOSITESEGMENTMAPPINGENTRY_VALIDMAPPING',13,1);
        commit
end try

begin catch
    rollback
    exec dbo.USP_RAISE_ERROR
    return 1
end catch


return 0;