USP_REPORT_ADJUSTABLEDISCOUNT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESMETHODID | uniqueidentifier | IN | |
@APPUSERID | uniqueidentifier | IN | |
@APPUSERSELECTIONID | uniqueidentifier | IN | |
@INCLUDEREFUNDED | bit | IN | |
@FROMDATE | datetime | IN | |
@TODATE | datetime | IN |
Definition
Copy
create procedure dbo.USP_REPORT_ADJUSTABLEDISCOUNT
(
@SALESMETHODID uniqueidentifier = null,
@APPUSERID uniqueidentifier = null,
@APPUSERSELECTIONID uniqueidentifier = null,
@INCLUDEREFUNDED bit = 1,
@FROMDATE datetime = null,
@TODATE datetime = null
) as
set nocount on;
if @FROMDATE is null begin
select @FROMDATE = min(TRANSACTIONDATE) from dbo.SALESORDER where TRANSACTIONDATE is not null
end
if @TODATE is null begin
set @TODATE = getdate();
end
set @FROMDATE = cast(@FROMDATE as date);
set @TODATE = dbo.UFN_DATE_GETLATESTTIME(@TODATE);
declare @SALESMETHODTYPECODE tinyint = (select TYPECODE from dbo.SALESMETHOD where ID = @SALESMETHODID);
select
SO.SEQUENCEID ORDERNUMBER,
coalesce(cast(FT.DATE as datetime), [SO].[TRANSACTIONDATE]) ORDERDATE,
SOAD.CALCULATIONTYPECODE,
case SOAD.CALCULATIONTYPECODE
when 1 then SOAD.[PERCENT]
else SOAD.[AMOUNT]
end [VALUE],
SOAD.CALCULATIONTYPE,
U.USERNAME,
DRC.[DESCRIPTION] REASON
from dbo.UFN_SALESORDER_BETWEENDATES(@FROMDATE, @TODATE) as FILTEREDORDERS
inner join dbo.SALESORDER SO with (nolock) on SO.ID = FILTEREDORDERS.ID
inner join dbo.SALESORDERADJUSTABLEDISCOUNT SOAD with (nolock) on SOAD.SALESORDERID = SO.ID
inner join dbo.DISCOUNTREASONCODE DRC with (nolock) on DRC.ID = SOAD.DISCOUNTREASONCODEID
inner join dbo.APPUSER U with (nolock) on U.ID = SO.APPUSERID
left join dbo.FINANCIALTRANSACTION as FT with (nolock) on FT.ID = SO.REVENUEID and FT.DELETEDON is null
left join dbo.UFN_SALESORDER_GETREFUNDSTATUS_BULK() as REFUNDSTATUS on REFUNDSTATUS.ID = FILTEREDORDERS.ID
where
SO.STATUSCODE in (1,3,4) -- Complete, Confirmed, Finalized
and (@APPUSERID is null or U.ID = @APPUSERID)
and (@APPUSERSELECTIONID is null or U.ID in (select [ID] from dbo.UFN_IDSETREADER_GETRESULTS_GUID(@APPUSERSELECTIONID)))
and (@SALESMETHODID is null or SO.SALESMETHODTYPECODE = @SALESMETHODTYPECODE)
and (@INCLUDEREFUNDED = 1 or REFUNDSTATUS.REFUNDSTATUS = 0)
order by
SO.SEQUENCEID
option (recompile);