@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AbapCatalog.viewEnhancementCategory: [#NONE]
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #D,
sizeCategory: #XXL,
dataClass: #MIXED
}
@VDM.private:true
@Consumption.dbHints: [ 'USE_HEX_PLAN', 'FILTER_THRU_JOIN', 'FILTER_RULE' ]
define view entity P_GR_CustomerLedgerBasicItem
with parameters
P_CompanyCode : fis_bukrs
as select from I_GLAccountInCompanyCode as recon_account
inner join I_CADocumentBPItem as fica_itm_bp on(
fica_itm_bp.CompanyCode = recon_account.CompanyCode
and fica_itm_bp.CAReconciliationAccount = recon_account.GLAccount
)
inner join I_CADocument as ficadoc on(
ficadoc.CADocumentNumber = fica_itm_bp.CADocumentNumber
)
inner join I_CASubTransactionText as subtransactiontext on (
fica_itm_bp.CAApplicationArea = subtransactiontext.CAApplicationArea
and fica_itm_bp.CAMainTransaction = subtransactiontext.CAMainTransaction
and fica_itm_bp.CASubTransaction = subtransactiontext.CASubTransaction
and subtransactiontext.Language = $session.system_language
)
{
key fica_itm_bp.CADocumentNumber,
key fica_itm_bp.CompanyCode,
key fica_itm_bp.CABPItemNumber,
key fica_itm_bp.CARepetitionItemNumber,
key fica_itm_bp.CASubItemNumber,
fica_itm_bp.BusinessPartner,
fica_itm_bp._BusinessPartner.BusinessPartnerName,
concat( fica_itm_bp._BusinessPartner._CurrentDefaultAddress._AddressDefaultRepresentation.Country, '0' ) as BPTaxType,
ficadoc.CAReferenceDocument,
fica_itm_bp.CAPostingDate,
fica_itm_bp.CAApplicationArea,
fica_itm_bp.CAMainTransaction,
fica_itm_bp.CASubTransaction,
subtransactiontext.CASubTransactionName,
fica_itm_bp._CompanyCode.FiscalYearVariant,
recon_account.GLAccount,
recon_account.AlternativeGLAccount,
fica_itm_bp.CompanyCodeCurrency,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case when fica_itm_bp.CAAmountInLocalCurrency >= 0 // Positive Invoice item is Debit(Positive)
then cast( fica_itm_bp.CAAmountInLocalCurrency as fis_dr_hsl )
else cast( 0 as fis_dr_hsl )
end as DebitAmountInCoCodeCrcy,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case when fica_itm_bp.CAAmountInLocalCurrency < 0 // Negative Invoice item is Credit(Positive)
then cast( fica_itm_bp.CAAmountInLocalCurrency * -1 as fis_dr_hsl )
else cast( 0 as fis_dr_hsl )
end as CreditAmountInCoCodeCrcy,// Total = Debit - Credit
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
fica_itm_bp.CAAmountInLocalCurrency,
fica_itm_bp.CAClearingStatus,
fica_itm_bp.CAClearingDocumentNumber
}
where
fica_itm_bp.CAStatisticalItemCode is initial
and fica_itm_bp.CompanyCode = $parameters.P_CompanyCode
// Clearing BP Items
union all select from I_GLAccountInCompanyCode as recon_account
inner join I_CADocumentBPItem as fica_itm_bp_clear on(
fica_itm_bp_clear.CompanyCode = recon_account.CompanyCode
and fica_itm_bp_clear.CAReconciliationAccount = recon_account.GLAccount
)
inner join I_CADocument as ficadoc
on ficadoc.CADocumentNumber = fica_itm_bp_clear.CAClearingDocumentNumber
{
key ficadoc.CADocumentNumber,
key fica_itm_bp_clear.CompanyCode,
key fica_itm_bp_clear.CABPItemNumber,
key fica_itm_bp_clear.CARepetitionItemNumber,
key fica_itm_bp_clear.CASubItemNumber,
fica_itm_bp_clear.BusinessPartner,
fica_itm_bp_clear._BusinessPartner.BusinessPartnerName,
concat( fica_itm_bp_clear._BusinessPartner._CurrentDefaultAddress._AddressDefaultRepresentation.Country, '0' ) as BPTaxType,
ficadoc.CAReferenceDocument,
ficadoc.CAPostingDate,
fica_itm_bp_clear.CAApplicationArea,
cast ( '' as hvorg_kk ) as CAMainTransaction,
cast ( '' as tvorg_kk ) as CASubTransaction,
cast ( 'Cleared Item' as tvorg_txt ) as CASubTransactionName,
fica_itm_bp_clear._CompanyCode.FiscalYearVariant,
recon_account.GLAccount,
recon_account.AlternativeGLAccount,
fica_itm_bp_clear.CompanyCodeCurrency,
case when fica_itm_bp_clear.CAAmountInLocalCurrency < 0 // --> Clearing a Credit Invoice item --> Clearing Item is Debit(positiv)
then cast( fica_itm_bp_clear.CAAmountInLocalCurrency * -1 as fis_dr_hsl )
else cast( 0 as fis_dr_hsl )
end as DebitAmountInCoCodeCrcy,
case when fica_itm_bp_clear.CAAmountInLocalCurrency >= 0 // --> Clearing a Debit Invoice item --> Clearing Item is Credit(positiv)
then cast( fica_itm_bp_clear.CAAmountInLocalCurrency as fis_dr_hsl )
else cast( 0 as fis_dr_hsl )
end as CreditAmountInCoCodeCrcy,
cast ( fica_itm_bp_clear.CAAmountInLocalCurrency * -1 as betrh_kk ) as CAAmountInLocalCurrency,// Total = Debit - Credit
fica_itm_bp_clear.CAClearingStatus,
cast ( '' as opbel_kk ) as CAClearingDocumentNumber
}
where
fica_itm_bp_clear.CAStatisticalItemCode is initial
and fica_itm_bp_clear.CAClearingStatus = '9'
and fica_itm_bp_clear.CompanyCode = $parameters.P_CompanyCode