UFN_DELIVERYMETHOD_INFO_BYSALESMETHODID
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESMETHODID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_DELIVERYMETHOD_INFO_BYSALESMETHODID(
@SALESMETHODID uniqueidentifier
)
returns @result table (
[HASDELIVERYMETHOD] bit,
[HASUNRESTRICTEDDELIVERY] bit,
[EARLIESTVALIDEVENTDATETIMEWITHOFFSET] datetimeoffset
)
with execute as caller
as begin
--Filtering out events that cannot be sold with any delivery methods available in this sales method
declare @CURRENTDATETIMEOFFSET datetimeoffset = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(sysutcdatetime(), 1);
declare @DELIVERYMETHODS table (
ID uniqueidentifier,
EARLIESTEVENTTIMEWITHOFFSET datetimeoffset
);
insert into @DELIVERYMETHODS
select
[DELIVERYMETHOD].[ID],
case
when [BLOCKDELIVERY] = 0 then null
when [BLOCKTIMEUNITCODE] = 0 then dateadd(hour,BLOCKTIMEVALUE,@CURRENTDATETIMEOFFSET)
when [BLOCKTIMEUNITCODE] = 1 then dateadd(day,BLOCKTIMEVALUE,@CURRENTDATETIMEOFFSET)
end as [OFFTIME]
from dbo.[DELIVERYMETHOD]
inner join dbo.[SALESMETHODDELIVERYMETHOD]
on [DELIVERYMETHOD].[ID] = [SALESMETHODDELIVERYMETHOD].[DELIVERYMETHODID]
where
[DELIVERYMETHOD].[ISACTIVE] = 1 and
[SALESMETHODDELIVERYMETHOD].[SALESMETHODID] = @SALESMETHODID
declare @HASDELIVERYMETHOD bit = 0
declare @HASUNRESTRICTEDDELIVERY bit = 0
declare @EARLIESTVALIDEVENTDATETIMEWITHOFFSET datetimeoffset = null
if exists(select top 1 1 from @DELIVERYMETHODS)
set @HASDELIVERYMETHOD = 1
else
set @HASDELIVERYMETHOD = 0
if exists(select top 1 1 from @DELIVERYMETHODS where [EARLIESTEVENTTIMEWITHOFFSET] is null)
set @HASUNRESTRICTEDDELIVERY = 1
else
begin
set @HASUNRESTRICTEDDELIVERY = 0
select top 1 @EARLIESTVALIDEVENTDATETIMEWITHOFFSET = [EARLIESTEVENTTIMEWITHOFFSET]
from @DELIVERYMETHODS
where [EARLIESTEVENTTIMEWITHOFFSET] is not null
order by [EARLIESTEVENTTIMEWITHOFFSET] asc
end
insert into @result
select @HASDELIVERYMETHOD, @HASUNRESTRICTEDDELIVERY, @EARLIESTVALIDEVENTDATETIMEWITHOFFSET
return
end