@AbapCatalog.sqlViewName: 'PWCCAPPPLINEOP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@VDM: {
private: true
}
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_WorkCenterCapPplineOp
as select from I_LogisticsOrder as _Order
inner join I_SchedCapacityRqmtItemCap as CapRqmtItmCap on _Order.CapacityRequirement = CapRqmtItmCap.CapacityRequirement
inner join I_WorkCenter as workcenter on CapRqmtItmCap.WorkCenterInternalID = workcenter.WorkCenterInternalID
and workcenter.WorkCenterIsToBeDeleted = ''
and workcenter.WorkCenterTypeCode = 'A'
// left outer to one join afko as _OrderHeader on CapRqmtItmCap.OrderInternalID = _OrderHeader.aufpl
// and CapRqmtItmCap.OrderInternalID > '0000000000'
left outer join I_OrderOperation as _OrderOperation on CapRqmtItmCap.OrderInternalID = _OrderOperation.OrderInternalID
and CapRqmtItmCap.OrderOperationInternalID = _OrderOperation.OrderOperationInternalID
and CapRqmtItmCap.WorkCenterInternalID = _OrderOperation.WorkCenterInternalID
// and CapRqmtItmCap.OperationLatestStartDate = _OrderOperation.OpLtstSchedldExecStrtDte
// and CapRqmtItmCap.OperationLatestEndDate = _OrderOperation.OpLtstSchedldExecEndDte
and _OrderOperation.SuperiorOperationInternalID is initial
// and _OrderOperation.Sequence = '000000'
// left outer join P_MfgOrderOpStatus as _OrderOper on CapRqmtItmCap.OrderInternalID = _OrderOper.OrderInternalID
// and _OrderOperation.OrderOperationInternalID = _OrderOper.OrderOperationInternalID
left outer join P_MfgOrderOpStatus as _OrderOper on CapRqmtItmCap.OrderObjectInternalID = _OrderOper.StatusObject
left outer join P_ProcCapReqOpDurn as ProcOpDurn on CapRqmtItmCap.CapacityRequirement = ProcOpDurn.CapacityRequirement
and CapRqmtItmCap.CapacityRequirementItem = ProcOpDurn.SuperiorOperationInternalID
and CapRqmtItmCap.CapacityRqmtItemCapacity = ProcOpDurn.CapacityRqmtItemCapacity
and CapRqmtItmCap.OperationIsPhase = '1'
// association [0..1] to I_LogisticsOrder as _Order on _OrderHeader.aufnr = _Order.OrderID
association [1..1] to I_WorkCenterCapacity as workcenter_capacity on CapRqmtItmCap.WorkCenterInternalID = workcenter_capacity.WorkCenterInternalID
and CapRqmtItmCap.CapacityInternalID = workcenter_capacity.CapacityInternalID
// association [1..1] to I_CapacityRequirement as _CapacityRequirement on $projection.CapacityRequirement = _CapacityRequirement.CapacityRequirement
association [0..1] to I_PlannedOrder as _PlannedOrder on $projection.PlannedOrder = _PlannedOrder.PlannedOrder
// association [1..1] to P_SchedOrderOperationStatus as _OrderOper on _OrderOper.StatusObject = CapRqmtItmCap.OrderObjectInternalID
// association [1..1] to P_MfgOrderOpStatus as _OrderOper on CapRqmtItmCap.OrderInternalID = _OrderOper.OrderInternalID
// and _OrderOperation.OrderOperationInternalID = _OrderOper.OrderOperationInternalID
// association [0..*] to I_OrderOperation as _OrderOperation on CapRqmtItmCap.OrderInternalID = _OrderOperation.OrderInternalID
// and CapRqmtItmCap.OrderOperationInternalID = _OrderOperation.OrderOperationInternalID
// //and CapRqmtItmCap.WorkCenterInternalID = _OrderOperation.WorkCenterInternalID
// and _OrderOperation.SuperiorOperationInternalID is initial
// and _OrderOperation.Sequence = '000000'
//association [0..1] to I_MfgOrderItem as _MfgOrderItem on $projection.OrderID = _MfgOrderItem.ManufacturingOrder
// and $projection.OrderCategory = '10'
// and _MfgOrderItem.ManufacturingOrderItem = '0001'
{
key workcenter_capacity.WorkCenterInternalID as WorkCenterInternalID,
key workcenter_capacity.WorkCenterTypeCode,
key workcenter_capacity.CapacityCategoryAllocation,
key CapRqmtItmCap.CapacityInternalID as CapacityInternalID,
key cast(_Order.OrderID as abap.char(12)) as OrderID, //
//key _Order.OrderID,
key CapRqmtItmCap.Operation as Operation,
key CapRqmtItmCap.CapacityRequirement as CapacityRequirement,
key CapRqmtItmCap.CapacityRequirementItem as CapacityRequirementItem,
//key cast( _Order.Material as matnr) as Material, //
// _Order.Material,
_Order._OrderMainItem.Material,
_Order._OrderMainItem.ProductConfiguration as ProductConfiguration,
// _MfgOrderItem.Material,
//cast( _Order.Plant as abap.char(4)) as Plant, //
_Order.Plant,
//cast( _Order.MRPController as abap.char(3)) as MRPController, //
_Order.MRPController,
workcenter.WorkCenter,
CapRqmtItmCap.PlannedOrder,
workcenter_capacity._Capacity.CapacityBaseQtyUnit as CapacityBaseQtyUnit,
case
when CapRqmtItmCap.OperationIsPhase = '1'
then ProcOpDurn.CapacityRequirementUnit
when CapRqmtItmCap.OperationIsPhase <> '1'
then
CapRqmtItmCap.CapacityRequirementUnit
end as CapacityRequirementUnit,
workcenter.WorkCenterResponsible as WorkCenterResponsible,
workcenter.WorkCenterCategoryCode,
// Removing the association to I_CapacityRequirement as the data returned is already having CapacityRequirementOrigin=1
// Hardcoding the CapacityRequirementOrigin to 1 for the above reason
//_CapacityRequirement.CapacityRequirementOrigin as CapacityRequirementOrigin,
cast ('1' as capacityrequirementorigin) as CapacityRequirementOrigin,
CapRqmtItmCap.OrderInternalID as OrderInternalID,
//cast( _Order.OrderType as abap.char(4)) as OrderType, //
_Order.OrderType,
// case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// when '1'
// then CapRqmtItmCap._Order._OrderType._Text[1:Language=$session.system_language].OrderTypeName
// when '2'
// then CapRqmtItmCap._PlannedOrder._PlannedOrderType._Text[1:Language=$session.system_language].PlannedOrderTypeName
// else ''
// end as OrderTypeName,
cast( _Order.OrderCategory as pph_cfs_sch_ordercategory) as OrderCategory, //
// case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// when '1'
// then CapRqmtItmCap._Order._OrderCategory._Text[1:Language=$session.system_language].OrderCategoryName
// when '2'
// then CapRqmtItmCap._PlannedOrder._PlannedOrderCategory._Text[1:Language=$session.system_language].PlannedOrderCategoryName
// else ''
// end as OrderCategoryName,
//cast ( _Order.OrderPlannedTotalQty as abap.quan(13,3) ) as OrderPlannedTotalQty, //
_Order.OrderPlannedTotalQty,
_PlannedOrder.ProductionVersion as ProductionVersion,
_Order.BaseUnit as BaseUnit, //
case
when _OrderOperation.OpDispatchedExecStartDate is initial or _OrderOperation.OpDispatchedExecStartDate is null
then 'DALL'
when _OrderOperation.OpDispatchedExecStartDate is not initial
then 'DSPT'
end as OperationPlanningStatusCode, //
// case
// when _Order.OrderCategory = '30'
// then CapRqmtItmCap.OperationLatestStartDate
// when _Order.OrderCategory <> '30'
// then _OrderOperation.OpLtstSchedldExecStrtDte
// end as OperationLatestStartDate, //
//Operation Latest Start and End Date/Time is picked from KBED
CapRqmtItmCap.OperationLatestStartDate,
// case
// when _Order.OrderCategory = '30'
// then CapRqmtItmCap.OperationLatestStartTime
// when _Order.OrderCategory <> '30'
// then _OrderOperation.OpLtstSchedldExecStrtTme
// end as OperationLatestStartTime, //
CapRqmtItmCap.OperationLatestStartTime,
concat(CapRqmtItmCap.OperationLatestStartDate,CapRqmtItmCap.OperationLatestStartTime) as OperationLatestStartDateTime,
// case
// when _Order.OrderCategory = '30'
// then CapRqmtItmCap.OperationLatestEndDate
// when _Order.OrderCategory <> '30'
// then _OrderOperation.LatestScheduledWaitEndDate
// end as OperationLatestEndDate, //
CapRqmtItmCap.OperationLatestEndDate,
// case
// when _Order.OrderCategory = '30'
// then CapRqmtItmCap.OperationLatestEndTime
// when _Order.OrderCategory <> '30'
// then _OrderOperation.LatestScheduledWaitEndTime
// end as OperationLatestEndTime, //
CapRqmtItmCap.OperationLatestEndTime,
concat(CapRqmtItmCap.OperationLatestEndDate,CapRqmtItmCap.OperationLatestEndTime) as OperationLatestEndDateTime,
_OrderOperation.OpLtstSchedldProcgStrtDte as OpLtstSchedldProcgStrtDte, //
_OrderOperation.OpLtstSchedldProcgStrtTme as OpLtstSchedldProcgStrtTme, //
_OrderOperation.OpLtstSchedldTrdwnStrtDte as OpLtstSchedldTrdwnStrtDte, //
_OrderOperation.OpLtstSchedldTrdwnStrtTme as OpLtstSchedldTrdwnStrtTme, //
//Convert time into seconds
case
when _Order.OrderCategory <> '30'
then
cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 5, 2) as abap.numc(2) ) as abap.int4 )
when _Order.OrderCategory = '30'
then
cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 )
end as OpLtstSchedldExecStrtTme, //
case
when _Order.OrderCategory <> '30'
then
cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
when _Order.OrderCategory = '30'
then
cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
end as OpLtstSchedldExecEndTme, //
case
when CapRqmtItmCap.OperationIsPhase = '1'
then ProcOpDurn.TotRemCapReqOpSegProcgDurn
when CapRqmtItmCap.OperationIsPhase <> '1'
then
(( CapRqmtItmCap.RemainingCapReqOpSegSetupDurn
+ CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn
+ CapRqmtItmCap.RemainingCapReqOpSegProcgDurn ) )
end as CapacityRequirementsAreDtmnd,
case
when CapRqmtItmCap.RemainingCapReqOpSegSetupDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.RemainingCapReqOpSegSetupDurn <= 99999999
then fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegSetupDurn as abap.dec( 10,2))
end as RemainingCapReqOpSegSetupDurn,
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then case
// when ProcOpDurn.TotRemCapReqOpSegProcgDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(ProcOpDurn.TotRemCapReqOpSegProcgDurn as abap.dec( 10,2))
// end
// else
// case
// when CapRqmtItmCap.RemainingCapReqOpSegProcgDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegProcgDurn as abap.dec( 10,2))
// end
// end as RemainingCapReqOpSegProcgDurn,
case
when CapRqmtItmCap.OperationIsPhase = '1' and ProcOpDurn.TotRemCapReqOpSegProcgDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.OperationIsPhase = '1' and ProcOpDurn.TotRemCapReqOpSegProcgDurn <= 99999999
then fltp_to_dec(ProcOpDurn.TotRemCapReqOpSegProcgDurn as abap.dec( 10,2))
when CapRqmtItmCap.OperationIsPhase <> '1' and CapRqmtItmCap.RemainingCapReqOpSegProcgDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.OperationIsPhase <> '1' and CapRqmtItmCap.RemainingCapReqOpSegProcgDurn <= 99999999
then fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegProcgDurn as abap.dec( 10,2))
end as RemainingCapReqOpSegProcgDurn,
case
when CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn <= 99999999
then fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn as abap.dec( 10,2))
end as RemainingCapReqOpSegTrdwnDurn,
// case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// when '1'
// then case _OrderOper.StatusCode
// when 10 then 'Created'
// when 20 then 'Released'
// when 30 then 'Confirmed'
// when 40 then 'Partially Confirmed'
// end
// when '2'
// then 'Created'
// end as OrderStatusText,
case
when _Order.OrderCategory = '30'
then ' '
when _Order.OrderCategory <> '30' and _OrderOper.StatusCode = 10
then 'I0001'
when _Order.OrderCategory <> '30' and _OrderOper.StatusCode = 20
then 'I0002'
when _Order.OrderCategory <> '30' and _OrderOper.StatusCode = 30
then 'I0009'
when _Order.OrderCategory <> '30' and _OrderOper.StatusCode = 40
then 'I0010'
end as OrderStatusCode,
cast('0' as char1) as OrderFirmingStatusCode, //
_Order.ScheduledBasicStartDate as ScheduledBasicStartDate, //
_Order.ScheduledBasicStartTime as ScheduledBasicStartTime, //
_Order.ScheduledBasicEndDate as ScheduledBasicEndDate, //
_Order.ScheduledBasicEndTime as ScheduledBasicEndTime, //
$session.system_date as CurrentDate,
case
when CapRqmtItmCap.OperationLatestStartTime >= '240000'
then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestStartDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
when CapRqmtItmCap.OperationLatestStartTime < '240000'
then
cast(cast(concat(CapRqmtItmCap.OperationLatestStartDate,CapRqmtItmCap.OperationLatestStartTime)as abap.numc(15)) as timestamp)
end as LtstSchedldExecStrtDteTme,
case
when CapRqmtItmCap.OperationLatestEndTime >= '240000'
then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestEndDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
when CapRqmtItmCap.OperationLatestEndTime < '240000'
then cast(cast(concat(CapRqmtItmCap.OperationLatestEndDate,CapRqmtItmCap.OperationLatestEndTime)as abap.numc(15)) as timestamp)
end as LtstSchedldExecEndDteTme,
_OrderOperation.Sequence as Sequence,
case
when workcenter._Plant._StandardOrganizationAddress.AddressTimeZone is null or workcenter._Plant._StandardOrganizationAddress.AddressTimeZone is initial
then abap_system_timezone($session.client, 'NULL')
when workcenter._Plant._StandardOrganizationAddress.AddressTimeZone is not null
then workcenter._Plant._StandardOrganizationAddress.AddressTimeZone
end as PlantTimeZone,
_Order._OrderMainItem.SalesOrder,
_Order._OrderMainItem.SalesOrderItem,
_Order._SalesOrder.SoldToParty as Customer,
//operation text
//Maintenance order '30' will not have the operation description
case
when _Order.OrderCategory <> '30'
then _OrderOperation.OperationText
else ''
end as OperationText
}
where
// _CapacityRequirement.CapacityRequirementOrigin = '1'
// and(
CapRqmtItmCap.OperationIsPhase <> '2'
// )
and(
_Order.OrderCategory = '10'
// and _OrderOperation.Sequence = '000000'
or _Order.OrderCategory = '40'
// and _OrderOperation.Sequence = '000000'
or _Order.OrderCategory = '30'
)
//and OperationLatestStartDate <= $parameters.P_EndDate
// and OperationLatestEndDate >= $parameters.P_StartDate
union all
//select from I_SchedCapacityRqmtItemCap as CapRqmtItmCap
select from I_PlannedOrder as _PlannedOrder
inner join I_SchedCapacityRqmtItemCap as CapRqmtItmCap on _PlannedOrder.CapacityRequirement = CapRqmtItmCap.CapacityRequirement
inner join I_WorkCenter as workcenter on CapRqmtItmCap.WorkCenterInternalID = workcenter.WorkCenterInternalID
and workcenter.WorkCenterIsToBeDeleted = ''
and workcenter.WorkCenterTypeCode = 'A'
left outer join P_ProcCapReqOpDurn as ProcOpDurn on CapRqmtItmCap.CapacityRequirement = ProcOpDurn.CapacityRequirement
and CapRqmtItmCap.CapacityRequirementItem = ProcOpDurn.SuperiorOperationInternalID
and CapRqmtItmCap.CapacityRqmtItemCapacity = ProcOpDurn.CapacityRqmtItemCapacity
and CapRqmtItmCap.OperationIsPhase = '1'
association [1..1] to I_WorkCenterCapacity as workcenter_capacity on CapRqmtItmCap.WorkCenterInternalID = workcenter_capacity.WorkCenterInternalID
and CapRqmtItmCap.CapacityInternalID = workcenter_capacity.CapacityInternalID
//association [0..1] to I_PlannedOrder as _PlannedOrder on $projection.PlannedOrder = _PlannedOrder.PlannedOrder
association [1..1] to I_CapacityRequirement as _CapacityRequirement on $projection.CapacityRequirement = _CapacityRequirement.CapacityRequirement
//Operation text
association [0..1] to I_BillOfOperationsOpBasic as _MainOperation on _MainOperation.BillOfOperationsType = CapRqmtItmCap.BillOfOperationsType
and _MainOperation.BillOfOperationsGroup = CapRqmtItmCap.BillOfOperationsGroup
and _MainOperation.BOOOperationInternalID = CapRqmtItmCap.BOOOperationInternalID
and _MainOperation.BOOOpInternalVersionCounter = CapRqmtItmCap.BOOOpInternalVersionCounter
{
key workcenter_capacity.WorkCenterInternalID as WorkCenterInternalID,
key workcenter_capacity.WorkCenterTypeCode,
key workcenter_capacity.CapacityCategoryAllocation,
key CapRqmtItmCap.CapacityInternalID as CapacityInternalID,
key cast ( CapRqmtItmCap.PlannedOrder as abap.char(12) ) as OrderID,
key CapRqmtItmCap.Operation as Operation,
key CapRqmtItmCap.CapacityRequirement as CapacityRequirement,
key CapRqmtItmCap.CapacityRequirementItem as CapacityRequirementItem,
//key cast ( _PlannedOrder.Material as matnr ) as Material,
key _PlannedOrder.Material,
cast( '' as cuobj ) as ProductConfiguration,
//cast ( _PlannedOrder.ProductionPlant as abap.char(4) ) as Plant,
_PlannedOrder.ProductionPlant as Plant,
//cast ( _PlannedOrder.MRPController as abap.char(3) ) as MRPController,
_PlannedOrder.MRPController as MRPController,
workcenter.WorkCenter,
CapRqmtItmCap.PlannedOrder,
workcenter_capacity._Capacity.CapacityBaseQtyUnit as CapacityBaseQtyUnit,
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then ProcOpDurn.CapacityRequirementUnit
// else
// CapRqmtItmCap.CapacityRequirementUnit
// end as CapacityRequirementUnit,
case
when CapRqmtItmCap.OperationIsPhase = '1'
then ProcOpDurn.CapacityRequirementUnit
when CapRqmtItmCap.OperationIsPhase <> '1'
then
CapRqmtItmCap.CapacityRequirementUnit
end as CapacityRequirementUnit,
workcenter.WorkCenterResponsible as WorkCenterResponsible,
workcenter.WorkCenterCategoryCode,
// _Text[1:Language=$session.system_language].WorkCenterText as WorkCenterDesc,
_CapacityRequirement.CapacityRequirementOrigin as CapacityRequirementOrigin,
CapRqmtItmCap.OrderInternalID as OrderInternalID,
cast ( _PlannedOrder.PlannedOrderType as abap.char(3) ) as OrderType,
cast(_PlannedOrder.PlannedOrderCategory as pph_cfs_sch_ordercategory) as OrderCategory,
//cast ( _PlannedOrder.PlannedTotalQtyInBaseUnit as abap.quan(13,3) ) as OrderPlannedTotalQty,
_PlannedOrder.PlannedTotalQtyInBaseUnit as OrderPlannedTotalQty,
_PlannedOrder.ProductionVersion as ProductionVersion,
_PlannedOrder.BaseUnit as BaseUnit,
case
when _PlannedOrder.PlannedOrderCapacityIsDsptchd = 'X'
then 'DSPT'
when _PlannedOrder.PlannedOrderCapacityIsDsptchd <> 'X'
then 'DALL'
end as OperationPlanningStatusCode,
CapRqmtItmCap.OperationLatestStartDate as OperationLatestStartDate,
CapRqmtItmCap.OperationLatestStartTime as OperationLatestStartTime,
concat(CapRqmtItmCap.OperationLatestStartDate,CapRqmtItmCap.OperationLatestStartTime) as OperationLatestStartDateTime,
CapRqmtItmCap.OperationLatestEndDate as OperationLatestEndDate,
CapRqmtItmCap. OperationLatestEndTime as OperationLatestEndTime,
concat(CapRqmtItmCap.OperationLatestEndDate,CapRqmtItmCap.OperationLatestEndTime) as OperationLatestEndDateTime,
CapRqmtItmCap.LtstSchedldProcStrtDte as OpLtstSchedldProcgStrtDte,
CapRqmtItmCap.LtstSchedldProcStrtTime as OpLtstSchedldProcgStrtTme,
CapRqmtItmCap.LtstSchedldTrdwnStrtDte as OpLtstSchedldTrdwnStrtDte,
CapRqmtItmCap.LtstSchedldTrdwnStrtTime as OpLtstSchedldTrdwnStrtTme,
//Convert time into seconds
cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecStrtTme,
cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecEndTme,
case
when CapRqmtItmCap.OperationIsPhase = '1'
then ProcOpDurn.TotRemCapReqOpSegProcgDurn
when CapRqmtItmCap.OperationIsPhase <> '1'
then
(( CapRqmtItmCap.RemainingCapReqOpSegSetupDurn
+ CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn
+ CapRqmtItmCap.RemainingCapReqOpSegProcgDurn ) )
end as CapacityRequirementsAreDtmnd,
case
when CapRqmtItmCap.RemainingCapReqOpSegSetupDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.RemainingCapReqOpSegSetupDurn <= 99999999
then fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegSetupDurn as abap.dec( 10,2))
end as RemainingCapReqOpSegSetupDurn,
case
when CapRqmtItmCap.OperationIsPhase = '1' and ProcOpDurn.TotRemCapReqOpSegProcgDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.OperationIsPhase = '1' and ProcOpDurn.TotRemCapReqOpSegProcgDurn <= 99999999
then fltp_to_dec(ProcOpDurn.TotRemCapReqOpSegProcgDurn as abap.dec( 10,2))
when CapRqmtItmCap.OperationIsPhase <> '1' and CapRqmtItmCap.RemainingCapReqOpSegProcgDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.OperationIsPhase <> '1' and CapRqmtItmCap.RemainingCapReqOpSegProcgDurn <= 99999999
then fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegProcgDurn as abap.dec( 10,2))
end as RemainingCapReqOpSegProcgDurn,
case
when CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn > 99999999
then fltp_to_dec(99999999.99 as abap.dec( 10,2))
when CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn <= 99999999
then fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn as abap.dec( 10,2))
end as RemainingCapReqOpSegTrdwnDurn,
'I0001' as OrderStatusCode,
( case
when _PlannedOrder.PlannedOrderIsFirm = 'X'
then 'X'
when _PlannedOrder.PlannedOrderIsFirm <> 'X'
then ''
end ) as OrderFirmingStatusCode,
_CapacityRequirement.ScheduledBasicStartDate as ScheduledBasicStartDate,
_CapacityRequirement.ScheduledBasicStartTime as ScheduledBasicStartTime,
_CapacityRequirement.ScheduledBasicEndDate as ScheduledBasicEndDate,
_CapacityRequirement.ScheduledBasicEndTime as ScheduledBasicEndTime,
$session.system_date as CurrentDate,
case
when CapRqmtItmCap.OperationLatestStartTime >= '240000'
then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestStartDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
when CapRqmtItmCap.OperationLatestStartTime < '240000'
then
cast(cast(concat(CapRqmtItmCap.OperationLatestStartDate,CapRqmtItmCap.OperationLatestStartTime)as abap.numc(15)) as timestamp)
end as LtstSchedldExecStrtDteTme,
case
when CapRqmtItmCap.OperationLatestEndTime >= '240000'
then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestEndDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
when CapRqmtItmCap.OperationLatestEndTime < '240000'
then
cast(cast(concat(CapRqmtItmCap.OperationLatestEndDate,CapRqmtItmCap.OperationLatestEndTime)as abap.numc(15)) as timestamp)
end as LtstSchedldExecEndDteTme,
CapRqmtItmCap.BillOfOperationsSequence as Sequence,
case
when workcenter._Plant._StandardOrganizationAddress.AddressTimeZone is null or workcenter._Plant._StandardOrganizationAddress.AddressTimeZone is initial
then abap_system_timezone($session.client, 'NULL')
when workcenter._Plant._StandardOrganizationAddress.AddressTimeZone is not null
then workcenter._Plant._StandardOrganizationAddress.AddressTimeZone
end as PlantTimeZone,
_PlannedOrder.SalesOrder,
_PlannedOrder.SalesOrderItem,
_PlannedOrder._SalesOrder.SoldToParty as Customer,
//operation text
case
when CapRqmtItmCap.BOOSubOperationInternalID = '00000000'
then _MainOperation.OperationText
else ''
end as OperationText
}
where
_CapacityRequirement.CapacityRequirementOrigin = '2'
and(
CapRqmtItmCap.OperationIsPhase <> '2'
)
and _PlannedOrder.PlannedOrderCategory = '1'
//and OperationLatestStartDate <= $parameters.P_EndDate
// as select from I_CapacityRequirementItemCap as CapRqmtItmCap
// inner join I_WorkCenter as workcenter on CapRqmtItmCap.WorkCenterInternalID = workcenter.WorkCenterInternalID
// and workcenter.WorkCenterIsToBeDeleted = ''
// and workcenter.WorkCenterTypeCode = 'A'
// left outer join I_OrderOperation as _OrderOperation on CapRqmtItmCap.OrderInternalID = _OrderOperation.OrderInternalID
// and CapRqmtItmCap.OrderOperationInternalID = _OrderOperation.OrderOperationInternalID
// and _OrderOperation.SuperiorOperationInternalID is initial
// left outer join P_MfgOrderOpStatus as _OrderOper on CapRqmtItmCap.OrderInternalID = _OrderOper.OrderInternalID
// and _OrderOperation.OrderOperationInternalID = _OrderOper.OrderOperationInternalID
// left outer join P_ProcCapReqOpDurn as ProcOpDurn on CapRqmtItmCap.CapacityRequirement = ProcOpDurn.CapacityRequirement
// and CapRqmtItmCap.CapacityRequirementItem = ProcOpDurn.SuperiorOperationInternalID
// and CapRqmtItmCap.CapacityRqmtItemCapacity = ProcOpDurn.CapacityRqmtItemCapacity
// and CapRqmtItmCap.OperationIsPhase = '1'
// association [1..1] to I_WorkCenterCapacity as workcenter_capacity on CapRqmtItmCap.WorkCenterInternalID = workcenter_capacity.WorkCenterInternalID
// and CapRqmtItmCap.CapacityInternalID = workcenter_capacity.CapacityInternalID
//
//{
// key workcenter_capacity.WorkCenterInternalID as WorkCenterInternalID,
// key workcenter_capacity.WorkCenterTypeCode,
// key workcenter_capacity.CapacityCategoryAllocation,
// key CapRqmtItmCap.CapacityInternalID as CapacityInternalID,
// key cast( CapRqmtItmCap.OrderID as abap.char(12)) as OrderID, //
// key CapRqmtItmCap.Operation as Operation,
// key CapRqmtItmCap.CapacityRequirement as CapacityRequirement,
// key cast( CapRqmtItmCap._Order.Material as matnr) as Material, //
// cast( CapRqmtItmCap._Order.Plant as abap.char(4)) as Plant, //
// cast( CapRqmtItmCap._Order.MRPController as abap.char(3)) as MRPController, //
// workcenter.WorkCenter,
// workcenter_capacity._Capacity.CapacityBaseQtyUnit as CapacityBaseQtyUnit,
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then ProcOpDurn.CapacityRequirementUnit
// else
// CapRqmtItmCap.CapacityRequirementUnit
// end as CapacityRequirementUnit,
// workcenter.WorkCenterResponsible as WorkCenterResponsible,
// workcenter.WorkCenterCategoryCode,
// // _Text[1:Language=$session.system_language].WorkCenterText as WorkCenterDesc,
// CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin as CapacityRequirementOrigin,
// CapRqmtItmCap.OrderInternalID as OrderInternalID,
//
// cast( CapRqmtItmCap._Order.OrderType as abap.char(4)) as OrderType, //
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then CapRqmtItmCap._Order._OrderType._Text[1:Language=$session.system_language].OrderTypeName
// // when '2'
// // then CapRqmtItmCap._PlannedOrder._PlannedOrderType._Text[1:Language=$session.system_language].PlannedOrderTypeName
// // else ''
// // end as OrderTypeName,
//
// cast( CapRqmtItmCap._Order.OrderCategory as pph_cfs_sch_ordercategory) as OrderCategory, //
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then CapRqmtItmCap._Order._OrderCategory._Text[1:Language=$session.system_language].OrderCategoryName
// // when '2'
// // then CapRqmtItmCap._PlannedOrder._PlannedOrderCategory._Text[1:Language=$session.system_language].PlannedOrderCategoryName
// // else ''
// // end as OrderCategoryName,
//
//
// cast ( CapRqmtItmCap._Order.OrderPlannedTotalQty as abap.quan(13,3) ) as OrderPlannedTotalQty, //
//
// CapRqmtItmCap._PlannedOrder.ProductionVersion as ProductionVersion,
//
// CapRqmtItmCap._Order.BaseUnit as BaseUnit, //
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then case
// // when _OrderOperation.OpDispatchedExecStartDate = '00000000'
// // then 'Deallocated'
// // else 'Dispatched'
// // end
// // when '2'
// // then case CapRqmtItmCap._PlannedOrder.PlannedOrderCapacityIsDsptchd
// // when 'X'
// // then 'Dispatched'
// // else 'Deallocated'
// // end
// // else ''
// // end as OperationPlanningStatusText,
//
// case
// when _OrderOperation.OpDispatchedExecStartDate = '00000000'
// then 'DALL'
// else 'DSPT'
// end as OperationPlanningStatusCode, //
//
// case CapRqmtItmCap._Order.OrderCategory
// when '30'
// then CapRqmtItmCap.OperationLatestStartDate
// else _OrderOperation.OpLtstSchedldExecStrtDte
// end as OperationLatestStartDate, //
//
// case CapRqmtItmCap._Order.OrderCategory
// when '30'
// then CapRqmtItmCap.OperationLatestStartTime
// else _OrderOperation.OpLtstSchedldExecStrtTme
// end as OperationLatestStartTime, //
//
// case CapRqmtItmCap._Order.OrderCategory
// when '30'
// then CapRqmtItmCap.OperationLatestEndDate
// else _OrderOperation.LatestScheduledWaitEndDate
// end as OperationLatestEndDate, //
//
// case CapRqmtItmCap._Order.OrderCategory
// when '30'
// then CapRqmtItmCap.OperationLatestEndTime
// else _OrderOperation.LatestScheduledWaitEndTime
// end
// // then _OrderOperation.LatestScheduledWaitEndTime
// as OperationLatestEndTime, //
//
// // OperationLatestStartDate,
// // OperationLatestStartTime,
// // OperationLatestEndDate,
// // OperationLatestEndTime,
// _OrderOperation.OpLtstSchedldProcgStrtDte as OpLtstSchedldProcgStrtDte, //
//
// _OrderOperation.OpLtstSchedldProcgStrtTme as OpLtstSchedldProcgStrtTme, //
//
// _OrderOperation.OpLtstSchedldTrdwnStrtDte as OpLtstSchedldTrdwnStrtDte, //
//
// _OrderOperation.OpLtstSchedldTrdwnStrtTme as OpLtstSchedldTrdwnStrtTme, //
//
// //Convert time into seconds
// case
// when CapRqmtItmCap._Order.OrderCategory <> '30'
// then
// cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 5, 2) as abap.numc(2) ) as abap.int4 )
// else
// cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// end as OpLtstSchedldExecStrtTme, //
//
// case
// when CapRqmtItmCap._Order.OrderCategory <> '30'
// then
// cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// else
// cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// end as OpLtstSchedldExecEndTme, //
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecStrtTme,
// //
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecEndTme,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1' then
// // cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 5, 2) as abap.numc(2) ) as abap.int4 )
// // when '2' then
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// // end as OpLtstSchedldExecStrtTme,
// //
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1' then
// // cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// // when '2' then
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// // else 0
// // end as OpLtstSchedldExecEndTme,
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then ProcOpDurn.TotRemCapReqOpSegProcgDurn
// else
// (( CapRqmtItmCap.RemainingCapReqOpSegSetupDurn
// + CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn
// + CapRqmtItmCap.RemainingCapReqOpSegProcgDurn ) )
// end as CapacityRequirementsAreDtmnd,
//
// case
// when CapRqmtItmCap.RemainingCapReqOpSegSetupDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegSetupDurn as abap.dec( 10,2))
// end as RemainingCapReqOpSegSetupDurn,
//
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then case
// when ProcOpDurn.TotRemCapReqOpSegProcgDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(ProcOpDurn.TotRemCapReqOpSegProcgDurn as abap.dec( 10,2))
// end
// else
// case
// when CapRqmtItmCap.RemainingCapReqOpSegProcgDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegProcgDurn as abap.dec( 10,2))
// end
// end as RemainingCapReqOpSegProcgDurn,
// case
// when CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn as abap.dec( 10,2))
// end as RemainingCapReqOpSegTrdwnDurn,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then case _OrderOper.StatusCode
// // when 10 then 'Created'
// // when 20 then 'Released'
// // when 30 then 'Confirmed'
// // when 40 then 'Partially Confirmed'
// // end
// // when '2'
// // then 'Created'
// // end as OrderStatusText,
//
//
// case
// when CapRqmtItmCap._Order.OrderCategory = '30'
// then ' '
// else
// case _OrderOper.StatusCode
// when 10 then 'I0001'
// when 20 then 'I0002'
// when 30 then 'I0009'
// when 40 then 'I0010'
// end
// end as OrderStatusCode, //
//
// cast('0' as char1) as OrderFirmingStatusCode, //
//
// _Order.ScheduledBasicStartDate as ScheduledBasicStartDate, //
// _Order.ScheduledBasicStartTime as ScheduledBasicStartTime, //
// _Order.ScheduledBasicEndDate as ScheduledBasicEndDate, //
// _Order.ScheduledBasicEndTime as ScheduledBasicEndTime, //
// $session.system_date as CurrentDate,
// case
// when CapRqmtItmCap.OperationLatestStartTime >= '240000'
// then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestStartDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
// else
// cast(cast(concat(CapRqmtItmCap.OperationLatestStartDate,CapRqmtItmCap.OperationLatestStartTime)as abap.numc(15)) as timestamp)
// end as LtstSchedldExecStrtDteTme,
// case
// when CapRqmtItmCap.OperationLatestEndTime >= '240000'
// then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestEndDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
// else
// cast(cast(concat(CapRqmtItmCap.OperationLatestEndDate,CapRqmtItmCap.OperationLatestEndTime)as abap.numc(15)) as timestamp)
// end as LtstSchedldExecEndDteTme
//}
//where
// CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin = '1'
// and(
// CapRqmtItmCap.OperationIsPhase <> '2'
// )
// and(
// CapRqmtItmCap._Order.OrderCategory = '10'
// and CapRqmtItmCap._OrderOperation.Sequence = '000000'
// or CapRqmtItmCap._Order.OrderCategory = '40'
// and CapRqmtItmCap._OrderOperation.Sequence = '000000'
// or CapRqmtItmCap._Order.OrderCategory = '30'
// )
////and OperationLatestStartDate <= $parameters.P_EndDate
//// and OperationLatestEndDate >= $parameters.P_StartDate
//
//union all
//
//select from I_CapacityRequirementItemCap as CapRqmtItmCap
// inner join I_WorkCenter as workcenter on CapRqmtItmCap.WorkCenterInternalID = workcenter.WorkCenterInternalID
// and workcenter.WorkCenterIsToBeDeleted = ''
// and workcenter.WorkCenterTypeCode = 'A'
// left outer join P_ProcCapReqOpDurn as ProcOpDurn on CapRqmtItmCap.CapacityRequirement = ProcOpDurn.CapacityRequirement
// and CapRqmtItmCap.CapacityRequirementItem = ProcOpDurn.SuperiorOperationInternalID
// and CapRqmtItmCap.CapacityRqmtItemCapacity = ProcOpDurn.CapacityRqmtItemCapacity
// and CapRqmtItmCap.OperationIsPhase = '1'
//// left outer join I_OrderOperation as _OrderOperation
//// on CapRqmtItmCap.OrderInternalID = _OrderOperation.OrderInternalID
//// and CapRqmtItmCap.OrderOperationInternalID = _OrderOperation.OrderOperationInternalID
//// and _OrderOperation.SuperiorOperationInternalID is initial
//// left outer join P_MfgOrderOpStatus as _OrderOper
//// on CapRqmtItmCap.OrderInternalID = _OrderOper.OrderInternalID
//// and _OrderOperation.OrderOperationInternalID = _OrderOper.OrderOperationInternalID
//association [1..1] to I_WorkCenterCapacity as workcenter_capacity on CapRqmtItmCap.WorkCenterInternalID = workcenter_capacity.WorkCenterInternalID
// and CapRqmtItmCap.CapacityInternalID = workcenter_capacity.CapacityInternalID
//
//{
// key workcenter_capacity.WorkCenterInternalID as WorkCenterInternalID,
// key workcenter_capacity.WorkCenterTypeCode,
// key workcenter_capacity.CapacityCategoryAllocation,
// key CapRqmtItmCap.CapacityInternalID as CapacityInternalID,
// key cast ( CapRqmtItmCap.PlannedOrder as abap.char(12) ) as OrderID,
// key CapRqmtItmCap.Operation as Operation,
// key CapRqmtItmCap.CapacityRequirement as CapacityRequirement,
// key cast ( CapRqmtItmCap._PlannedOrder.Material as matnr ) as Material,
// cast ( CapRqmtItmCap._PlannedOrder.ProductionPlant as abap.char(4) ) as Plant,
// cast ( CapRqmtItmCap._PlannedOrder.MRPController as abap.char(3) ) as MRPController,
// workcenter.WorkCenter,
// workcenter_capacity._Capacity.CapacityBaseQtyUnit as CapacityBaseQtyUnit,
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then ProcOpDurn.CapacityRequirementUnit
// else
// CapRqmtItmCap.CapacityRequirementUnit
// end as CapacityRequirementUnit,
// workcenter.WorkCenterResponsible as WorkCenterResponsible,
// workcenter.WorkCenterCategoryCode,
// // _Text[1:Language=$session.system_language].WorkCenterText as WorkCenterDesc,
// CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin as CapacityRequirementOrigin,
// CapRqmtItmCap.OrderInternalID as OrderInternalID,
//
// cast ( CapRqmtItmCap._PlannedOrder.PlannedOrderType as abap.char(3) ) as OrderType,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then CapRqmtItmCap._Order._OrderType._Text[1:Language=$session.system_language].OrderTypeName
// // when '2'
// // then CapRqmtItmCap._PlannedOrder._PlannedOrderType._Text[1:Language=$session.system_language].PlannedOrderTypeName
// // else ''
// // end as OrderTypeName,
// cast(CapRqmtItmCap._PlannedOrder.PlannedOrderCategory as pph_cfs_sch_ordercategory) as OrderCategory,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then CapRqmtItmCap._Order._OrderCategory._Text[1:Language=$session.system_language].OrderCategoryName
// // when '2'
// // then CapRqmtItmCap._PlannedOrder._PlannedOrderCategory._Text[1:Language=$session.system_language].PlannedOrderCategoryName
// // else ''
// // end as OrderCategoryName,
//
//
// cast ( CapRqmtItmCap._PlannedOrder.PlannedTotalQtyInBaseUnit as abap.quan(13,3) ) as OrderPlannedTotalQty,
//
// CapRqmtItmCap._PlannedOrder.ProductionVersion as ProductionVersion,
// CapRqmtItmCap._PlannedOrder.BaseUnit as BaseUnit,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then case
// // when _OrderOperation.OpDispatchedExecStartDate = '00000000'
// // then 'Deallocated'
// // else 'Dispatched'
// // end
// // when '2'
// // then case CapRqmtItmCap._PlannedOrder.PlannedOrderCapacityIsDsptchd
// // when 'X'
// // then 'Dispatched'
// // else 'Deallocated'
// // end
// // else ''
// // end as OperationPlanningStatusText,
//
// case CapRqmtItmCap._PlannedOrder.PlannedOrderCapacityIsDsptchd
// when 'X'
// then 'DSPT'
// else 'DALL'
// end as OperationPlanningStatusCode,
//
// CapRqmtItmCap.OperationLatestStartDate as OperationLatestStartDate,
// CapRqmtItmCap.OperationLatestStartTime as OperationLatestStartTime,
//
// CapRqmtItmCap.OperationLatestEndDate as OperationLatestEndDate,
//
// CapRqmtItmCap. OperationLatestEndTime as OperationLatestEndTime,
//
// // OperationLatestStartDate,
// // OperationLatestStartTime,
// // OperationLatestEndDate,
// // OperationLatestEndTime,
// CapRqmtItmCap.LtstSchedldProcStrtDte as OpLtstSchedldProcgStrtDte,
//
// CapRqmtItmCap.LtstSchedldProcStrtTime as OpLtstSchedldProcgStrtTme,
//
// CapRqmtItmCap.LtstSchedldTrdwnStrtDte as OpLtstSchedldTrdwnStrtDte,
//
// CapRqmtItmCap.LtstSchedldTrdwnStrtTime as OpLtstSchedldTrdwnStrtTme,
//
// //Convert time into seconds
//
// cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecStrtTme,
//
//
// cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecEndTme,
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecStrtTme,
// //
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 ) as OpLtstSchedldExecEndTme,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1' then
// // cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( _OrderOperation.OpLtstSchedldExecStrtTme, 5, 2) as abap.numc(2) ) as abap.int4 )
// // when '2' then
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap.OperationLatestStartTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// // end as OpLtstSchedldExecStrtTme,
// //
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1' then
// // cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( _OrderOperation.LatestScheduledWaitEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// // when '2' then
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 1, 2) as abap.numc(2) ) as abap.int4 ) * 3600 +
// // cast( cast( substring(CapRqmtItmCap. OperationLatestEndTime, 3, 2) as abap.numc(2) ) as abap.int4 ) * 60 +
// // cast( cast( substring( CapRqmtItmCap. OperationLatestEndTime, 5, 2) as abap.numc(2) ) as abap.int4 )
// // else 0
// // end as OpLtstSchedldExecEndTme,
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then ProcOpDurn.TotRemCapReqOpSegProcgDurn
// else
// (( CapRqmtItmCap.RemainingCapReqOpSegSetupDurn
// + CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn
// + CapRqmtItmCap.RemainingCapReqOpSegProcgDurn ) )
// end as CapacityRequirementsAreDtmnd,
//
// case
// when CapRqmtItmCap.RemainingCapReqOpSegSetupDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegSetupDurn as abap.dec( 10,2))
// end as RemainingCapReqOpSegSetupDurn,
//
// case
// when CapRqmtItmCap.OperationIsPhase = '1'
// then case
// when ProcOpDurn.TotRemCapReqOpSegProcgDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(ProcOpDurn.TotRemCapReqOpSegProcgDurn as abap.dec( 10,2))
// end
// else
// case
// when CapRqmtItmCap.RemainingCapReqOpSegProcgDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegProcgDurn as abap.dec( 10,2))
// end
// end as RemainingCapReqOpSegProcgDurn,
// case
// when CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn > 99999999
// then fltp_to_dec(99999999.99 as abap.dec( 10,2))
// else fltp_to_dec(CapRqmtItmCap.RemainingCapReqOpSegTrdwnDurn as abap.dec( 10,2))
// end as RemainingCapReqOpSegTrdwnDurn,
//
// // case CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin
// // when '1'
// // then case _OrderOper.StatusCode
// // when 10 then 'Created'
// // when 20 then 'Released'
// // when 30 then 'Confirmed'
// // when 40 then 'Partially Confirmed'
// // end
// // when '2'
// // then 'Created'
// // end as OrderStatusText,
//
// 'I0001' as OrderStatusCode,
//
// ( case CapRqmtItmCap._PlannedOrder.PlannedOrderIsFirm
// when 'X'
// then 'X'
// else ''
// end ) as OrderFirmingStatusCode,
//
// _CapacityRequirement.ScheduledBasicStartDate as ScheduledBasicStartDate,
// _CapacityRequirement.ScheduledBasicStartTime as ScheduledBasicStartTime,
// _CapacityRequirement.ScheduledBasicEndDate as ScheduledBasicEndDate,
// _CapacityRequirement.ScheduledBasicEndTime as ScheduledBasicEndTime,
// $session.system_date as CurrentDate,
// case
// when CapRqmtItmCap.OperationLatestStartTime >= '240000'
// then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestStartDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
// else
// cast(cast(concat(CapRqmtItmCap.OperationLatestStartDate,CapRqmtItmCap.OperationLatestStartTime)as abap.numc(15)) as timestamp)
// end as LtstSchedldExecStrtDteTme,
// case
// when CapRqmtItmCap.OperationLatestEndTime >= '240000'
// then cast(cast(concat(dats_add_days(CapRqmtItmCap.OperationLatestEndDate,1,'NULL'),'000000')as abap.numc(15)) as timestamp)
// else
// cast(cast(concat(CapRqmtItmCap.OperationLatestEndDate,CapRqmtItmCap.OperationLatestEndTime)as abap.numc(15)) as timestamp)
// end as LtstSchedldExecEndDteTme
//
//}
//where
// CapRqmtItmCap._CapacityRequirement.CapacityRequirementOrigin = '2'
// and(
// CapRqmtItmCap.OperationIsPhase <> '2'
// )
//
////and OperationLatestStartDate <= $parameters.P_EndDate
//// and OperationLatestEndDate >= $parameters.P_StartDate