USP_SEARCHLIST_MERCHANDISEPRODUCT

Search for a particular merchandise item.

Parameters

Parameter Parameter Type Mode Description
@NAME nvarchar(100) IN Name
@MERCHANDISEDEPARTMENTID uniqueidentifier IN Department
@MERCHANDISEDEPARTMENTCATEGORYID uniqueidentifier IN Category
@VENDORID uniqueidentifier IN Vendor
@INCLUDEINACTIVE bit IN Include inactive
@DISCOUNTABLEONLY bit IN DISCOUNTABLEONLY
@MAXROWS smallint IN Input parameter indicating the maximum number of rows to return.

Definition

Copy


            CREATE procedure dbo.USP_SEARCHLIST_MERCHANDISEPRODUCT
            (
                @NAME nvarchar(100) = null,
                @MERCHANDISEDEPARTMENTID uniqueidentifier = null,
                @MERCHANDISEDEPARTMENTCATEGORYID uniqueidentifier = null,
                @VENDORID uniqueidentifier = null,
                @INCLUDEINACTIVE bit = 0,
                @DISCOUNTABLEONLY bit = 0,
                @MAXROWS smallint = 500
            )
            as

                if @NAME is null
                    set @NAME = '';

                -- Wildcard character support

                set @NAME = replace(replace(@NAME,'[','\['),']','\]');
                set @NAME = replace(replace(@NAME,'*','%'),'?','_') + '%';

                select distinct top(@MAXROWS)
                    MP.ID,
                    P.NAME,
                    D.NAME DEPARTMENT,
                    C.NAME CATEGORY,
                    CONSTITUENT.NAME VENDOR
                from dbo.MERCHANDISEPRODUCT MP
                inner join dbo.PRODUCT P on P.ID = MP.ID
                inner join dbo.PRODUCTVENDOR PV on PV.PRODUCTID = P.ID
                inner join dbo.VENDOR V on V.ID = PV.VENDORID
                inner join dbo.CONSTITUENT on CONSTITUENT.ID = V.ID
                inner join dbo.MERCHANDISEDEPARTMENT D on MP.MERCHANDISEDEPARTMENTID = D.ID 
                left outer join dbo.MERCHANDISEDEPARTMENTCATEGORY C on MP.MERCHANDISEDEPARTMENTCATEGORYID = C.ID
                left outer join dbo.MERCHANDISEPRODUCTINSTANCE MPI on MP.ID = MPI.MERCHANDISEPRODUCTID
                left outer join MERCHANDISEPRODUCTINSTANCELOOKUPCODE on MERCHANDISEPRODUCTINSTANCELOOKUPCODE.MERCHANDISEPRODUCTINSTANCEID = MPI.ID
                where (
                    P.NAME like @NAME escape '\'
                    or MPI.BARCODE like @NAME escape '\'
                    or MPI.LOOKUPCODE like @NAME escape '\'
                    or MERCHANDISEPRODUCTINSTANCELOOKUPCODE.LOOKUPCODE like @NAME escape '\'
                )
                and (@MERCHANDISEDEPARTMENTID is null or D.ID = @MERCHANDISEDEPARTMENTID)
                and (@MERCHANDISEDEPARTMENTCATEGORYID is null or C.ID = @MERCHANDISEDEPARTMENTCATEGORYID)
                and (@VENDORID is null or PV.VENDORID = @VENDORID)
                and (@INCLUDEINACTIVE = 1 or MP.ISACTIVE = 1)
                and ((@DISCOUNTABLEONLY = 1 and D.ISDISCOUNTABLE = 1 and MP.ISDISCOUNTABLE = 1) or (@DISCOUNTABLEONLY = 0))
                order by P.NAME asc