USP_REPORT_1099MISCACTIVITY_DIVIDED
Get the details for the 1099 MISC activity report
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@VENDORID | uniqueidentifier | IN | |
@VENDORQUERYID | uniqueidentifier | IN | |
@INCLUDENON1099VENDORS | bit | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_1099MISCACTIVITY_DIVIDED
(
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@VENDORID uniqueidentifier = null,
@VENDORQUERYID uniqueidentifier = null,
@INCLUDENON1099VENDORS bit = null,
@REPORTUSERID nvarchar(128) = null,
@ALTREPORTUSERID nvarchar(128) = null
)
with execute as owner as
set nocount on;
declare @CURRENTAPPUSERID uniqueidentifier;
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
declare @SQLTOEXEC nvarchar(max);
declare @DBOBJECTNAME nvarchar(128);
declare @DBOBJECTTYPE smallint;
if @VENDORQUERYID is not null
begin
if not exists(select ID from dbo.IDSETREGISTER where ID = @VENDORQUERYID) raiserror('ID set does not exist in the database.', 15, 1);
select @DBOBJECTNAME = DBOBJECTNAME, @DBOBJECTTYPE = OBJECTTYPE from dbo.IDSETREGISTER where ID = @VENDORQUERYID;
if @DBOBJECTTYPE = 1 set @DBOBJECTNAME = @DBOBJECTNAME + '()';
else if @DBOBJECTTYPE = 2 set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @VENDORQUERYID) + ''')';
end
set @SQLTOEXEC = '
declare @1099DISTRIBUTION table (
CONSTITUENTID nvarchar(200)
,LOOKUPID nvarchar(100)
,NAME nvarchar(100)
,BOX1 money
,BOX2 money
,BOX3 money
,BOX4 money
,BOX5 money
,BOX6 money
,BOX7 money
,BOX8 money
,BOX10 money
,BOX13 money
,BOX14 money
,BOX15a money
,BOX15b money
,BOX16 money
,BOX18STATE nvarchar(5)
); '
set @SQLTOEXEC = @SQLTOEXEC + ' insert into @1099DISTRIBUTION
select
''http://www.blackbaud.com?CONSTITUENTID='' + CONVERT(nvarchar(36), V.ID) as [CONSTITUENTID]
,C.LOOKUPID
,C.NAME
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''1'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX1]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''2'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX2]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''3'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX3]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''4'' and ST.ID is null THEN CASE WHEN RECORDTYPE.TYPECODE = 102 THEN -1 ELSE 1 END * FTAD.AMOUNT ELSE 0 END,0)) [BOX4]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''5'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX5]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''6'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX6]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''7'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX7]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''8'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX8]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''10'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX10]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''13'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX13]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''14'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX14]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''15a'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX15a]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''15b'' THEN FTAD.AMOUNT ELSE 0 END,0)) [BOX15b]
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''16'' and not (ST.ID is null) THEN CASE WHEN RECORDTYPE.TYPECODE = 102 THEN -1 ELSE 1 END * FTAD.AMOUNT ELSE 0 END,0)) [BOX16]
,ST.ABBREVIATION [BOX18STATE]
from dbo.VENDOR V
inner join dbo.CONSTITUENT C on C.ID = V.ID
inner join dbo.FINANCIALTRANSACTION FT on FT.CONSTITUENTID = V.ID and FT.TYPECODE = 255 and FT.DELETEDON IS NULL
inner join dbo.DISBURSEMENT D on FT.ID = D.ID
inner join dbo.BANKACCOUNTTRANSACTION BAT on BAT.ID = D.BANKACCOUNTTRANSACTIONID and BAT.DELETED = 0 and BAT.STATUSCODE != 4
inner join dbo.FINANCIALTRANSACTIONAPPLICATION FTA on FTA.FINANCIALTRANSACTIONID = FT.ID and FTA.TYPECODE = 0 and FTA.STATUSCODE = 1
inner join dbo.FINANCIALTRANSACTIONAPPLICATION1099DISTRIBUTION FTAD on FTAD.FINANCIALTRANSACTIONAPPLICATIONID = FTA.ID
inner join dbo.FINANCIALTRANSACTION1099BOXNUMBER BOX on BOX.ID = FTAD.BOXNUMBER1099ID
inner join (select distinct FTA1.ID, FT1.TYPECODE
from dbo.FINANCIALTRANSACTION FT1
inner join dbo.FINANCIALTRANSACTIONSCHEDULE FTS on FTS.FINANCIALTRANSACTIONID = FT1.ID
inner join dbo.FINANCIALTRANSACTIONAPPLICATION FTA1 on FTA1.FINANCIALTRANSACTIONSCHEDULEID = FTS.ID) RECORDTYPE on RECORDTYPE.ID = FTA.ID
left outer join dbo.STATE ST on ST.ID = FTAD.STATEID '
if @VENDORQUERYID is not null
set @SQLTOEXEC = @SQLTOEXEC + 'inner join dbo.' + @DBOBJECTNAME + ' as SELECTION on V.[ID] = SELECTION.[ID]' + nchar(13);
set @SQLTOEXEC = @SQLTOEXEC + ' where (V.INCLUDEIN1099 = 1 or @INCLUDENON1099VENDORS = 1)
and ((BAT.TRANSACTIONDATE >= @STARTDATE or @STARTDATE is null)
and (BAT.TRANSACTIONDATE <= @ENDDATE or @ENDDATE is null))
and (V.ID = @VENDORID or @VENDORID is null)
and ((@ISADMIN = 1 or @APPUSER_IN_NONRACROLE = 1) or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, V.ID, @APPUSER_IN_NOSECGROUPROLE) = 1)'
set @SQLTOEXEC = @SQLTOEXEC + ' group by V.ID, C.LOOKUPID, C.NAME, FTAD.BOXNUMBER1099ID, ST.ABBREVIATION; '
set @SQLTOEXEC = @SQLTOEXEC + ' insert into @1099DISTRIBUTION
select
''http://www.blackbaud.com?CONSTITUENTID='' + CONVERT(nvarchar(36), V.ID) as [CONSTITUENTID]
,C.LOOKUPID
,C.NAME
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''1'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX1
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''2'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX2
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''3'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX3
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''4'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX4
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''5'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX5
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''6'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX6
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''7'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX7
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''8'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX8
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''10'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX10
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''13'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX13
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''14'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX14
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''15a'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX15a
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''15b'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX15b
,SUM(ISNULL(CASE WHEN BOX.BOXNUMBER=''16'' THEN ADJ.AMOUNT ELSE 0 END,0)) BOX16
,ST.ABBREVIATION [BOX18STATE]
from dbo.VENDOR V
inner join dbo.CONSTITUENT C on C.ID = V.ID
inner join dbo.VENDOR1099ADJUSTMENT ADJ on ADJ.VENDOR1099SETTINGID = V.ID
inner join dbo.FINANCIALTRANSACTION1099BOXNUMBER BOX on BOX.ID = ADJ.BOXNUMBER1099ID
left outer join dbo.STATE ST on ST.ID = ADJ.STATEID '
if @VENDORQUERYID is not null
set @SQLTOEXEC = @SQLTOEXEC + 'inner join dbo.' + @DBOBJECTNAME + ' as SELECTION on V.[ID] = SELECTION.[ID]' + nchar(13);
set @SQLTOEXEC = @SQLTOEXEC + ' where (V.INCLUDEIN1099 = 1 or @INCLUDENON1099VENDORS = 1)
and ((ADJ.EFFECTIVEDATE >= @STARTDATE or @STARTDATE is null)
and (ADJ.EFFECTIVEDATE <= @ENDDATE or @ENDDATE is null))
and (V.ID = @VENDORID or @VENDORID is null)
and ((@ISADMIN = 1 or @APPUSER_IN_NONRACROLE = 1) or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, V.ID, @APPUSER_IN_NOSECGROUPROLE) = 1)'
set @SQLTOEXEC = @SQLTOEXEC + ' group by V.ID, C.LOOKUPID, C.NAME, ADJ.BOXNUMBER1099ID, ST.ABBREVIATION; '
set @SQLTOEXEC = @SQLTOEXEC + '
select D.CONSTITUENTID
,D.LOOKUPID
,D.NAME
,SUM(D.BOX1) [BOX1]
,SUM(D.BOX2) [BOX2]
,SUM(D.BOX3) [BOX3]
,SUM(D.BOX4) [BOX4]
,SUM(D.BOX5) [BOX5]
,SUM(D.BOX6) [BOX6]
,SUM(D.BOX7) [BOX7]
,SUM(D.BOX8) [BOX8]
,SUM(D.BOX10) [BOX10]
,SUM(D.BOX13) [BOX13]
,SUM(D.BOX14) [BOX14]
,SUM(D.BOX15a) [BOX15a]
,SUM(D.BOX15b) [BOX15b]
,SUM(D.BOX16) [BOX16]
,D.BOX18STATE
from @1099DISTRIBUTION D
group by D.CONSTITUENTID,D.LOOKUPID,D.NAME,D.BOX18STATE; '
exec sp_executesql @SQLTOEXEC,
N'@STARTDATE datetime, @ENDDATE datetime, @VENDORID uniqueidentifier, @INCLUDENON1099VENDORS bit, @ISADMIN bit, @APPUSER_IN_NONRACROLE bit, @APPUSER_IN_NOSECGROUPROLE bit, @CURRENTAPPUSERID uniqueidentifier',
@STARTDATE=@STARTDATE, @ENDDATE=@ENDDATE, @VENDORID=@VENDORID, @INCLUDENON1099VENDORS=@INCLUDENON1099VENDORS, @ISADMIN=@ISADMIN, @APPUSER_IN_NONRACROLE=@APPUSER_IN_NONRACROLE, @APPUSER_IN_NOSECGROUPROLE=@APPUSER_IN_NOSECGROUPROLE, @CURRENTAPPUSERID=@CURRENTAPPUSERID;