USP_DATAFORMTEMPLATE_EDIT_PDACCOUNTCODEMAPDEVELOPMENT_COMMITMENTREVALUATIONCURRENCY

The save procedure used by the edit dataform template "Map Development Commitment Revaluation Currency 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.
@PAYMENTMETHODS xml IN Type
@REVENUETYPES xml IN Revenue types
@SUBTYPEONE xml IN Currency
@OFFICEID int IN Office ID
@DEBITGLACCOUNTID uniqueidentifier IN Account
@DEBITPDACCOUNTSEGMENTVALUEID uniqueidentifier IN Account code
@CREDITGLACCOUNTID uniqueidentifier IN Account
@CREDITPDACCOUNTSEGMENTVALUEID uniqueidentifier IN Account code
@PDACCOUNTSYSTEMID uniqueidentifier IN Account System

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PDACCOUNTCODEMAPDEVELOPMENT_COMMITMENTREVALUATIONCURRENCY (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @PAYMENTMETHODS xml,
    @REVENUETYPES xml,
    @SUBTYPEONE xml,
    @OFFICEID int,
    @DEBITGLACCOUNTID uniqueidentifier,
    @DEBITPDACCOUNTSEGMENTVALUEID uniqueidentifier,
    @CREDITGLACCOUNTID uniqueidentifier,
    @CREDITPDACCOUNTSEGMENTVALUEID uniqueidentifier, 
    @PDACCOUNTSYSTEMID uniqueidentifier
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    begin try
        update 
            dbo.PDACCOUNTCODEMAPPING 
        set
            PAYMENTMETHOD = (select sum(NAMEID) from dbo.UFN_PDACCOUNTCODEMAPPING_PAYMENTMETHODS_FROMITEMLISTXML(@PAYMENTMETHODS)), 
            REVENUETYPE = (select sum(NAMEID) from dbo.UFN_PDACCOUNTCODEMAPPING_REVENUETYPES_FROMITEMLISTXML(@REVENUETYPES)), 
            OFFICEID = @OFFICEID,            
            DEBITGLACCOUNTID = @DEBITGLACCOUNTID,
            DEBITPDACCOUNTSEGMENTVALUEID = @DEBITPDACCOUNTSEGMENTVALUEID,
            CREDITGLACCOUNTID = @CREDITGLACCOUNTID,
            CREDITPDACCOUNTSEGMENTVALUEID = @CREDITPDACCOUNTSEGMENTVALUEID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where 
            ID = @ID;


        declare @CONTEXTCACHE varbinary(128) = CONTEXT_INFO();
        set CONTEXT_INFO @CHANGEAGENTID;

        if exists (select * from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPEONE_FROMITEMLISTXML(@SUBTYPEONE) where SUBTYPEONEID = '99999999-9999-9999-9999-999999999999'
            begin
                    if not exists (select * from dbo.PDACCOUNTCODEMAPPINGSUBTYPE where PDACCOUNTCODEMAPPINGID = @ID and SUBTYPEID = '99999999-9999-9999-9999-999999999999')
                    begin
                            delete from dbo.PDACCOUNTCODEMAPPINGSUBTYPE where PDACCOUNTCODEMAPPINGID = @ID;

                            insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE 
                            (
                                ADDITIONALSUBTYPE, 
                                PDACCOUNTCODEMAPPINGID, 
                                SUBTYPEID, 
                                ADDEDBYID, 
                                CHANGEDBYID, 
                                DATEADDED, 
                                DATECHANGED
                            )
                            values 
                            (
                                9
                                @ID
                                '99999999-9999-9999-9999-999999999999'
                                @CHANGEAGENTID
                                @CHANGEAGENTID
                                @CURRENTDATE
                                @CURRENTDATE
                            )
                    end 
            end
            else
            begin
                    delete dbo.PDACCOUNTCODEMAPPINGSUBTYPE 
                    from dbo.PDACCOUNTCODEMAPPINGSUBTYPE 
                    where    not exists(select * from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPEONE_FROMITEMLISTXML(@SUBTYPEONE) TF where TF.SUBTYPEONEID = PDACCOUNTCODEMAPPINGSUBTYPE.SUBTYPEID)
                    and PDACCOUNTCODEMAPPINGID = @ID

          if (select count(*) from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPEONE_FROMITEMLISTXML(@SUBTYPEONE)) = 0
                            insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            values 
                            (9, @ID, '99999999-9999-9999-9999-999999999999', @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
          else
                      insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                      select 9, @ID, SUBTYPEONEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPEONE_FROMITEMLISTXML(@SUBTYPEONE) TF
                      where not exists(select * from dbo.PDACCOUNTCODEMAPPINGSUBTYPE where PDACCOUNTCODEMAPPINGSUBTYPE.SUBTYPEID = TF.SUBTYPEONEID and PDACCOUNTCODEMAPPINGID = @ID)
            end

            if dbo.UFN_PDACCOUNTCODEMAPPING_VALIDMAPPINGWITHSUBTYPES2(@ID, @CURRENTDATE) = 0
                raiserror('CK_PDACCOUNTCODEMAPPING_VALIDMAPPINGWITHSUBTYPES', 16, 1)
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

return 0;