P_PL_SAFTGetSalesInvoiceData

DDL: P_PL_SAFTGETSALESINVOICEDATA Type: view_entity COMPOSITE Package: GLO_FIN_IS_SAFT_PL

SAFT PL FA Sales Invoice Basic Data

P_PL_SAFTGetSalesInvoiceData is a Composite CDS View that provides data about "SAFT PL FA Sales Invoice Basic Data" in SAP S/4HANA. It reads from 3 data sources (I_PL_SAFTBillingDocumentPriced, I_TaxItem, P_PL_SAFTSalesInvItem) and exposes 24 fields with key fields CompanyCode, AccountingDocument, FiscalYear. Part of development package GLO_FIN_IS_SAFT_PL.

Data Sources (3)

SourceAliasJoin Type
I_PL_SAFTBillingDocumentPriced I_PL_SAFTBillingDocumentPriced inner
I_TaxItem I_TaxItem inner
P_PL_SAFTSalesInvItem P_PL_SAFTSalesInvItem from

Parameters (4)

NameTypeDefault
P_StartDate datum
P_EndDate datum
P_PL_CheckForLandText land1
P_CompanyCode bukrs

Annotations (7)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
VDM.viewType #COMPOSITE view
VDM.private true view
ObjectModel.usageType.serviceQuality #P view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view

Fields (24)

KeyFieldSource TableSource FieldDescription
KEY CompanyCode P_PL_SAFTSalesInvItem CompanyCode
KEY AccountingDocument P_PL_SAFTSalesInvItem AccountingDocument
KEY FiscalYear P_PL_SAFTSalesInvItem FiscalYear
BillingDocumentItem P_PL_SAFTSalesInvItem BillingDocumentItem
InvoiceDocumentNumber
PL_SAFTInvoiceType P_PL_SAFTSalesInvItem PL_SAFTInvoiceType
CancelledBillingDocument P_PL_SAFTSalesInvItem CancelledBillingDocument
ItemSignIsReversed P_PL_SAFTSalesInvItem ItemSignIsReversed
MaterialDescription
UnitOfMeasure P_PL_SAFTSalesInvItem BillingQuantityUnit
TransactionCurrency P_PL_SAFTSalesInvItem TransactionCurrency
CompanyCodeCurrency P_PL_SAFTSalesInvItem CompanyCodeCurrency
Quantity P_PL_SAFTSalesInvItem BillingQuantity
NetPriceAmountendasNetPriceAmount
NetAmountendasNetAmount
GrossAmountendasGrossAmount
DiscountAmountendasDiscountAmount
PL_MarginProcTourismSrvcsTxt I_PL_SAFTBillingDocumentPriced PL_MarginProcTourismSrvcsTxt
PL_MarginProcSecondHandGoodTxt I_PL_SAFTBillingDocumentPriced PL_MarginProcSecondHandGoodTxt
PricingDocument I_PL_SAFTBillingDocumentPriced PricingDocument
PricingProcedure I_PL_SAFTBillingDocumentPriced PricingProcedure
TaxItem
IsReversal P_PL_SAFTSalesInvItem IsReversal
IsReversed P_PL_SAFTSalesInvItem IsReversed
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking : #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@VDM.private:true
@ObjectModel.usageType.serviceQuality: #P
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
define view entity P_PL_SAFTGetSalesInvoiceData
  with parameters
    P_StartDate   : datum,
    P_EndDate     : datum,
    P_PL_CheckForLandText : land1,
    P_CompanyCode : bukrs
  as select from P_PL_SAFTSalesInvItem( P_StartDate:$parameters.P_StartDate,
                                 P_EndDate: $parameters.P_EndDate )


    inner join   I_TaxItem on I_TaxItem.AccountingDocument = P_PL_SAFTSalesInvItem.AccountingDocument
                           and I_TaxItem.TaxCountry = $parameters.P_PL_CheckForLandText
                           and I_TaxItem.CompanyCode = P_PL_SAFTSalesInvItem.CompanyCode
                           and I_TaxItem.FiscalYear = P_PL_SAFTSalesInvItem.FiscalYear

    inner join   I_PL_SAFTBillingDocumentPriced                                      on P_PL_SAFTSalesInvItem.BillingDocument = I_PL_SAFTBillingDocumentPriced.BillingDocument
{
  key P_PL_SAFTSalesInvItem.CompanyCode,
  key P_PL_SAFTSalesInvItem.AccountingDocument,
  key P_PL_SAFTSalesInvItem.FiscalYear,
      P_PL_SAFTSalesInvItem.BillingDocumentItem,
      cast(P_PL_SAFTSalesInvItem.BillingDocument as abap.char(10)) as InvoiceDocumentNumber,
      P_PL_SAFTSalesInvItem.PL_SAFTInvoiceType,
      P_PL_SAFTSalesInvItem.CancelledBillingDocument,
      P_PL_SAFTSalesInvItem.ItemSignIsReversed,
      cast(P_PL_SAFTSalesInvItem.BillingDocumentItemText as abap.char(40))                as MaterialDescription,
      P_PL_SAFTSalesInvItem.BillingQuantityUnit                    as UnitOfMeasure,
      P_PL_SAFTSalesInvItem.TransactionCurrency,
      P_PL_SAFTSalesInvItem.CompanyCodeCurrency,
      @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
P_PL_SAFTSalesInvItem.BillingQuantity                        as Quantity,
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      case
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed = 'X' then -1 * P_PL_SAFTSalesInvItem.NetPriceAmount
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed <> 'X' then P_PL_SAFTSalesInvItem.NetPriceAmount
      end                                                          as NetPriceAmount,
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      case
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed = 'X' then -1 * P_PL_SAFTSalesInvItem.NetAmount
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed <> 'X' then P_PL_SAFTSalesInvItem.NetAmount
      end                                                          as NetAmount,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed = 'X' then -1 * P_PL_SAFTSalesInvItem.GrossPriceAmountInCCCrcy
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed <> 'X' then P_PL_SAFTSalesInvItem.GrossPriceAmountInCCCrcy
      end as GrossPriceAmountInCCCrcy,

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed = 'X' then -1 * P_PL_SAFTSalesInvItem.GrossAmount
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed <> 'X' then P_PL_SAFTSalesInvItem.GrossAmount
      end as GrossAmount,
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      case
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed = 'X' then -1 * P_PL_SAFTSalesInvItem.DiscountAmount
      when P_PL_SAFTSalesInvItem.ItemSignIsReversed <> 'X' then P_PL_SAFTSalesInvItem.DiscountAmount
      end                                                          as DiscountAmount,
      I_PL_SAFTBillingDocumentPriced.PL_MarginProcTourismSrvcsTxt,
      I_PL_SAFTBillingDocumentPriced.PL_MarginProcSecondHandGoodTxt,
      I_PL_SAFTBillingDocumentPriced.PricingDocument,
      I_PL_SAFTBillingDocumentPriced.PricingProcedure,

      case
      when P_PL_SAFTSalesInvItem.PL_SAFTTaxPercentageCode <> ' ' then
      cast(P_PL_SAFTSalesInvItem.PL_SAFTTaxPercentageCode as abap.char(10))
      when P_PL_SAFTSalesInvItem.PL_SAFTTaxPercentageCode = ' ' then 'zw'
      end                                                          as TaxRateAsText,
      min(I_TaxItem.TaxItem) as TaxItem,
      P_PL_SAFTSalesInvItem.IsReversal,
      P_PL_SAFTSalesInvItem.IsReversed

}
where
      P_PL_SAFTSalesInvItem.CompanyCode = $parameters.P_CompanyCode
group by P_PL_SAFTSalesInvItem.CompanyCode,
          P_PL_SAFTSalesInvItem.AccountingDocument,
          P_PL_SAFTSalesInvItem.FiscalYear,
          P_PL_SAFTSalesInvItem.BillingDocumentItem,
          P_PL_SAFTSalesInvItem.BillingDocument,
          P_PL_SAFTSalesInvItem.PL_SAFTInvoiceType,
          P_PL_SAFTSalesInvItem.CancelledBillingDocument,
          P_PL_SAFTSalesInvItem.ItemSignIsReversed,
          P_PL_SAFTSalesInvItem.BillingDocumentItemText,
          P_PL_SAFTSalesInvItem.BillingQuantityUnit,
          P_PL_SAFTSalesInvItem.TransactionCurrency,
          P_PL_SAFTSalesInvItem.CompanyCodeCurrency,
          P_PL_SAFTSalesInvItem.BillingQuantity,
          P_PL_SAFTSalesInvItem.NetPriceAmount,
          P_PL_SAFTSalesInvItem.NetAmount,
          P_PL_SAFTSalesInvItem.DiscountAmount,
          I_PL_SAFTBillingDocumentPriced.PL_MarginProcTourismSrvcsTxt,
          I_PL_SAFTBillingDocumentPriced.PL_MarginProcSecondHandGoodTxt,
          P_PL_SAFTSalesInvItem.PL_SAFTTaxPercentageCode,
          P_PL_SAFTSalesInvItem.GrossPriceAmountInCCCrcy,
          P_PL_SAFTSalesInvItem.GrossAmount,
          I_PL_SAFTBillingDocumentPriced.PricingDocument,
          I_PL_SAFTBillingDocumentPriced.PricingProcedure,
          P_PL_SAFTSalesInvItem.IsReversal,
          P_PL_SAFTSalesInvItem.IsReversed