![]() |
---|
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 |