TR_MKTSEGMENTATIONBUDGET_IU_ORGANIZATIONAMOUNTS

Definition

Copy


          create trigger [dbo].[TR_MKTSEGMENTATIONBUDGET_IU_ORGANIZATIONAMOUNTS] on [dbo].[MKTSEGMENTATIONBUDGET] 
          after insert, update 
          not for replication
          as
          begin
            set nocount on;

            -- if we try to save an amount without explicitly setting an organization amount and an exchange rate, 

            -- copy the amount to the organization amount.

            if update(BUDGETAMOUNT) or update(FIXEDCOST)
            begin
              declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY](); 

              update
                dbo.[MKTSEGMENTATIONBUDGET]
              set
                [MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT] = [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT],
                [MKTSEGMENTATIONBUDGET].[ORGANIZATIONFIXEDCOST] = [MKTSEGMENTATIONBUDGET].[FIXEDCOST],
                [MKTSEGMENTATIONBUDGET].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID,
                [MKTSEGMENTATIONBUDGET].[CHANGEDBYID] = [MKTSEGMENTATIONBUDGET].[CHANGEDBYID],
                [MKTSEGMENTATIONBUDGET].[DATECHANGED] = [MKTSEGMENTATIONBUDGET].[DATECHANGED]
              from
                inserted
                inner join dbo.[MKTSEGMENTATIONBUDGET] on inserted.ID = [MKTSEGMENTATIONBUDGET].[ID]
              where
                [MKTSEGMENTATIONBUDGET].[ORGANIZATIONCURRENCYEXCHANGERATEID] is null
                and ([MKTSEGMENTATIONBUDGET].[BASECURRENCYID] is null or [MKTSEGMENTATIONBUDGET].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID)
                and
                  (
                    [MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT] <> [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT]
                    or [MKTSEGMENTATIONBUDGET].[ORGANIZATIONFIXEDCOST] <> [MKTSEGMENTATIONBUDGET].[FIXEDCOST]
                    or ([MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT] = 0 and [MKTSEGMENTATIONBUDGET].[FIXEDCOST] = 0)
                  );
            end
          end