@AbapCatalog.sqlViewName: 'PTRRMONCHART'
@VDM.viewType: #COMPOSITE
@VDM.private:true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_Trrmonchart
as
select from I_WBSElement as WBSElement
inner join P_TRRMONWBSUNION as wbsunion on wbsunion.WBSElementInternalID = WBSElement.WBSElementInternalID
inner join tkkaa as tkkaa on tkkaa.abgsl = WBSElement.ResultAnalysisInternalID
inner join I_GLAccountLineItem as semtag on semtag.WBSElementInternalID = wbsunion.WBSElementIntIDUnion
and semtag.ProjectInternalID = WBSElement.ProjectInternalID
and semtag.CompanyCode = WBSElement.CompanyCode
inner join I_SemTagGLAccount as semTagGl on semTagGl.GLAccount = semtag.GLAccount
and semTagGl.ChartOfAccounts = semtag.ChartOfAccounts
inner join I_EvtBsdRevnRecgnEvalScp as evalscp on evalscp.CompanyCode = semtag.CompanyCode
and evalscp.Ledger = semtag.Ledger
left outer to one join I_EvtBsdRevnRecgnObjLifeCycle as lifecyc on lifecyc.CompanyCode = WBSElement.CompanyCode
and lifecyc.WBSElementInternalID = WBSElement.WBSElementInternalID
and lifecyc.Ledger = semtag.Ledger
{
key WBSElement.ProjectInternalID as ProjectInternalID,
key cast ( WBSElement.WBSElementInternalID as fins_trr_wbselementinternalid preserving type ) as WBSElementInternalID,
key semtag.Ledger as Ledger,
key semtag.CompanyCode as CompanyCode,
key semtag.FiscalYear as FiscalYear,
key semtag.FiscalPeriod as FiscalPeriod,
WBSElement.Project as ProjectExternalID,
cast ( WBSElement.WBSElement as fins_trr_billelement ) as WBSElementExternalID,
cast ( WBSElement.ResultAnalysisInternalID as fins_trr_recgnkey ) as ResultAnalysisInternalID,
semtag.FiscalYearPeriod as FiscalYearPeriod,
semtag.CompanyCodeCurrency as CompanyCodeCurrency,
sum(
case when semtag.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'ACT_COST'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_actcost)
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_actcost) end ) as RecognizableCostAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'BILL_REV'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_actrevn)
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_actrevn) end ) as RecognizableRevenueAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ADJ_REV'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_revnadjust )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_revnadjust ) end ) as RevenueAdjustmentAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ADJ_COS'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_cogsadj )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_cogsadj ) end ) as COGSAdjustmentAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'DEF_COST'
then cast (AmountInCompanyCodeCurrency as fins_trr_defcogs)
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_defcogs) end ) as DeferredCOGSAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'DEF_REV'
then cast (AmountInCompanyCodeCurrency as fins_trr_defrevn )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_defrevn ) end ) as DeferredRevenueAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ACR_REV'
then cast (AmountInCompanyCodeCurrency as fins_trr_accrevn )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_accrevn ) end ) as AccruedRevenueAmtInCCCrcy,
sum(
case when semtag.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ACR_COST'
then cast (AmountInCompanyCodeCurrency as fins_trr_acccogs )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_acccogs ) end ) as AccruedCOGSAmtInCCCrcy,
sum(
case when SemanticTag = 'RECO_COS'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_reccogs )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_reccogs ) end ) as RecognizedCOGSAmtInCCCrcy,
sum(
case when SemanticTag = 'RECO_REV'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_recrevn )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_recrevn ) end ) as RecognizedRevnAmtInCCCrcy,
sum(
case when SemanticTag = 'REC_MARGIN'
then cast (AmountInCompanyCodeCurrency * (-1) as fins_trr_recmargin )
else cast ( cast ('0' as abap.curr( 23,2)) as fins_trr_recmargin ) end ) as RecognizedMarginAmtInCCCrcy
}
where
semtag.AccountAssignmentType = 'PR'
and semTagGl.ValidityStartDate <= $session.system_date
and semTagGl.ValidityEndDate >= $session.system_date
and semtag.FiscalPeriod <> '000'
and semtag.WBSElementInternalID <> '00000000'
and WBSElement.ResultAnalysisInternalID <> ' '
and semTagGl.GLAccountHierarchy = evalscp.GLAccountHierarchy
and tkkaa.rflg1 = 'X'
group by
WBSElement.ProjectInternalID,
WBSElement.WBSElementInternalID,
WBSElement.ResponsiblePerson,
WBSElement.ResponsiblePersonName,
WBSElement.WBSElement,
WBSElement.ResultAnalysisInternalID,
WBSElement.WBSDescription,
WBSElement.Project,
semtag.CompanyCode,
semtag.CompanyCodeCurrency,
semtag.FiscalYear,
semtag.FiscalPeriod,
semtag.FiscalYearPeriod,
semtag.Ledger
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_EVTBSDREVNRECGNEVALSCP",
"I_EVTBSDREVNRECGNOBJLIFECYCLE",
"I_GLACCOUNTLINEITEM",
"I_SEMTAGGLACCOUNT",
"I_WBSELEMENT",
"P_TRRMONWBSUNION",
"TKKAA"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/