USP_SEARCHLIST_BILLINGTRANSACTION
Returns all of the billing transactions matching the search criteria.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@KEYNAME | nvarchar(100) | IN | Last/Org name |
@FIRSTNAME | nvarchar(50) | IN | First name |
@LOOKUPID | nvarchar(36) | IN | Lookup ID |
@DATE | datetime | IN | Date |
@DUEDATE | datetime | IN | Due date |
@TRANSACTIONTYPE | int | IN | Transaction type |
@INCLUDEINACTIVE | bit | IN | Include inactive |
@INCLUDEDECEASED | bit | IN | Include deceased |
@CHECKNICKNAME | bit | IN | Check nickname |
@CHECKALIASES | bit | IN | Check aliases |
@EXACTMATCHONLY | bit | IN | Match all criteria exactly |
@CHECKALTERNATELOOKUPIDS | bit | IN | Check alternate lookup IDs |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
Definition
Copy
CREATE procedure dbo.USP_SEARCHLIST_BILLINGTRANSACTION
(
@KEYNAME nvarchar(100) = null,
@FIRSTNAME nvarchar(50) = null,
@LOOKUPID nvarchar(36) = null,
@DATE datetime = null,
@DUEDATE datetime = null,
@TRANSACTIONTYPE int = null,
@INCLUDEINACTIVE bit = null,
@INCLUDEDECEASED bit = null,
@CHECKNICKNAME bit = null,
@CHECKALIASES bit = null,
@EXACTMATCHONLY bit = null,
@CHECKALTERNATELOOKUPIDS bit = null,
@MAXROWS smallint = 500
)
as
set nocount on;
set @INCLUDEINACTIVE = isnull(@INCLUDEINACTIVE, 0);
set @INCLUDEDECEASED = isnull(@INCLUDEDECEASED, 0);
set @CHECKALIASES = isnull(@CHECKALIASES, 0);
set @CHECKNICKNAME = isnull(@CHECKNICKNAME, 0);
set @EXACTMATCHONLY = isnull(@EXACTMATCHONLY, 0);
set @CHECKALTERNATELOOKUPIDS = isnull(@CHECKALTERNATELOOKUPIDS, 0);
if (@EXACTMATCHONLY = 0)
begin
set @FIRSTNAME = isnull(@FIRSTNAME,'') + '%';
set @KEYNAME = isnull(@KEYNAME,'') + '%';
set @LOOKUPID = isnull(@LOOKUPID,'') + '%';
with CONSTIT_NAMEPOOL as
(
select
C.NAME as CONSTITUENTNAME,
C.NAME,
C.KEYNAME,
C.FIRSTNAME,
C.NICKNAME,
C.ID,
C.LOOKUPID,
C.ISINACTIVE,
C.ISORGANIZATION
from dbo.CONSTITUENT as C with (nolock)
union all
select
C.NAME + ' (' + ALIAS.NAME + ')' as CONSTITUENTNAME,
C.NAME,
ALIAS.KEYNAME,
ALIAS.FIRSTNAME,
'',
C.ID,
C.LOOKUPID,
C.ISINACTIVE,
C.ISORGANIZATION
from dbo.CONSTITUENT as C with (nolock)
inner join dbo.ALIAS on C.ID=ALIAS.CONSTITUENTID and @CHECKALIASES = 1
),
CONSTIT_CTE as
(
select
C.NAME,
C.KEYNAME,
C.FIRSTNAME,
C.NICKNAME,
C.ID,
C.LOOKUPID,
C.CONSTITUENTNAME,
C.ISINACTIVE
from CONSTIT_NAMEPOOL as C with (nolock)
)
select top(@MAXROWS)
FINANCIALTRANSACTION.ID,
CONSTIT_CTE.LOOKUPID,
CONSTIT_CTE.CONSTITUENTNAME as NAME,
FINANCIALTRANSACTION.TYPE,
FINANCIALTRANSACTION.CALCULATEDUSERDEFINEDID as TRANSACTIONID,
FINANCIALTRANSACTION.TRANSACTIONAMOUNT as AMOUNT,
FINANCIALTRANSACTION.DATE,
FINANCIALTRANSACTION.DESCRIPTION
from dbo.FINANCIALTRANSACTION with (nolock)
inner join CONSTIT_CTE with (nolock) on FINANCIALTRANSACTION.CONSTITUENTID = CONSTIT_CTE.ID
left outer join dbo.CHARGE with (nolock) on CHARGE.ID = FINANCIALTRANSACTION.ID
left outer join dbo.DECEASEDCONSTITUENT on CONSTIT_CTE.ID = DECEASEDCONSTITUENT.ID
--The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...
where ((@DATE is null) or (cast(FINANCIALTRANSACTION.DATE as date) = cast(@DATE as date))) -- Date criteria
and ((@DUEDATE is null) or ((cast(CHARGE.DUEDATE as date) = cast(@DUEDATE as date)))) -- Due Date criteria
and (((@TRANSACTIONTYPE is null) and (FINANCIALTRANSACTION.TYPECODE in (104, 105, 106))) or (FINANCIALTRANSACTION.TYPECODE = @TRANSACTIONTYPE)) -- Transaction type
and ((@INCLUDEDECEASED = 1) or (DECEASEDCONSTITUENT.ID is null)) -- Include deceased
and ((@INCLUDEINACTIVE = 1) or (CONSTIT_CTE.ISINACTIVE = 0)) -- Include inactive
and (CONSTIT_CTE.KEYNAME like @KEYNAME) -- Key Name
and ((CONSTIT_CTE.FIRSTNAME like @FIRSTNAME) or ((@CHECKNICKNAME = 1) and (CONSTIT_CTE.NICKNAME like @FIRSTNAME))) -- First Name, include nickname
and ((CONSTIT_CTE.LOOKUPID like @LOOKUPID) or ((@CHECKALTERNATELOOKUPIDS = 1) and (CONSTIT_CTE.ID in (select ALTERNATELOOKUPID.CONSTITUENTID from dbo.ALTERNATELOOKUPID where ALTERNATELOOKUPID.ALTERNATELOOKUPID like @LOOKUPID)))) -- LookupID and check alternate lookupid
and (FINANCIALTRANSACTION.DELETEDON is null);
end
else
begin
with CONSTIT_NAMEPOOL as
(
SELECT
C.NAME as CONSTITUENTNAME,
C.NAME,
C.KEYNAME,
C.FIRSTNAME,
C.NICKNAME,
C.ID,
C.LOOKUPID,
C.ISINACTIVE,
C.ISORGANIZATION
from dbo.CONSTITUENT as C with (nolock)
union all
select
C.NAME + ' (' + ALIAS.NAME + ')' as CONSTITUENTNAME,
C.NAME,
ALIAS.KEYNAME,
ALIAS.FIRSTNAME,
'',
C.ID,
C.LOOKUPID,
C.ISINACTIVE,
C.ISORGANIZATION
from dbo.CONSTITUENT as C with (nolock)
inner join dbo.ALIAS on C.ID=ALIAS.CONSTITUENTID and @CHECKALIASES = 1
),
CONSTIT_CTE as
(
select
C.NAME,
C.KEYNAME,
C.FIRSTNAME,
C.NICKNAME,
C.ID,
C.LOOKUPID,
C.CONSTITUENTNAME,
C.ISINACTIVE
from CONSTIT_NAMEPOOL as C with (nolock)
)
select top(@MAXROWS)
FINANCIALTRANSACTION.ID,
CONSTIT_CTE.LOOKUPID,
CONSTIT_CTE.CONSTITUENTNAME as NAME,
FINANCIALTRANSACTION.TYPE,
FINANCIALTRANSACTION.CALCULATEDUSERDEFINEDID as TRANSACTIONID,
FINANCIALTRANSACTION.TRANSACTIONAMOUNT as AMOUNT,
FINANCIALTRANSACTION.DATE,
FINANCIALTRANSACTION.DESCRIPTION
from dbo.FINANCIALTRANSACTION with (nolock)
inner join CONSTIT_CTE with (nolock) on FINANCIALTRANSACTION.CONSTITUENTID = CONSTIT_CTE.ID
left outer join dbo.CHARGE with (nolock) on CHARGE.ID = FINANCIALTRANSACTION.ID
left outer join dbo.DECEASEDCONSTITUENT on CONSTIT_CTE.ID = DECEASEDCONSTITUENT.ID
--The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...
where ((@DATE is null) or (cast(FINANCIALTRANSACTION.DATE as date) = cast(@DATE as date))) -- Date criteria
and ((@DUEDATE is null) or ((cast(CHARGE.DUEDATE as date) = cast(@DUEDATE as date)))) -- Due Date criteria
and (((@TRANSACTIONTYPE is null) and (FINANCIALTRANSACTION.TYPECODE in (104, 105, 106))) or (FINANCIALTRANSACTION.TYPECODE = @TRANSACTIONTYPE)) -- Transaction type
and ((@INCLUDEDECEASED = 1) or (DECEASEDCONSTITUENT.ID is null)) -- Include deceased
and ((@INCLUDEINACTIVE = 1) or (CONSTIT_CTE.ISINACTIVE = 0)) -- Include inactive
and ((@KEYNAME is null) or (CONSTIT_CTE.KEYNAME = @KEYNAME)) -- Key Name
and ((@FIRSTNAME is null) or (CONSTIT_CTE.FIRSTNAME = @FIRSTNAME) or ((@CHECKNICKNAME = 1) and (CONSTIT_CTE.NICKNAME = @FIRSTNAME))) -- First Name, include nickname
and ((@LOOKUPID is null) or (CONSTIT_CTE.LOOKUPID = @LOOKUPID) or ((@CHECKALTERNATELOOKUPIDS = 1) and (CONSTIT_CTE.ID in (select ALTERNATELOOKUPID.CONSTITUENTID from dbo.ALTERNATELOOKUPID where ALTERNATELOOKUPID.ALTERNATELOOKUPID = @LOOKUPID)))) -- LookupID and check alternate lookupid
and (FINANCIALTRANSACTION.DELETEDON is null);
end
return 0;