USP_SEARCHLIST_INVOICE

Search for and view invoices.

Parameters

Parameter Parameter Type Mode Description
@LASTNAME nvarchar(100) IN Vendor last/Org name
@FIRSTNAME nvarchar(100) IN First name
@LOOKUPID nvarchar(100) IN Lookup ID
@INVOICENUMBER nvarchar(100) IN Invoice number
@EXACTMATCHONLY bit IN Match all criteria exactly
@CHECKALIASES bit IN Check aliases
@CHECKALTERNATELOOKUPIDS bit IN Check alternate lookup IDs
@DATEFROM date IN From invoice date
@DATETO date IN To invoice date
@MAXROWS smallint IN Input parameter indicating the maximum number of rows to return.

Definition

Copy


CREATE procedure dbo.USP_SEARCHLIST_INVOICE
(
    @LASTNAME nvarchar(100) = null,
    @FIRSTNAME nvarchar(100) = null,
    @LOOKUPID nvarchar(100) = null,
    @INVOICENUMBER nvarchar(100) = null,
    @EXACTMATCHONLY bit = null,
    @CHECKALIASES bit = null,
    @CHECKALTERNATELOOKUPIDS bit = null,
    @DATEFROM date = null,
    @DATETO date = null,
    @MAXROWS smallint = 500
)
as
    set @EXACTMATCHONLY = COALESCE(@EXACTMATCHONLY, 0)
    set @CHECKALIASES = COALESCE(@CHECKALIASES, 0)
    set @CHECKALTERNATELOOKUPIDS = COALESCE(@CHECKALTERNATELOOKUPIDS, 0)
    if @EXACTMATCHONLY = 0
    begin
        set @INVOICENUMBER = COALESCE(@INVOICENUMBER,'') + '%';
        set @FIRSTNAME = COALESCE(@FIRSTNAME,'') + '%';
        set @LASTNAME = COALESCE(@LASTNAME,'') + '%';
        set @LOOKUPID = COALESCE(@LOOKUPID,'') + '%';

        select top(@MAXROWS)
            I.ID,
            F.USERDEFINEDID as INVOICENUMBER,
            F.[DATE] as INVOICEDATE,
            F.TRANSACTIONAMOUNT as INVOICETOTAL,
            --C.LOOKUPID as LOOKUPID,

            dbo.UFN_NAMEFORMAT_08(C.ID, C.KEYNAME, C.FIRSTNAME, C.MIDDLENAME, null, null, null, null, null, null, null) as VENDORNAME
        from dbo.INVOICE I
        inner join dbo.FINANCIALTRANSACTION F on F.ID = I.ID and F.TYPECODE = 101
        inner join dbo.CONSTITUENT C on F.CONSTITUENTID = C.ID
        where
            (F.USERDEFINEDID LIKE @INVOICENUMBER) and
            ((C.LOOKUPID like @LOOKUPID) or ((C.ID in (select AL.CONSTITUENTID from dbo.ALTERNATELOOKUPID AL where AL.ALTERNATELOOKUPID like @LOOKUPID) and @CHECKALTERNATELOOKUPIDS <> 0))) and
            ((C.KEYNAME like @LASTNAME) or ((C.ID in (select A.CONSTITUENTID from dbo.ALIAS A where A.KEYNAME like @LASTNAME) and @CHECKALIASES <> 0))) and
            ((C.FIRSTNAME like @FIRSTNAME) or ((C.ID in (select A.CONSTITUENTID from dbo.ALIAS A where A.FIRSTNAME like @FIRSTNAME) and @CHECKALIASES <> 0))) and
            (((@DATEFROM is null) or (F.DATE >= @DATEFROM)) and ((@DATETO is null) or (F.DATE <= @DATETO))) and
      (F.DELETEDON IS NULL)
        order by 
            C.KEYNAME asc, F.USERDEFINEDID asc, C.LOOKUPID asc
    end
    else
        select top(@MAXROWS)
            I.ID,
            F.USERDEFINEDID as INVOICENUMBER,
            F.[DATE] as INVOICEDATE,
            F.TRANSACTIONAMOUNT as INVOICETOTAL,
            --C.LOOKUPID as LOOKUPID,

            dbo.UFN_NAMEFORMAT_08(C.ID, C.KEYNAME, C.FIRSTNAME, C.MIDDLENAME, null, null, null, null, null, null, null) as VENDORNAME
        from dbo.INVOICE I
        inner join dbo.FINANCIALTRANSACTION F on F.ID = I.ID and F.TYPECODE = 101
        inner join dbo.CONSTITUENT C on F.CONSTITUENTID = C.ID
        where
            ((@INVOICENUMBER is null) or (F.USERDEFINEDID = @INVOICENUMBER)) and
            ((@LOOKUPID is null) or (C.LOOKUPID = @LOOKUPID) or ((C.ID in (select AL.CONSTITUENTID from dbo.ALTERNATELOOKUPID AL where AL.ALTERNATELOOKUPID = @LOOKUPID) and @CHECKALTERNATELOOKUPIDS <> 0))) and
            ((@LASTNAME is null) or (C.KEYNAME = @LASTNAME) or ((C.ID in (select A.CONSTITUENTID from dbo.ALIAS A where A.KEYNAME = @LASTNAME) and @CHECKALIASES <> 0))) and
            ((@FIRSTNAME is null) or (C.FIRSTNAME = @FIRSTNAME) or ((C.ID in (select A.CONSTITUENTID from dbo.ALIAS A where A.FIRSTNAME = @FIRSTNAME) and @CHECKALIASES <> 0))) and
            (((@DATEFROM is null) or (F.DATE >= @DATEFROM)) and ((@DATETO is null) or (F.DATE <= @DATETO))) and
      (F.DELETEDON IS NULL)
        order by 
            C.KEYNAME asc, F.USERDEFINEDID asc, C.LOOKUPID asc