P_WorkCenterCapPplineOp

DDL: P_WORKCENTERCAPPPLINEOP SQL: PWCCAPPPLINEOP Type: view COMPOSITE Package: PPH_VDM_CAP_EVAL

Load day opr for manufacturing and planned order for Cap

P_WorkCenterCapPplineOp is a Composite CDS View that provides data about "Load day opr for manufacturing and planned order for Cap" in SAP S/4HANA. It reads from 10 data sources and exposes 100 fields with key fields WorkCenterInternalID, WorkCenterTypeCode, CapacityCategoryAllocation, CapacityInternalID, OrderID. It has 4 associations to related views. Part of development package PPH_VDM_CAP_EVAL.

Data Sources (10)

SourceAliasJoin Type
I_LogisticsOrder _Order from
P_MfgOrderOpStatus _OrderOper left_outer
I_OrderOperation _OrderOperation left_outer
I_PlannedOrder _PlannedOrder union_all
I_SchedCapacityRqmtItemCap CapRqmtItmCap inner
I_SchedCapacityRqmtItemCap CapRqmtItmCap inner
P_ProcCapReqOpDurn ProcOpDurn left_outer
P_ProcCapReqOpDurn ProcOpDurn left_outer
I_WorkCenter workcenter inner
I_WorkCenter workcenter inner

Associations (4)

CardinalityTargetAliasCondition
[1..1] I_WorkCenterCapacity workcenter_capacity CapRqmtItmCap.WorkCenterInternalID = workcenter_capacity.WorkCenterInternalID and CapRqmtItmCap.CapacityInternalID = workcenter_capacity.CapacityInternalID
[0..1] I_PlannedOrder _PlannedOrder $projection.PlannedOrder = _PlannedOrder.PlannedOrder
[1..1] I_CapacityRequirement _CapacityRequirement $projection.CapacityRequirement = _CapacityRequirement.CapacityRequirement
[0..1] I_BillOfOperationsOpBasic _MainOperation _MainOperation.BillOfOperationsType = CapRqmtItmCap.BillOfOperationsType and _MainOperation.BillOfOperationsGroup = CapRqmtItmCap.BillOfOperationsGroup and _MainOperation.BOOOperationInternalID = CapRqmtItmCap.BOOOperationInternalID and _MainOperation.BOOOpInternalVersionCounter = CapRqmtItmCap.BOOOpInternalVersionCounter

Annotations (6)

NameValueLevelField
AbapCatalog.sqlViewName PWCCAPPPLINEOP view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
VDM.viewType #COMPOSITE view
VDM.private true view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (100)

KeyFieldSource TableSource FieldDescription
KEY WorkCenterInternalID workcenter_capacity WorkCenterInternalID
KEY WorkCenterTypeCode workcenter_capacity WorkCenterTypeCode
KEY CapacityCategoryAllocation workcenter_capacity CapacityCategoryAllocation
KEY CapacityInternalID I_SchedCapacityRqmtItemCap CapacityInternalID
KEY OrderID
KEY Operation I_SchedCapacityRqmtItemCap Operation
KEY CapacityRequirement I_SchedCapacityRqmtItemCap CapacityRequirement
KEY CapacityRequirementItem I_SchedCapacityRqmtItemCap CapacityRequirementItem
Material
ProductConfiguration
Plant I_LogisticsOrder Plant
MRPController I_LogisticsOrder MRPController
WorkCenter I_WorkCenter WorkCenter
PlannedOrder I_SchedCapacityRqmtItemCap PlannedOrder
CapacityBaseQtyUnit
WorkCenterResponsible I_WorkCenter WorkCenterResponsible
WorkCenterCategoryCode I_WorkCenter WorkCenterCategoryCode
CapacityRequirementOrigin
OrderInternalID I_SchedCapacityRqmtItemCap OrderInternalID
OrderType I_LogisticsOrder OrderType
OrderCategory
OrderPlannedTotalQty I_LogisticsOrder OrderPlannedTotalQty
ProductionVersion I_PlannedOrder ProductionVersion
BaseUnit I_LogisticsOrder BaseUnit
OperationLatestStartDate I_SchedCapacityRqmtItemCap OperationLatestStartDate
OperationLatestStartTime I_SchedCapacityRqmtItemCap OperationLatestStartTime
OperationLatestStartDateTime
OperationLatestEndDate I_SchedCapacityRqmtItemCap OperationLatestEndDate
OperationLatestEndTime I_SchedCapacityRqmtItemCap OperationLatestEndTime
OperationLatestEndDateTime
OpLtstSchedldProcgStrtDte I_OrderOperation OpLtstSchedldProcgStrtDte
OpLtstSchedldProcgStrtTme I_OrderOperation OpLtstSchedldProcgStrtTme
OpLtstSchedldTrdwnStrtDte I_OrderOperation OpLtstSchedldTrdwnStrtDte
OpLtstSchedldTrdwnStrtTme I_OrderOperation OpLtstSchedldTrdwnStrtTme
int4endasOpLtstSchedldExecStrtTme
int4endasOpLtstSchedldExecEndTme
dec102endasRemainingCapReqOpSegSetupDurn
dec102endasRemainingCapReqOpSegProcgDurn
dec102endasRemainingCapReqOpSegTrdwnDurn
OrderFirmingStatusCode
ScheduledBasicStartDate I_LogisticsOrder ScheduledBasicStartDate
ScheduledBasicStartTime I_LogisticsOrder ScheduledBasicStartTime
ScheduledBasicEndDate I_LogisticsOrder ScheduledBasicEndDate
ScheduledBasicEndTime I_LogisticsOrder ScheduledBasicEndTime
CurrentDate
Sequence I_OrderOperation Sequence
AddressTimeZoneendasPlantTimeZone
SalesOrder
SalesOrderItem
Customer
KEY WorkCenterTypeCode workcenter_capacity WorkCenterTypeCode
KEY CapacityCategoryAllocation workcenter_capacity CapacityCategoryAllocation
KEY CapacityInternalID I_SchedCapacityRqmtItemCap CapacityInternalID
KEY OrderID
KEY Operation I_SchedCapacityRqmtItemCap Operation
KEY CapacityRequirement I_SchedCapacityRqmtItemCap CapacityRequirement
KEY CapacityRequirementItem I_SchedCapacityRqmtItemCap CapacityRequirementItem
KEY Material I_PlannedOrder Material
ProductConfiguration
Plant I_PlannedOrder ProductionPlant
MRPController I_PlannedOrder MRPController
WorkCenter I_WorkCenter WorkCenter
PlannedOrder I_SchedCapacityRqmtItemCap PlannedOrder
CapacityBaseQtyUnit
WorkCenterResponsible I_WorkCenter WorkCenterResponsible
WorkCenterCategoryCode I_WorkCenter WorkCenterCategoryCode
CapacityRequirementOrigin _CapacityRequirement CapacityRequirementOrigin
OrderInternalID I_SchedCapacityRqmtItemCap OrderInternalID
OrderType
OrderCategory
OrderPlannedTotalQty I_PlannedOrder PlannedTotalQtyInBaseUnit
ProductionVersion I_PlannedOrder ProductionVersion
BaseUnit I_PlannedOrder BaseUnit
OperationLatestStartDate I_SchedCapacityRqmtItemCap OperationLatestStartDate
OperationLatestStartTime I_SchedCapacityRqmtItemCap OperationLatestStartTime
OperationLatestStartDateTime
OperationLatestEndDate I_SchedCapacityRqmtItemCap OperationLatestEndDate
OperationLatestEndTime
OperationLatestEndDateTime
OpLtstSchedldProcgStrtDte I_SchedCapacityRqmtItemCap LtstSchedldProcStrtDte
OpLtstSchedldProcgStrtTme I_SchedCapacityRqmtItemCap LtstSchedldProcStrtTime
OpLtstSchedldTrdwnStrtDte I_SchedCapacityRqmtItemCap LtstSchedldTrdwnStrtDte
OpLtstSchedldTrdwnStrtTme I_SchedCapacityRqmtItemCap LtstSchedldTrdwnStrtTime
int4asOpLtstSchedldExecStrtTme
int4asOpLtstSchedldExecEndTme
dec102endasRemainingCapReqOpSegSetupDurn
dec102endasRemainingCapReqOpSegProcgDurn
dec102endasRemainingCapReqOpSegTrdwnDurn
OrderStatusCode
ScheduledBasicStartDate _CapacityRequirement ScheduledBasicStartDate
ScheduledBasicStartTime _CapacityRequirement ScheduledBasicStartTime
ScheduledBasicEndDate _CapacityRequirement ScheduledBasicEndDate
ScheduledBasicEndTime _CapacityRequirement ScheduledBasicEndTime
CurrentDate
Sequence I_SchedCapacityRqmtItemCap BillOfOperationsSequence
AddressTimeZoneendasPlantTimeZone
SalesOrder I_PlannedOrder SalesOrder
SalesOrderItem I_PlannedOrder SalesOrderItem
Customer
OperationTextelseendasOperationText
@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