private List < TimephasedCost > getTimephasedCostMultipleRates ( List < TimephasedWork > standardWorkList , List < TimephasedWork > overtimeWorkList ) { List < TimephasedWork > standardWorkResult = new LinkedList < TimephasedWork > ( ) ; List < TimephasedWork > overtimeWorkResult = new LinkedList < TimephasedWork > ( ) ; CostRateTable table = getCostRateTable ( ) ; ProjectCalendar calendar = getCalendar ( ) ; Iterator < TimephasedWork > iter = overtimeWorkList . iterator ( ) ; for ( TimephasedWork standardWork : standardWorkList ) { TimephasedWork overtimeWork = iter . hasNext ( ) ? iter . next ( ) : null ; int startIndex = getCostRateTableEntryIndex ( standardWork . getStart ( ) ) ; int finishIndex = getCostRateTableEntryIndex ( standardWork . getFinish ( ) ) ; if ( startIndex == finishIndex ) { standardWorkResult . add ( standardWork ) ; if ( overtimeWork != null ) { overtimeWorkResult . add ( overtimeWork ) ; } } else { standardWorkResult . addAll ( splitWork ( table , calendar , standardWork , startIndex ) ) ; if ( overtimeWork != null ) { overtimeWorkResult . addAll ( splitWork ( table , calendar , overtimeWork , startIndex ) ) ; } } } return getTimephasedCostSingleRate ( standardWorkResult , overtimeWorkResult ) ; }
Generates timephased costs from timephased work where multiple cost rates apply to the assignment .