@AbapCatalog.sqlViewName: 'CPRICINGELEMENT'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Consumption View for Pricing Element'
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
define view
C_PricingElement
//with parameters P_PricingProcedure:kalsm_d
as select from
I_PricingElement as PricingElement
//I_CURRENCY
left outer join I_Currency as tcurx_waers on tcurx_waers.Currency = PricingElement.TransactionCurrency
association [0..1] to C_PricingConditionType_VH as _PricingConditionType_VH on $projection.ConditionType = _PricingConditionType_VH.ConditionType
and $projection.ConditionApplication = _PricingConditionType_VH.ConditionApplication
association [0..1] to C_PricingConditionTypeName_VH as _PricingConditionTypeName_VH on $projection.ConditionType = _PricingConditionTypeName_VH.ConditionType
and $projection.ConditionApplication = _PricingConditionTypeName_VH.ConditionApplication
and $projection.ConditionTypeName = _PricingConditionTypeName_VH.ConditionTypeName
association [0..1] to C_ConditionRateValueUnit_VH as _ConditionRateValueUnitVH on $projection.ConditionRateValueUnit = _ConditionRateValueUnitVH.ConditionRateValueUnit
association [0..1] to C_ConditionQuantityUnit_VH as _ConditionQuantityUnitVH on $projection.ConditionQuantityUnit = _ConditionQuantityUnitVH.ConditionQuantityUnit
{
key PricingElement.PricingDocument as PricingDocument,
key PricingElement.PricingDocumentItem as PricingDocumentItem,
key PricingElement.PricingProcedureStep as PricingProcedureStep,
key PricingElement.PricingProcedureCounter as PricingProcedureCounter,
@ObjectModel.foreignKey.association: '_ConditionApplication'
PricingElement.ConditionApplication as ConditionApplication,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 20, lineItem : { position:20, importance:#HIGH } }
@ObjectModel.foreignKey.association: '_PricingConditionType'
@Consumption.valueHelpDefinition: [{association: '_PricingConditionType_VH'}]
PricingElement.ConditionType as ConditionType,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 30, lineItem : { position:30, importance:#HIGH } }
@ObjectModel.foreignKey.association: '_PricingConditionTypeName_VH'
@Consumption.valueHelpDefinition: [{association: '_PricingConditionTypeName_VH'}]
_PricingConditionTypeName_VH.ConditionTypeName as ConditionTypeName,
PricingElement.PricingDateTime as PricingDateTime,
PricingElement.ConditionCalculationType as ConditionCalculationType,
@UI: { identification.position: 80, lineItem : { position:80, importance:#HIGH } }
@Semantics.amount.currencyCode: 'ConditionBaseValueIntlUnit'
cast( PricingElement.ConditionBaseValue as vfprc_value_in_curr ) as ConditionBaseValue,
//ConditionBaseValueIntlUnit
@Semantics.currencyCode: true
case
when ConditionCalculationType = 'C'
or ConditionCalculationType = 'M'
or ConditionCalculationType = 'N'
or ConditionCalculationType = 'O'
or ConditionCalculationType = 'P'
or ConditionCalculationType = 'Q'
or ConditionCalculationType = 'V'
or ConditionCalculationType = 'D'
or ConditionCalculationType = 'E'
or ConditionCalculationType = 'F'
or ConditionCalculationType = 'R'
then
case PricingElement.ConditionBaseValue
when floor(cast(PricingElement.ConditionBaseValue as abap.curr(15,2)))
then cast(cast('0' as char5) as waers)
else
cast(cast('5' as char5) as waers)
end
when ConditionCalculationType = 'G'
or ConditionCalculationType = 'S'
then cast(cast('0' as char5) as waers)
else
cast(cast(coalesce(tcurx_waers.Decimals, 2) as char5) as waers)
end as ConditionBaseValueIntlUnit,
//ConditionBaseValueUnit
@UI: { identification.position: 90, lineItem : { position:90, importance:#HIGH } }
@Semantics.currencyCode: true
case
when ConditionCalculationType = 'C'
or ConditionCalculationType = 'M'
or ConditionCalculationType = 'N'
or ConditionCalculationType = 'O'
or ConditionCalculationType = 'P'
or ConditionCalculationType = 'Q'
or ConditionCalculationType = 'V'
or ConditionCalculationType = 'D'
or ConditionCalculationType = 'E'
or ConditionCalculationType = 'F'
or ConditionCalculationType = 'R'
then cast(substring (ConditionQuantityUnit, 1, 3) as vfprc_cndn_base_value_unit)
else cast(substring (TransactionCurrency, 1, 5) as vfprc_cndn_base_value_unit)
end as ConditionBaseValueUnit,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 40, lineItem : { position:40, importance:#HIGH } }
@Semantics.amount.currencyCode: 'ConditionRateValueIntlUnit'
cast( PricingElement.ConditionRateValue as vfprc_rate_value_in_curr ) as ConditionRateValue,
//ConditionRateValueIntlUnit
@Semantics.currencyCode: true
case
when ConditionCalculationType = 'A'
or ConditionCalculationType = 'H'
or ConditionCalculationType = 'I'
or ConditionCalculationType = 'J'
or ConditionCalculationType = 'K'
then cast(cast('3' as char5) as waers)
when ConditionCalculationType = 'V'
then cast(cast('5' as char5) as waers)
when ConditionCalculationType = 'W'
then cast(cast('6' as char5) as waers)
else
cast(cast(coalesce(tcurx_waers.Decimals, 2) as char5) as waers)
end as ConditionRateValueIntlUnit,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 50, lineItem : { position:50, importance:#HIGH } }
@Semantics.currencyCode: true
@Consumption.valueHelpDefinition: [{association: '_ConditionRateValueUnitVH'}]
PricingElement.ConditionCurrency as ConditionRateValueUnit,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 60, lineItem : { position:60, importance:#HIGH } }
PricingElement.ConditionQuantity as ConditionQuantity,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 70, lineItem : { position:70, importance:#HIGH } }
@ObjectModel.foreignKey.association: '_ConditionQuantityUnit'
@Consumption.valueHelpDefinition: [{association: '_ConditionQuantityUnitVH'}]
PricingElement.ConditionQuantityUnit as ConditionQuantityUnit,
@UI: { identification.position: 140, lineItem : { position:140, importance:#HIGH } }
PricingElement.ConditionIsForStatistics as ConditionIsForStatistics,
PricingElement.IsGroupCondition as IsGroupCondition,
@UI: { identification.position: 120, lineItem : { position:120, importance:#HIGH } }
PricingElement.TaxCode as TaxCode,
@UI: { identification.position: 130, lineItem : { position:130, importance:#HIGH } }
cast(' ' as price_element_tax_code_descr) as TaxCodeName,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@UI: { identification.position: 100, lineItem : { position:100, importance:#HIGH } }
@Semantics.amount.currencyCode:'TransactionCurrency'
PricingElement.ConditionAmount as ConditionAmount,
@UI: { identification.position: 110, lineItem : { position:110, importance:#HIGH } }
PricingElement.TransactionCurrency as TransactionCurrency,
@UI: { identification.position: 10, lineItem : { position:10, importance:#HIGH } }
PricingElement.ConditionInactiveReason as ConditionInactiveReason,
PricingElement._ConditionInactiveReason._Text[ 1: Language = $session.system_language ].ConditionInactiveReasonName,
@UI: { identification.position: 150, lineItem : { position:150, importance:#HIGH } }
PricingElement.ConditionIsManuallyChanged as ConditionIsManuallyChanged,
@ObjectModel.readOnly: true
@UI: { identification.position: 160, lineItem : { position:160, importance:#HIGH } }
cast(' ' as abap.char( 1 )) as ConditionIsDeletable,
cast(' ' as kalsm_d ) as PricingProcedure,
cast(' ' as abap.char ( 32 )) as SuperordinateDocument,
cast(' ' as abap.char ( 70 )) as SuperordinateDocumentItem,
//P_PricingProcedure???
//P_IsHeader
----------------------------------------------------------------------------------------
-- Associations --
----------------------------------------------------------------------------------------
PricingElement._ConditionApplication,
PricingElement._PricingConditionType,
_PricingConditionType_VH,
_PricingConditionTypeName_VH,
_ConditionRateValueUnitVH,
PricingElement._ConditionQuantityUnit,
_ConditionQuantityUnitVH
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_PRICINGCONDITIONTYPENAME_VH",
"I_CONDITIONINACTIVEREASON",
"I_CONDITIONINACTIVEREASONTEXT",
"I_CURRENCY",
"I_PRICINGELEMENT"
],
"ASSOCIATED":
[
"C_CONDITIONQUANTITYUNIT_VH",
"C_CONDITIONRATEVALUEUNIT_VH",
"C_PRICINGCONDITIONTYPENAME_VH",
"C_PRICINGCONDITIONTYPE_VH",
"I_CONDITIONAPPLICATION",
"I_PRICINGCONDITIONTYPE",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_PRICINGELEMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/