USP_CONTROLACCOUNT_SAVE

Saves data to dbo.CONTROLACCOUNT

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CONTROLACCOUNTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@DATAELEMENTS xml IN
@ALLOWEDIT bit IN
@ALLOWOTHERSUBSIDIARY bit IN
@ALLOWJOURNALENTRY bit IN
@ACCOUNTTYPECODE tinyint IN

Definition

Copy


CREATE procedure dbo.USP_CONTROLACCOUNT_SAVE
  @ID uniqueidentifier,
  @CONTROLACCOUNTID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @CHANGEDATE datetime,
  @DATAELEMENTS xml,
  @ALLOWEDIT bit,
  @ALLOWOTHERSUBSIDIARY bit,
  @ALLOWJOURNALENTRY bit,
  @ACCOUNTTYPECODE tinyint

as
merge dbo.CONTROLACCOUNT as Target
using (select @CONTROLACCOUNTID as ControlAccountID, cast([1] as uniqueidentifier) as Col1, cast([2] as uniqueidentifier) as Col2, cast([3] as uniqueidentifier) as Col3, cast([4] as uniqueidentifier) as Col4, cast([5] as uniqueidentifier) as Col5, cast([6] as uniqueidentifier) as Col6, cast([7] as uniqueidentifier) as Col7, cast([8] as uniqueidentifier) as Col8, cast([9] as uniqueidentifier) as Col9, cast([10] as uniqueidentifier) as Col10, 
    cast([11] as uniqueidentifier) as Col11, cast([12] as uniqueidentifier) as Col12, cast([13] as uniqueidentifier) as Col13, cast([14] as uniqueidentifier) as Col14, cast([15] as uniqueidentifier) as Col15, cast([16] as uniqueidentifier) as Col16, cast([17] as uniqueidentifier) as Col17, cast([18] as uniqueidentifier) as Col18, cast([19] as uniqueidentifier) as Col19, cast([20] as uniqueidentifier) as Col20, 
    cast([21] as uniqueidentifier) as Col21, cast([22] as uniqueidentifier) as Col22, cast([23] as uniqueidentifier) as Col23, cast([24] as uniqueidentifier) as Col24, cast([25] as uniqueidentifier) as Col25, cast([26] as uniqueidentifier) as Col26, cast([27] as uniqueidentifier) as Col27, cast([28] as uniqueidentifier) as Col28, cast([29] as uniqueidentifier) as Col29, cast([30] as uniqueidentifier) as Col30 
    from (
      select cast(DATAELEMENTID as nvarchar(36)) as Element, NUM
      from dbo.UFN_CONTROLACCOUNT_GETDATAELEMENTS_FROMITEMLISTXML(@DATAELEMENTS) f1
      inner join dbo.PDACCOUNTSEGMENTVALUE on f1.DATAELEMENTID = PDACCOUNTSEGMENTVALUE.ID
      inner join dbo.PDACCOUNTSTRUCTURE ON PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID = PDACCOUNTSTRUCTURE.ID
      right join dbo.NUMBERS on PDACCOUNTSTRUCTURE.SEGMENTCOLUMN = NUMBERS.NUM
      where NUMBERS.NUM between 1 and 30) as S
      pivot
      (max(Element) for NUM in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30])) as P
 ) as Source
on Target.ID = Source.ControlAccountID
when matched then
  update set Target.DATAELEMENT1ID = Source.Col1,
  Target.DATAELEMENT2ID = Source.Col2,
  Target.DATAELEMENT3ID = Source.Col3,
  Target.DATAELEMENT4ID = Source.Col4,
  Target.DATAELEMENT5ID = Source.Col5,
  Target.DATAELEMENT6ID = Source.Col6,
  Target.DATAELEMENT7ID = Source.Col7,
  Target.DATAELEMENT8ID = Source.Col8,
  Target.DATAELEMENT9ID = Source.Col9,
  Target.DATAELEMENT10ID = Source.Col10,
  Target.DATAELEMENT11ID = Source.Col11,
  Target.DATAELEMENT12ID = Source.Col12,
  Target.DATAELEMENT13ID = Source.Col13,
  Target.DATAELEMENT14ID = Source.Col14,
  Target.DATAELEMENT15ID = Source.Col15,
  Target.DATAELEMENT16ID = Source.Col16,
  Target.DATAELEMENT17ID = Source.Col17,
  Target.DATAELEMENT18ID = Source.Col18,
  Target.DATAELEMENT19ID = Source.Col19,
  Target.DATAELEMENT20ID = Source.Col20,
  Target.DATAELEMENT21ID = Source.Col21,
  Target.DATAELEMENT22ID = Source.Col22,
  Target.DATAELEMENT23ID = Source.Col23,
  Target.DATAELEMENT24ID = Source.Col24,
  Target.DATAELEMENT25ID = Source.Col25,
  Target.DATAELEMENT26ID = Source.Col26,
  Target.DATAELEMENT27ID = Source.Col27,
  Target.DATAELEMENT28ID = Source.Col28,
  Target.DATAELEMENT29ID = Source.Col29,
  Target.DATAELEMENT30ID = Source.Col30,
  Target.CHANGEDBYID = @CHANGEAGENTID,
  Target.DATECHANGED = @CHANGEDATE,
  Target.ALLOWEDIT = @ALLOWEDIT,
  Target.ALLOWOTHERSUBSIDIARY = @ALLOWOTHERSUBSIDIARY,
  Target.ALLOWJOURNALENTRY = @ALLOWJOURNALENTRY,
  Target.ACCOUNTTYPECODE = @ACCOUNTTYPECODE,
  Target.SYSTEMID = @ID
when not matched by Target then
  insert (ID, SYSTEMID, ALLOWEDIT, ALLOWOTHERSUBSIDIARY, ALLOWJOURNALENTRY, ACCOUNTTYPECODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,
          DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
          DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
          DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)
  values (isnull(@CONTROLACCOUNTID,newid()), @ID, @ALLOWEDIT, @ALLOWOTHERSUBSIDIARY, @ALLOWJOURNALENTRY, @ACCOUNTTYPECODE, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE,
          Source.Col1, Source.Col2, Source.Col3, Source.Col4, Source.Col5, Source.Col6, Source.Col7, Source.Col8, Source.Col9, Source.Col10, 
          Source.Col11, Source.Col12, Source.Col13, Source.Col14, Source.Col15, Source.Col16, Source.Col17, Source.Col18, Source.Col19, Source.Col20, 
          Source.Col21, Source.Col22, Source.Col23, Source.Col24, Source.Col25, Source.Col26, Source.Col27, Source.Col28, Source.Col29, Source.Col30);