C_ProjectBillingRequestItmTP_2

DDL: C_PROJECTBILLINGREQUESTITMTP_2 Type: view_entity CONSUMPTION Package: ODATA_PROJBILLINGREQUEST_LIST

Item Details of Project Billing Request

C_ProjectBillingRequestItmTP_2 is a Consumption CDS View that provides data about "Item Details of Project Billing Request" in SAP S/4HANA. It reads from 1 data source (R_ProjectBillingRequestItemTP) and exposes 77 fields with key field ProjectBillingRequestItemUUID. It has 2 associations to related views. It is exposed through 1 OData service (UI_PROJECTBILLINGREQUEST). Part of development package ODATA_PROJBILLINGREQUEST_LIST.

Data Sources (1)

SourceAliasJoin Type
R_ProjectBillingRequestItemTP R_ProjectBillingRequestItemTP projection

Associations (2)

CardinalityTargetAliasCondition
[0..1] C_ProjBillgUserContactCard _ProjBillgUserContactCard $projection.BusinessPartnerUUID = _ProjBillgUserContactCard.BusinessPartnerUUID
[0..1] E_JournalEntryItem _JournalEntryItemExtension $projection.Ledger = _JournalEntryItemExtension.SourceLedger and $projection.CompanyCode = _JournalEntryItemExtension.CompanyCode and $projection.FiscalYear = _JournalEntryItemExtension.FiscalYear and $projection.AccountingDocument = _JournalEntryItemExtension.AccountingDocument and $projection.LedgerGLLineItem = _JournalEntryItemExtension.LedgerGLLineItem

Annotations (8)

NameValueLevelField
EndUserText.label Item Details of Project Billing Request view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #REQUIRED view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.representativeKey ProjectBillingRequestItemUUID view

OData Services (1)

ServiceBindingVersionContractRelease
UI_PROJECTBILLINGREQUEST UI_PROJECTBILLINGREQUEST V4 C1 NOT_RELEASED

Fields (77)

KeyFieldSource TableSource FieldDescription
KEY ProjectBillingRequestItemUUID ProjectBillingRequestItem ProjectBillingRequestItemUUID Item ID
ProjectBillingRequestUUID ProjectBillingRequestItem ProjectBillingRequestUUID
WBSElement Work Package
WBSDescription Work Package Name
BillingWBSElementExternalID Billing Element
BillingWBSElementDescription Billing Element Description
Material ProjectBillingRequestItem Material Product
MaterialNameasMaterialNamelocalized Product
MaterialGroup Material Group Name
CostCtrActivityTypeDesc ProjectBillingRequestItem CostCtrActivityTypeDesc Activity Type
WorkItem ProjectBillingRequestItem WorkItem Work Item
ServicesRenderedDate ProjectBillingRequestItem ServicesRenderedDate Service Date
NetPriceQuantity NetPriceQuantity Net Rate Unit
ProjBillgElmntEntrItmUUID ProjectBillingRequestItem ProjBillgElmntEntrItmUUID
ProjectBillingElementUUID ProjectBillingRequestItem ProjectBillingElementUUID
SalesDocumentItem ProjectBillingRequestItem SalesDocumentItem Sales Document Item
SalesDocument ProjectBillingRequestItem SalesDocument Sales Document / Item
ToBeBilledAmtInTransCrcy ProjectBillingRequestItem ToBeBilledAmtInTransCrcy Amount / Cost to Bill
ToBePostponedAmtInTransacCrcy ProjectBillingRequestItem ToBePostponedAmtInTransacCrcy Amount / Cost to Postpone
ToBePostponedAmtInProjectCrcy ProjectBillingRequestItem ToBePostponedAmtInProjectCrcy
ToBePostponedAmtInGlobalCrcy ProjectBillingRequestItem ToBePostponedAmtInGlobalCrcy
ToBeWrittenOffAmtInTransCrcy ProjectBillingRequestItem ToBeWrittenOffAmtInTransCrcy Amount / Cost to Write Off
OpenQuantity ProjectBillingRequestItem OpenQuantity Open Quantity
ToBeBilledQuantity ProjectBillingRequestItem ToBeBilledQuantity Quantity to Bill
ToBePostponedQuantity ProjectBillingRequestItem ToBePostponedQuantity Quantity to Postpone
ToBeWrittenOffQuantity ProjectBillingRequestItem ToBeWrittenOffQuantity Quantity to Write Off
ToBeWrittenOffAmtInProjectCrcy ProjectBillingRequestItem ToBeWrittenOffAmtInProjectCrcy
ToBeWrittenOffAmtInGlobalCrcy ProjectBillingRequestItem ToBeWrittenOffAmtInGlobalCrcy
ToBeBilledAmtInProjCurrency ProjectBillingRequestItem ToBeBilledAmtInProjCurrency
ToBeBilledAmtInGlobCurrency ProjectBillingRequestItem ToBeBilledAmtInGlobCurrency
PersonFullName Performed By
BusinessPartnerUUID ProjectBillingRequestItem BusinessPartnerUUID
ProjBillgReqItmCrtedByUser ProjectBillingRequestItem ProjBillgReqItmCrtedByUser Created By User
ProjBillgReqItmCrtedAtDteTme ProjectBillingRequestItem ProjBillgReqItmCrtedAtDteTme Created At Time
ProjBillgReqItmLastChgdBy ProjectBillingRequestItem ProjBillgReqItmLastChgdBy
ProjBillgReqItmLastChgdDteTme ProjectBillingRequestItem ProjBillgReqItmLastChgdDteTme
DocumentCurrency ProjectBillingRequestItem DocumentCurrency
QuantityUnit ProjectBillingRequestItem QuantityUnit
NetPriceQuantityUnit ProjectBillingRequestItem NetPriceQuantityUnit
ProjectCurrency ProjectBillingRequestItem ProjectCurrency
GlobalCurrency ProjectBillingRequestItem GlobalCurrency
TransactionCurrency ProjectBillingRequestItem TransactionCurrency
OpenAmountInTransCrcy ProjectBillingRequestItem OpenAmountInTransCrcy Open Amount / Cost
OpenAmountInProjectCurrency ProjectBillingRequestItem OpenAmountInProjectCurrency Open Amount / Cost in Project Currency
OpenAmountInGlobalCurrency ProjectBillingRequestItem OpenAmountInGlobalCurrency Open Amount / Cost in Global Currency
OpenRevenueAmtInDocCrcy ProjectBillingRequestItem OpenRevenueAmtInDocCrcy
BillableRevenueAmtInDocCrcy ProjectBillingRequestItem BillableRevenueAmtInDocCrcy To Bill
ManualBillgSelForPrjBlgReqItem ProjectBillingRequestItem ManualBillgSelForPrjBlgReqItem
BillingControlCategory ProjectBillingRequestItem BillingControlCategory
DueBillingDate ProjectBillingRequestItem DueBillingDate
ProjBillgReqItmSourceType ProjectBillingRequestItem ProjBillgReqItmSourceType
ProjectBillingRequestItemDesc ProjectBillingRequestItem ProjectBillingRequestItemDesc
ProjBillingRequestItemLongText ProjectBillingRequestItem ProjBillingRequestItemLongText Note
TimeSheetOvertimeCategory ProjectBillingRequestItem TimeSheetOvertimeCategory
TimeSheetOvertimeCategoryText _TimeSheetOvertimeCatText TimeSheetOvertimeCategoryText Overtime Category
MaterialByCustomer _CustomerMaterial MaterialByCustomer Customer Material
MaterialDescriptionByCustomer _CustomerMaterial MaterialDescriptionByCustomer Customer Material Description
BillingControlCategoryText _BillingControlCategoryText BillingControlCategoryText Billing Control Category
Ledger ProjectBillingRequestItem Ledger
FiscalYear
AccountingDocument ProjectBillingRequestItem AccountingDocument Journal Entry/Item/Fiscal Year
LedgerGLLineItem ProjectBillingRequestItem LedgerGLLineItem Journal Entry Item
CompanyCode ProjectBillingRequestItem CompanyCode Company Code
JournalEntrySemanticKey JournalEntrySemanticKey Journal Entry/Item/Fiscal Year
BaseUnitActualCost BaseUnitActualCost Cost Rate
NetPriceAmountInDocCrcyFoFltr NetPriceAmountInDocCrcy
curr232 Net Rate
virtualWorkItemNamecpdpfp_workitem_name Work Item
curr232 Amount / Cost to Postpone
dats8 Billing Due Date
PrjBlgElmEntrLastChgdAtDteTme _ProjectBillingElementEntryTP PrjBlgElmEntrLastChgdAtDteTme
BillingPlanServiceStartDate ProjectBillingRequestItem BillingPlanServiceStartDate Service Start Date
BillingPlanServiceEndDate ProjectBillingRequestItem BillingPlanServiceEndDate Service End Date
BillingPlanUsageCategory
ProjectBillingRequestStatus ProjectBillingRequestStatus
_ProjBillgUserContactCard _ProjBillgUserContactCard
_ProjectBillingRequest ProjectBillingRequestItem _ProjectBillingRequest
@EndUserText.label: 'Item Details of Project Billing Request'
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #MANDATORY
//@AccessControl.privilegedAssociations: [ '_UserContactCard' ]

@AccessControl.privilegedAssociations: [ '_ProjBillgUserContactCard' ]
@AccessControl.personalData.blocking: #REQUIRED
@VDM.usage.type: [ #TRANSACTIONAL_PROCESSING_SERVICE ]
//@Metadata.allowExtensions: true

//@Search.searchable: true

@ObjectModel.usageType: {
    sizeCategory: #XL,
    dataClass:  #TRANSACTIONAL,
    serviceQuality: #C
}
@ObjectModel: {
   semanticKey:       [ 'WBSElement' ],
   representativeKey: 'ProjectBillingRequestItemUUID'
}
//Customer Optimizer is trying to join via DOCLN instead of BELNR hence use hint

//@Consumption.dbHints: [ 'CS_JOIN_REDUCTION_MULTICOLUMN_FIRST(\'ACDOCA.BELNR\')' ]

// Add NO_SUBPLAN_SHARING as it shows good result in case of restricted user (see DCL) with no influence on unrestricted one

@Consumption.dbHints: [ 'CS_JOIN_REDUCTION_MULTICOLUMN_FIRST(\'ACDOCA.BELNR\')', 'NO_SUBPLAN_SHARING', 'NO_USE_HEX_PLAN' ]
@UI.presentationVariant: [{ requestAtLeast: ['ProjBillgReqItmHasPostponedVal', 'ProjectBillingRequestUUID' ] }]

define view entity C_ProjectBillingRequestItmTP_2
  as projection on R_ProjectBillingRequestItemTP as ProjectBillingRequestItem // Alias was added as it is necessary for configuration in scfd_registry


  //  association [0..1] to I_UserContactCard          as _UserContactCard           on  $projection.BusinessPartnerUUID =  _UserContactCard.BusinessPartnerUUID

  //                                                                                 and _UserContactCard.Person         <> ''


  association [0..1] to C_ProjBillgUserContactCard as _ProjBillgUserContactCard  on  $projection.BusinessPartnerUUID = _ProjBillgUserContactCard.BusinessPartnerUUID

  association [0..1] to E_JournalEntryItem         as _JournalEntryItemExtension on  $projection.Ledger             = _JournalEntryItemExtension.SourceLedger
                                                                                 and $projection.CompanyCode        = _JournalEntryItemExtension.CompanyCode
                                                                                 and $projection.FiscalYear         = _JournalEntryItemExtension.FiscalYear
                                                                                 and $projection.AccountingDocument = _JournalEntryItemExtension.AccountingDocument
                                                                                 and $projection.LedgerGLLineItem   = _JournalEntryItemExtension.LedgerGLLineItem

{
                 @UI.hidden: true
                 @EndUserText.label: 'Item ID'
                 @EndUserText.quickInfo: 'Item ID'
  key            ProjectBillingRequestItem.ProjectBillingRequestItemUUID,


                 @UI.hidden: true
                 ProjectBillingRequestItem.ProjectBillingRequestUUID,

                 @UI.lineItem: [{position: 60, importance: #HIGH }]
                 @EndUserText.label: 'Work Package'
                 @EndUserText.quickInfo: 'Work Package'
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.text.element: ['WBSDescription']
                 @UI.textArrangement: #TEXT_SEPARATE
                 _ProjectBillingElementEntryTP._WBSElement.WBSElementExternalID                                      as WBSElement,

                 @EndUserText.label: 'Work Package Name'
                 @EndUserText.quickInfo: 'Work Package Name'
                 @Semantics.text:true
                 _ProjectBillingElementEntryTP._WBSElement.WBSDescription                                            as WBSDescription,

                 @UI.lineItem: [{position: 30}]
                 @EndUserText.label: 'Billing Element'
                 @EndUserText.quickInfo: 'Billing Element'
                 @ObjectModel.text.element: ['BillingWBSElementDescription']
                 @UI.textArrangement: #TEXT_SEPARATE
                 _ProjectBillingElementEntryTP._ProjectBillingElement._WBSElement.WBSElementExternalID               as BillingWBSElementExternalID,

                 @EndUserText.label: 'Billing Element Description'
                 @EndUserText.quickInfo: 'Billing Element Description'
                 @Semantics.text:true
                 _ProjectBillingElementEntryTP._ProjectBillingElement._WBSElement.WBSDescription                     as BillingWBSElementDescription,

                 @UI.hidden: true
                 @UI.lineItem: [{position: 210, importance: #HIGH }]
                 @EndUserText.label: 'Product'
                 @EndUserText.quickInfo: 'Material'
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.text.element: ['MaterialName']
                 @Consumption.semanticObject: 'Material'
                 @Semantics.text:true
                 ProjectBillingRequestItem.Material,

                 @EndUserText.label: 'Product'
                 @EndUserText.quickInfo: 'Product'
                 ProjectBillingRequestItem._Material._Text.MaterialName                                              as MaterialName      : localized,

                 @UI.hidden:true
                 ProjectBillingRequestItem._Material._MaterialGroup._Text.MaterialGroupName                          as MaterialGroupName : localized,

                 @UI: { lineItem: [ { position: 10, importance: #HIGH } ] , identification: [{valueQualifier: 'timeAndExpenseItemsFacetID', position: 10},{valueQualifier: 'FixedPriceFacetID', position: 10}] }
                 @EndUserText.label: 'Material Group Name'
                 @EndUserText.quickInfo: 'Material Group Name'
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.text.element: ['MaterialGroupName']
                 @Consumption.semanticObject: 'MaterialGroup'
                 ProjectBillingRequestItem._Material.MaterialGroup,
                 //                 ProjectBillingRequestItem.MaterialGroup,


                 @UI.lineItem: [{position: 220, importance: #HIGH }]
                 @EndUserText.label: 'Activity Type'
                 @EndUserText.quickInfo: 'Activity Type'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.CostCtrActivityTypeDesc,

                 @UI: { lineItem:  [ { position: 70, importance: #HIGH } ] }
                 @EndUserText.label: 'Work Item'
                 @EndUserText.quickInfo: 'Work Item'
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.text.element: ['WorkItemName']
                 @Consumption.semanticObject: 'WorkItem'
                 @Consumption.valueHelpDefinition: [{ entity:  { name: 'C_ProjBillgReqWrkPckgWrkItmVH', element: 'WorkItem' } ,
                                additionalBinding: [{ localElement: 'ProjectBillingRequestUUID',
                                                           element: 'ProjectBillingRequestUUID',
                                                           usage: #FILTER}] } ]
                 ProjectBillingRequestItem.WorkItem,

                 @UI: { lineItem: [ { position: 50, importance: #HIGH } ] }
                 @EndUserText.label: 'Service Date'
                 @EndUserText.quickInfo: 'Service Date'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ServicesRenderedDate,

                 @UI: { lineItem:  [ { position: 150, importance: #HIGH } ]}
                 @Semantics.quantity.unitOfMeasure: 'NetPriceQuantityUnit'
                 @EndUserText.label: 'Net Rate Unit'
                 @EndUserText.quickInfo: 'Net Rate Unit'
                 @ObjectModel.sort.enabled: true
                 NetPriceQuantity,

                 @UI.hidden: true
                 ProjectBillingRequestItem.ProjBillgElmntEntrItmUUID,

                 @UI.hidden: true
                 ProjectBillingRequestItem.ProjectBillingElementUUID,

                 @EndUserText.label: 'Sales Document Item'
                 @EndUserText.quickInfo: 'Sales Document Item'
                 @UI.hidden: true
                 ProjectBillingRequestItem.SalesDocumentItem,

                 @UI.hidden: true
                 @EndUserText.label: 'Sales Document / Item'
                 @EndUserText.quickInfo: 'Sales Document / Item'
                 @ObjectModel.text.element: ['SalesOrderItemConcatenatedID']
                 @UI.textArrangement: #TEXT_ONLY
                 ProjectBillingRequestItem.SalesDocument                                                             as SalesDocument,

                 @UI: { lineItem: [ { position: 200, importance: #HIGH } ] }
                 @UI.hidden: true
                 @EndUserText.label: 'Sales Document / Item'
                 @EndUserText.quickInfo: 'Sales Document / Item'
                 @Consumption.semanticObject: 'SalesDocument' // Uncommenting due to UI inconsistencies

                 @Semantics.text:true
                 ProjectBillingRequestItem.SalesOrderItemConcatenatedID,

                 @UI: { lineItem: [ { position: 90, importance: #HIGH } ] }
                 @Semantics.amount.currencyCode: 'TransactionCurrency'
                 @EndUserText.label: 'Amount / Cost to Bill'
                 @EndUserText.quickInfo: 'Amount / Cost to Bill'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ToBeBilledAmtInTransCrcy,


                 @UI: { lineItem: [ { position: 100, importance: #HIGH } ]}
                 @Semantics.amount.currencyCode: 'TransactionCurrency'
                 @EndUserText.label: 'Amount / Cost to Postpone'
                 @EndUserText.quickInfo: 'Amount / Cost to Postpone'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ToBePostponedAmtInTransacCrcy,

                 @UI.hidden: true
                 @Semantics.amount.currencyCode: 'ProjectCurrency'
                 ProjectBillingRequestItem.ToBePostponedAmtInProjectCrcy,

                 @UI.hidden: true
                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 ProjectBillingRequestItem.ToBePostponedAmtInGlobalCrcy,

                 @UI: { lineItem: [ { position: 110, importance: #HIGH } ] }
                 @Semantics.amount.currencyCode: 'TransactionCurrency'
                 @EndUserText.label: 'Amount / Cost to Write Off'
                 @EndUserText.quickInfo: 'Amount / Cost to Write Off'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ToBeWrittenOffAmtInTransCrcy,


                 @UI: { lineItem:  [ { position: 120, importance: #HIGH } ]}
                 @EndUserText.label: 'Open Quantity'
                 @EndUserText.quickInfo: 'Open Quantity'
                 @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.OpenQuantity,

                 @UI: { lineItem: [ { position: 130, importance: #HIGH } ] }
                 @EndUserText.label: 'Quantity to Bill'
                 @EndUserText.quickInfo: 'Quantity to Bill'
                 @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ToBeBilledQuantity,

                 @UI: { lineItem: [ { position: 140, importance: #HIGH } ] }
                 @EndUserText.label: 'Quantity to Postpone'
                 @EndUserText.quickInfo: 'Quantity to Postpone'
                 @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ToBePostponedQuantity,

                 @UI: { lineItem: [ { position: 150, importance: #HIGH } ]}
                 @EndUserText.label: 'Quantity to Write Off'
                 @EndUserText.quickInfo: 'Quantity to Write Off'
                 @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ToBeWrittenOffQuantity,

                 @UI.hidden: true
                 @Semantics.amount.currencyCode: 'ProjectCurrency'
                 ProjectBillingRequestItem.ToBeWrittenOffAmtInProjectCrcy,

                 @UI.hidden: true
                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 ProjectBillingRequestItem.ToBeWrittenOffAmtInGlobalCrcy,

                 @UI.hidden: true
                 @Semantics.amount.currencyCode: 'ProjectCurrency'
                 ProjectBillingRequestItem.ToBeBilledAmtInProjCurrency,

                 @UI.hidden: true
                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 ProjectBillingRequestItem.ToBeBilledAmtInGlobCurrency,

                 @UI:{ lineItem: [{ position: 20, type: #AS_CONTACT, value: '_ProjBillgUserContactCard', label: 'Performed By', importance: #HIGH } ] } //, identification: [{valueQualifier: 'timeAndExpenseItemsFacetID', position: 10}]}

                 @EndUserText.label: 'Performed By'
                 @EndUserText.quickInfo: 'Performed By'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem._PersonWorkAgreement_1.PersonFullName                                     as PersonFullName,

                 @UI.hidden: true
                 ProjectBillingRequestItem.BusinessPartnerUUID                                                       as BusinessPartnerUUID,

                 @UI.hidden: true
                 @EndUserText.label: 'Created By User'
                 @EndUserText.quickInfo: 'Created By User'
                 ProjectBillingRequestItem.ProjBillgReqItmCrtedByUser                                                as ProjBillgReqItmCrtedByUser,

                 @UI.hidden: true
                 @EndUserText.label: 'Created At Time'
                 @EndUserText.quickInfo: 'Created At Time'
                 ProjectBillingRequestItem.ProjBillgReqItmCrtedAtDteTme                                              as ProjBillgReqItmCrtedAtDteTme,

                 @UI.hidden: true
                 ProjectBillingRequestItem.ProjBillgReqItmLastChgdBy,

                 @UI.hidden: true
                 ProjectBillingRequestItem.ProjBillgReqItmLastChgdDteTme,

                 @Semantics.currencyCode: true
                 ProjectBillingRequestItem.DocumentCurrency,

                 @Semantics.unitOfMeasure: true
                 ProjectBillingRequestItem.QuantityUnit,

                 @Semantics.unitOfMeasure: true
                 ProjectBillingRequestItem.NetPriceQuantityUnit,

                 @Semantics.currencyCode: true
                 ProjectBillingRequestItem.ProjectCurrency,

                 @Semantics.currencyCode: true
                 ProjectBillingRequestItem.GlobalCurrency,

                 @Semantics.currencyCode: true
                 ProjectBillingRequestItem.TransactionCurrency,

                 @UI: { lineItem:  [ { position: 80, importance: #HIGH } ] }
                 @EndUserText.label: 'Open Amount / Cost'
                 @EndUserText.quickInfo: 'Open Amount / Cost'
                 @Semantics.amount.currencyCode: 'TransactionCurrency'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.OpenAmountInTransCrcy,


                 @UI: { lineItem:  [ { position: 210, importance: #HIGH } ] }
                 @EndUserText.label: 'Open Amount / Cost in Project Currency'
                 @EndUserText.quickInfo: 'Open Amount / Cost in Project Currency'
                 @Semantics.amount.currencyCode: 'ProjectCurrency'
                 ProjectBillingRequestItem.OpenAmountInProjectCurrency,

                 @EndUserText.label: 'Open Amount / Cost in Global Currency'
                 @EndUserText.quickInfo: 'Open Amount / Cost in Global Currency'
                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 ProjectBillingRequestItem.OpenAmountInGlobalCurrency,

                 @Semantics.amount.currencyCode: 'DocumentCurrency'
                 ProjectBillingRequestItem.OpenRevenueAmtInDocCrcy,

                 @UI: { lineItem:  [ { position: 160, importance: #HIGH } ] }
                 @Semantics.amount.currencyCode: 'DocumentCurrency'
                 @EndUserText.label: 'To Bill'
                 @EndUserText.quickInfo: 'To Bill'   //Billable Amount

                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.BillableRevenueAmtInDocCrcy, //Billable Amount


                 @UI.hidden: true
                 ProjectBillingRequestItem.ManualBillgSelForPrjBlgReqItem,
                 ProjectBillingRequestItem.BillingControlCategory,
                 @UI.hidden: true
                 ProjectBillingRequestItem.DueBillingDate,
                 @UI.hidden: true
                 ProjectBillingRequestItem.ProjBillgReqItmSourceType,
                 ProjectBillingRequestItem.ProjectBillingRequestItemDesc,

                 @EndUserText.label: 'Note'
                 @EndUserText.quickInfo: 'Note'
                 @Semantics.text: true
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.ProjBillingRequestItemLongText                                            as ProjBillingRequestItemLongText,

                 @UI.hidden: true
                 @ObjectModel.text.element: ['TimeSheetOvertimeCategoryText']
                 ProjectBillingRequestItem.TimeSheetOvertimeCategory,

                 @EndUserText.label: 'Overtime Category'
                 @EndUserText.quickInfo: 'Overtime Category'
                 _TimeSheetOvertimeCatText.TimeSheetOvertimeCategoryText,

                 @EndUserText.label: 'Customer Material'
                 @EndUserText.quickInfo: 'Customer Material'
                 @ObjectModel.sort.enabled: true
                 _CustomerMaterial.MaterialByCustomer,

                 @EndUserText.label: 'Customer Material Description'
                 @EndUserText.quickInfo: 'Customer Material Description'
                 @ObjectModel.sort.enabled: true
                 _CustomerMaterial.MaterialDescriptionByCustomer,


                 //                 @UI.hidden: true //to be deleted after ICO auth concept is done

                 //                 ProjectBillingRequestItem.ProjBillgElmntEntrSourceType                                                          as ProjBillgElmntEntrSourceType, //For diff bet fixed price n T&E



                 @EndUserText.label: 'Billing Control Category'
                 @EndUserText.quickInfo: 'Billing Control Category'
                 _BillingControlCategoryText.BillingControlCategoryText                                              as BillingControlCategoryText,

                 @UI.hidden: true
                 ProjectBillingRequestItem.Ledger,
                 @UI.hidden:true
                 cast( ProjectBillingRequestItem.FiscalYear as fis_gjahr_no_conv preserving type )                   as FiscalYear,
                 @UI.hidden: true
                 @EndUserText.label: 'Journal Entry/Item/Fiscal Year'
                 @EndUserText.quickInfo: 'Journal Entry/Item/Fiscal Year'
                 @ObjectModel.text.element: ['JournalEntrySemanticKey']
                 @UI.textArrangement: #TEXT_ONLY
                 @Consumption.semanticObject: 'AccountingDocument'
                 ProjectBillingRequestItem.AccountingDocument,
                 @EndUserText.label: 'Journal Entry Item'
                 @EndUserText.quickInfo: 'Journal Entry Item'
                 @UI.hidden: true
                 ProjectBillingRequestItem.LedgerGLLineItem,
                 @UI.hidden: true
                 @EndUserText.label: 'Company Code'
                 @EndUserText.quickInfo: 'Company Code'
                 //_ProjectBillingElementEntryTP._WBSElement.CompanyCode                                                           as CompanyCode,

                 ProjectBillingRequestItem.CompanyCode                                                               as CompanyCode,

                 @UI.hidden:true
                 @EndUserText.label: 'Journal Entry/Item/Fiscal Year'
                 @EndUserText.quickInfo: 'Journal Entry/Item/Fiscal Year'
                 @ObjectModel.sort.enabled: true
                 @Semantics.text:true
                 //                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'

                 //  virtual        JournalEntrySemanticKey        : abap.char( 30 ),

                 JournalEntrySemanticKey                                                                             as JournalEntrySemanticKey,

                 @UI.hidden: true
                 @EndUserText.label: 'Cost Rate'
                 @EndUserText.quickInfo: 'Cost Rate'
                 @Semantics.amount.currencyCode: 'TransactionCurrency'
                 @ObjectModel.sort.enabled: false
                 @ObjectModel.filter.enabled: false
                 @Consumption.filter.hidden: true
                 //@ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'

                 //virtual        BaseUnitActualCost             : abap.curr( 23, 2 ),

                 BaseUnitActualCost,

                 @UI.hidden: true
                 NetPriceAmountInDocCrcy                                                                             as NetPriceAmountInDocCrcyFoFltr,

                 @Semantics.amount.currencyCode: 'DocumentCurrency'
                 @EndUserText.label: 'Net Rate'
                 @EndUserText.quickInfo: 'Net Rate'
                 @ObjectModel.filter.enabled: true
                 @ObjectModel.sort.enabled: false
                 //@ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'

                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        NetPriceAmountInDocCrcy        : abap.curr( 23, 2 ),


                 @UI.hidden: true
                 @EndUserText.label: 'Work Item'
                 @EndUserText.quickInfo: 'Work Item'
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @Semantics.text:true
  virtual        WorkItemName                   : /cpd/pfp_workitem_name,

                 @Semantics.amount.currencyCode: 'TransactionCurrency'
                 @EndUserText.label: 'Amount / Cost to Postpone'
                 @EndUserText.quickInfo: 'Amount / Cost to Postpone'
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        OnAcctToBePostpnAmtInTransCrcy : abap.curr( 23, 2 ),

                 @UI.hidden: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        ProjBillgReqItmHasBillableVal  : boolean,
                 @UI.hidden: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        ProjBillgReqItmHasWrtOffVal    : boolean,
                 @UI.hidden: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        ProjBillgReqItmHasPostponedVal : boolean,

                 @EndUserText.label: 'Billing Element'
                 @EndUserText.quickInfo: 'Manual Billing Element'
                 @ObjectModel.text.element: ['BillingWBSElementDescription']
                 @UI.textArrangement: #TEXT_SEPARATE
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.sort.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS_SORT'
                 //                 @Consumption.valueHelpDefinition: [{ entity:  { name: 'C_PrjBlgReqManualItmWBSVH', element: 'WBSElement' } ,

                 //                                                      additionalBinding: [{ localElement: 'ProjectBillingRequestUUID',

                 //                                                                            element: 'ProjectBillingRequestUUID',

                 //                                                                            usage: #FILTER_AND_RESULT },

                 //                                                                          { localElement: 'BillingWBSElementDescription', element: 'WBSDescription', usage: #RESULT }] }]

                 @Consumption.valueHelpDefinition: [{ entity:  { name: 'C_PrjBlgReqManualItmWBSVH', element: 'WBSElement' } ,
                 additionalBinding: [{ localElement: 'ProjectBillingRequestUUID',
                     element: 'ProjectBillingRequestUUID',
                     usage: #FILTER_AND_RESULT },
                   { localElement: 'BillingPlanUsageCategory',
                     element: 'BillingPlanUsageCategory',
                     usage: #FILTER },
                   { localElement: 'BillingWBSElementDescription',
                     element: 'WBSDescription',
                     usage: #RESULT },
                   { localElement: 'ProjectBillingElementUUID',
                     element: 'ProjectBillingElementUUID',
                     usage: #RESULT },
                   { localElement: 'MaterialName',
                     element: 'MaterialName',
                     usage: #RESULT },
                   { localElement: 'MaterialGroup',
                     element: 'MaterialGroup',
                     usage: #RESULT },
                   { localElement: 'MaterialGroupName',
                     element: 'MaterialGroupName',
                     usage: #RESULT },
                   { localElement: 'MaterialByCustomer',
                     element: 'MaterialByCustomer',
                     usage: #RESULT },
                   { localElement: 'MaterialDescriptionByCustomer',
                     element: 'MaterialDescriptionByCustomer',
                     usage: #RESULT },
                   { localElement: 'SalesOrderItemConcatenatedID',
                     element: 'SalesOrderItemConcatenatedID',
                     usage: #RESULT } ] }]
  virtual        ProjectBillingReqManualItemWBS : pbri_manualwbs,

                 @EndUserText.label: 'Material'
                 @EndUserText.quickInfo: 'Manual Material'
                 @ObjectModel.text.element: ['Material']
                 @UI.textArrangement: #TEXT_ONLY
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.sort.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS_SORT'
                 @Consumption.valueHelpDefinition: [{ entity:  { name: 'C_PrjBlgReqManualItmMaterialVH', element: 'Material' } }]
  virtual        ProjBillgReqManualItemMaterial : pbri_manualmatl,

                 @EndUserText.label: 'To Bill'
                 @EndUserText.quickInfo: 'To Bill'
                 @Semantics.amount.currencyCode: 'DocumentCurrency'
                 @Consumption.filter.hidden:false
                 @ObjectModel.filter.enabled: true
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.sort.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS_SORT'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        PrjBlgReqItmMnlBllbleRevnAmt   : pbri_billablerevnindoccrcy,

                 @EndUserText.label: 'Service Date'
                 @EndUserText.quickInfo: 'Service Date'
                 @Consumption.filter.hidden:false
                 @ObjectModel.filter.enabled: true
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.sort.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS_SORT'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        ProjBillgReqItmMnlSrvcRndrdDte : pbri_manualdate,

                 @EndUserText.label: 'Quantity'
                 @EndUserText.quickInfo: 'Quantity'
                 @Consumption.filter.hidden:false
                 @ObjectModel.filter.enabled: true
                 @ObjectModel.sort.enabled: true
                 @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.sort.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS_SORT'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        ProjBillgReqItmMnlToBeBlldQty  : pbri_tobebilledqty,


                 @EndUserText.label: 'Billing Due Date'
                 @EndUserText.quickInfo: 'Billing Due Date'
                 @Consumption.filter.hidden:false
                 @ObjectModel.filter.enabled: true
                 @ObjectModel.sort.enabled: true
                 @ObjectModel.sort.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS_SORT'
                 @ObjectModel.filter.transformedBy: 'ABAP:CL_PBE_VIRTUALFIELDS'
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual        BillingPlanBillingDate         : abap.dats(8),

                 //                 @UI.hidden: true

                 //                 @Semantics.amount.currencyCode: 'ProjectCurrency'

                 //                 _ProjectBillingElementEntryTP.OriginalAmountInProjectCrcy, - not used



                 _ProjectBillingElementEntryTP.PrjBlgElmEntrLastChgdAtDteTme,

                 @EndUserText.label: 'Service Start Date'
                 @EndUserText.quickInfo: 'Service Start Date'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.BillingPlanServiceStartDate,

                 @EndUserText.label: 'Service End Date'
                 @EndUserText.quickInfo: 'Service End Date'
                 @ObjectModel.sort.enabled: true
                 ProjectBillingRequestItem.BillingPlanServiceEndDate,

                 @UI.hidden: true
                 _ProjectBillingElementEntryTP._ProjectBillingElement._SalesDocItemBillPlan.BillingPlanUsageCategory as BillingPlanUsageCategory,

                 @UI.hidden: true
                 ProjectBillingRequestStatus                                                                         as ProjectBillingRequestStatus,

                 //Associations

                 //_UserContactCard,

                 _ProjBillgUserContactCard,

                 ProjectBillingRequestItem._ProjectBillingRequest,

                 _ProjectBillingRequestTP : redirected to parent C_ProjectBillingRequestTP_2

}
where
              ProjectBillingCategory      <> 'ICBL'
  and(
              ProjectBillingRequestStatus <> 'C'
    or(
              Material                    is not initial
      and(
              ProjBillgReqItmSourceType   =  'B'
        or    ProjBillgReqItmSourceType   =  'M'
        or    Material                    =  'A002'
        or(
              DueBillingDate              <= ProjectBillingRequestItem.UserLocalDate
          and ServicesRenderedDate        <= DueBillingDate
        )
        or(
              DueBillingDate              >  ProjectBillingRequestItem.UserLocalDate
          and ServicesRenderedDate        <= ProjectBillingRequestItem.UserLocalDate
        )
      )
    )
  )