@AbapCatalog.viewEnhancementCategory: [ #NONE ]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Metadata.ignorePropagatedAnnotations: true
@VDM.private: true
@VDM.viewType: #COMPOSITE
define view entity P_NO_CADocumentBPItem
as select from I_CADocumentBPItem as CAItem
inner join I_CADocument as CADoc
on CAItem.CADocumentNumber = CADoc.CADocumentNumber
left outer to one join R_NO_OpAccDocWthRecKeyDistinct as FIDoc
on CADoc.CAReconciliationKey = FIDoc.ExtractedReconciliationKeyText
and CAItem.CompanyCode = FIDoc.CompanyCode
and CADoc.CADocumentNumber = FIDoc.CADocumentNumber
{
key CAItem.BusinessPartner,
key CAItem.CADocumentNumber,
key CAItem.CABPItemNumber,
key CAItem.CASubItemNumber,
CAItem.CompanyCode,
// Fiscal period
@Semantics.fiscal.period: true
cast(lpad(substring(cast(CAItem.CAPostingDate as abap.char(8)), 5, 2),3, '0') as abap.numc(3)) as FiscalPeriod,
// Posting Date
CAItem.CAPostingDate,
// Document Type (FICA document type)
CAItem.CADocumentType,
// FI accounting document number
FIDoc.AccountingDocument,
// Transaction Amount and currency
@Semantics.amount.currencyCode: 'TransactionCurrency'
cast(CAItem.CAAmountInTransactionCurrency as abap.dec(13,2) ) as CAAmountInTransactionCurrency,
CAItem.TransactionCurrency,
// Local amount and currency
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
cast(CAItem.CAAmountInLocalCurrency as abap.dec(13,2) ) as CAAmountInLocalCurrency,
CAItem.CompanyCodeCurrency
}
union all
select from I_CADocumentBPItem as ficaitem
join I_CADocument as fica_bp_rev
on (fica_bp_rev.CAReversedDocumentNumber = ficaitem.CADocumentNumber)
left outer to one join R_NO_OpAccDocWthRecKeyDistinct as FIDoc
on fica_bp_rev.CAReconciliationKey = FIDoc.ExtractedReconciliationKeyText
and ficaitem.CompanyCode = FIDoc.CompanyCode
and fica_bp_rev.CADocumentNumber = FIDoc.CADocumentNumber
{
key ficaitem.BusinessPartner,
key fica_bp_rev.CADocumentNumber,
key ficaitem.CABPItemNumber,
key ficaitem.CASubItemNumber,
ficaitem.CompanyCode,
// Fiscal period
cast(lpad(substring(cast(ficaitem.CAPostingDate as abap.char(8)), 5, 2),3, '0') as abap.numc(3)) as FiscalPeriod,
// Posting Date
ficaitem.CAPostingDate,
// Document Type (FICA document type)
ficaitem.CADocumentType,
// FI accounting document number
FIDoc.AccountingDocument,
// Transaction Amount and currency
cast(-1 * ficaitem.CAAmountInTransactionCurrency as abap.dec(13,2) ) as CAAmountInTransactionCurrency,
ficaitem.TransactionCurrency,
// Local amount and currency
cast(-1 * ficaitem.CAAmountInLocalCurrency as abap.dec(13,2) ) as CAAmountInLocalCurrency,
ficaitem.CompanyCodeCurrency
}
union all
select from I_CADocumentBPItem as ficaitem
join I_CADocument as fica_itm_bp_clear
on fica_itm_bp_clear.CADocumentNumber = ficaitem.CAClearingDocumentNumber
and fica_itm_bp_clear.CAReversedDocumentNumber is initial
left outer to one join R_NO_OpAccDocWthRecKeyDistinct as FIDoc
on fica_itm_bp_clear.CAReconciliationKey = FIDoc.ExtractedReconciliationKeyText
and ficaitem.CompanyCode = FIDoc.CompanyCode
and fica_itm_bp_clear.CADocumentNumber = FIDoc.CADocumentNumber
{
key ficaitem.BusinessPartner,
key fica_itm_bp_clear.CADocumentNumber,
key ficaitem.CABPItemNumber,
key ficaitem.CASubItemNumber,
ficaitem.CompanyCode,
// Fiscal period
cast(lpad(substring(cast(fica_itm_bp_clear.CAPostingDate as abap.char(8)), 5, 2),3, '0') as abap.numc(3)) as FiscalPeriod,
// Posting Date
fica_itm_bp_clear.CAPostingDate,
// Document Type (FICA document type)
ficaitem.CADocumentType,
// FI accounting document number
FIDoc.AccountingDocument,
// Transaction Amount and currency
cast(-1 * ficaitem.CAAmountInTransactionCurrency as abap.dec(13,2) ) as CAAmountInTransactionCurrency,
ficaitem.TransactionCurrency,
// Local amount and currency
cast(-1 * ficaitem.CAAmountInLocalCurrency as abap.dec(13,2) ) as CAAmountInLocalCurrency,
ficaitem.CompanyCodeCurrency
}