@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.dataClass: #MIXED
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@VDM.private:true
@AccessControl.personalData.blocking: #REQUIRED
define view entity P_HU_MMINVOICECONSIGNMENTNEWR
as select from I_JournalEntryItem as JournalItem
inner join I_Ledger as Ledger on Ledger.Ledger = JournalItem.SourceLedger
and Ledger.IsLeadingLedger = 'X'
and Ledger.Ledger = JournalItem.Ledger
inner join I_JournalEntry as JournalEntry on JournalEntry.CompanyCode = JournalItem.CompanyCode
and JournalEntry.FiscalYear = JournalItem.FiscalYear
and JournalEntry.AccountingDocument = JournalItem.AccountingDocument
and JournalEntry.TransactionCode = 'MRKO'
and JournalEntry.DocumentDate = JournalItem.DocumentDate
inner join I_ReceivablesPayablesItem as RPItem on RPItem.CompanyCode = JournalItem.CompanyCode
and RPItem.AccountingDocument = JournalItem.AccountingDocument
and RPItem.FiscalYear = JournalItem.FiscalYear
and RPItem.AccountingDocumentItem = JournalItem.AccountingDocumentItem
and RPItem.DocumentDate = JournalItem.DocumentDate
//we must find the supplier ID - entered only in line, where account type = K
inner join I_JournalEntryItem as JournalSupplierItem on JournalSupplierItem.SourceLedger = JournalItem.SourceLedger
and JournalSupplierItem.CompanyCode = JournalItem.CompanyCode
and JournalSupplierItem.FiscalYear = JournalItem.FiscalYear
and JournalSupplierItem.AccountingDocument = JournalItem.AccountingDocument
and JournalSupplierItem.Ledger = JournalItem.Ledger
and JournalSupplierItem.FinancialAccountType = 'K'
and JournalSupplierItem.DocumentDate = JournalItem.DocumentDate
// we must check the tax amounts and distribute them propotionaly
left outer to one join I_ReceivablesPayablesItem as RPTaxItem on RPTaxItem.CompanyCode = JournalItem.CompanyCode
and RPTaxItem.FiscalYear = JournalItem.FiscalYear
and RPTaxItem.AccountingDocument = JournalItem.AccountingDocument
and RPTaxItem.TaxCode = JournalItem.TaxCode
and RPTaxItem.FinancialAccountType = JournalItem.FinancialAccountType
and RPTaxItem.DebitCreditCode = RPItem.DebitCreditCode
and RPTaxItem.TaxType is not initial
and RPTaxItem.TransactionTypeDetermination <> 'ESA'
and RPTaxItem.TransactionTypeDetermination <> 'ESE'
and RPTaxItem.DocumentDate = JournalItem.DocumentDate
left outer to one join I_Supplier_to_BusinessPartner as SupplierToBusinessPartner on JournalSupplierItem.Supplier = SupplierToBusinessPartner.Supplier
left outer to one join I_BusinessPartner as BusinessPartner on SupplierToBusinessPartner.BusinessPartnerUUID = BusinessPartner.BusinessPartnerUUID
left outer to one join I_MaterialText as MaterialText on MaterialText.Material = JournalItem.Material
and MaterialText.Language = $session.system_language
{
JournalItem.CompanyCode,
JournalItem.AccountingDocument,
cast(lpad(cast( JournalItem.AccountingDocumentItem as abap.char(6) ), 6, '0') as abap.numc(6)) as TaxItem,
JournalEntry.DocumentReferenceID as OriginalReferenceDocument,
JournalItem.CompanyCodeCurrency as CompanyCodeCurrency,
JournalItem.TransactionCurrency as DocumentCurrency,
JournalItem.FunctionalCurrency as CountryCurrency,
JournalItem.ReferenceDocument as DocumentReferenceID,
JournalItem.DocumentDate,
JournalItem.PostingDate,
JournalItem.PostingDate as TaxFulfillmentDate,
JournalEntry.AccountingDocumentCreationDate as InvoiceIssueDate,
MaterialText.MaterialName as ProductName,
case when RPItem.Quantity = 0 or RPItem.Quantity is null
then cast( '1' as abap.dec( 15,2 ))
else cast( RPItem.Quantity as abap.dec(15,2) )
end as Quantity,
RPItem.BaseUnit as UnitOfMeasure,
@Semantics.amount.currencyCode: 'DocumentCurrency'
case when RPItem.Quantity = 0 or RPItem.Quantity is null
then cast( get_numeric_value(JournalItem.AmountInTransactionCurrency) as abap.curr(28,2))
else cast( get_numeric_value(JournalItem.AmountInTransactionCurrency ) / RPItem.Quantity as abap.curr(28,2))
end as BaseUnitNetAmount,
case when RPTaxItem.TaxBaseAmountInTransCrcy = 0 or RPTaxItem.TaxBaseAmountInTransCrcy is null
then cast(get_numeric_value(RPTaxItem.AmountInTransactionCurrency) as abap.dec(8,2) )
else cast(round(get_numeric_value(RPTaxItem.AmountInTransactionCurrency) / get_numeric_value(RPTaxItem.TaxBaseAmountInTransCrcy) * 100, 0) as abap.dec(8,2) )
end as Taxrate,
JournalItem.TaxCode,
cast(case RPItem.FinancialAccountType
when 'K' then
case RPItem.DebitCreditCode
when 'S' then '3'
else '1'
end
else '1'
end as char1) as CustomerInvoiceType,
cast('RMRP' as fis_awtyp) as ReferenceDocumentType,
@Semantics.amount.currencyCode: 'DocumentCurrency'
cast(abs(get_numeric_value(JournalItem.AmountInTransactionCurrency)) as abap.curr(28,2)) as NetPriceAmount,
@Semantics.amount.currencyCode: 'DocumentCurrency'
cast(abs(get_numeric_value(RPTaxItem.AmountInTransactionCurrency) * (get_numeric_value(JournalItem.AmountInTransactionCurrency) / get_numeric_value(RPTaxItem.TaxBaseAmountInTransCrcy))) as abap.curr(28,2)) as TaxAmount,
@Semantics.amount.currencyCode: 'DocumentCurrency'
cast(abs(get_numeric_value(JournalItem.AmountInTransactionCurrency)) +
abs(get_numeric_value(RPTaxItem.AmountInTransactionCurrency) * (get_numeric_value(JournalItem.AmountInTransactionCurrency) / get_numeric_value(RPTaxItem.TaxBaseAmountInTransCrcy))) as abap.curr(28,2)) as GrossAmount,
cast ('HUF' as abap.cuky) as HungarianCurrency,
@Semantics.amount.currencyCode: 'HungarianCurrency'
case RPTaxItem.CompanyCodeCurrency
when 'HUF' then cast((get_numeric_value(RPTaxItem.AmountInCompanyCodeCurrency) * (get_numeric_value(JournalItem.AmountInCompanyCodeCurrency) / get_numeric_value(RPTaxItem.TaxBaseAmountInCoCodeCrcy))) as abap.curr(28,2))
else case RPTaxItem.TransactionCurrency
when 'HUF' then cast((get_numeric_value(RPTaxItem.AmountInTransactionCurrency) * (get_numeric_value(JournalItem.AmountInTransactionCurrency) / get_numeric_value(RPTaxItem.TaxBaseAmountInTransCrcy))) as abap.curr(28,2))
else cast((get_numeric_value(RPTaxItem.AmountInFunctionalCurrency) * (get_numeric_value(JournalItem.AmountInTransactionCurrency) / get_numeric_value(RPTaxItem.TaxBaseAmountInTransCrcy))) as abap.curr(28,2))
end
end as TaxAmountInHUFCrcy,
//raw values for analytical view
@Semantics.amount.currencyCode: 'DocumentCurrency'
cast(JournalItem.AmountInTransactionCurrency as abap.curr(28,2)) as AnalyticalNetPriceAmount,
@Semantics.amount.currencyCode: 'DocumentCurrency'
cast(JournalItem.AmountInTransactionCurrency as abap.curr(28,2)) + cast(cast(RPTaxItem.AmountInTransactionCurrency as abap.dec(28,2)) * (cast(JournalItem.AmountInTransactionCurrency as abap.dec(28,2)) / cast(RPTaxItem.TaxBaseAmountInTransCrcy as abap.dec(28,2))) as abap.curr(28,2)) as AnalyticalGrossAmount,
@Semantics.amount.currencyCode: 'HungarianCurrency'
case RPTaxItem.CompanyCodeCurrency
when 'HUF' then cast((cast(RPTaxItem.AmountInCompanyCodeCurrency as abap.dec(28,2))* (cast(JournalItem.AmountInCompanyCodeCurrency as abap.dec(28,2)) / cast(RPTaxItem.TaxBaseAmountInCoCodeCrcy as abap.dec(28,2)))) as abap.curr(28,2))
else case RPTaxItem.TransactionCurrency
when 'HUF' then cast((cast(RPTaxItem.AmountInTransactionCurrency as abap.dec(28,2)) * (cast(JournalItem.AmountInTransactionCurrency as abap.dec(28,2)) / cast(RPTaxItem.TaxBaseAmountInTransCrcy as abap.dec(28,2)))) as abap.curr(28,2))
else cast((cast(RPTaxItem.AmountInFunctionalCurrency as abap.dec(28,2)) * (cast(JournalItem.AmountInTransactionCurrency as abap.dec(28,2)) / cast(RPTaxItem.TaxBaseAmountInTransCrcy as abap.dec(28,2)))) as abap.curr(28,2))
end
end as AnalyticalTaxAmountInHUFCrcy,
@Semantics.amount.currencyCode: 'DocumentCurrency'
abs(cast(RPTaxItem.AmountInTransactionCurrency as abap.dec(28,2))) * abs((cast(JournalItem.AmountInTransactionCurrency as abap.dec(28,2)) / cast(RPTaxItem.TaxBaseAmountInTransCrcy as abap.dec(28,2)))) as AnlTaxAmountInDocumentCurrency,
JournalSupplierItem.Supplier,
SupplierToBusinessPartner.BusinessPartnerUUID as BusinessPartnerUUID,
BusinessPartner.BusinessPartner as BusinessPartner,
BusinessPartner.BusinessPartnerName as BusinessPartnerName
} where JournalItem.Material is not initial