@AbapCatalog.sqlViewName: 'PNLSAFTJITEM'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #BLOCKED_DATA_INCLUDED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@VDM.private: true
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_NL_SAFTJournalLineItem
as select from I_JournalEntryItem as JournalEntryItem
inner join I_GLAccountInCompanyCode as GLAccount on GLAccount.GLAccount = JournalEntryItem.GLAccount
and GLAccount.CompanyCode = JournalEntryItem.CompanyCode
left outer to one join I_OperationalAcctgDocItem as AcctgDocItem on AcctgDocItem.CompanyCode = JournalEntryItem.CompanyCode
and AcctgDocItem.FiscalYear = JournalEntryItem.FiscalYear
and AcctgDocItem.AccountingDocument = JournalEntryItem.AccountingDocument
and AcctgDocItem.AccountingDocumentItem = JournalEntryItem.AccountingDocumentItem
{
@ObjectModel.foreignKey.association: '_SourceLedger'
key JournalEntryItem.SourceLedger as SourceLedger,
@ObjectModel.foreignKey.association: '_CompanyCode'
key JournalEntryItem.CompanyCode as CompanyCode,
@ObjectModel.foreignKey.association: '_FiscalYear'
key JournalEntryItem.FiscalYear as FiscalYear,
@ObjectModel.foreignKey.association: '_JournalEntry'
key JournalEntryItem.AccountingDocument as AccountingDocument,
key JournalEntryItem.LedgerGLLineItem as LedgerGLLineItem,
@ObjectModel.foreignKey.association: '_Ledger'
key JournalEntryItem.Ledger as Ledger,
@Semantics.currencyCode: true
JournalEntryItem.CompanyCodeCurrency,
@ObjectModel.foreignKey.association: '_GLAccountInChartOfAccounts'
JournalEntryItem.GLAccount as GLAccount,
@ObjectModel.foreignKey.association: '_AlternativeGLAccount'
JournalEntryItem.AlternativeGLAccount as AlternativeGLAccount,
@ObjectModel.foreignKey.association: '_ChartOfAccounts'
JournalEntryItem.ChartOfAccounts as ChartOfAccounts,
@ObjectModel.foreignKey.association: '_CountryChartOfAccounts'
JournalEntryItem.CountryChartOfAccounts as CountryChartOfAccounts,
JournalEntryItem.ReferenceDocument as ReferenceDocument,
JournalEntryItem.PostingDate as PostingDate,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case
when JournalEntryItem.DebitCreditCode = 'S'
then JournalEntryItem.AmountInCompanyCodeCurrency //If amount is negative, it represents a Negative Posting, it shall be reported as it is.
when JournalEntryItem.DebitCreditCode = 'H' and JournalEntryItem.AmountInCompanyCodeCurrency < 0
then abs(JournalEntryItem.AmountInCompanyCodeCurrency) //Normal credit postings have negative signs, shall be reported as positive
when JournalEntryItem.DebitCreditCode = 'H' and JournalEntryItem.AmountInCompanyCodeCurrency > 0
then JournalEntryItem.AmountInCompanyCodeCurrency * -1 //Negative postings with credit indicator have positive sign, shall be reported as negative
end as AmountInCompanyCodeCurrency,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when JournalEntryItem.DebitCreditCode = 'S'
then JournalEntryItem.AmountInCompanyCodeCurrency //If amount is negative, it represents a Negative Posting, it shall be reported as it is.
end as DebitAmountInCoCodeCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when JournalEntryItem.DebitCreditCode = 'H' and JournalEntryItem.AmountInCompanyCodeCurrency < 0
then abs(JournalEntryItem.AmountInCompanyCodeCurrency) //Normal credit postings have negative signs, shall be reported as positive
when JournalEntryItem.DebitCreditCode = 'H' and JournalEntryItem.AmountInCompanyCodeCurrency > 0
then JournalEntryItem.AmountInCompanyCodeCurrency * -1 //Negative postings with credit indicator have positive sign, shall be reported as negative
end as CreditAmountInCoCodeCrcy,
case
when JournalEntryItem.DebitCreditCode = 'H'
then 'C'
else 'D'
end as DebitCreditCode,
@ObjectModel.foreignKey.association: '_Customer'
JournalEntryItem.Customer as Customer,
@ObjectModel.foreignKey.association: '_Supplier'
JournalEntryItem.Supplier as Supplier,
JournalEntryItem.TaxCode as TaxCode,
@ObjectModel.foreignKey.association: '_ReferenceDocumentType'
JournalEntryItem.ReferenceDocumentType,
JournalEntryItem.ReversalReferenceDocument,
JournalEntryItem.IsReversed,
@ObjectModel.foreignKey.association: '_CostCenter'
JournalEntryItem.CostCenter as CostCenter,
@ObjectModel.foreignKey.association: '_ControllingArea'
JournalEntryItem.ControllingArea as ControllingArea,
JournalEntryItem.Quantity as Quantity,
@ObjectModel.foreignKey.association: '_LogicalSystem'
JournalEntryItem.LogicalSystem as LogicalSystem,
JournalEntryItem.TransactionTypeDetermination as TransactionTypeDetermination,
JournalEntryItem.FinancialAccountType as FinancialAccountType,
JournalEntryItem._CompanyCode._Country.TaxCalculationProcedure,
@ObjectModel.foreignKey.association: '_Order'
JournalEntryItem.OrderID,
JournalEntryItem.AmountInTransactionCurrency,
JournalEntryItem.TransactionCurrency,
JournalEntryItem.ValueDate,
JournalEntryItem.AccountingDocumentItem,
JournalEntryItem.IsReversal,
JournalEntryItem.SalesDocument,
JournalEntryItem.SalesDocumentItem,
JournalEntryItem.InvoiceReference,
JournalEntryItem.InvoiceItemReference,
JournalEntryItem._JournalEntry.DocumentReferenceID,
JournalEntryItem.ReferenceDocumentContext,
AcctgDocItem.AccountingDocumentItemType,
GLAccount.ReconciliationAccountType,
//Associations
_SourceLedger,
JournalEntryItem._CompanyCode,
_FiscalYear,
_JournalEntry,
_Ledger,
_CompanyCodeCurrency,
_GLAccountInChartOfAccounts,
_AlternativeGLAccount,
_ChartOfAccounts,
_CountryChartOfAccounts,
_Customer,
_Supplier,
_CostCenter,
_ControllingArea,
_LogicalSystem,
_ReferenceDocumentType,
_Order
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_COUNTRY",
"I_GLACCOUNTINCOMPANYCODE",
"I_JOURNALENTRY",
"I_JOURNALENTRYITEM",
"I_OPERATIONALACCTGDOCITEM"
],
"ASSOCIATED":
[
"I_CHARTOFACCOUNTS",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_CURRENCY",
"I_CUSTOMER",
"I_FISCALYEARFORCOMPANYCODE",
"I_GLACCOUNTINCHARTOFACCOUNTS",
"I_JOURNALENTRY",
"I_LEDGER",
"I_LOGICALSYSTEM",
"I_ORDER",
"I_REFERENCEDOCUMENTTYPE",
"I_SUPPLIER"
],
"BASE":
[
"I_JOURNALENTRYITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/