TR_STOCKDETAIL_INSERTUPDATE_CURRENCY

Definition

Copy


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

                        declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); 

                        -- If we try to save a sale amount or broker fee without explicitly setting an organization

                        -- amount and an exchange rate, copy the amount and fee to their organization and transaction

                        -- amount fields.

                        if update(MEDIANPRICE) or update(LOWPRICE) or update (HIGHPRICE)
                        begin
                            update
                                dbo.STOCKDETAIL
                            set
                                STOCKDETAIL.ORGANIZATIONMEDIANPRICE = STOCKDETAIL.MEDIANPRICE,
                                STOCKDETAIL.TRANSACTIONMEDIANPRICE = STOCKDETAIL.MEDIANPRICE,
                                STOCKDETAIL.ORGANIZATIONLOWPRICE = STOCKDETAIL.LOWPRICE,
                                STOCKDETAIL.TRANSACTIONLOWPRICE = STOCKDETAIL.LOWPRICE,
                                STOCKDETAIL.ORGANIZATIONHIGHPRICE = STOCKDETAIL.HIGHPRICE,
                                STOCKDETAIL.TRANSACTIONHIGHPRICE = STOCKDETAIL.HIGHPRICE,

                                STOCKDETAIL.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
                                STOCKDETAIL.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
                                STOCKDETAIL.CHANGEDBYID = STOCKDETAIL.CHANGEDBYID,
                                STOCKDETAIL.DATECHANGED = STOCKDETAIL.DATECHANGED
                            from
                                inserted
                            inner join
                                dbo.STOCKDETAIL on inserted.ID = STOCKDETAIL.ID
                            where
                                STOCKDETAIL.ORGANIZATIONEXCHANGERATEID is null
                                and (STOCKDETAIL.BASECURRENCYID is null or STOCKDETAIL.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
                                and STOCKDETAIL.BASEEXCHANGERATEID is null
                                and (STOCKDETAIL.TRANSACTIONCURRENCYID is null or STOCKDETAIL.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
                                and
                                (
                                    STOCKDETAIL.ORGANIZATIONMEDIANPRICE <> STOCKDETAIL.MEDIANPRICE
                                    or STOCKDETAIL.TRANSACTIONMEDIANPRICE <> STOCKDETAIL.MEDIANPRICE
                                    or STOCKDETAIL.ORGANIZATIONLOWPRICE <> STOCKDETAIL.LOWPRICE
                                    or STOCKDETAIL.TRANSACTIONLOWPRICE <> STOCKDETAIL.LOWPRICE
                                    or STOCKDETAIL.ORGANIZATIONHIGHPRICE <> STOCKDETAIL.HIGHPRICE
                                    or STOCKDETAIL.TRANSACTIONHIGHPRICE <> STOCKDETAIL.HIGHPRICE
                                    or (
                                        STOCKDETAIL.MEDIANPRICE = 0
                                        and STOCKDETAIL.LOWPRICE = 0
                                        and STOCKDETAIL.HIGHPRICE = 0
                                    )
                                );
                        end
                    end