![]() |
---|
CREATE trigger dbo.[TR_MKTMEMBERSHIPMAILINGTEMPLATERULE_INSERTUPDATE_CURRENCY] on dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] after insert, update not for replication as begin set nocount on; declare @ORGANIZATIONCURRENCYID uniqueidentifier; --Make sure the base currency is set equal to the parent if it is not already set... update dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] set [MKTMEMBERSHIPMAILINGTEMPLATERULE].[BASECURRENCYID] = [MKTMEMBERSHIPMAILINGTEMPLATE].[BASECURRENCYID], [MKTMEMBERSHIPMAILINGTEMPLATERULE].[CHANGEDBYID] = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[CHANGEDBYID], [MKTMEMBERSHIPMAILINGTEMPLATERULE].[DATECHANGED] = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[DATECHANGED] from inserted inner join dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] on inserted.ID = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[ID] inner join dbo.[MKTMEMBERSHIPMAILINGTEMPLATE] on [MKTMEMBERSHIPMAILINGTEMPLATE].[ID] = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[MEMBERSHIPMAILINGTEMPLATEID] where [MKTMEMBERSHIPMAILINGTEMPLATERULE].[BASECURRENCYID] is null; if update(GIFTAMOUNT) begin set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY](); --Base currency will always be set by the update statement above, so we don't have to worry about it here... update dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] set [MKTMEMBERSHIPMAILINGTEMPLATERULE].[ORGANIZATIONGIFTAMOUNT] = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[GIFTAMOUNT], [MKTMEMBERSHIPMAILINGTEMPLATERULE].[CHANGEDBYID] = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[CHANGEDBYID], [MKTMEMBERSHIPMAILINGTEMPLATERULE].[DATECHANGED] = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[DATECHANGED] from inserted inner join dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] on inserted.ID = [MKTMEMBERSHIPMAILINGTEMPLATERULE].[ID] where [MKTMEMBERSHIPMAILINGTEMPLATERULE].[CURRENCYEXCHANGERATEID] is null and [MKTMEMBERSHIPMAILINGTEMPLATERULE].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID and ([MKTMEMBERSHIPMAILINGTEMPLATERULE].[ORGANIZATIONGIFTAMOUNT] <> [MKTMEMBERSHIPMAILINGTEMPLATERULE].[GIFTAMOUNT] or [MKTMEMBERSHIPMAILINGTEMPLATERULE].[GIFTAMOUNT] = 0); end end |