P_SAFTTaxRatioCalculation

DDL: P_SAFTTAXRATIOCALCULATION SQL: PSAFTTAXRATIOCAL Type: view COMPOSITE

P_SAFTTaxRatioCalculation is a Composite CDS View in SAP S/4HANA. It reads from 1 data source (I_SAFTJournalLineItem) and exposes 42 fields with key fields CompanyCode, FiscalYear, AccountingDocument, LedgerGLLineItem, Ledger.

Data Sources (1)

SourceAliasJoin Type
I_SAFTJournalLineItem JournalEntryItem from

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName PSAFTTAXRATIOCAL view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
VDM.private true view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #P view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (42)

KeyFieldSource TableSource FieldDescription
KEY CompanyCode I_SAFTJournalLineItem CompanyCode
KEY FiscalYear I_SAFTJournalLineItem FiscalYear
KEY AccountingDocument I_SAFTJournalLineItem AccountingDocument
KEY LedgerGLLineItem I_SAFTJournalLineItem LedgerGLLineItem
KEY Ledger I_SAFTJournalLineItem Ledger
SourceLedger I_SAFTJournalLineItem SourceLedger
ChartOfAccounts I_SAFTJournalLineItem ChartOfAccounts
PostingDate I_SAFTJournalLineItem PostingDate
FinancialAccountType I_SAFTJournalLineItem FinancialAccountType
GLAccount I_SAFTJournalLineItem GLAccount
AlternativeGLAccount I_SAFTJournalLineItem AlternativeGLAccount
ReferenceDocument I_SAFTJournalLineItem ReferenceDocument
DocumentItemText I_SAFTJournalLineItem DocumentItemText
CompanyCodeCurrency I_SAFTJournalLineItem CompanyCodeCurrency
TransactionCurrency I_SAFTJournalLineItem TransactionCurrency
TaxCodeelseendasTaxCode
TaxRate1020else0endasTaxRate
fltpelse0endasTaxRatioCalculated
fltpelse0endasTaxBaseRatioCalculated
fltpelse0endasTaxBaseRatioCalculatedTC
Quantity
CostCenter I_SAFTJournalLineItem CostCenter
ControllingArea I_SAFTJournalLineItem ControllingArea
CentralFinanceSalesDocument I_SAFTJournalLineItem CentralFinanceSalesDocument
Customer I_SAFTJournalLineItem Customer
Supplier I_SAFTJournalLineItem Supplier
ReferenceDocumentType I_SAFTJournalLineItem ReferenceDocumentType
LogicalSystem I_SAFTJournalLineItem LogicalSystem
ReferenceSDDocument I_SAFTJournalLineItem ReferenceSDDocument
ExchangeRate I_SAFTJournalLineItem ExchangeRate
_CompanyCode I_SAFTJournalLineItem _CompanyCode
_FiscalYear I_SAFTJournalLineItem _FiscalYear
_JournalEntry I_SAFTJournalLineItem _JournalEntry
_Ledger I_SAFTJournalLineItem _Ledger
_Supplier I_SAFTJournalLineItem _Supplier
_Customer I_SAFTJournalLineItem _Customer
_CustomerToBP I_SAFTJournalLineItem _CustomerToBP
_SupplierToBP I_SAFTJournalLineItem _SupplierToBP
_CFinPurchasingDocHistory I_SAFTJournalLineItem _CFinPurchasingDocHistory
_CompanyCodeCurrency I_SAFTJournalLineItem _CompanyCodeCurrency
_CostCenter I_SAFTJournalLineItem _CostCenter
_ControllingArea I_SAFTJournalLineItem _ControllingArea
@AbapCatalog.sqlViewName: 'PSAFTTAXRATIOCAL'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@VDM.private: true
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass:  #MIXED
@ObjectModel.usageType.serviceQuality: #P
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.personalData.blocking : #NOT_REQUIRED
define view P_SAFTTaxRatioCalculation

  as select from           I_SAFTJournalLineItem   as JournalEntryItem

    left outer to one join P_SAFTJournalItemTaxSum as JournalItemTaxSum on  JournalItemTaxSum.CompanyCode        = JournalEntryItem.CompanyCode
                                                                        and JournalItemTaxSum.FiscalYear         = JournalEntryItem.FiscalYear
                                                                        and JournalItemTaxSum.AccountingDocument = JournalEntryItem.AccountingDocument
                                                                        and JournalItemTaxSum.Ledger             = JournalEntryItem.Ledger
                                                                        and JournalItemTaxSum.TaxCode            = JournalEntryItem.TaxCode

    left outer to one join P_SAFTTaxItemAbs        as TaxAmountSum      on  TaxAmountSum.CompanyCode        = JournalEntryItem.CompanyCode
                                                                        and TaxAmountSum.AccountingDocument = JournalEntryItem.AccountingDocument
                                                                        and TaxAmountSum.FiscalYear         = JournalEntryItem.FiscalYear
                                                                        and TaxAmountSum.TaxCode            = JournalEntryItem.TaxCode

{
      @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,

      JournalEntryItem.SourceLedger,
      JournalEntryItem.ChartOfAccounts,  
      JournalEntryItem.PostingDate,
      JournalEntryItem.FinancialAccountType,
      JournalEntryItem.GLAccount,
      JournalEntryItem.AlternativeGLAccount,
      JournalEntryItem.ReferenceDocument,
      JournalEntryItem.DocumentItemText,
      @Semantics.currencyCode: true
      JournalEntryItem.CompanyCodeCurrency,
      @Semantics.currencyCode: true
      JournalEntryItem.TransactionCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      @EndUserText.label: 'Amount Company Code'
      case
        when JournalEntryItem.DebitCreditCode = 'H'
          then cast(abs( JournalEntryItem.AmountInCompanyCodeCurrency ) as fis_cr_hsl preserving type)
        else cast(abs ( JournalEntryItem.AmountInCompanyCodeCurrency ) as fis_cr_hsl preserving type)
      end                                                            as AmountInCompanyCodeCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      @EndUserText.label: 'Amount Transaction'
      case
        when JournalEntryItem.DebitCreditCode = 'H'
          then cast(abs( JournalEntryItem.AmountInTransactionCurrency ) as fis_cr_hsl preserving type)
        else cast(abs ( JournalEntryItem.AmountInTransactionCurrency ) as fis_cr_hsl preserving type)
      end                                                            as AmountInTransactionCurrency,

      case
        when JournalEntryItem.DebitCreditCode = 'H'
          then 'C'
        else 'D'
      end                                                            as DebitCreditCode,

      case
        when JournalEntryItem.AccountingDocumentItemType <> 'T'
        and JournalEntryItem.ReconciliationAccountType <> 'V'
        and JournalEntryItem.FinancialAccountType = 'S'
          then JournalEntryItem.TaxCode
          else ' '
      end                                                            as TaxCode,

      case
        when JournalEntryItem.AccountingDocumentItemType <> 'T'
        and JournalEntryItem.ReconciliationAccountType <> 'V'
        and JournalEntryItem.FinancialAccountType = 'S'
          then coalesce(division(abs(TaxAmountSum.TaxRate),10,2) , 0)
          else 0
      end                                                            as TaxRate,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      case
        when TaxAmountSum.TaxAmountInCoCodeCrcy is not initial and TaxAmountSum.TaxAmountInCoCodeCrcy is not null
        and JournalItemTaxSum.TotalGrossAmountInCoCodeCrcy is not initial and JournalItemTaxSum.TotalGrossAmountInCoCodeCrcy is not null
        and JournalEntryItem.AccountingDocumentItemType <> 'T'
        and JournalEntryItem.ReconciliationAccountType <> 'V'
        and JournalEntryItem.FinancialAccountType = 'S'
          then ( cast( TaxAmountSum.TaxAmountInCoCodeCrcy as abap.fltp) *
                 (cast( abs(JournalEntryItem.AmountInCompanyCodeCurrency) as abap.fltp) /
                  cast( JournalItemTaxSum.TotalGrossAmountInCoCodeCrcy as abap.fltp)))
        else 0
      end                                                            as TaxRatioCalculated,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      case
        when TaxAmountSum.TaxAmount is not initial and TaxAmountSum.TaxAmount is not null
        and JournalItemTaxSum.TotalGrossAmountInTransCrcy is not initial and JournalItemTaxSum.TotalGrossAmountInTransCrcy is not null
        and JournalEntryItem.AccountingDocumentItemType <> 'T'
        and JournalEntryItem.ReconciliationAccountType <> 'V'
        and JournalEntryItem.FinancialAccountType = 'S'
          then ( cast( TaxAmountSum.TaxAmount as abap.fltp) *
                 (cast( abs(JournalEntryItem.AmountInTransactionCurrency) as abap.fltp) /
                  cast( JournalItemTaxSum.TotalGrossAmountInTransCrcy as abap.fltp)))
        else 0
      end                                                            as TaxRatioCalculatedTransCrcy,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      case
        when TaxAmountSum.TaxBaseAmountInCoCodeCrcy is not initial and TaxAmountSum.TaxBaseAmountInCoCodeCrcy is not null
        and JournalItemTaxSum.TotalGrossAmountInCoCodeCrcy is not initial and JournalItemTaxSum.TotalGrossAmountInCoCodeCrcy is not null
        and JournalEntryItem.AccountingDocumentItemType <> 'T'
        and JournalEntryItem.ReconciliationAccountType <> 'V'
        and JournalEntryItem.FinancialAccountType = 'S'
          then ( cast( TaxAmountSum.TaxBaseAmountInCoCodeCrcy as abap.fltp) *
                 (cast( abs(JournalEntryItem.AmountInCompanyCodeCurrency) as abap.fltp) /
                  cast( JournalItemTaxSum.TotalGrossAmountInCoCodeCrcy as abap.fltp)))
        else 0
      end                                                            as TaxBaseRatioCalculated,
      
      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      case
        when TaxAmountSum.TaxBaseAmountInTransCrcy is not initial and TaxAmountSum.TaxBaseAmountInTransCrcy is not null
        and JournalItemTaxSum.TotalGrossAmountInTransCrcy is not initial and JournalItemTaxSum.TotalGrossAmountInTransCrcy is not null
        and JournalEntryItem.AccountingDocumentItemType <> 'T'
        and JournalEntryItem.ReconciliationAccountType <> 'V'
        and JournalEntryItem.FinancialAccountType = 'S'
          then ( cast( TaxAmountSum.TaxBaseAmountInTransCrcy as abap.fltp) *
                 (cast( abs(JournalEntryItem.AmountInTransactionCurrency) as abap.fltp) /
                  cast( JournalItemTaxSum.TotalGrossAmountInTransCrcy as abap.fltp)))
        else 0
      end                                                            as TaxBaseRatioCalculatedTC,

      case
      when JournalEntryItem.CentralFinanceBillingDocument is not initial
      then JournalEntryItem.CentralFinanceBillingDocument

      when JournalEntryItem.ReversalReferenceDocument is not initial
       and JournalEntryItem.IsReversed <> ''
      then JournalEntryItem.ReversalReferenceDocument
      else ''
      end                                                            as InvoiceReference, //invoiceRef


      cast( abs(round( JournalEntryItem.Quantity, 0)) as abap.int8 ) as Quantity,
      @ObjectModel.foreignKey.association: '_CostCenter'
      JournalEntryItem.CostCenter                                    as CostCenter,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      JournalEntryItem.ControllingArea                               as ControllingArea,

      JournalEntryItem.CentralFinanceSalesDocument,
      @ObjectModel.foreignKey.association: '_Customer'
      JournalEntryItem.Customer                                      as Customer,
      @ObjectModel.foreignKey.association: '_Supplier'
      JournalEntryItem.Supplier                                      as Supplier,
      JournalEntryItem.ReferenceDocumentType,
      JournalEntryItem.LogicalSystem,
      JournalEntryItem.ReferenceSDDocument,
      JournalEntryItem.ExchangeRate,


      //Associations

      JournalEntryItem._CompanyCode,
      JournalEntryItem._FiscalYear,
      JournalEntryItem._JournalEntry,
      JournalEntryItem._Ledger,
      JournalEntryItem._Supplier,
      JournalEntryItem._Customer,
      JournalEntryItem._CustomerToBP,
      JournalEntryItem._SupplierToBP,
      JournalEntryItem._CFinPurchasingDocHistory,
      JournalEntryItem._CompanyCodeCurrency,
      JournalEntryItem._CostCenter,
      JournalEntryItem._ControllingArea

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SAFTJOURNALLINEITEM",
"P_SAFTJOURNALITEMTAXSUM",
"P_SAFTTAXITEMABS"
],
"ASSOCIATED":
[
"I_CFINPURCHASINGDOCHISTORY",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERTOBUSINESSPARTNER",
"I_FISCALYEARFORCOMPANYCODE",
"I_JOURNALENTRY",
"I_LEDGER",
"I_SUPPLIER",
"I_SUPPLIERTOBUSINESSPARTNER"
],
"BASE":
[
"I_SAFTJOURNALLINEITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/