USP_DATAFORMTEMPLATE_VIEW_MKTSEGMENT
The load procedure used by the view dataform template "Segment View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@NAME | nvarchar(100) | INOUT | Name |
@DESCRIPTION | nvarchar(255) | INOUT | Description |
@CODE | nvarchar(10) | INOUT | Code |
@ISINUSE | bit | INOUT | Is in use |
@RECORDCOUNT | int | INOUT | Quantity |
@DATEREFRESHED | datetime | INOUT | Current as of |
@SEGMENTREFRESHPROCESSID | uniqueidentifier | INOUT | Segment refresh process ID |
@SEGMENTTYPECODE | tinyint | INOUT | Segment type code |
@SEGMENTTYPE | nvarchar(100) | INOUT | Segment type |
@PARENTLISTID | uniqueidentifier | INOUT | List |
@PARENTLIST | nvarchar(50) | INOUT | List |
@RENTALQUANTITY | int | INOUT | Rental quantity |
@RENTALCOST | money | INOUT | Rental cost |
@RENTALCOSTBASISCODE | tinyint | INOUT | Rental cost basis code |
@RENTALCOSTBASIS | nvarchar(100) | INOUT | Rental cost basis |
@EXCHANGEQUANTITY | int | INOUT | Exchange quantity |
@EXCHANGECOST | money | INOUT | Exchange cost |
@EXCHANGECOSTBASISCODE | tinyint | INOUT | Exchange cost basis code |
@EXCHANGECOSTBASIS | nvarchar(100) | INOUT | Exchange cost basis |
@RECEIVEDVIACODE | tinyint | INOUT | Received via code |
@RECEIVEDVIA | nvarchar(100) | INOUT | Received via |
@CATEGORY | nvarchar(100) | INOUT | Category |
@TYPECODE | tinyint | INOUT | Type code |
@STATUSCODE | tinyint | INOUT | Status code |
@SEGMENTLISTID | uniqueidentifier | INOUT | List segment ID |
@SEGMENTLISTIMPORTPROCESSID | uniqueidentifier | INOUT | List segment import process ID |
@SEGMENTLISTDEDUPEPROCESSID | uniqueidentifier | INOUT | List segment dedupe process ID |
@ISCONSOLIDATED | bit | INOUT | Is consolidated? |
@SHOWINQUERYDESIGNER | bit | INOUT | Show in query designer? |
@RECORDTYPENAME | nvarchar(50) | INOUT | Record type name |
@QUERYVIEWCATALOGID | uniqueidentifier | INOUT | Query view ID |
@PARENTSEGMENTID | uniqueidentifier | INOUT | Parent segment ID |
@PARENTSEGMENTNAME | nvarchar(100) | INOUT | Parent segment name |
@DEDUPLISTS | bit | INOUT | Process list duplicates |
@GROUPS | nvarchar(255) | INOUT | Groups |
@TOTALCOST | money | INOUT | Total cost |
@ORDERDATE | datetime | INOUT | Order date |
@EXPIRATIONDATE | datetime | INOUT | Expiration date |
@NUMBEROFCONTACTS | smallint | INOUT | # of contacts |
@DUPLICATERECORDCOUNT | int | INOUT | Duplicates |
@LISTCODE | nvarchar(255) | INOUT | List code |
@LISTCODEVALUEID | uniqueidentifier | INOUT | List code part definition values ID |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency ID |
@SITEID | uniqueidentifier | INOUT | Site ID |
@SITE | nvarchar(100) | INOUT | Site |
@CODEVALUEID | uniqueidentifier | INOUT | |
@ISHISTORICAL | bit | INOUT |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_VIEW_MKTSEGMENT]
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@NAME nvarchar(100) = null output,
@DESCRIPTION nvarchar(255) = null output,
@CODE nvarchar(10) = null output,
@ISINUSE bit = null output,
@RECORDCOUNT int = null output,
@DATEREFRESHED datetime = null output,
@SEGMENTREFRESHPROCESSID uniqueidentifier = null output,
@SEGMENTTYPECODE tinyint = null output,
@SEGMENTTYPE nvarchar(100) = null output,
@PARENTLISTID uniqueidentifier = null output,
@PARENTLIST nvarchar(50) = null output,
@RENTALQUANTITY integer = null output,
@RENTALCOST money = null output,
@RENTALCOSTBASISCODE tinyint = null output,
@RENTALCOSTBASIS nvarchar(100) = null output,
@EXCHANGEQUANTITY integer = null output,
@EXCHANGECOST money = null output,
@EXCHANGECOSTBASISCODE tinyint = null output,
@EXCHANGECOSTBASIS nvarchar(100) = null output,
@RECEIVEDVIACODE tinyint = null output,
@RECEIVEDVIA nvarchar(100) = null output,
@CATEGORY nvarchar(100) = null output,
@TYPECODE tinyint = null output,
@STATUSCODE tinyint = null output,
@SEGMENTLISTID uniqueidentifier = null output,
@SEGMENTLISTIMPORTPROCESSID uniqueidentifier = null output,
@SEGMENTLISTDEDUPEPROCESSID uniqueidentifier = null output,
@ISCONSOLIDATED bit = null output,
@SHOWINQUERYDESIGNER bit = null output,
@RECORDTYPENAME nvarchar(50) = null output,
@QUERYVIEWCATALOGID uniqueidentifier = null output,
@PARENTSEGMENTID uniqueidentifier = null output,
@PARENTSEGMENTNAME nvarchar(100) = null output,
@DEDUPLISTS bit = null output,
@GROUPS nvarchar(255) = null output,
@TOTALCOST money = null output,
@ORDERDATE datetime = null output,
@EXPIRATIONDATE datetime = null output,
@NUMBEROFCONTACTS smallint = null output,
@DUPLICATERECORDCOUNT int = null output,
@LISTCODE nvarchar(255) = null output,
@LISTCODEVALUEID uniqueidentifier = null output,
@BASECURRENCYID uniqueidentifier = null output,
@SITEID uniqueidentifier = null output,
@SITE nvarchar(100) = null output,
@CODEVALUEID uniqueidentifier = null output,
@ISHISTORICAL bit = null output
)
as
set nocount on;
set @DATALOADED = 0;
select
@DATALOADED = 1,
@NAME = [MKTSEGMENT].[NAME],
@DESCRIPTION = [MKTSEGMENT].[DESCRIPTION],
@SITEID = [MKTSEGMENT].[SITEID],
@SITE = [SITE].[NAME],
@CODE = [MKTSEGMENT].[CODE],
@ISINUSE = dbo.[UFN_MKTSEGMENT_ISINUSE]([MKTSEGMENT].[ID]),
@RECORDCOUNT =
(case
when [MKTSEGMENT].[SEGMENTTYPECODE] = 2 then [MKTSEGMENTLIST].[TOTALRECORDCOUNT]
when [MKTSEGMENT].[ISHISTORICAL] = 1 then [MKTSEGMENT].[HISTORICALQUANTITY]
else [IDSETREGISTER].[NUMROWS]
end),
@DATEREFRESHED = coalesce([MKTSEGMENT].[DATEREFRESHED], [IDSETREGISTER].[DATECHANGED], [MKTSEGMENTLIST].[DATECHANGED]),
@SEGMENTREFRESHPROCESSID = [MKTSEGMENTREFRESHPROCESS].[ID],
@SEGMENTTYPECODE = [MKTSEGMENT].[SEGMENTTYPECODE],
@SEGMENTTYPE = [MKTSEGMENT].[SEGMENTTYPE],
@PARENTLISTID = [MKTSEGMENTLIST].[LISTID],
@PARENTLIST = [MKTLIST].[NAME],
@RENTALQUANTITY = [MKTSEGMENTLIST].[RENTALQUANTITY],
@RENTALCOST = [MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT],
@RENTALCOSTBASISCODE = [MKTSEGMENTLIST].[RENTALCOSTBASISCODE],
@RENTALCOSTBASIS = [MKTSEGMENTLIST].[RENTALCOSTBASIS],
@EXCHANGEQUANTITY = [MKTSEGMENTLIST].[EXCHANGEQUANTITY],
@EXCHANGECOST = [MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT],
@EXCHANGECOSTBASISCODE = [MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE],
@EXCHANGECOSTBASIS = [MKTSEGMENTLIST].[EXCHANGECOSTBASIS],
@RECEIVEDVIACODE = [MKTSEGMENTLIST].[RECEIVEDVIACODE],
@RECEIVEDVIA = [MKTSEGMENTLIST].[RECEIVEDVIA],
@CATEGORY = [MKTSEGMENTCATEGORYCODE].[DESCRIPTION],
@TYPECODE = [MKTSEGMENTLIST].[TYPECODE],
@STATUSCODE = [MKTSEGMENTLIST].[STATUSCODE],
@SEGMENTLISTID = [MKTSEGMENTLIST].[ID],
@SEGMENTLISTIMPORTPROCESSID = [MKTSEGMENTLISTIMPORTPROCESS].[ID],
@SEGMENTLISTDEDUPEPROCESSID = [MKTSEGMENTLISTDEDUPEPROCESS].[ID],
@ISCONSOLIDATED = (case when [MKTSEGMENTLIST].[CONSOLIDATEDQUERYVIEWID] is null then 0 else 1 end),
@SHOWINQUERYDESIGNER = [QUERYVIEWCATALOG].[ROOTOBJECT],
@RECORDTYPENAME = [RECORDTYPE].[NAME],
@QUERYVIEWCATALOGID = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID],
@PARENTSEGMENTID = [PARENTSEGMENT].[ID],
@PARENTSEGMENTNAME = [PARENTSEGMENT].[NAME],
@DEDUPLISTS = cast((case when [MKTSEGMENTLISTDEDUPEPROCESS].[ID] is null then 0 else (case when dbo.[UFN_MKTSEGMENTLIST_DUPLICATEFIELDSEXIST]([MKTSEGMENTLIST].[ID]) = 1 then 1 else 0 end) end) as bit),
@GROUPS = (select stuff((select ', ' + [MKTSEGMENTGROUP].[NAME]
from dbo.[MKTSEGMENTGROUP]
inner join dbo.[MKTGROUPSEGMENTS] on [MKTGROUPSEGMENTS].[SEGMENTGROUPID] = [MKTSEGMENTGROUP].[ID]
where [MKTGROUPSEGMENTS].[SEGMENTID] = [MKTSEGMENT].[ID]
order by [MKTSEGMENTGROUP].[NAME]
for xml path(''), type
).value('.', 'varchar(max)')
, 1, 2, '')),
@TOTALCOST =
--Total base cost
((case when [MKTLIST].[BASERENTALCOSTBASISCODE] = 1 then --Per thousand
cast([MKTLIST].[BASERENTALCOST] * ([MKTSEGMENTLIST].[RENTALQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTLIST].[BASERENTALCOST]
end)
+
(case when [MKTLIST].[BASEEXCHANGECOSTBASISCODE] = 1 then --Per thousand
cast([MKTLIST].[BASEEXCHANGECOST] * ([MKTSEGMENTLIST].[EXCHANGEQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTLIST].[BASEEXCHANGECOST]
end))
+
--Total cost adjustments
((case when [MKTSEGMENTLIST].[RENTALCOSTBASISCODE] = 1 then --Per thousand
cast([MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT] * ([MKTSEGMENTLIST].[RENTALQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT]
end)
+
(case when [MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE] = 1 then --Per thousand
cast([MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT] * ([MKTSEGMENTLIST].[EXCHANGEQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT]
end)),
@ORDERDATE = [MKTSEGMENTLIST].[ORDERDATE],
@EXPIRATIONDATE = [MKTSEGMENTLIST].[EXPIRATIONDATE],
@NUMBEROFCONTACTS = [MKTSEGMENTLIST].[NUMBEROFCONTACTS],
@DUPLICATERECORDCOUNT = [MKTSEGMENTLIST].[DUPLICATERECORDCOUNT],
@LISTCODE = case when [MKTSEGMENTLIST].[ID] is null then [MKTRECORDSOURCE].[CODE] else [MKTLIST].[CODE] end,
@LISTCODEVALUEID = case when [MKTSEGMENTLIST].[ID] is null then [MKTRECORDSOURCE].[PARTDEFINITIONVALUESID] else [MKTLIST].[PARTDEFINITIONVALUESID] end,
@BASECURRENCYID = [MKTSEGMENT].[BASECURRENCYID],
@CODEVALUEID = [MKTSEGMENT].[PARTDEFINITIONVALUESID],
@ISHISTORICAL = [MKTSEGMENT].[ISHISTORICAL]
from dbo.[MKTSEGMENT]
left outer join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
left outer join dbo.[MKTSEGMENTREFRESHPROCESS] on [MKTSEGMENTREFRESHPROCESS].[SEGMENTID] = [MKTSEGMENT].[ID]
left outer join dbo.[MKTSEGMENTLISTIMPORTPROCESS] on [MKTSEGMENTLISTIMPORTPROCESS].[SEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
left outer join dbo.[MKTSEGMENTLISTDEDUPEPROCESS] on [MKTSEGMENTLISTDEDUPEPROCESS].[SEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
left outer join dbo.[IDSETREGISTER] on [IDSETREGISTER].[ID] = [MKTSEGMENT].[IDSETREGISTERID]
left outer join dbo.[RECORDTYPE] on [RECORDTYPE].[ID] = [IDSETREGISTER].[RECORDTYPEID] or [RECORDTYPE].[ID] = [MKTSEGMENTLIST].[IDSETRECORDTYPEID]
left outer join dbo.[MKTSEGMENTCATEGORYCODE] on [MKTSEGMENTCATEGORYCODE].[ID] = [MKTSEGMENT].[SEGMENTCATEGORYCODEID]
left outer join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]
left outer join dbo.[MKTSEGMENT] as [PARENTSEGMENT] on [PARENTSEGMENT].[ID] = [MKTSEGMENTLIST].[PARENTSEGMENTID]
left outer join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
left outer join dbo.[MKTRECORDSOURCE] on [MKTRECORDSOURCE].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
left outer join dbo.[SITE] on [SITE].[ID] = [MKTSEGMENT].[SITEID]
where [MKTSEGMENT].[ID] = @ID;
return 0;