@VDM.viewType: #COMPOSITE
@VDM.private: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view entity P_BOPRblsPyblsItemFilter
as select from P_BOPRblsPyblsItemBase
inner join P_JrnlEntrItmToBOPFormItm11 on P_JrnlEntrItmToBOPFormItm11.CompanyCode = P_BOPRblsPyblsItemBase.CompanyCode
left outer to many join I_BOPFormToCntry on I_BOPFormToCntry.BOPRptgCntry = P_JrnlEntrItmToBOPFormItm11.BOPRptgCntry
and I_BOPFormToCntry.BOPForm = P_JrnlEntrItmToBOPFormItm11.BOPForm
and (
I_BOPFormToCntry.Country = P_BOPRblsPyblsItemBase.CustomerCountry
or I_BOPFormToCntry.Country = P_BOPRblsPyblsItemBase.SupplierCountry
or I_BOPFormToCntry.Country = P_BOPRblsPyblsItemBase.OneTimeAccountBPCountry
)
{
key P_BOPRblsPyblsItemBase.CompanyCode,
key P_BOPRblsPyblsItemBase.AccountingDocument,
key P_BOPRblsPyblsItemBase.FiscalYear,
key P_BOPRblsPyblsItemBase.AccountingDocumentItem,
key P_JrnlEntrItmToBOPFormItm11.BOPForm,
key P_JrnlEntrItmToBOPFormItm11.BOPRptgCntry,
key P_JrnlEntrItmToBOPFormItm11.CompanyCodeCountry,
P_BOPRblsPyblsItemBase.PostingDate,
P_BOPRblsPyblsItemBase.ClearingDate,
P_BOPRblsPyblsItemBase.ChartOfAccounts,
P_BOPRblsPyblsItemBase.GLAccount,
P_BOPRblsPyblsItemBase.TaxCode,
P_BOPRblsPyblsItemBase.AccountingDocumentType,
P_BOPRblsPyblsItemBase.IsEUTriangularDeal,
P_BOPRblsPyblsItemBase.SpecialGLCode,
P_BOPRblsPyblsItemBase.DebitCreditCode,
P_BOPRblsPyblsItemBase.TransactionCurrency,
P_BOPRblsPyblsItemBase.AmountInTransactionCurrency,
P_BOPRblsPyblsItemBase.CompanyCodeCurrency,
P_BOPRblsPyblsItemBase.AmountInCompanyCodeCurrency,
P_BOPRblsPyblsItemBase.ClearingJournalEntry,
P_BOPRblsPyblsItemBase.ClearingJournalEntryFiscalYear,
P_BOPRblsPyblsItemBase.FinancialAccountType,
P_BOPRblsPyblsItemBase.OffsettingAccountType,
P_BOPRblsPyblsItemBase.OffsettingAccount,
P_BOPRblsPyblsItemBase.PartnerCompany,
P_BOPRblsPyblsItemBase.Customer,
P_BOPRblsPyblsItemBase.CustomerIsOneTimeAccount,
P_BOPRblsPyblsItemBase.CustomerCountry,
P_BOPRblsPyblsItemBase.Supplier,
P_BOPRblsPyblsItemBase.SupplierIsOneTimeAccount,
P_BOPRblsPyblsItemBase.SupplierCountry,
P_BOPRblsPyblsItemBase.OneTimeAccountBPCountry
}
where
// No match for mapping of e.g. oversea areas to country
I_BOPFormToCntry.Country is null
// No match for original country
and(
(
(
P_BOPRblsPyblsItemBase.CustomerIsOneTimeAccount = 'X'
or P_BOPRblsPyblsItemBase.SupplierIsOneTimeAccount = 'X'
)
and(
(
P_BOPRblsPyblsItemBase.OneTimeAccountBPCountry <> P_JrnlEntrItmToBOPFormItm11.BOPRptgCntry
or P_BOPRblsPyblsItemBase.OneTimeAccountBPCountry <> P_JrnlEntrItmToBOPFormItm11.CompanyCodeCountry
)
and P_BOPRblsPyblsItemBase.OneTimeAccountBPCountry <> ''
and P_BOPRblsPyblsItemBase.OneTimeAccountBPCountry is not null
)
)
or(
P_BOPRblsPyblsItemBase.Customer is not initial
and P_BOPRblsPyblsItemBase.Customer is not null
and P_BOPRblsPyblsItemBase.CustomerIsOneTimeAccount <> 'X'
and(
(
P_BOPRblsPyblsItemBase.CustomerCountry <> P_JrnlEntrItmToBOPFormItm11.BOPRptgCntry
or P_BOPRblsPyblsItemBase.CustomerCountry <> P_JrnlEntrItmToBOPFormItm11.CompanyCodeCountry
)
and P_BOPRblsPyblsItemBase.CustomerCountry <> ''
and P_BOPRblsPyblsItemBase.CustomerCountry is not null
)
)
or(
(
P_BOPRblsPyblsItemBase.Supplier is not initial
and P_BOPRblsPyblsItemBase.Supplier is not null
and P_BOPRblsPyblsItemBase.SupplierIsOneTimeAccount <> 'X'
and(
(
P_BOPRblsPyblsItemBase.SupplierCountry <> P_JrnlEntrItmToBOPFormItm11.BOPRptgCntry
or P_BOPRblsPyblsItemBase.SupplierCountry <> P_JrnlEntrItmToBOPFormItm11.CompanyCodeCountry
)
and P_BOPRblsPyblsItemBase.SupplierCountry <> ''
and P_BOPRblsPyblsItemBase.SupplierCountry is not null
)
)
)
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BOPFORMTOCNTRY",
"P_BOPRBLSPYBLSITEMBASE",
"P_JRNLENTRITMTOBOPFORMITM11"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/