@AbapCatalog.sqlViewName: 'CPTSAFTSINVIR'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #X
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'SAF-T PT Sales Invoice Item References'
define view C_PT_SAFTSlsInvoiceItmRef
as select from I_PT_SAFTBillingItem as a
inner join I_SDDocumentMultiLevelProcFlow as b on a.BillingDocument = b.SubsequentDocument
and a.BillingDocumentItem = b.SubsequentDocumentItem
left outer join I_PT_BillgDocDgtlSgntr as ReferenceSignedInvoice on ReferenceSignedInvoice.BillingDocument = b.PrecedingDocument
{
key a.PortugueseInvoiceNumber,
key cast (a.DocumentItemNumber as abap.char(16)) as DocumentItemNumber,
key ReferenceSignedInvoice.PortugueseInvoiceNumber as InvoiceReference,
a.SDDocumentReason as SDDocumentReason,
case when a.SDDocumentReason is not initial then
coalesce(a._SDDocumentReason._Text[1: Language = 'P'].SDDocumentReasonText,
coalesce(a._SDDocumentReason._Text[1: Language = 'E'].SDDocumentReasonText,
coalesce(a._SDDocumentReason._Text[1: Language = $session.system_language].SDDocumentReasonText,
'')))
else
''
end as SDDocumentReasonText
}
where
b.PrecedingDocumentCategory = 'M'
or b.PrecedingDocumentCategory = '5'
union
select from I_SAFTAccountingItem as BaseDocument
inner join I_PT_AcctgDocDgtlSgntr as Reference on Reference.AccountingDocument = BaseDocument.InvoiceReference
and Reference.CompanyCode = BaseDocument.CompanyCode
and Reference.FiscalYear = BaseDocument.InvoiceReferenceFiscalYear
inner join I_PT_SAFTAccountingItem as Document on BaseDocument.AccountingDocument = Document.AccountingDocument
and BaseDocument.CompanyCode = Document.CompanyCode
and BaseDocument.FiscalYear = Document.FiscalYear
{
key Document.PortugueseInvoiceNumber,
key cast (Document.DocumentItemNumber as abap.char(16)) as DocumentItemNumber,
key Reference.PortugueseInvoiceNumber as InvoiceReference,
'' as SDDocumentReason,
'' as SDDocumentReasonText
}
union
select from I_PT_SAFTAcctgDownPaymentItm as a
inner join I_PT_AcctgDocDgtlSgntr as Reference on Reference.AccountingDocument = a.InvoiceReference
and Reference.CompanyCode = a.CompanyCode
and Reference.FiscalYear = a.InvoiceReferenceFiscalYear
{
key a.PortugueseInvoiceNumber,
key cast (a.DocumentItemNumber as abap.char(16)) as DocumentItemNumber,
key Reference.PortugueseInvoiceNumber as InvoiceReference,
'' as SDDocumentReason,
'' as SDDocumentReasonText
}
union
select from I_PT_SAFTSettlementMgmtItem as SettlmtMgmtItem
// left outer join I_PT_BillgDocDgtlSgntr as ReferenceSignedInvoice on ReferenceSignedInvoice.BillingDocument = SettlmtMgmtItem.SettlmtItemReltdCndnContr
{
key SettlmtMgmtItem.PortugueseInvoiceNumber,
key cast (SettlmtMgmtItem.SettlmtMgmtDocItem as abap.char(16)) as DocumentItemNumber,
key SettlmtMgmtItem.InvoiceReference,
'' as SDDocumentReason,
'' as SDDocumentReasonText
}
union select from I_PT_SAFTInvoiceListItem as a
inner join I_SDDocumentMultiLevelProcFlow as b on a.BillingDocument = b.SubsequentDocument
and a.BillingDocumentItem = b.SubsequentDocumentItem
left outer join I_PT_BillgDocDgtlSgntr as ReferenceSignedInvoice on ReferenceSignedInvoice.BillingDocument = b.PrecedingDocument
{
key a.PortugueseInvoiceNumber,
key cast (a.FormattedDocumentKey as abap.char(16)) as DocumentItemNumber,
key ReferenceSignedInvoice.PortugueseInvoiceNumber as InvoiceReference,
a.SDDocumentReason as SDDocumentReason,
case when a.SDDocumentReason is not initial then
coalesce(a._SDDocumentReason._Text[1: Language = 'P'].SDDocumentReasonText,
coalesce(a._SDDocumentReason._Text[1: Language = 'E'].SDDocumentReasonText,
coalesce(a._SDDocumentReason._Text[1: Language = $session.system_language].SDDocumentReasonText,
'')))
else
''
end as SDDocumentReasonText
}
where
b.PrecedingDocumentCategory = 'M'
or b.PrecedingDocumentCategory = '5'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PT_ACCTGDOCDGTLSGNTR",
"I_PT_BILLGDOCDGTLSGNTR",
"I_PT_SAFTACCOUNTINGITEM",
"I_PT_SAFTACCTGDOWNPAYMENTITM",
"I_PT_SAFTBILLINGITEM",
"I_PT_SAFTINVOICELISTITEM",
"I_PT_SAFTSETTLEMENTMGMTITEM",
"I_SAFTACCOUNTINGITEM",
"I_SDDOCUMENTMULTILEVELPROCFLOW",
"I_SDDOCUMENTREASON",
"I_SDDOCUMENTREASONTEXT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/