P_AR_PurchaseTaxItemDetail

DDL: P_AR_PURCHASETAXITEMDETAIL SQL: PARPURTAXITDET Type: view CONSUMPTION

P_AR_PurchaseTaxItemDetail is a Consumption CDS View in SAP S/4HANA. It reads from 3 data sources (P_AR_PurchaseTaxItemAggrgd, I_Supplier, P_AR_SupplierPayable) and exposes 46 fields with key fields CompanyCode, FiscalYear, AccountingDocument.

Data Sources (3)

SourceAliasJoin Type
P_AR_PurchaseTaxItemAggrgd P_AR_PurchaseTaxItemAggrgd from
I_Supplier Supplier inner
P_AR_SupplierPayable SupplierPayable inner

Parameters (2)

NameTypeDefault
P_AccrualCalculationMethod fiar_vat_compcredit
P_RptgAmountIsInTransCrcy xfeld

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName PARPURTAXITDET view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view
VDM.private true view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (46)

KeyFieldSource TableSource FieldDescription
KEY CompanyCode PurchaseTaxItemDetail CompanyCode
KEY FiscalYear PurchaseTaxItemDetail FiscalYear
KEY AccountingDocument PurchaseTaxItemDetail AccountingDocument
CompanyCodeCountry PurchaseTaxItemDetail CompanyCodeCountry
FiscalPeriod PurchaseTaxItemDetail FiscalPeriod
DocumentDate PurchaseTaxItemDetail DocumentDate
PostingDate PurchaseTaxItemDetail PostingDate
ReportingDate PurchaseTaxItemDetail ReportingDate
IsReversal PurchaseTaxItemDetail IsReversal
IsReversed PurchaseTaxItemDetail IsReversed
ReverseDocument PurchaseTaxItemDetail ReverseDocument
ReferenceDocumentType PurchaseTaxItemDetail ReferenceDocumentType
DocumentReferenceID PurchaseTaxItemDetail DocumentReferenceID
AccountingDocumentType PurchaseTaxItemDetail AccountingDocumentType
AR_OfficialDocumentType PurchaseTaxItemDetail AR_OfficialDocumentType
AR_OfficialDocumentClass PurchaseTaxItemDetail AR_OfficialDocumentClass
AR_Branch PurchaseTaxItemDetail AR_Branch
AR_PrintCharacter PurchaseTaxItemDetail AR_PrintCharacter
AR_OfficialDocumentNumber PurchaseTaxItemDetail AR_OfficialDocumentNumber
AccountingDocumentHeaderText PurchaseTaxItemDetail AccountingDocumentHeaderText
Supplier P_AR_SupplierPayable Supplier
Countryasland1asImportDispatchCountry
FinancialAccountType P_AR_SupplierPayable FinancialAccountType
NetDueDate P_AR_SupplierPayable NetDueDate
ClearingDate P_AR_SupplierPayable ClearingDate
ClearingAccountingDocument P_AR_SupplierPayable ClearingAccountingDocument
ExchangeRateDate PurchaseTaxItemDetail ExchangeRateDate
AlternativeCurrencyKey AltvCurrency AlternativeCurrencyKey
TransactionCurrency PurchaseTaxItemDetail TransactionCurrency
CompanyCodeCurrency PurchaseTaxItemDetail CompanyCodeCurrency
ReportingCurrency PurchaseTaxItemDetail ReportingCurrency
TaxAmountInCoCodeCrcy
TaxBaseAmountInCoCodeCrcy
TaxAmountInTransCrcy
TaxBaseAmountInTransCrcy
TaxAmountInRptgCrcy
TaxBaseAmountInRptgCrcy
NotTaxedAmount PurchaseTaxItemDetail NotTaxedAmount
NotTaxedAmountPlusBaseAmount
TaxExemptionAmount PurchaseTaxItemDetail TaxExemptionAmount
TotalCreditAmountInTransCrcy
ForeignTaxAmount
GrossIncomeTaxAmount
MunicipalTaxAmount
OpenTotalTaxAmount
OtherTaxAmount
@AbapCatalog.sqlViewName: 'PARPURTAXITDET'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.dataClass: #MIXED
@VDM.viewType: #CONSUMPTION
@VDM.private: true
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_AR_PurchaseTaxItemDetail
  with parameters
    P_AccrualCalculationMethod : fiar_vat_compcredit,
    P_RptgAmountIsInTransCrcy  : xfeld
  as select from           P_AR_PurchaseTaxItemAggrgd    ( P_AccrualCalculationMethod : $parameters.P_AccrualCalculationMethod,
                                                           P_RptgAmountIsInTransCrcy  : $parameters.P_RptgAmountIsInTransCrcy ) as PurchaseTaxItemDetail


    inner join             P_AR_SupplierPayable                                                                                 as SupplierPayable       on  SupplierPayable.CompanyCode        = PurchaseTaxItemDetail.CompanyCode
                                                                                                                                                         and SupplierPayable.FiscalYear         = PurchaseTaxItemDetail.FiscalYear
                                                                                                                                                         and SupplierPayable.AccountingDocument = PurchaseTaxItemDetail.AccountingDocument
                                                                                                                                                         and SupplierPayable.ReportingDate      = PurchaseTaxItemDetail.ReportingDate

    inner join             I_Supplier                                                                                           as Supplier              on Supplier.Supplier = SupplierPayable.Supplier

    left outer to one join I_Altvcurrency                                                                                       as AltvCurrency          on  AltvCurrency.Currency                     = PurchaseTaxItemDetail.TransactionCurrency
                                                                                                                                                         and AltvCurrency.CurrencyAlternativeCodeGroup = 'DAILYVAT'

    left outer to one join I_Country                                                                                            as ImportDispatchCountry on ImportDispatchCountry.Country = substring(
      PurchaseTaxItemDetail.AccountingDocumentHeaderText, 1, 2
    )

{
  key PurchaseTaxItemDetail.CompanyCode,
  key PurchaseTaxItemDetail.FiscalYear,
  key PurchaseTaxItemDetail.AccountingDocument,
      PurchaseTaxItemDetail.CompanyCodeCountry,
      PurchaseTaxItemDetail.FiscalPeriod,
      PurchaseTaxItemDetail.DocumentDate,
      PurchaseTaxItemDetail.PostingDate,
      PurchaseTaxItemDetail.ReportingDate,
      PurchaseTaxItemDetail.IsReversal,
      PurchaseTaxItemDetail.IsReversed,
      PurchaseTaxItemDetail.ReverseDocument,
      PurchaseTaxItemDetail.ReferenceDocumentType,
      PurchaseTaxItemDetail.DocumentReferenceID,
      PurchaseTaxItemDetail.AccountingDocumentType,
      PurchaseTaxItemDetail.AR_OfficialDocumentType,
      PurchaseTaxItemDetail.AR_OfficialDocumentClass,
      PurchaseTaxItemDetail.AR_Branch,
      PurchaseTaxItemDetail.AR_PrintCharacter,
      PurchaseTaxItemDetail.AR_OfficialDocumentNumber,
      PurchaseTaxItemDetail.AccountingDocumentHeaderText,

      SupplierPayable.Supplier,

      cast(
        ImportDispatchCountry.Country
        as land1
      )                                                                                                            as ImportDispatchCountry,

      cast(
        case
          when Supplier.IsOneTimeAccount = 'X'
            then PurchaseTaxItemDetail._OneTimeAccountBP.BusinessPartnerName1
          else Supplier.OrganizationBPName1
        end
      as businesspartnername )                                                                                     as BusinessPartnerName,

      cast(
        coalesce(
          PurchaseTaxItemDetail._OneTimeAccountBP.TaxID1,
          Supplier.TaxNumber1
        )
        as stcd1 preserving type
      )                                                                                                            as TaxNumber1,

      cast(
        coalesce(
          PurchaseTaxItemDetail._OneTimeAccountBP.TaxNumberType,
          Supplier.TaxNumberType
        )
        as j_1atoid preserving type
      )                                                                                                            as TaxNumberType,

      cast(
        coalesce(
          PurchaseTaxItemDetail._OneTimeAccountBP.Country,
          Supplier.Country
        )
        as glo_partner_country preserving type
      )                                                                                                            as BusinessPartnerCountry,

      SupplierPayable.FinancialAccountType,
      SupplierPayable.NetDueDate,
      SupplierPayable.ClearingDate,
      SupplierPayable.ClearingAccountingDocument,

      cast(
        case PurchaseTaxItemDetail.AR_LowestPriorityOfZeroVATRsn
          when 1 then 'C'
          when 2 then 'X'
          when 3 then 'Z'
          when 4 then 'E'
          when 5 then 'N'
          else ''
        end
      as j_1arfzvat preserving type )                                                                              as ZeroVATRsn,

      PurchaseTaxItemDetail.ExchangeRateDate,

      cast(
        case
          when PurchaseTaxItemDetail.ExchangeRate = 0
            then 1
          else PurchaseTaxItemDetail.ExchangeRate
        end as ukurs_curr preserving type
      )                                                                                                            as ExchangeRate,

      cast(
        case
          when PurchaseTaxItemDetail.NmbrOfVATRates = 0 and
               ( PurchaseTaxItemDetail.IsDocumentBOrCAndNotDocType33 is null or PurchaseTaxItemDetail.IsDocumentBOrCAndNotDocType33 = '' )
            then 1
          when PurchaseTaxItemDetail.IsDocumentBOrCAndNotDocType33 = 'X'
            then 0
          else PurchaseTaxItemDetail.NmbrOfVATRates
        end
      as fiar_nmbrvat preserving type )                                                                            as NmbrOfVATRates,

      AltvCurrency.AlternativeCurrencyKey,

      @Semantics.currencyCode:true
      PurchaseTaxItemDetail.TransactionCurrency,
      @Semantics.currencyCode:true
      PurchaseTaxItemDetail.CompanyCodeCurrency,
      @Semantics.currencyCode:true
      PurchaseTaxItemDetail.ReportingCurrency,

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      cast(
        abs( PurchaseTaxItemDetail.TaxBaseAmountInCoCodeCrcy + PurchaseTaxItemDetail.TaxAmountInCoCodeCrcy ) as glo_amount_compcode_crcy
      )                                                                                                            as AmountInCompanyCodeCurrency,

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      abs( PurchaseTaxItemDetail.TaxAmountInCoCodeCrcy  )                                                          as TaxAmountInCoCodeCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      abs( PurchaseTaxItemDetail.TaxBaseAmountInCoCodeCrcy  )                                                      as TaxBaseAmountInCoCodeCrcy,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      cast(
        abs( PurchaseTaxItemDetail.TaxBaseAmountInTransCrcy + PurchaseTaxItemDetail.TaxAmountInTransCrcy ) as glo_amount_trans_crcy
      )                                                                                                            as AmountInTransactionCurrency,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      abs( PurchaseTaxItemDetail.TaxAmountInTransCrcy )                                                            as TaxAmountInTransCrcy,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      abs( PurchaseTaxItemDetail.TaxBaseAmountInTransCrcy )                                                        as TaxBaseAmountInTransCrcy,

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast(
        case $parameters.P_RptgAmountIsInTransCrcy
          when 'X'
            then abs( PurchaseTaxItemDetail.TaxBaseAmountInTransCrcy + PurchaseTaxItemDetail.TaxAmountInTransCrcy )
          else abs( PurchaseTaxItemDetail.TaxBaseAmountInCoCodeCrcy + PurchaseTaxItemDetail.TaxAmountInCoCodeCrcy )
        end as glo_amount_rptg_crcy
      )                                                                                                            as AmountInReportingCurrency,

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.TaxAmountInRptgCrcy ) as glo_tax_amount_rptg_crcy preserving type )         as TaxAmountInRptgCrcy,
      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.TaxBaseAmountInRptgCrcy ) as glo_taxbase_amount_rptg_crcy preserving type ) as TaxBaseAmountInRptgCrcy,

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      PurchaseTaxItemDetail.NotTaxedAmount,

      //According to KBA 2763445, Import Dispatch Documents can be posted with a positive and negative line for the taxable base amount.

      //Field NotTaxedAmountPlusBaseAmount is used check if NotTaxedAmount and TaxBaseAmountInRptgCrcy cancel each other.

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      PurchaseTaxItemDetail.NotTaxedAmount + PurchaseTaxItemDetail.TaxBaseAmountInRptgCrcy                         as NotTaxedAmountPlusBaseAmount,

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      PurchaseTaxItemDetail.TaxExemptionAmount,
      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.TotalCreditAmountInTransCrcy ) as sumha_eb preserving type )                as TotalCreditAmountInTransCrcy,
      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.ForeignTaxAmount ) as fi_ar_foreign_tax_amnt preserving type )              as ForeignTaxAmount,
      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.GrossIncomeTaxAmount ) as fiar_provincial_tax_amount preserving type )      as GrossIncomeTaxAmount,
      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.MunicipalTaxAmount ) as fi_ar_mptax_amnt preserving type )                  as MunicipalTaxAmount,
      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.OpenTotalTaxAmount ) as fiar_internal_tax_amount preserving type )          as OpenTotalTaxAmount,

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast(
        case
          when PurchaseTaxItemDetail.TaxBaseAmountInCoCodeCrcy  < 0
            then abs( PurchaseTaxItemDetail.CalculatedTxAmtInCoCodeCrcy )
          else PurchaseTaxItemDetail.CalculatedTxAmtInCoCodeCrcy
        end as fot_tax_recon_posted_tax_amt preserving type
      )                                                                                                            as CalculatedTxAmtInCoCodeCrcy,

      @Semantics.amount.currencyCode: 'ReportingCurrency'
      cast( abs( PurchaseTaxItemDetail.OtherTaxAmount ) as fiar_other_tax_amount preserving type )                 as OtherTaxAmount
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ALTVCURRENCY",
"I_COUNTRY",
"I_ONETIMEACCOUNTBP",
"I_SUPPLIER",
"P_AR_PURCHASETAXITEMAGGRGD",
"P_AR_SUPPLIERPAYABLE"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/