TR_MKTSEGMENTATIONPACKAGE_IU_ORGANIZATIONAMOUNTS

Definition

Copy


CREATE trigger [dbo].[TR_MKTSEGMENTATIONPACKAGE_IU_ORGANIZATIONAMOUNTS] on [dbo].[MKTSEGMENTATIONPACKAGE] 
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(UNITCOST) or update(INSERTCOSTPERPIECE) or update(INSERTCOSTPERRESPONSE) or update(INSERTCOSTPEREFFORT)
  begin
    declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY](); 

    update dbo.[MKTSEGMENTATIONPACKAGE] set
      [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONUNITCOST] = [MKTSEGMENTATIONPACKAGE].[UNITCOST],
      [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPERPIECE] = [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERPIECE],
      [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPERRESPONSE] = [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERRESPONSE],
      [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPEREFFORT] = [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPEREFFORT],
      [MKTSEGMENTATIONPACKAGE].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID,
      [MKTSEGMENTATIONPACKAGE].[CHANGEDBYID] = [MKTSEGMENTATIONPACKAGE].[CHANGEDBYID],
      [MKTSEGMENTATIONPACKAGE].[DATECHANGED] = [MKTSEGMENTATIONPACKAGE].[DATECHANGED]
    from inserted
    inner join dbo.[MKTSEGMENTATIONPACKAGE] on inserted.ID = [MKTSEGMENTATIONPACKAGE].[ID]
    where [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONCURRENCYEXCHANGERATEID] is null
    and ([MKTSEGMENTATIONPACKAGE].[BASECURRENCYID] is null or [MKTSEGMENTATIONPACKAGE].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID)
    and ([MKTSEGMENTATIONPACKAGE].[ORGANIZATIONUNITCOST] <> [MKTSEGMENTATIONPACKAGE].[UNITCOST]
      or [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPERPIECE] <> [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERPIECE]
      or [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPERRESPONSE] <> [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERRESPONSE]
      or [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPEREFFORT] <> [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPEREFFORT]
      or ([MKTSEGMENTATIONPACKAGE].[UNITCOST] = 0 and [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERPIECE] = 0 and [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERRESPONSE] = 0 and [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPEREFFORT] = 0)
    );
  end
end