USP_DATAFORMTEMPLATE_EDIT_PDACCOUNTCODEMAPDEVELOPMENTPAYMENT2

The save procedure used by the edit dataform template "Map Development Payment 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.
@REVENUETYPES xml IN Revenue types
@APPLICATIONTYPES xml IN Application types
@PAYMENTMETHODS xml IN Payment methods
@SUBTYPEONE xml IN Gift-in-kind subtypes
@SUBTYPETWO xml IN Credit card subtypes
@SUBTYPETHREE xml IN Property subtypes
@SUBTYPEFOUR xml IN Other subtypes
@DEBITGLACCOUNTID uniqueidentifier IN Account
@DEBITPDACCOUNTSEGMENTVALUEID uniqueidentifier IN Account code
@CREDITGLACCOUNTID uniqueidentifier IN Account
@CREDITPDACCOUNTSEGMENTVALUEID uniqueidentifier IN Account code
@PDACCOUNTSYSTEMID uniqueidentifier IN

Definition

Copy

    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PDACCOUNTCODEMAPDEVELOPMENTPAYMENT2(
        @ID uniqueidentifier,
        @CHANGEAGENTID uniqueidentifier = null,
        @REVENUETYPES xml,
        @APPLICATIONTYPES xml,
        @PAYMENTMETHODS xml,
        @SUBTYPEONE xml,
        @SUBTYPETWO xml,
        @SUBTYPETHREE xml,
        @SUBTYPEFOUR xml,
        @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
        declare @PaymentMethodsTable table (NameID int)

        set @CURRENTDATE = getdate()

        declare @OFFICEID int
        set @OFFICEID = 3

        begin try
        insert into @PaymentMethodsTable (NameID)
        select NameID from dbo.UFN_PDACCOUNTCODEMAPPING_PAYMENTMETHODS_FROMITEMLISTXML(@PAYMENTMETHODS)

            -- handle updating the data
        begin tran
            update dbo.PDACCOUNTCODEMAPPING set
                REVENUETYPE = (select sum(distinct NAMEID) from dbo.UFN_PDACCOUNTCODEMAPPING_REVENUETYPES_FROMITEMLISTXML(@REVENUETYPES)),
                APPLICATIONTYPE = (select sum(distinct NAMEID) from dbo.UFN_PDACCOUNTCODEMAPPING_APPLICATIONTYPES_FROMITEMLISTXML(@APPLICATIONTYPES)),
                PAYMENTMETHOD = (select sum(distinct NAMEID) from @PaymentMethodsTable),
                DEBITGLACCOUNTID = @DEBITGLACCOUNTID,
                DEBITPDACCOUNTSEGMENTVALUEID = @DEBITPDACCOUNTSEGMENTVALUEID,
                CREDITGLACCOUNTID = @CREDITGLACCOUNTID,
                CREDITPDACCOUNTSEGMENTVALUEID = @CREDITPDACCOUNTSEGMENTVALUEID,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE,
                PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
            where ID = @ID

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

        if exists(select * from @PaymentMethodsTable where NameID = 128) --Gift-in-kind
          begin

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

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

        if exists(select * from @PaymentMethodsTable where NameID = 4)   --Credit card
          begin

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

        if (select count(*) from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPETWO_FROMITEMLISTXML(@SUBTYPETWO)) = 0
                  insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                  values 
                  (2, @ID, '99999999-9999-9999-9999-999999999999', @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
              else
                insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                select 2, @ID, SUBTYPETWOID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPETWO_FROMITEMLISTXML(@SUBTYPETWO) TF
                where not exists(select * from PDACCOUNTCODEMAPPINGSUBTYPE WHERE PDACCOUNTCODEMAPPINGSUBTYPE.SUBTYPEID = TF.SUBTYPETWOID and PDACCOUNTCODEMAPPINGID = @ID and ADDITIONALSUBTYPE = 2)
              end            
          end     
        else
          delete from dbo.PDACCOUNTCODEMAPPINGSUBTYPE where PDACCOUNTCODEMAPPINGID = @ID and ADDITIONALSUBTYPE = 2

        if exists(select * from @PaymentMethodsTable where NameID = 64)  --Property
          begin

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

              if (select count(*) from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPETHREE_FROMITEMLISTXML(@SUBTYPETHREE)) = 0
                  insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                  values 
                  (3, @ID, '99999999-9999-9999-9999-999999999999', @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
        else
                insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                select 3, @ID, SUBTYPETHREEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPETHREE_FROMITEMLISTXML(@SUBTYPETHREE) TF
                where not exists(select * from PDACCOUNTCODEMAPPINGSUBTYPE WHERE PDACCOUNTCODEMAPPINGSUBTYPE.SUBTYPEID = TF.SUBTYPETHREEID and PDACCOUNTCODEMAPPINGID = @ID and ADDITIONALSUBTYPE = 3)
              end            
          end     
        else
          delete from dbo.PDACCOUNTCODEMAPPINGSUBTYPE where PDACCOUNTCODEMAPPINGID = @ID and ADDITIONALSUBTYPE = 3

        if exists(select * from @PaymentMethodsTable where NameID = 16)  --Other
          begin

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

        if (select count(*) from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPEFOUR_FROMITEMLISTXML(@SUBTYPEFOUR)) = 0
                   insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                  values 
                  (4, @ID, '99999999-9999-9999-9999-999999999999', @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
              else
                insert into dbo.PDACCOUNTCODEMAPPINGSUBTYPE (ADDITIONALSUBTYPE, PDACCOUNTCODEMAPPINGID, SUBTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                select 4, @ID, SUBTYPEFOURID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from dbo.UFN_PDACCOUNTCODEMAPPINGSUBTYPE_SUBTYPEFOUR_FROMITEMLISTXML(@SUBTYPEFOUR) TF
                where not exists(select * from PDACCOUNTCODEMAPPINGSUBTYPE WHERE PDACCOUNTCODEMAPPINGSUBTYPE.SUBTYPEID = TF.SUBTYPEFOURID and PDACCOUNTCODEMAPPINGID = @ID and ADDITIONALSUBTYPE = 4)
              end            
          end     
        else
          delete from dbo.PDACCOUNTCODEMAPPINGSUBTYPE where PDACCOUNTCODEMAPPINGID = @ID and ADDITIONALSUBTYPE = 4

        if @CONTEXTCACHE is not null
          set CONTEXT_INFO @CONTEXTCACHE

        if dbo.UFN_PDACCOUNTCODEMAPPING_VALIDMAPPINGWITHSUBTYPES2(@ID, @CURRENTDATE) = 0
            raiserror('CK_PDACCOUNTCODEMAPPING_VALIDMAPPINGWITHSUBTYPES', 16, 1)

         commit

        end try
        begin catch
        rollback
            exec dbo.USP_RAISE_ERROR
            return 1
        end catch

    return 0;