TR_MATCHINGGIFTCONDITION_INSERTUPDATE_CURRENCY

Definition

Copy


                    CREATE trigger [dbo].[TR_MATCHINGGIFTCONDITION_INSERTUPDATE_CURRENCY] on [dbo].[MATCHINGGIFTCONDITION] 
                        after insert, update 
                        not for replication
                    as
                    begin
                        set nocount on;

                        if update(MAXMATCHANNUAL) or update(MAXMATCHPERGIFT) or update(MAXMATCHTOTAL) or update(MINMATCHPERGIFT)
                        begin

                            declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            update
                                dbo.MATCHINGGIFTCONDITION
                            set
                                MATCHINGGIFTCONDITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
                                MATCHINGGIFTCONDITION.ORGANIZATIONMAXMATCHANNUAL = MATCHINGGIFTCONDITION.MAXMATCHANNUAL,
                                MATCHINGGIFTCONDITION.ORGANIZATIONMAXMATCHPERGIFT = MATCHINGGIFTCONDITION.MAXMATCHPERGIFT,
                                MATCHINGGIFTCONDITION.ORGANIZATIONMAXMATCHTOTAL = MATCHINGGIFTCONDITION.MAXMATCHTOTAL,
                                MATCHINGGIFTCONDITION.ORGANIZATIONMINMATCHPERGIFT = MATCHINGGIFTCONDITION.MINMATCHPERGIFT,
                                MATCHINGGIFTCONDITION.CHANGEDBYID = MATCHINGGIFTCONDITION.CHANGEDBYID,
                                MATCHINGGIFTCONDITION.DATECHANGED = MATCHINGGIFTCONDITION.DATECHANGED
                            from 
                                inserted
                                inner join dbo.MATCHINGGIFTCONDITION on inserted.ID = MATCHINGGIFTCONDITION.ID
                            where
                                MATCHINGGIFTCONDITION.ORGANIZATIONEXCHANGERATEID is null
                                and (MATCHINGGIFTCONDITION.BASECURRENCYID is null 
                                    or MATCHINGGIFTCONDITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID
                                )
                                and    (MATCHINGGIFTCONDITION.ORGANIZATIONMAXMATCHANNUAL <> MATCHINGGIFTCONDITION.MAXMATCHANNUAL
                                    or MATCHINGGIFTCONDITION.ORGANIZATIONMAXMATCHPERGIFT <> MATCHINGGIFTCONDITION.MAXMATCHPERGIFT
                                    or MATCHINGGIFTCONDITION.ORGANIZATIONMAXMATCHTOTAL <> MATCHINGGIFTCONDITION.MAXMATCHTOTAL
                                    or MATCHINGGIFTCONDITION.ORGANIZATIONMINMATCHPERGIFT <> MATCHINGGIFTCONDITION.MINMATCHPERGIFT
                                    or (
                                        MATCHINGGIFTCONDITION.MAXMATCHANNUAL = 0
                                        and MATCHINGGIFTCONDITION.MAXMATCHPERGIFT = 0
                                        and MATCHINGGIFTCONDITION.MAXMATCHTOTAL = 0
                                        and MATCHINGGIFTCONDITION.MINMATCHPERGIFT = 0
                                    )
                                );
                        end
                    end