@AbapCatalog.sqlViewName: 'PTPAVAILY'
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
--@AccessControl.authorizationCheck: #NOT_ALLOWED
@EndUserText.label: 'Third Party Availability'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@Metadata.ignorePropagatedAnnotations: true
define view P_ThirdPartyAvaily
as select from I_PurchaseOrderItem as a
inner join I_PurchaseOrderScheduleLine as PurchaseOrderScheduleLine on a.PurchaseOrder = PurchaseOrderScheduleLine.PurchaseOrder // 3066400
and a.PurchaseOrderItem = PurchaseOrderScheduleLine.PurchaseOrderItem // 3066400 and a.PurchaseOrderItem = _GoodsReceipt.PurchaseOrderItem
{
//a
key a.Material,
key a.Plant,
key a.Subcontractor,
PurchaseOrderScheduleLine.OpenPurchaseOrderQuantity as OrderQuantity, // 3066400
a.PurchaseOrderQuantityUnit as OrderQuantityUnit
}
where
SupplierIsSubcontractor = 'X'
and Subcontractor <> ''
and IsCompletelyDelivered = ''
and PurchasingDocumentDeletionCode = ''
union all select from I_Schedgline as b
{
//b
key _SchedgAgrmtItm.Material,
key _SchedgAgrmtItm.Plant,
key _SchedgAgrmtItm.Subcontractor as Subcontractor,
//@Semantics.quantity.unitOfMeasure: 'BaseUnit'
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
//ScheduleLineOrderQuantity as OrderQuantity,
ScheduleLineOpenQuantity as OrderQuantity,
@Semantics.unitOfMeasure: true
_SchedgAgrmtItm.OrderQuantityUnit
}
where
_SchedgAgrmtItm.SupplierIsSubcontractor = 'X'
and _Schedgagrmthdr.SchedulingAgreement is not null
and _SchedgAgrmtItm.SchedulingAgreement is not null
union all select from I_Purchaserequisitionitem as c
{
//c
key Material,
key Plant,
key Subcontractor,
//RequestedQuantity as OrderQuantity,
RequestedQuantity - OrderedQuantity as OrderQuantity,
BaseUnit as OrderQuantityUnit
}
where Subcontractor <> ''
and PurchasingDocument = ''
and IsDeleted = ''
// as select distinct from I_SubcontractingComponent
//
//
// /* Associations to Third Party Stock Balance Availability fields */
////
////
//// association to P_ThirdPartyPurReqnAvaily as _ThirdPartyPurReqnAvaily on $projection.Material = _ThirdPartyPurReqnAvaily.Material
//// and $projection.Plant = _ThirdPartyPurReqnAvaily.Plant
//// and $projection.Supplier = _ThirdPartyPurReqnAvaily.Subcontractor
////
//// association to P_ThirdPartySchedgAgrmtAvaily as _ThirdPartySchedgAgrmtAvaily on $projection.Material = _ThirdPartySchedgAgrmtAvaily.Material
//// and $projection.Plant = _ThirdPartySchedgAgrmtAvaily.Plant
//// and $projection.Supplier = _ThirdPartySchedgAgrmtAvaily.Subcontractor
////
//// association to P_ThirdPartyPurOrdAvaily as _ThirdPartyPurOrdAvaily on $projection.Material = _ThirdPartyPurOrdAvaily.Material
//// and $projection.Plant = _ThirdPartyPurOrdAvaily.Plant
//// and $projection.Supplier = _ThirdPartyPurOrdAvaily.Subcontractor
//
//
//
//
//{
//
// key Material,
//
// key Plant,
//
// key Supplier,
//
//
//
//
// //2a. 3rd party Subcontracting POs
//// _ThirdPartyPurOrdAvaily.OrderQuantity,
////
//// //2b. 3rd party Subcontracting SAs
//// _ThirdPartySchedgAgrmtAvaily.OrderQuantity as SAQuantity,
////
//// //2c. 3rd party Subcontracting PRs
//// _ThirdPartyPurReqnAvaily.RequestedQuantity,
//
// //2. Total External deliveries (PO + SA + PR)
// /*
// This case statement allows the addition of the above 3 quantities, irrespective of whether one is null or not.
// */
//// case when _ThirdPartySchedgAgrmtAvaily.OrderQuantity is null and _ThirdPartyPurOrdAvaily.OrderQuantity is null
//// and _ThirdPartyPurReqnAvaily.RequestedQuantity is null
//// then cast (0 as abap.quan( 13, 3 ))
//// when _ThirdPartySchedgAgrmtAvaily.OrderQuantity is null and _ThirdPartyPurReqnAvaily.RequestedQuantity is null
//// then _ThirdPartyPurOrdAvaily.OrderQuantity
//// when _ThirdPartyPurOrdAvaily.OrderQuantity is null and _ThirdPartyPurReqnAvaily.RequestedQuantity is null
//// then _ThirdPartySchedgAgrmtAvaily.OrderQuantity
//// when _ThirdPartySchedgAgrmtAvaily.OrderQuantity is null and _ThirdPartyPurOrdAvaily.OrderQuantity is null
//// then _ThirdPartyPurReqnAvaily.RequestedQuantity
////
//// when _ThirdPartySchedgAgrmtAvaily.OrderQuantity is null
//// then (_ThirdPartyPurOrdAvaily.OrderQuantity + _ThirdPartyPurReqnAvaily.RequestedQuantity)
//// when _ThirdPartyPurOrdAvaily.OrderQuantity is null
//// then (_ThirdPartySchedgAgrmtAvaily.OrderQuantity + _ThirdPartyPurReqnAvaily.RequestedQuantity)
//// when _ThirdPartyPurReqnAvaily.RequestedQuantity is null
//// then ( _ThirdPartySchedgAgrmtAvaily.OrderQuantity + _ThirdPartyPurOrdAvaily.OrderQuantity)
////
//// else
//// (_ThirdPartySchedgAgrmtAvaily.OrderQuantity + _ThirdPartyPurOrdAvaily.OrderQuantity + _ThirdPartyPurReqnAvaily.RequestedQuantity )
////
////
//// end as DirectDeliveries
//
//
//}
//
//
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASEORDERITEM",
"I_PURCHASEORDERSCHEDULELINE",
"I_PURCHASEREQUISITIONITEM",
"I_SCHEDGAGRMTHDR",
"I_SCHEDGAGRMTITM",
"I_SCHEDGLINE"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/