@AbapCatalog.sqlViewName: 'PMSTRPROJWIP'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@VDM.private:true
define view P_MstrProjWIP
as select from I_MstrProjItemList as MasterProject
inner join I_Project as ProjectDefinition on MasterProject.MasterProjectItem = ProjectDefinition.ProjectObject
inner join I_Projectwipdetail as ProjectWIP on ProjectDefinition.Project = ProjectWIP.Project
left outer to one join I_MstrProjFinPlnActVersion as FinPlanActVrsn
on FinPlanActVrsn.MasterProjectUUID = MasterProject.MasterProjectUUID
{
key MasterProject.MasterProjectUUID as MasterProjectUUID,
key MasterProject.MasterProject,
MasterProject.MasterProjectType,
MasterProject.MasterProjectOrganization,
MasterProject.MasterProjectIsConfidential,
MasterProject.Currency,
ProjectWIP.Project,
ProjectWIP.WBSElement,
ProjectWIP.CompanyCode,
ProjectWIP.BusinessArea,
ProjectWIP.ControllingArea,
ProjectWIP.ControllingObject,
ProjectWIP.ControllingObjectCurrency,
//concat(ProjectWIP.ControllingObjectCurrency, ' ') as Currency,
ProjectWIP.ControllingAreaCurrency,
ProjectWIP.TransactionCurrency,
ProjectWIP._CompanyCode.Currency as CompanyCodeCurrency,
ProjectWIP.TotCtrlgAreaCrcyInvcSimlnAmt,
ProjectWIP.TotObjectCrcyInvoiceSimlnAmt,
ProjectWIP.TotTransacCrcyInvoiceSimlnAmt,
ProjectWIP.TransacCrcyWIPAmount,
ProjectWIP.ObjectCrcyWIPAmount,
ProjectWIP.CtrlgAreaCrcyWIPAmount,
ProjectWIP.WIPQuantity,
// ProjectWIP.UnitOfMeasure
case when ProjectWIP.UnitOfMeasure <> ' '
then
ProjectWIP.UnitOfMeasure
else
'H'
end as UnitOfMeasure,
MasterProject.MstrProjCutOffDate,
MasterProject.PostingPeriod,
FinPlanActVrsn.FinancialPlanCurrency,
dats_add_days(dats_add_months(cast(concat(concat(substring(ProjectWIP.PostingPeriod, 1, 4), substring(ProjectWIP.PostingPeriod, 6, 2)) , '01') as abap.dats), 1, 'INITIAL'), -1, 'INITIAL') as PostingDate,
//dats_add_days(cast(concat(concat(substring(ProjectWIP.PostingPeriod, 1, 4), substring(MasterProject.PostingPeriod, 6, 2)), '01') as abap.dats), -1, 'INITIAL') as PostingDate,
case
when MasterProject.PostingPeriod is not null
and MasterProject.PostingPeriod >= ProjectWIP.PostingPeriod
then ProjectWIP.TotCtrlgAreaCrcyInvcSimlnAmt
else cast(0 as fins_vhcur12) end as StrtToDteActlRevnInCOCrcy
// case
// when ProjectWIPDetail.ControllingAreaCurrency = JournalEntry.CompanyCodeCurrency
// then
// ProjectWIPDetail.CtrlgAreaCrcyWIPAmount
// when ProjectWIPDetail.ControllingObjectCurrency = JournalEntry.CompanyCodeCurrency
// then ProjectWIPDetail.ObjectCrcyWIPAmount
// else
// currency_conversion( amount => ProjectWIPDetail.TransacCrcyWIPAmount,
// source_currency => ProjectWIPDetail.TransactionCurrency,
// target_currency => JournalEntry.CompanyCodeCurrency,
// exchange_rate_date => StartDate ,
// exchange_rate_type => 'M',
// error_handling => 'SET_TO_NULL' )
//
// end as UnbilledRevnInCoCodeCrcy,
}
where ProjectWIP.UnitOfMeasure is not null and ProjectWIP.WIPQuantity is not null
//and ProjectWIP.TotCtrlgAreaCrcyInvcSimlnAmt is not null
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_MSTRPROJFINPLNACTVERSION",
"I_MSTRPROJITEMLIST",
"I_PROJECT",
"I_PROJECTWIPDETAIL"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/