USP_DATAFORMTEMPLATE_ADD_LEDGERACCOUNT
The save procedure used by the add dataform template "Ledger Account Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@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 | Input parameter indicating the context ID for the record being added. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_LEDGERACCOUNT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@DESCRIPTION nvarchar(400),
@DATAELEMENTS xml = null,
@PDACCOUNTSYSTEMID uniqueidentifier
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @PDACCOUNTSYSTEMID is null
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
declare @CURRENTDATE datetime = (select getdate())
begin try
/* Verify that the account is unique */
if dbo.UFN_LEDGERACCOUNT_ACCOUNTISUNIQUE(@DATAELEMENTS,null) = 0
raiserror('ERR_LEDGERACCOUNT_NONUNIQUEACCOUNTSTRING',13,1)
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
insert into dbo.GLACCOUNT
(ID, ACCOUNTDESCRIPTION, PDACCOUNTSYSTEMID, 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)
select @ID, @DESCRIPTION, @PDACCOUNTSYSTEMID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE,
cast([1] as uniqueidentifier), cast([2] as uniqueidentifier), cast([3] as uniqueidentifier), cast([4] as uniqueidentifier), cast([5] as uniqueidentifier), cast([6] as uniqueidentifier), cast([7] as uniqueidentifier), cast([8] as uniqueidentifier), cast([9] as uniqueidentifier), cast([10] as uniqueidentifier),
cast([11] as uniqueidentifier), cast([12] as uniqueidentifier), cast([13] as uniqueidentifier), cast([14] as uniqueidentifier), cast([15] as uniqueidentifier), cast([16] as uniqueidentifier), cast([17] as uniqueidentifier), cast([18] as uniqueidentifier), cast([19] as uniqueidentifier), cast([20] as uniqueidentifier),
cast([21] as uniqueidentifier), cast([22] as uniqueidentifier), cast([23] as uniqueidentifier), cast([24] as uniqueidentifier), cast([25] as uniqueidentifier), cast([26] as uniqueidentifier), cast([27] as uniqueidentifier), cast([28] as uniqueidentifier), cast([29] as uniqueidentifier), cast([30] as uniqueidentifier)
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
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0