@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