@AbapCatalog.sqlViewName: 'PSRVDOCRRSTBASE'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter:true
@VDM.viewType: #CONSUMPTION
@VDM.private:true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_SrvcDocRevnRecgnSTBase
with parameters
P_ToFiscalYearPeriod : fis_tojahrper_c
as
select from I_GLAccountLineItem as GLAccountLineItem
inner join I_EvtBsdRevnRecgnEvalScp as evalscp
on evalscp.CompanyCode = GLAccountLineItem.CompanyCode
and evalscp.Ledger = GLAccountLineItem.Ledger
inner join I_SemTagGLAccount as semTagGl
on semTagGl.GLAccount = GLAccountLineItem.GLAccount
and semTagGl.ChartOfAccounts = GLAccountLineItem.ChartOfAccounts
and semTagGl.ValidityStartDate <= $session.system_date
and semTagGl.ValidityEndDate >= $session.system_date
and ( semTagGl.SemanticTag = 'SALES_DED'
or semTagGl.SemanticTag = 'ACT_COST'
or semTagGl.SemanticTag = 'BILL_REV'
or semTagGl.SemanticTag = 'ADJ_REV'
or semTagGl.SemanticTag = 'ADJ_COS'
or semTagGl.SemanticTag = 'DEF_COST'
or semTagGl.SemanticTag = 'DEF_REV'
or semTagGl.SemanticTag = 'ACR_REV'
or semTagGl.SemanticTag = 'ACR_COST'
or semTagGl.SemanticTag = 'RES_MIL'
or semTagGl.SemanticTag = 'RES_MASD'
or semTagGl.SemanticTag = 'RES_MUC'
or semTagGl.SemanticTag = 'UNBILL_REV'
or semTagGl.SemanticTag = 'MCONTR_PL'
or semTagGl.SemanticTag = 'MCONTR_BS'
or semTagGl.SemanticTag = 'RECO_COS'
or semTagGl.SemanticTag = 'RECO_REV'
or semTagGl.SemanticTag = 'REC_MARGIN'
)
{
key GLAccountLineItem.ServiceContractType as ServiceDocumentType,
key GLAccountLineItem.ServiceContract as ServiceDocument,
key GLAccountLineItem.ServiceContractItem as ServiceDocumentItem,
key GLAccountLineItem.CompanyCode as CompanyCode,
key GLAccountLineItem.Ledger as Ledger,
@Semantics.currencyCode: true
GLAccountLineItem.CompanyCodeCurrency as CompanyCodeCurrency,
GLAccountLineItem.FiscalYearPeriod as ToFiscalYearPeriod,
GLAccountLineItem.AccountAssignmentType as AccountAssignmentType,
semTagGl.GLAccountHierarchy as GLAccountHierarchy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'SALES_DED' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as ActlSlsDeductionAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'ACT_COST' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizableCostAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'BILL_REV' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizableRevenueAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ADJ_REV' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RevenueAdjustmentAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ADJ_COS' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as COGSAdjustmentAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'DEF_COST' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as DeferredCOGSAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'DEF_REV' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as DeferredRevenueAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ACR_REV' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as AccruedRevenueAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ACR_COST' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as AccruedCOGSAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'RES_MIL' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as ImminentLossRsrvAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'RES_MASD' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as SalesDeductReserveAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'RES_MUC' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as UnrlzdCostsReserveAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'UNBILL_REV' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as UnbilledRevnInCoCodeCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'MCONTR_PL' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as MnlContrAccrPnLItmAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'MCONTR_BS' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as MnlContrAccrBalShtAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when semTagGl.SemanticTag = 'RECO_COS' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizedCOGSAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when semTagGl.SemanticTag = 'RECO_REV' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizedRevnAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when semTagGl.SemanticTag = 'REC_MARGIN' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizedMarginAmtInCCCrcy
}
where GLAccountLineItem.AccountAssignmentType = 'SC'
and GLAccountLineItem.FiscalYearPeriod <= $parameters.P_ToFiscalYearPeriod
and GLAccountLineItem.FiscalPeriod <> '000'
and semTagGl.GLAccountHierarchy = evalscp.GLAccountHierarchy
group by
GLAccountLineItem.ServiceContract,
GLAccountLineItem.ServiceContractItem,
GLAccountLineItem.ServiceContractType,
GLAccountLineItem.ServiceDocument,
GLAccountLineItem.ServiceDocumentItem,
GLAccountLineItem.ServiceDocumentType,
GLAccountLineItem.CompanyCode,
GLAccountLineItem.FiscalYearPeriod,
GLAccountLineItem.CompanyCodeCurrency,
GLAccountLineItem.Ledger,
semTagGl.GLAccountHierarchy,
GLAccountLineItem.AccountAssignmentType
union all
select from I_GLAccountLineItem as GLAccountLineItem
inner join I_EvtBsdRevnRecgnEvalScp as evalscp
on evalscp.CompanyCode = GLAccountLineItem.CompanyCode
and evalscp.Ledger = GLAccountLineItem.Ledger
inner join I_SemTagGLAccount as semTagGl
on semTagGl.GLAccount = GLAccountLineItem.GLAccount
and semTagGl.ChartOfAccounts = GLAccountLineItem.ChartOfAccounts
and semTagGl.ValidityStartDate <= $session.system_date
and semTagGl.ValidityEndDate >= $session.system_date
and ( semTagGl.SemanticTag = 'SALES_DED'
or semTagGl.SemanticTag = 'ACT_COST'
or semTagGl.SemanticTag = 'BILL_REV'
or semTagGl.SemanticTag = 'ADJ_REV'
or semTagGl.SemanticTag = 'ADJ_COS'
or semTagGl.SemanticTag = 'DEF_COST'
or semTagGl.SemanticTag = 'DEF_REV'
or semTagGl.SemanticTag = 'ACR_REV'
or semTagGl.SemanticTag = 'ACR_COST'
or semTagGl.SemanticTag = 'RES_MIL'
or semTagGl.SemanticTag = 'RES_MASD'
or semTagGl.SemanticTag = 'RES_MUC'
or semTagGl.SemanticTag = 'UNBILL_REV'
or semTagGl.SemanticTag = 'MCONTR_PL'
or semTagGl.SemanticTag = 'MCONTR_BS'
or semTagGl.SemanticTag = 'RECO_COS'
or semTagGl.SemanticTag = 'RECO_REV'
or semTagGl.SemanticTag = 'REC_MARGIN'
)
{
key GLAccountLineItem.ServiceDocumentType as ServiceDocumentType,
key GLAccountLineItem.ServiceDocument as ServiceDocument,
key GLAccountLineItem.ServiceDocumentItem as ServiceDocumentItem,
key GLAccountLineItem.CompanyCode as CompanyCode,
key GLAccountLineItem.Ledger as Ledger,
@Semantics.currencyCode: true
GLAccountLineItem.CompanyCodeCurrency as CompanyCodeCurrency,
GLAccountLineItem.FiscalYearPeriod as ToFiscalYearPeriod,
cast( 'SV' as fis_accasty preserving type ) as AccountAssignmentType,
semTagGl.GLAccountHierarchy as GLAccountHierarchy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'SALES_DED' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as ActlSlsDeductionAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'ACT_COST' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizableCostAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType <> 'TBRR' and semTagGl.SemanticTag = 'BILL_REV' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizableRevenueAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ADJ_REV' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RevenueAdjustmentAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ADJ_COS' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as COGSAdjustmentAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'DEF_COST' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as DeferredCOGSAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'DEF_REV' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as DeferredRevenueAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ACR_REV' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as AccruedRevenueAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'ACR_COST' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as AccruedCOGSAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'RES_MIL' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as ImminentLossRsrvAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'RES_MASD' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as SalesDeductReserveAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'RES_MUC' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as UnrlzdCostsReserveAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'UNBILL_REV' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as UnbilledRevnInCoCodeCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'MCONTR_PL' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as MnlContrAccrPnLItmAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when GLAccountLineItem.BusinessTransactionType = 'TBRR' and semTagGl.SemanticTag = 'MCONTR_BS' then GLAccountLineItem.AmountInCompanyCodeCurrency end ) as MnlContrAccrBalShtAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when semTagGl.SemanticTag = 'RECO_COS' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizedCOGSAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when semTagGl.SemanticTag = 'RECO_REV' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizedRevnAmtInCCCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum(case when semTagGl.SemanticTag = 'REC_MARGIN' then -GLAccountLineItem.AmountInCompanyCodeCurrency end ) as RecognizedMarginAmtInCCCrcy
}
where ( GLAccountLineItem.AccountAssignmentType = 'SV'
or GLAccountLineItem.AccountAssignmentType = 'OR' )
and GLAccountLineItem.FiscalYearPeriod <= $parameters.P_ToFiscalYearPeriod
and GLAccountLineItem.FiscalPeriod <> '000'
and semTagGl.GLAccountHierarchy = evalscp.GLAccountHierarchy
group by
GLAccountLineItem.ServiceContract,
GLAccountLineItem.ServiceContractItem,
GLAccountLineItem.ServiceContractType,
GLAccountLineItem.ServiceDocument,
GLAccountLineItem.ServiceDocumentItem,
GLAccountLineItem.ServiceDocumentType,
GLAccountLineItem.CompanyCode,
GLAccountLineItem.FiscalYearPeriod,
GLAccountLineItem.CompanyCodeCurrency,
GLAccountLineItem.Ledger,
semTagGl.GLAccountHierarchy,
GLAccountLineItem.AccountAssignmentType
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_EVTBSDREVNRECGNEVALSCP",
"I_GLACCOUNTLINEITEM",
"I_SEMTAGGLACCOUNT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/