USP_REPORT_ADJUSTEDREVENUE
Returns the data necessary for the Adjusted Revenue report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CURRENCYCODE | tinyint | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_ADJUSTEDREVENUE
(
@STARTDATE datetime,
@ENDDATE datetime,
@CURRENCYCODE tinyint = null,
@REPORTUSERID nvarchar(128) = null,
@ALTREPORTUSERID nvarchar(128) = null )
with execute as owner
as
set nocount on;
set transaction isolation level read uncommitted;
declare @CURRENTAPPUSERID uniqueidentifier;
set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
declare @ISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
declare @NOSECURITYREQUIRED bit = coalesce((select DFTC.NOSECURITYREQUIRED from dbo.DATAFORMINSTANCECATALOG DFIC inner join dbo.DATAFORMTEMPLATECATALOG DFTC on DFIC.DATAFORMTEMPLATECATALOGID = DFTC.ID where DFIC.ID = 'BE5252A8-1D7F-4F34-A319-B024B06C0A03'),0);
declare @CHECKSITE bit = 0;
if @ISSYSADMIN = 0 and @NOSECURITYREQUIRED = 0 and exists (select top 1 1 from dbo.SITE)
set @CHECKSITE = 1;
if @CHECKSITE = 1
begin
if object_id('tempdb..#TMP_USP_REPORT_ADJUSTEDREVENUE_SITEONFEATURE') is not null
drop table #TMP_USP_REPORT_ADJUSTEDREVENUE_SITEONFEATURE
create table #TMP_USP_REPORT_ADJUSTEDREVENUE_SITEONFEATURE
(
SITEID uniqueidentifier
)
insert into #TMP_USP_REPORT_ADJUSTEDREVENUE_SITEONFEATURE (SITEID)
select
SITEID
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID, 'BE5252A8-1D7F-4F34-A319-B024B06C0A03', 21) --21 is the feature type for reports
end
declare @STARTDATEEARLIEST datetime = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE);
declare @ENDDATELATEST datetime = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
declare @STARTENDDATEEXIST tinyint = 0;
-- 0: Neither start nor end date exist
-- 1: Only start date exists
-- 2: Only end date exists
-- 3: Both start and end date exist
if @STARTDATEEARLIEST is not null
begin
set @STARTENDDATEEXIST = 1;
if @ENDDATELATEST is not null
begin
set @STARTENDDATEEXIST = 3;
end
end
else if @ENDDATELATEST is not null
begin
set @STARTDATEEARLIEST = 2;
end
if object_id('tempdb..#TMP_DATA_ADJUSTEDREVENUE') is not null
drop table #TMP_DATA_ADJUSTEDREVENUE;
create table #TMP_DATA_ADJUSTEDREVENUE
(
ADJUSTMENTIDENTIFIER nvarchar(36) collate database_default
,TRANSACTIONIDENTIFIER nvarchar(36) collate database_default
,REVENUEIDENTIFIER nvarchar(36) collate database_default
,CONSTITUENTNAME nvarchar(255) collate database_default
,REVENUETYPE nvarchar(30) collate database_default
,REVENUEDATE datetime
,ADJUSTMENTDATE datetime
,DETAILID uniqueidentifier
,ADJUSTEDFIELD nvarchar(100) collate database_default
,ADJUSTEDFIELDPREVIOUSVALUE nvarchar(max) collate database_default
,ADJUSTEDFIELDADJUSTEDVALUE nvarchar(max) collate database_default
,ADJUSTMENTREASON nvarchar(300) collate database_default
,DISTRIBUTIONID nvarchar(36) collate database_default
,GLTYPECODE tinyint
,GLTYPE nvarchar(20) collate database_default
,TRANSACTIONTYPE nvarchar(50) collate database_default
,ACCOUNT nvarchar(100) collate database_default
,PROJECT nvarchar(100) collate database_default
,AMOUNT money
,POSTSTATUS nvarchar(50) collate database_default
,POSTDATE datetime
,REASONCODE nvarchar(63) collate database_default
,ISMONEY bit
,ADJUSTEDFIELDPREVIOUSMONEYVALUE money
,ADJUSTEDFIELDADJUSTEDMONEYVALUE money
,DETAILISOCURRENCYCODE nvarchar(3) collate database_default
,DETAILCURRENCYSYMBOL nvarchar(5) collate database_default
,DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE tinyint
,DETAILDECIMALDIGITS tinyint
,DISTRIBUTIONISOCURRENCYCODE nvarchar(3) collate database_default
,DISTRIBUTIONCURRENCYSYMBOL nvarchar(5) collate database_default
,DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE tinyint
,DISTRIBUTIONDECIMALDIGITS tinyint
)
declare @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL as nvarchar(max)
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL =
'insert into #TMP_DATA_ADJUSTEDREVENUE
select
ADJUSTMENTHISTORY.ADJUSTMENTIDENTIFIER,
null as TRANSACTIONIDENTIFIER,
ADJUSTMENTHISTORY.REVENUEIDENTIFIER,
ADJUSTMENTHISTORY.CONSTITUENTNAME,
--JamesWill 04/29/2008 CR299003-042508 The data is stored somewhat inconveniently in the report tables, so convert the "payment" types to say "Payment"; otherwise, use what''s there.
case
when ADJUSTMENTHISTORY.REVENUETYPE in (''Gift'', ''Pledge payment'', ''Recurring gift payment'',
''Matching gift payment'', ''Event registration fee'', ''Membership fee'', ''Donor challenge payment'') then ''Payment''
else ADJUSTMENTHISTORY.REVENUETYPE
end as [REVENUETYPE],
ADJUSTMENTHISTORY.REVENUEDATE,
ADJUSTMENTHISTORY.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORY.ADJUSTMENTREASON,
[DISTRIBUTION].ID as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
ADJUSTMENT.POSTSTATUS,
ADJUSTMENT.POSTDATE,
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(ADJUSTMENT.REASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORY
/*this needs to be a left join because adjustments consisting of just GL changes will not have changed fields.*/
left join dbo.ADJUSTMENTHISTORYDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYID = ADJUSTMENTHISTORY.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETDISTRIBUTION_FORADJUSTMENTHISTORYID_FORDISPLAY(ADJUSTMENTHISTORY.ID) as [DISTRIBUTION]
inner join dbo.ADJUSTMENT on ADJUSTMENT.ID = ADJUSTMENTHISTORY.ADJUSTMENTID /*this join means this select only works for non-deleted adjustments*/
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES ' +
case @STARTENDDATEEXIST
when 1 then 'where ADJUSTMENTHISTORY.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'where ADJUSTMENTHISTORY.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'where ADJUSTMENTHISTORY.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORY.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for sold stock items*/
select
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYSTOCK.STOCKDETAILIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYSTOCK.STOCKDETAILIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYSTOCK.CONSTITUENTNAME,
''Sold stock'' as [REVENUETYPE],
ADJUSTMENTHISTORYSTOCK.REVENUEDATE,
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
STOCKSALEADJUSTMENT.POSTSTATUS,
STOCKSALEADJUSTMENT.POSTDATE,
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(STOCKSALEADJUSTMENT.REASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYSTOCK
left join dbo.ADJUSTMENTHISTORYSTOCKDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYSTOCKID = ADJUSTMENTHISTORYSTOCK.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETSTOCKDISTRIBUTION_FORADJUSTMENTHISTORYSTOCKID_FORDISPLAY(ADJUSTMENTHISTORYSTOCK.ID) as [DISTRIBUTION]
inner join dbo.STOCKSALEADJUSTMENT on STOCKSALEADJUSTMENT.ID = ADJUSTMENTHISTORYSTOCK.STOCKSALEADJUSTMENTID/*this join means this select only works for non-deleted adjustments*/
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES ' +
case @STARTENDDATEEXIST
when 1 then 'where ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'where ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'where ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for sold gift-in-kind items*/
select
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDPAYMENTMETHODDETAILIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDPAYMENTMETHODDETAILIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYGIFTINKIND.CONSTITUENTNAME,
''Sold gift-in-kind'' as [REVENUETYPE],
ADJUSTMENTHISTORYGIFTINKIND.REVENUEDATE,
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
GIFTINKINDSALEADJUSTMENT.POSTSTATUS,
GIFTINKINDSALEADJUSTMENT.POSTDATE,
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(GIFTINKINDSALEADJUSTMENT.REASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYGIFTINKIND
left join dbo.ADJUSTMENTHISTORYGIFTINKINDPAYMENTMETHODDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYGIFTINKINDID = ADJUSTMENTHISTORYGIFTINKIND.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETGIFTINKINDDISTRIBUTION_FORADJUSTMENTHISTORYGIFTINKINDID_FORDISPLAY(ADJUSTMENTHISTORYGIFTINKIND.ID) as [DISTRIBUTION]
inner join dbo.GIFTINKINDSALEADJUSTMENT on GIFTINKINDSALEADJUSTMENT.ID = ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDSALEADJUSTMENTID/*this join means this select only works for non-deleted adjustments*/
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES ' +
case @STARTENDDATEEXIST
when 1 then 'where ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'where ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'where ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for sold property items*/
select
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYPROPERTY.PROPERTYDETAILIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYPROPERTY.PROPERTYDETAILIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYPROPERTY.CONSTITUENTNAME,
''Sold property'' as [REVENUETYPE],
ADJUSTMENTHISTORYPROPERTY.REVENUEDATE,
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
PROPERTYDETAILADJUSTMENT.POSTSTATUS,
PROPERTYDETAILADJUSTMENT.POSTDATE,
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(PROPERTYDETAILADJUSTMENT.REASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYPROPERTY
left join dbo.ADJUSTMENTHISTORYPROPERTYDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYPROPERTYID = ADJUSTMENTHISTORYPROPERTY.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETPROPERTYDISTRIBUTION_FORADJUSTMENTHISTORYPROPERTYID_FORDISPLAY(ADJUSTMENTHISTORYPROPERTY.ID) as [DISTRIBUTION]
inner join dbo.PROPERTYDETAILADJUSTMENT on PROPERTYDETAILADJUSTMENT.ID = ADJUSTMENTHISTORYPROPERTY.PROPERTYDETAILADJUSTMENTID /*this join means this select only works for non-deleted adjustments*/
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES ' +
case @STARTENDDATEEXIST
when 1 then 'where ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'where ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'where ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for deleted stock items */
select
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYSTOCK.STOCKDETAILIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYSTOCK.STOCKDETAILIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYSTOCK.CONSTITUENTNAME,
''Sold stock'' as [REVENUETYPE],
ADJUSTMENTHISTORYSTOCK.REVENUEDATE,
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
/*if this is the record for a deletion reversal, there''s no way to know if it was posted or not.
Otherwise, assume that it''s posted since it''s purely historical*/
case
when [DETAIL].ADJUSTEDFIELD = ''Deleted'' or [DETAIL].ADJUSTEDFIELD = ''Unsold''
then
case when not ADJUSTMENTHISTORYSTOCK.GLTRANSACTIONID is null then
(select POSTSTATUS from dbo.GLTRANSACTION where ID = ADJUSTMENTHISTORYSTOCK.GLTRANSACTIONID)
else
''N/A''
end
else
''Posted''
end,
ADJUSTMENTHISTORYSTOCK.ADJUSTMENTPOSTDATE, --Use the post date stored in the history table
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(ADJUSTMENTHISTORYSTOCK.ADJUSTMENTREASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYSTOCK
/*this needs to be a left join because adjustments consisting of just GL changes will not have changed fields*/
left join dbo.ADJUSTMENTHISTORYSTOCKDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYSTOCKID = ADJUSTMENTHISTORYSTOCK.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETSTOCKDISTRIBUTION_FORADJUSTMENTHISTORYSTOCKID_FORDISPLAY(ADJUSTMENTHISTORYSTOCK.ID) as [DISTRIBUTION]
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES
where
ADJUSTMENTHISTORYSTOCK.STOCKSALEADJUSTMENTID is null /*STOCKSALEADJUSTMENTID is set to null when the revenue is deleted*/ ' +
case @STARTENDDATEEXIST
when 1 then 'and ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'and ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'and ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYSTOCK.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for deleted gift-in-kind items */
select
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDPAYMENTMETHODDETAILIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDPAYMENTMETHODDETAILIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYGIFTINKIND.CONSTITUENTNAME,
''Sold gift-in-kind'' as [REVENUETYPE],
ADJUSTMENTHISTORYGIFTINKIND.REVENUEDATE,
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
/*if this is the record for a deletion reversal, there''s no way to know if it was posted or not.
Otherwise, assume that it''s posted since it''s purely historical*/
case
when [DETAIL].ADJUSTEDFIELD = ''Deleted'' or [DETAIL].ADJUSTEDFIELD = ''Unsold''
then
case when not ADJUSTMENTHISTORYGIFTINKIND.GLTRANSACTIONID is null then
(select POSTSTATUS from dbo.GLTRANSACTION where ID = ADJUSTMENTHISTORYGIFTINKIND.GLTRANSACTIONID)
else
''N/A''
end
else
''Posted''
end,
ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTPOSTDATE, --Use the post date stored in the history table
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTREASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYGIFTINKIND
/*this needs to be a left join because adjustments consisting of just GL changes will not have changed fields*/
left join dbo.ADJUSTMENTHISTORYGIFTINKINDPAYMENTMETHODDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYGIFTINKINDID = ADJUSTMENTHISTORYGIFTINKIND.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETGIFTINKINDDISTRIBUTION_FORADJUSTMENTHISTORYGIFTINKINDID_FORDISPLAY(ADJUSTMENTHISTORYGIFTINKIND.ID) as [DISTRIBUTION]
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES
where
ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDSALEADJUSTMENTID is null /*GIFTINKINDSALEADJUSTMENTID is set to null when the revenue is deleted*/ ' +
case @STARTENDDATEEXIST
when 1 then 'and ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'and ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'and ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYGIFTINKIND.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for deleted property items */
select
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYPROPERTY.PROPERTYDETAILIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYPROPERTY.PROPERTYDETAILIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYPROPERTY.CONSTITUENTNAME,
''Sold property'' as [REVENUETYPE],
ADJUSTMENTHISTORYPROPERTY.REVENUEDATE,
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
/*if this is the record for a deletion reversal, there''s no way to know if it was posted or not.
Otherwise, assume that it''s posted since it''s purely historical*/
case
when [DETAIL].ADJUSTEDFIELD = ''Deleted'' or [DETAIL].ADJUSTEDFIELD = ''Unsold''
then
case when not ADJUSTMENTHISTORYPROPERTY.GLTRANSACTIONID is null then
(select POSTSTATUS from dbo.GLTRANSACTION where ID = ADJUSTMENTHISTORYPROPERTY.GLTRANSACTIONID)
else
''N/A''
end
else
''Posted''
end,
ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTPOSTDATE, --Use the post date stored in the history table
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTREASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYPROPERTY
/*this needs to be a left join because adjustments consisting of just GL changes will not have changed fields*/
left join dbo.ADJUSTMENTHISTORYPROPERTYDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYPROPERTYID = ADJUSTMENTHISTORYPROPERTY.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETPROPERTYDISTRIBUTION_FORADJUSTMENTHISTORYPROPERTYID_FORDISPLAY(ADJUSTMENTHISTORYPROPERTY.ID) as [DISTRIBUTION]
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES
where
ADJUSTMENTHISTORYPROPERTY.PROPERTYDETAILADJUSTMENTID is null /*PROPERTYDETAILADJUSTMENTID is set to null when the revenue is deleted*/ ' +
case @STARTENDDATEEXIST
when 1 then 'and ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'and ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'and ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYPROPERTY.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for write-off items*/
select
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYWRITEOFF.WRITEOFFIDENTIFIER as [TRANSACTIONIDENTIFIER],
ADJUSTMENTHISTORYWRITEOFF.WRITEOFFIDENTIFIER as [REVENUEIDENTIFIER],
ADJUSTMENTHISTORYWRITEOFF.CONSTITUENTNAME,
''Write-off'' as [REVENUETYPE],
ADJUSTMENTHISTORYWRITEOFF.DATE,
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
WRITEOFFADJUSTMENT.POSTSTATUS,
WRITEOFFADJUSTMENT.POSTDATE,
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(WRITEOFFADJUSTMENT.REASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYWRITEOFF
left join dbo.ADJUSTMENTHISTORYWRITEOFFDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYWRITEOFFID = ADJUSTMENTHISTORYWRITEOFF.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETWRITEOFFDISTRIBUTION_FORADJUSTMENTHISTORYWRITEOFFID_FORDISPLAY(ADJUSTMENTHISTORYWRITEOFF.ID) as [DISTRIBUTION]
inner join dbo.WRITEOFFADJUSTMENT on WRITEOFFADJUSTMENT.ID = ADJUSTMENTHISTORYWRITEOFF.WRITEOFFADJUSTMENTID/*this join means this select only works for non-deleted adjustments*/
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES ' +
case @STARTENDDATEEXIST
when 1 then 'where ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'where ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'where ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get reversals for deleted write-offs */
select
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTIDENTIFIER,
ADJUSTMENTHISTORYWRITEOFF.WRITEOFFIDENTIFIER,
ADJUSTMENTHISTORYWRITEOFF.WRITEOFFIDENTIFIER,
ADJUSTMENTHISTORYWRITEOFF.CONSTITUENTNAME,
''Write-off'' as [REVENUETYPE],
ADJUSTMENTHISTORYWRITEOFF.DATE,
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36)) as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
case
when [DETAIL].ADJUSTEDFIELD = ''Deleted write-off''
then
case when not ADJUSTMENTHISTORYWRITEOFF.GLTRANSACTIONID is null then
(select POSTSTATUS from dbo.GLTRANSACTION where ID = ADJUSTMENTHISTORYWRITEOFF.GLTRANSACTIONID)
else
''N/A''
end
else
''Posted''
end,
ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTPOSTDATE,
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTREASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORYWRITEOFF
left join dbo.ADJUSTMENTHISTORYWRITEOFFDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYWRITEOFFID = ADJUSTMENTHISTORYWRITEOFF.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETWRITEOFFDISTRIBUTION_FORADJUSTMENTHISTORYWRITEOFFID_FORDISPLAY(ADJUSTMENTHISTORYWRITEOFF.ID) as [DISTRIBUTION]
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES
where
ADJUSTMENTHISTORYWRITEOFF.WRITEOFFADJUSTMENTID is null ' +
case @STARTENDDATEEXIST
when 1 then 'and ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'and ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'and ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORYWRITEOFF.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'union all
/*get adjustments for deleted items */
select
ADJUSTMENTHISTORY.ADJUSTMENTIDENTIFIER,
null as TRANSACTIONIDENTIFIER,
ADJUSTMENTHISTORY.REVENUEIDENTIFIER,
ADJUSTMENTHISTORY.CONSTITUENTNAME,
ADJUSTMENTHISTORY.REVENUETYPE,
ADJUSTMENTHISTORY.REVENUEDATE,
ADJUSTMENTHISTORY.ADJUSTMENTDATE,
[DETAIL].ID as [DETAILID],
[DETAIL].ADJUSTEDFIELD,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSVALUE end as ADJUSTEDFIELDPREVIOUSVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDVALUE end as ADJUSTEDFIELDADJUSTEDVALUE,
ADJUSTMENTHISTORY.ADJUSTMENTREASON,
cast([DISTRIBUTION].ID as nvarchar(36))as [DISTRIBUTIONID],
[DISTRIBUTION].TYPECODE as [GLTYPECODE],
[DISTRIBUTION].TYPE as [GLTYPE],
[DISTRIBUTION].TRANSACTIONTYPE,
[DISTRIBUTION].ACCOUNT,
[DISTRIBUTION].PROJECT,
case @CURRENCYCODE when 0 then [DISTRIBUTION].AMOUNT when 2 then [DISTRIBUTION].TRANSACTIONAMOUNT else [DISTRIBUTION].ORGANIZATIONAMOUNT end as AMOUNT,
/*if this is the record for a deletion reversal, there''s no way to know if it was posted or not.
Otherwise, assume that it''s posted since it''s purely historical*/
case
when [DETAIL].ADJUSTEDFIELD = ''Deleted''
then
case when not ADJUSTMENTHISTORY.GLTRANSACTIONID is null then
(select POSTSTATUS from dbo.GLTRANSACTION where ID = ADJUSTMENTHISTORY.GLTRANSACTIONID)
else
''N/A''
end
else
''Posted''
end,
ADJUSTMENTHISTORY.ADJUSTMENTPOSTDATE, --Use the post date stored in the history table
dbo.UFN_ADJUSTMENTREASONCODE_TRANSLATE(ADJUSTMENTHISTORY.ADJUSTMENTREASONCODEID) as REASONCODE,
coalesce([DETAIL].ISMONEY, 0) as ISMONEY,'
set @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL = @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL +
'case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDPREVIOUSMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDPREVIOUSMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDPREVIOUSMONEYVALUE end as ADJUSTEDFIELDPREVIOUSMONEYVALUE,
case @CURRENCYCODE when 0 then [DETAIL].ADJUSTEDFIELDADJUSTEDMONEYVALUE when 2 then [DETAIL].TRANSACTIONADJUSTEDFIELDADJUSTEDMONEYVALUE else [DETAIL].ORGANIZATIONADJUSTEDFIELDADJUSTEDMONEYVALUE end as ADJUSTEDFIELDADJUSTEDMONEYVALUE,
DETAILCURRENCYPROPERTIES.ISO4217 [DETAILISOCURRENCYCODE],
DETAILCURRENCYPROPERTIES.CURRENCYSYMBOL [DETAILCURRENCYSYMBOL],
DETAILCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE],
DETAILCURRENCYPROPERTIES.DECIMALDIGITS [DETAILDECIMALDIGITS],
DISTRIBUTIONCURRENCYPROPERTIES.ISO4217 [DISTRIBUTIONISOCURRENCYCODE],
DISTRIBUTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [DISTRIBUTIONCURRENCYSYMBOL],
DISTRIBUTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
DISTRIBUTIONCURRENCYPROPERTIES.DECIMALDIGITS [DISTRIBUTIONDECIMALDIGITS]
from dbo.ADJUSTMENTHISTORY
/*this needs to be a left join because adjustments consisting of just GL changes will not have changed fields.*/
left join dbo.ADJUSTMENTHISTORYDETAIL as [DETAIL] on [DETAIL].ADJUSTMENTHISTORYID = ADJUSTMENTHISTORY.ID
cross apply dbo.UFN_ADJUSTMENTHISTORY_GETDISTRIBUTION_FORADJUSTMENTHISTORYID_FORDISPLAY(ADJUSTMENTHISTORY.ID) as [DISTRIBUTION]
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DISTRIBUTION].BASECURRENCYID when 2 then [DISTRIBUTION].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DISTRIBUTIONCURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(case @CURRENCYCODE when 0 then [DETAIL].BASECURRENCYID when 2 then [DETAIL].TRANSACTIONCURRENCYID else dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() end) DETAILCURRENCYPROPERTIES
where
ADJUSTMENTHISTORY.ADJUSTMENTID is null /*ADJUSTMENTID is set to null when the revenue is deleted */ ' +
case @STARTENDDATEEXIST
when 1 then 'and ADJUSTMENTHISTORY.ADJUSTMENTDATE >= @STARTDATEEARLIEST '
when 2 then 'and ADJUSTMENTHISTORY.ADJUSTMENTDATE <= @ENDDATELATEST '
when 3 then 'and ADJUSTMENTHISTORY.ADJUSTMENTDATE >= @STARTDATEEARLIEST and ADJUSTMENTHISTORY.ADJUSTMENTDATE <= @ENDDATELATEST '
else ''
end
+
'option(recompile);'
exec sp_executesql @POPULATE_TMP_DATA_ADJUSTEDREVENUE_SQL, N'@STARTDATEEARLIEST datetime, @ENDDATELATEST datetime, @CURRENCYCODE tinyint',
@STARTDATEEARLIEST=@STARTDATEEARLIEST,@ENDDATELATEST=@ENDDATELATEST,@CURRENCYCODE=@CURRENCYCODE;
if @CHECKSITE = 1
begin
delete R
from #TMP_DATA_ADJUSTEDREVENUE R
where
not exists (select 1 from dbo.UFN_SITEID_MAPFROM_REVENUEID(R.REVENUEIDENTIFIER) REVSITES
inner join #TMP_USP_REPORT_ADJUSTEDREVENUE_SITEONFEATURE FEATURE on isnull(FEATURE.SITEID, '00000000-0000-0000-0000-000000000000') = isnull(REVSITES.SITEID, '00000000-0000-0000-0000-000000000000'))
end
select
ADJUSTMENTIDENTIFIER
,TRANSACTIONIDENTIFIER
,REVENUEIDENTIFIER
,CONSTITUENTNAME
,REVENUETYPE
,REVENUEDATE
,ADJUSTMENTDATE
,DETAILID
,ADJUSTEDFIELD
,ADJUSTEDFIELDPREVIOUSVALUE
,ADJUSTEDFIELDADJUSTEDVALUE
,ADJUSTMENTREASON
,DISTRIBUTIONID
,GLTYPECODE
,GLTYPE
,TRANSACTIONTYPE
,ACCOUNT
,PROJECT
,AMOUNT
,POSTSTATUS
,POSTDATE
,REASONCODE
,ISMONEY
,ADJUSTEDFIELDPREVIOUSMONEYVALUE
,ADJUSTEDFIELDADJUSTEDMONEYVALUE
,DETAILISOCURRENCYCODE
,DETAILCURRENCYSYMBOL
,DETAILCURRENCYSYMBOLDISPLAYSETTINGCODE
,DETAILDECIMALDIGITS
,DISTRIBUTIONISOCURRENCYCODE
,DISTRIBUTIONCURRENCYSYMBOL
,DISTRIBUTIONCURRENCYSYMBOLDISPLAYSETTINGCODE
,DISTRIBUTIONDECIMALDIGITS
from #TMP_DATA_ADJUSTEDREVENUE
order by ADJUSTMENTDATE, CONSTITUENTNAME, REVENUEDATE, REVENUEIDENTIFIER, [DISTRIBUTIONID]