USP_DATALIST_SALESORDER_BYPATRON
This datalist returns orders for a patron.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@SALESMETHODID | uniqueidentifier | IN | Sales method |
@SHOWDATERANGE | tinyint | IN | Show |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_SALESORDER_BYPATRON
(
@CONSTITUENTID uniqueidentifier,
@SALESMETHODID uniqueidentifier = null,
@SHOWDATERANGE tinyint = 0
)
as
set nocount on;
declare @SALESMETHODTYPECODE tinyint = null;
select @SALESMETHODTYPECODE = TYPECODE
from SALESMETHOD
where ID = @SALESMETHODID;
declare @CURRENTDATE datetime = null;
set @CURRENTDATE = getdate();
declare @STARTDATE date = null;
if @SHOWDATERANGE = 1
set @STARTDATE = dateadd(day,-29,@CURRENTDATE);
if @SHOWDATERANGE = 2
set @STARTDATE = dateadd(day,-89,@CURRENTDATE);
if @SHOWDATERANGE = 3
set @STARTDATE = dateadd(day,1,dateadd(month,-12,@CURRENTDATE));
select
SALESORDER.ID,
case SALESORDER.SALESMETHODTYPECODE
when 3 then
SALESORDER.DATEADDED
else
SALESORDER.TRANSACTIONDATE
end as [ORDERDATE],
convert(nvarchar(20),SALESORDER.SEQUENCEID) as ORDERNUMBER,
SALESORDER.AMOUNT as ORDERTOTAL,
(
select sum(SALESORDERPAYMENT.AMOUNT)
from SALESORDERPAYMENT
where SALESORDERID = SALESORDER.ID
)
as AMOUNTPAID,
SALESORDER.SALESMETHODTYPE as SALESMETHOD,
case SALESORDER.SALESMETHODTYPECODE
when 3 then
RESERVATION.ARRIVALDATE
else
(
select top 1 EVENT.STARTDATE
from dbo.EVENT
inner join dbo.SALESORDERITEMTICKET
on EVENT.ID = SALESORDERITEMTICKET.EVENTID
inner join dbo.SALESORDERITEM
on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
where SALESORDERITEM.SALESORDERID = SALESORDER.ID
order by EVENT.STARTDATE ASC
)
end as EVENTDATE,
case SALESORDER.SALESMETHODTYPECODE
when 3 then
case
when len(RESERVATION.ARRIVALTIME) > 0 then
RESERVATION.ARRIVALTIME
else
dbo.UFN_HOURMINUTE_GETFROMDATE(RESERVATION.STARTDATETIME)
end
else
(
select top 1 EVENT.STARTTIME
from dbo.EVENT
inner join dbo.SALESORDERITEMTICKET
on EVENT.ID = SALESORDERITEMTICKET.EVENTID
inner join dbo.SALESORDERITEM
on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
where SALESORDERITEM.SALESORDERID = SALESORDER.ID
order by EVENT.STARTDATE ASC
)
end as EVENTTIME,
dbo.UFN_SALESORDER_GETITEMDESCRIPTION(SALESORDER.ID) as ITEMDESCRIPTION,
SALESORDER.STATUS,
SALESORDER.SALESMETHODTYPECODE,
SALESORDER.STATUSCODE
from
dbo.SALESORDER
left outer join
dbo.RESERVATION on SALESORDER.ID = RESERVATION.ID
where
SALESORDER.CONSTITUENTID = @CONSTITUENTID and
(
@SHOWDATERANGE = 0
or (SALESORDER.SALESMETHODTYPECODE <> 3 and TRANSACTIONDATE >= @STARTDATE)
or (SALESORDER.SALESMETHODTYPECODE = 3 and SALESORDER.DATEADDED >= @STARTDATE)
) and
(SALESMETHODTYPECODE = @SALESMETHODTYPECODE or @SALESMETHODTYPECODE is null) and
(SALESORDER.STATUSCODE not in (0, 7) or SALESORDER.SALESMETHODTYPECODE = 3)
order by
ORDERDATE desc