USP_DATALIST_MERCHANDISEPRODUCTINSTANCEHISTORY

Parameters

Parameter Parameter Type Mode Description
@MERCHANDISEPRODUCTID uniqueidentifier IN
@ACTIONTYPECODE tinyint IN
@SOURCETYPECODE tinyint IN
@BATCHID uniqueidentifier IN
@MERCHANDISEADJUSTMENTREASONCODEID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@DATESELECTTYPE tinyint IN
@FROMDATE date IN
@THROUGHDATE date IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_MERCHANDISEPRODUCTINSTANCEHISTORY
(
    @MERCHANDISEPRODUCTID uniqueidentifier,
    @ACTIONTYPECODE tinyint = null,
    @SOURCETYPECODE tinyint = null,
    @BATCHID uniqueidentifier = null,
    @MERCHANDISEADJUSTMENTREASONCODEID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @DATESELECTTYPE tinyint = 0,
    @FROMDATE date = null,
    @THROUGHDATE date = null
)
as
set nocount on;

declare @ISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID)

select 
    mpi.ID as PARENTID,
    mpih.ACTIONTYPE as RELATIONALCAPTION,
    cast('3b76e98f-82a3-462e-8873-25984e93419c' as uniqueidentifier) as VIEWFORMID,
    mpih.ID as VIEWFORMCONTEXTID,
    mpi.ID as ITEMID,
    mpi.BARCODE,
    mpi.ITEMDETAILS,
    mpih.ID as ITEMHISTORYID,
    cast(mpih.ACTIONDATE as datetime) as ACTIONDATE,
    mpih.ACTIONTYPECODE,
    mpih.ACTIONTYPE,
    case mpih.SOURCETYPECODE when 0 then mpih.SOURCETYPE when 1 then mpih.SOURCETYPE + ' ' + BATCH.BATCHNUMBER end as SOURCELABEL,
    mpih.ONHANDQUANTITY,
    mpih.QUANTITY,
    case mpih.ACTIONTYPECODE 
        when 2 then mpih.QUANTITY - mpih.ONHANDQUANTITY
        else mpih.QUANTITY
    end as CHANGEQUANTITY,
    case mpih.ACTIONTYPECODE 
        when 2 then mpih.QUANTITY
        else mpih.ONHANDQUANTITY + mpih.QUANTITY
    end as RESULTINGQUANTITY,
    mpih.COST,
    mpih.AVERAGECOST,
    mpih.VENDORID as VENDORID,
    CONSTITUENT.NAME as VENDORNAME,
    mpih.MERCHANDISEADJUSTMENTREASONCODEID,
    marc.DESCRIPTION as REASON,
    mpih.BATCHID
from dbo.MERCHANDISEPRODUCTINSTANCE as mpi
inner join dbo.MERCHANDISEPRODUCTINSTANCEHISTORY as mpih
    on (mpi.MERCHANDISEPRODUCTID = @MERCHANDISEPRODUCTID) and (mpi.ID = mpih.MERCHANDISEPRODUCTINSTANCEID)
left outer join dbo.CONSTITUENT
    on mpih.VENDORID = CONSTITUENT.ID
left outer join dbo.MERCHANDISEADJUSTMENTREASONCODE as marc
    on mpih.MERCHANDISEADJUSTMENTREASONCODEID = marc.ID
left outer join dbo.BATCH
    on mpih.BATCHID = BATCH.ID
where ((@ACTIONTYPECODE is null) or (mpih.ACTIONTYPECODE = @ACTIONTYPECODE))
    and ((@SOURCETYPECODE is null) or (mpih.SOURCETYPECODE = @SOURCETYPECODE))    
    and ((@BATCHID is null) or (mpih.BATCHID = @BATCHID))
    and ((@MERCHANDISEADJUSTMENTREASONCODEID is null) or (mpih.MERCHANDISEADJUSTMENTREASONCODEID = @MERCHANDISEADJUSTMENTREASONCODEID))        
    and ((@ISSYSADMIN = 1) or (dbo.UFN_SECURITY_APPUSER_GRANTED_CODETABLEENTRY(@CURRENTAPPUSERID, mpih.MERCHANDISEADJUSTMENTREASONCODEID) = 1))
    and ((@DATESELECTTYPE = 0) or ((not(@DATESELECTTYPE = 0)) and (ACTIONDATE between @FROMDATE and dateadd(day, 1, @THROUGHDATE))))    

union all

select distinct
    null as PARENTID,
    mpi.ITEMDETAILS as RELATIONALCAPTION,
    cast('539aa176-45b9-4ad9-af37-2a883a55ed04' as uniqueidentifier) as VIEWFORMID,
    mpi.ID as VIEWFORMCONTEXTID,
    mpi.ID as ITEMID,
    mpi.BARCODE,
    mpi.ITEMDETAILS,
    null as ITEMHISTORYID,
    null as ACTIONDATE,
    null as ACTIONTYPECODE,
    null as ACTIONTYPE,
    null as SOURCELABEL,
    null as ONHANDQUANTITY,
    null as QUANTITY,
    null as CHANGEQUANTITY,
    null as RESULTINGQUANTITY,
    null as COST,
    null as AVERAGECOST,
    null as VENDORID,
    null as VENDORNAME,
    null as MERCHANDISEADJUSTMENTREASONCODEID,
    null as REASON,
    null as BATCHID
from dbo.MERCHANDISEPRODUCTINSTANCE as mpi
inner join dbo.MERCHANDISEPRODUCTINSTANCEHISTORY as mpih
    on (mpi.MERCHANDISEPRODUCTID = @MERCHANDISEPRODUCTID) and (mpi.ID = mpih.MERCHANDISEPRODUCTINSTANCEID)
where ((@ACTIONTYPECODE is null) or (mpih.ACTIONTYPECODE = @ACTIONTYPECODE))
    and ((@SOURCETYPECODE is null) or (mpih.SOURCETYPECODE = @SOURCETYPECODE))    
    and ((@BATCHID is null) or (mpih.BATCHID = @BATCHID))
    and ((@MERCHANDISEADJUSTMENTREASONCODEID is null) or (mpih.MERCHANDISEADJUSTMENTREASONCODEID = @MERCHANDISEADJUSTMENTREASONCODEID))        
    and ((@ISSYSADMIN = 1) or (dbo.UFN_SECURITY_APPUSER_GRANTED_CODETABLEENTRY(@CURRENTAPPUSERID, mpih.MERCHANDISEADJUSTMENTREASONCODEID) = 1))
    and ((@DATESELECTTYPE = 0) or ((not(@DATESELECTTYPE = 0)) and (ACTIONDATE between @FROMDATE and dateadd(day, 1, @THROUGHDATE))))    

order by ACTIONDATE desc