USP_SEARCHLIST_MERCHANDISEPRODUCTINSTANCE
Search for an inventory item.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BARCODE | nvarchar(25) | IN | SKU/UPC |
@NAME | nvarchar(50) | IN | Name |
@MERCHANDISEDEPARTMENTID | uniqueidentifier | IN | Department |
@MERCHANDISEDEPARTMENTCATEGORYID | uniqueidentifier | IN | Category |
@VENDORID | uniqueidentifier | IN | Vendor |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
Definition
Copy
CREATE procedure dbo.USP_SEARCHLIST_MERCHANDISEPRODUCTINSTANCE
(
@BARCODE nvarchar(25) = null,
@NAME nvarchar(50) = null,
@MERCHANDISEDEPARTMENTID uniqueidentifier = null,
@MERCHANDISEDEPARTMENTCATEGORYID uniqueidentifier = null,
@VENDORID uniqueidentifier = null,
@MAXROWS smallint = 500
)
as
if @NAME is null
set @NAME = '';
if @BARCODE is null
set @BARCODE = '';
-- Wildcard character support
set @NAME = replace(replace(@NAME,'[','\['),']','\]');
set @NAME = replace(replace(@NAME,'*','%'),'?','_') + '%';
set @BARCODE = replace(replace(@BARCODE,'[','\['),']','\]');
set @BARCODE = replace(replace(@BARCODE,'*','%'),'?','_') + '%';
select top(@MAXROWS)
MPI.ID,
MPI.BARCODE,
MPI.ITEMDETAILS,
MPI.ONHANDQUANTITY,
MPI.SALEPRICE
from dbo.MERCHANDISEPRODUCT MP
inner join dbo.PRODUCT P on MP.ID = P.ID
inner join dbo.PRODUCTVENDOR PV on PV.PRODUCTID = P.ID
inner join dbo.MERCHANDISEPRODUCTINSTANCE MPI on MP.ID = MPI.MERCHANDISEPRODUCTID
left outer join dbo.MERCHANDISEDEPARTMENTCATEGORY MDC on MP.MERCHANDISEDEPARTMENTCATEGORYID = MDC.ID
where P.NAME like @NAME
and (@MERCHANDISEDEPARTMENTID is null or MP.MERCHANDISEDEPARTMENTID = @MERCHANDISEDEPARTMENTID)
and (@MERCHANDISEDEPARTMENTCATEGORYID is null or MP.MERCHANDISEDEPARTMENTCATEGORYID = @MERCHANDISEDEPARTMENTCATEGORYID)
and (MPI.BARCODE like @BARCODE or MPI.LOOKUPCODE like @BARCODE or exists (select ID from MERCHANDISEPRODUCTINSTANCELOOKUPCODE where MERCHANDISEPRODUCTINSTANCELOOKUPCODE.MERCHANDISEPRODUCTINSTANCEID = MPI.ID and MERCHANDISEPRODUCTINSTANCELOOKUPCODE.LOOKUPCODE like @BARCODE))
and (@VENDORID is null or PV.VENDORID = @VENDORID)
and MPI.ISACTIVE = 1
and MP.ISACTIVE = 1
order by P.NAME
option (recompile);