USP_DATAFORMTEMPLATE_EDIT_LEDGERACCOUNT
The save procedure used by the edit dataform template "Ledger Account Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@DESCRIPTION | nvarchar(400) | IN | Description |
@DATAELEMENTS | xml | IN | Data elements |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_LEDGERACCOUNT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@DESCRIPTION nvarchar(400),
@DATAELEMENTS xml,
@PDACCOUNTSYSTEMID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if @PDACCOUNTSYSTEMID is null
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
begin try
/* Verify that the account is unique */
if dbo.UFN_LEDGERACCOUNT_ACCOUNTISUNIQUE(@DATAELEMENTS,@ID) = 0
raiserror('ERR_LEDGERACCOUNT_NONUNIQUEACCOUNTSTRING',13,1)
begin tran;
declare @Segments table (DATAELEMENTID uniqueidentifier, SEGMENTSEQUENCE tinyint, SEGMENTCOLUMN tinyint, SHORTDESCRIPTION nvarchar(100))
insert into @Segments (DATAELEMENTID, SEGMENTSEQUENCE, SEGMENTCOLUMN, SHORTDESCRIPTION)
select tf1.DATAELEMENTID, PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE, NUMBERS.NUM, PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION
from dbo.UFN_LEDGERACCOUNT_GETACCOUNTSEGMENTS_FROMITEMLISTXML(@DATAELEMENTS) tf1
inner join dbo.PDACCOUNTSEGMENTVALUE on tf1.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
update dbo.GLACCOUNT
set ACCOUNTDESCRIPTION = @DESCRIPTION
, CHANGEDBYID = @CHANGEAGENTID
, DATECHANGED = @CURRENTDATE
, DATAELEMENT1ID = Col1
, DATAELEMENT2ID = Col2
, DATAELEMENT3ID = Col3
, DATAELEMENT4ID = Col4
, DATAELEMENT5ID = Col5
, DATAELEMENT6ID = Col6
, DATAELEMENT7ID = Col7
, DATAELEMENT8ID = Col8
, DATAELEMENT9ID = Col9
, DATAELEMENT10ID = Col10
, DATAELEMENT11ID = Col11
, DATAELEMENT12ID = Col12
, DATAELEMENT13ID = Col13
, DATAELEMENT14ID = Col14
, DATAELEMENT15ID = Col15
, DATAELEMENT16ID = Col16
, DATAELEMENT17ID = Col17
, DATAELEMENT18ID = Col18
, DATAELEMENT19ID = Col19
, DATAELEMENT20ID = Col20
, DATAELEMENT21ID = Col21
, DATAELEMENT22ID = Col22
, DATAELEMENT23ID = Col23
, DATAELEMENT24ID = Col24
, DATAELEMENT25ID = Col25
, DATAELEMENT26ID = Col26
, DATAELEMENT27ID = Col27
, DATAELEMENT28ID = Col28
, DATAELEMENT29ID = Col29
, DATAELEMENT30ID = Col30
from dbo.GLACCOUNT
inner join
(select @ID as ID,
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, SEGMENTCOLUMN
from @Segments) as S
pivot
(max(Element) for SEGMENTCOLUMN 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) v1
on GLACCOUNT.ID = v1.ID
commit;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;