USP_POSTTOGLPROCESS_FORMAT
Updates POSTTOGL_xxx tables for export.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@TABLENAME | nvarchar(49) | IN |
Definition
Copy
CREATE procedure dbo.USP_POSTTOGLPROCESS_FORMAT
(
@ID uniqueidentifier,
@TABLENAME nvarchar(49)
)
as
begin
declare @FORMAT integer
declare @REVENUEPOSTMETHOD tinyint
declare @CASHPOSTMETHOD tinyint
declare @RECEIVABLEPOSTMETHOD tinyint
declare @REVALUATIONGAINLOSSPOSTMETHOD tinyint
declare @SUMMARIZED bit = 0;
declare @PDACCOUNTSYSTEMID uniqueidentifier;
declare @PROJECTID uniqueidentifier;
declare @DROPSQL nvarchar(5);
declare @NOSCHEMATABLENAME nvarchar(45);
declare @TOTALSEQUENCE int = 1;
declare @MAXSEGMENT int = 30;
declare @SEGMENTCOUNTER int = 0;
declare @NEWJOURNAL nvarchar(255);
declare @COLUMNNAME nvarchar(50);
declare @NORENAME bit = 0;
create table #ALIASTABLE (ID uniqueidentifier, ACCOUNT nvarchar(100) collate database_default, ALIAS nvarchar(100) collate database_default)
select
@FORMAT = case T2.QUERYVIEWCATALOGID when 'E6FF3B8D-C9E4-4FE7-9D54-E62A1BF4C4C4' then 1 when '0C30E5DE-6B0E-43DF-B988-5A45D3B3CD30' then 2 when '2A21DDE9-F7C9-4DC9-9B8E-C449CCF33D86' then 3 when '7B7A9234-F2F4-453C-B91E-923D00FBBE6A' then 4 when 'ADD6036D-9B56-48CF-BDD2-1F48F74EDD0A' then 5 when '44853ED6-6F1B-4CAC-A38A-E00196B1D0C2' then 6 when '04858ff2-d0bb-4b1c-9dbc-ebd8b5a67b7a' then 7 else 8 end,
@REVENUEPOSTMETHOD = T3.REVENUEPOSTMETHODCODE,
@CASHPOSTMETHOD = T3.CASHPOSTMETHODCODE,
@RECEIVABLEPOSTMETHOD = T3.ARPOSTMETHODCODE,
@REVALUATIONGAINLOSSPOSTMETHOD = T3.REVALUATIONGAINLOSSPOSTMETHODCODE,
@PDACCOUNTSYSTEMID = T1.PDACCOUNTSYSTEMID,
@PROJECTID = isnull(T4.ID,'99999999-9999-9999-9999-999999999999')
from
dbo.POSTTOGLPROCESS T1
join dbo.BUSINESSPROCESSVIEW T2 on T1.BUSINESSPROCESSVIEWID = T2.ID
join dbo.POSTTOGLPROCESSDETAIL T3 on T1.ID = T3.ID
left join dbo.PDACCOUNTSTRUCTURE T4 on T1.PDACCOUNTSYSTEMID = T4.PDACCOUNTSYSTEMID and T4.ISPROJECTSEGMENT = 1
where t1.ID = @ID;
select @TOTALSEQUENCE = MAX(SEQUENCE) from PDACCOUNTSTRUCTURE where PDACCOUNTSTRUCTURE.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
select @NOSCHEMATABLENAME = OBJECT_NAME(OBJECT_ID(@TABLENAME));
if exists(select CUSTOMJOURNAL from dbo.POSTTOGLPROCESSCUSTOMJOURNAL where LEN(replace(CUSTOMJOURNAL,' ','')) > 0)
begin
select @NEWJOURNAL = CUSTOMJOURNAL from dbo.POSTTOGLPROCESSCUSTOMJOURNAL
set @NEWJOURNAL =REPLACE(@NEWJOURNAL,'''', '''''')
end
else
select @NEWJOURNAL = PRODUCT from dbo.INSTALLATIONINFO
if @FORMAT < 8
begin
exec('Update ' + @TABLENAME + ' set JOURNAL = ''' + @NEWJOURNAL + '''');
if @FORMAT < 7
begin
insert into #ALIASTABLE
(
ID,
ACCOUNT,
ALIAS
)
select
ID,
ACCOUNTNUMBER,
ACCOUNTALIAS
from dbo.GLACCOUNT
where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
and nullif(ACCOUNTALIAS,'') is not null;
end
end
if @REVENUEPOSTMETHOD > 0 or @CASHPOSTMETHOD > 0 or @RECEIVABLEPOSTMETHOD > 0 or @REVALUATIONGAINLOSSPOSTMETHOD > 0
set @SUMMARIZED = 1
if @FORMAT < 3
begin
exec('sp_rename ''' + @TABLENAME + '.[ACCOUNTNUMBER]'',''ACCOUNT NUMBER'',''COLUMN''')
exec('sp_rename ''' + @TABLENAME + '.[ENCUMBRANCESTATUS]'',''ENCUMBRANCE STATUS'',''COLUMN''')
exec('sp_rename ''' + @TABLENAME + '.[POSTDATE2]'',''POST DATE'',''COLUMN''')
exec('sp_rename ''' + @TABLENAME + '.[JOURNALREFERENCE]'',''JOURNAL REFERENCE'',''COLUMN''')
if @FORMAT = 2
begin
exec('sp_rename ''' + @TABLENAME + '.[PROJECTID]'',''TRANSACTION DISTRIBUTION PROJECT ID'',''COLUMN''')
exec('sp_rename ''' + @TABLENAME + '.[PROJECTAMOUNT]'',''TRANSACTION DISTRIBUTION AMOUNT'',''COLUMN''')
end
end
if @FORMAT = 1
begin
exec( 'Update ' + @TABLENAME + ' set [POST DATE] = POSTDATE')
exec( 'Update ' + @TABLENAME + ' set [JOURNAL REFERENCE] = REFERENCE')
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTSTRING] = (select ALIAS from #ALIASTABLE where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID = #ALIASTABLE.ID) where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select ID from #ALIASTABLE ) ')
exec( 'Update ' + @TABLENAME + ' set [ACCOUNT NUMBER] = [ACCOUNTSTRING]')
if @SUMMARIZED = 1
begin
-- exec( 'Update ' + @TABLENAME + ' set [ACCOUNT NUMBER] = ACCOUNTSTRING')
exec( 'Update ' + @TABLENAME + ' set [ENCUMBRANCE STATUS] = ''Regular''')
exec( 'Update ' + @TABLENAME + ' set Type = ''Debit'' where DEBITCREDIT = ''D''')
exec( 'Update ' + @TABLENAME + ' set Type = ''Credit'' where DEBITCREDIT = ''C''')
end
end
if @FORMAT = 2
begin
exec( 'Update ' + @TABLENAME + ' set [POST DATE] = POSTDATE')
exec( 'Update ' + @TABLENAME + ' set [JOURNAL REFERENCE] = REFERENCE')
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTSTRING] = (select ALIAS from #ALIASTABLE where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID = #ALIASTABLE.ID) where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select ID from #ALIASTABLE )')
if @SUMMARIZED = 1
begin
exec( 'Update ' + @TABLENAME + ' set [ACCOUNT NUMBER] = ACCOUNTSTRING')
exec( 'Update ' + @TABLENAME + ' set [ENCUMBRANCE STATUS] = ''Regular''')
exec( 'Update ' + @TABLENAME + ' set Type = ''Debit'' where DEBITCREDIT = ''D''')
exec( 'Update ' + @TABLENAME + ' set TYPE = ''Credit'' where DEBITCREDIT = ''C''')
end
if @PROJECTID != '99999999-9999-9999-9999-999999999999'
begin
exec( 'Update ' + @TABLENAME + ' set [TRANSACTION DISTRIBUTION PROJECT ID] = (select T1.SHORTDESCRIPTION from PDACCOUNTSEGMENTVALUE T1 join PDACCOUNTSEGMENT T2 on T1.ID = T2.PDACCOUNTSEGMENTVALUEID where T1.PDACCOUNTSTRUCTUREID = ''' + @PROJECTID + ''' and T2.GLACCOUNTID = ' + @NOSCHEMATABLENAME + '.GLACCOUNTID)')
exec( 'Update ' + @TABLENAME + ' set [ACCOUNT NUMBER] = (select dbo.UFN_GLACCOUNT_GETPARTIALACCOUNTSTRING( ''' + @PDACCOUNTSYSTEMID + ''',''' + @PROJECTID + ''',' + @NOSCHEMATABLENAME + '.GLACCOUNTID))')
exec( 'Update ' + @TABLENAME + ' set [TRANSACTION DISTRIBUTION AMOUNT] = AMOUNT')
end
else
exec( 'Update ' + @TABLENAME + ' set [ACCOUNT NUMBER] = ACCOUNTSTRING')
end
if @FORMAT = 3
begin
if exists(select 1 from PDACCOUNTSTRUCTURE where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID and DESCRIPTION in ('POSTDATE','TRANTYPE','DEBITCREDIT','AMOUNT','JOURNAL','REFERENCE','BATCH' ))
set @NORENAME = 1
set @SEGMENTCOUNTER = @TOTALSEQUENCE
While @MAXSEGMENT > @SEGMENTCOUNTER
Begin
set @SEGMENTCOUNTER = @SEGMENTCOUNTER + 1
set @DROPSQL = 'SEG' + convert(nvarchar, @SEGMENTCOUNTER)
exec('ALTER TABLE ' + @TABLENAME + ' DROP COLUMN ' + @DROPSQL )
end
set @SEGMENTCOUNTER = 1
While @TOTALSEQUENCE >= @SEGMENTCOUNTER
Begin
set @DROPSQL = 'SEG' + convert(nvarchar, @SEGMENTCOUNTER)
exec( 'Update ' + @TABLENAME + ' set ' + @DROPSQL + ' = (select T1.SHORTDESCRIPTION from dbo.PDACCOUNTSEGMENTVALUE T1 join dbo.PDACCOUNTSEGMENT T2 on T1.ID = T2.PDACCOUNTSEGMENTVALUEID join dbo.PDACCOUNTSTRUCTURE T3 on T3.ID = T2.PDACCOUNTSTRUCTUREID where T3.SEQUENCE = ' + @SEGMENTCOUNTER + ' and T3.PDACCOUNTSYSTEMID = ''' + @PDACCOUNTSYSTEMID + ''' and T2.GLACCOUNTID = ' + @NOSCHEMATABLENAME + '.GLACCOUNTID)')
if @SEGMENTCOUNTER = 1
exec( 'Update ' + @TABLENAME + ' set ' + @DROPSQL + ' = (select #ALIASTABLE.ALIAS from #ALIASTABLE where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID = #ALIASTABLE.ID) where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select #ALIASTABLE.ID from #ALIASTABLE )')
else
exec( 'Update ' + @TABLENAME + ' set ' + @DROPSQL + ' = '''' where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select ID from #ALIASTABLE )')
select @COLUMNNAME = DESCRIPTION from dbo.PDACCOUNTSTRUCTURE where sequence = @SEGMENTCOUNTER and PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
if @NORENAME = 0
exec('sp_rename ''' + @TABLENAME + '.' + @DROPSQL + ''',''' + @COLUMNNAME + ''',''COLUMN''')
set @SEGMENTCOUNTER = @SEGMENTCOUNTER + 1
end
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTSTRING] = (select ALIAS from #ALIASTABLE where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID = #ALIASTABLE.ID) where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select ID from #ALIASTABLE ) ')
end
if @FORMAT = 4
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTSTRING] = (select #ALIASTABLE.ALIAS from #ALIASTABLE where #ALIASTABLE.ACCOUNT = ' + @NOSCHEMATABLENAME + '.ACCOUNTSTRING) where ' + @NOSCHEMATABLENAME + '.ACCOUNTSTRING in ( select #ALIASTABLE.ACCOUNT from #ALIASTABLE )')
if @FORMAT = 5
begin
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTSTRING] = (select ALIAS from #ALIASTABLE where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID = #ALIASTABLE.ID) where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select ID from #ALIASTABLE ) ')
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTNUMBER] = [ACCOUNTSTRING]')
exec( 'Update ' + @TABLENAME + ' set [POSTEDWHEN] = ''' + @NEWJOURNAL + ''' + [POSTEDWHEN]')
--exec('sp_rename ''' + @TABLENAME + '.[ACCOUNTNUMBER]'',''GL Account'',''COLUMN''')
--exec('sp_rename ''' + @TABLENAME + '.[NUMBEROFRECORD]'',''No. of Distributions'',''COLUMN''')
end
if @FORMAT = 6
begin
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTSTRING] = (select ALIAS from #ALIASTABLE where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID = #ALIASTABLE.ID) where ' + @NOSCHEMATABLENAME + '.GLACCOUNTID in ( select ID from #ALIASTABLE ) ')
exec( 'Update ' + @TABLENAME + ' set [ACCOUNTNUMBER] = [ACCOUNTSTRING]')
exec( 'Update ' + @TABLENAME + ' set [ROWTYPE] = ''SPL'' where BUSINESSPROCESSOUTPUT_PKID != 1')
end
if @FORMAT = 7
begin
if @PROJECTID != '99999999-9999-9999-9999-999999999999'
begin
declare @SEQ int;
declare @LEN int;
declare @START int;
select
@SEQ = SEQUENCE,
@LEN = LENGTH
from dbo.PDACCOUNTSTRUCTURE
where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
and ISPROJECTSEGMENT = 1;
select
@START = sum(LENGTH)+sum(case SEPARATORCODE when 6 then 0 else 1 end)
from PDACCOUNTSTRUCTURE
where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
and SEQUENCE < @SEQ;
declare @sqlstring varchar(2048) = 'update ' + @TABLENAME + '
set ACCOUNTNUMBER = isnull(ACCOUNTALIAS, stuff(ACCOUNTSTRING,'+convert(varchar,@START)+','+convert(varchar,@LEN)+'+1,'''')),
PROJECT = isnull(DESIGNATIONALTLOOKUPID.ALTLOOKUPID,'''')
from ' + @TABLENAME + '
left join dbo.V_FENXTINTEGRATION_MAPPEDDESIGNATION on substring(' + @TABLENAME + '.ACCOUNTSTRING,'+convert(varchar,@START)+'+1,'+convert(varchar,@LEN)+') = V_FENXTINTEGRATION_MAPPEDDESIGNATION.SHORTDESCRIPTION
and V_FENXTINTEGRATION_MAPPEDDESIGNATION.PDACCOUNTSYSTEMID = ''' + convert(varchar(36),@PDACCOUNTSYSTEMID) + '''
left join dbo.DESIGNATIONALTLOOKUPID on V_FENXTINTEGRATION_MAPPEDDESIGNATION.DESIGNATIONID = DESIGNATIONALTLOOKUPID.DESIGNATIONID and DESIGNATIONALTLOOKUPID.ALTLOOKUPIDTYPECODEID = ''E5837E89-B51A-4BAD-8E06-50D515DC64A2'''
exec(@sqlstring);
if @SUMMARIZED = 1
exec('update ' + @TABLENAME + ' set [ENCUMBRANCESTATUS] = ''Regular'', [Type] = case DEBITCREDIT when ''D'' then ''Debit'' when ''C'' then ''Credit'' end');
end
else if @SUMMARIZED = 1
exec('update ' + @TABLENAME + ' set [ACCOUNTNUMBER] = [ACCOUNTSTRING], [ENCUMBRANCESTATUS] = ''Regular'', [Type] = case DEBITCREDIT when ''D'' then ''Debit'' when ''C'' then ''Credit'' end');
end
end