@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Work Days of a Factory Calendar'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #S,
dataClass: #MIXED
}
@VDM.private:true
@VDM.viewType: #COMPOSITE
define view entity P_WrkCtrWorkDays as select from I_CalendarDate as _CalendarDate
inner join I_FactoryCalWorkingDaysPerYr as _FactoryCalendar on _CalendarDate.CalendarYear = _FactoryCalendar.CalendarYear
inner join P_WrkCtrCapAreaOfRespyHrzn as _Horizon on _CalendarDate.CalendarDate >= _Horizon.HorizonStartDate
and _CalendarDate.CalendarDate <= _Horizon.HorizonEndDate
{
key _CalendarDate.CalendarDate,
key _FactoryCalendar.FactoryCalendar,
_CalendarDate.CalendarMonth,
_CalendarDate.CalendarYear,
_CalendarDate.CalendarWeek,
_CalendarDate.YearWeek,
_CalendarDate.WeekDay,
case
when _CalendarDate.CalendarMonth = '01' then cast(substring(_FactoryCalendar.Month01WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '02' then cast(substring(_FactoryCalendar.Month02WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '03' then cast(substring(_FactoryCalendar.Month03WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '04' then cast(substring(_FactoryCalendar.Month04WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '05' then cast(substring(_FactoryCalendar.Month05WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '06' then cast(substring(_FactoryCalendar.Month06WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '07' then cast(substring(_FactoryCalendar.Month07WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '08' then cast(substring(_FactoryCalendar.Month08WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '09' then cast(substring(_FactoryCalendar.Month09WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '10' then cast(substring(_FactoryCalendar.Month10WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '11' then cast(substring(_FactoryCalendar.Month11WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
when _CalendarDate.CalendarMonth = '12' then cast(substring(_FactoryCalendar.Month12WorkingDaysString, cast(_CalendarDate.CalendarDay as abap.int2), 1) as abap.int1)
else 0
end as workdays
}