taskjuggler 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +2086 -0
- data/benchmarks/666tasks.tjp +3183 -0
- data/benchmarks/booking.tjp +14 -10
- data/doc/AppConfig.html +95 -73
- data/doc/Arguments.html +22 -2
- data/doc/CHANGELOG.html +2587 -0
- data/doc/COPYING.html +21 -1
- data/doc/Object.html +161 -122
- data/doc/README.html +21 -1
- data/doc/RuntimeConfig.html +26 -6
- data/doc/String.html +38 -18
- data/doc/StringIO.html +579 -0
- data/doc/TaskJuggler.html +251 -143
- data/doc/TaskJuggler/Account.html +26 -6
- data/doc/TaskJuggler/AccountAttribute.html +28 -8
- data/doc/TaskJuggler/AccountScenario.html +24 -4
- data/doc/TaskJuggler/Allocation.html +30 -10
- data/doc/TaskJuggler/AllocationAttribute.html +28 -8
- data/doc/TaskJuggler/AttributeBase.html +46 -26
- data/doc/TaskJuggler/AttributeDefinition.html +22 -2
- data/doc/TaskJuggler/BatchProcessor.html +40 -20
- data/doc/TaskJuggler/Booking.html +26 -6
- data/doc/TaskJuggler/BookingListAttribute.html +28 -8
- data/doc/TaskJuggler/BooleanAttribute.html +28 -8
- data/doc/TaskJuggler/CSVFile.html +308 -146
- data/doc/TaskJuggler/CellSettingPattern.html +22 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
- data/doc/TaskJuggler/Charge.html +26 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
- data/doc/TaskJuggler/ChargeSet.html +33 -13
- data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
- data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
- data/doc/TaskJuggler/ColumnTable.html +24 -4
- data/doc/TaskJuggler/Daemon.html +26 -6
- data/doc/TaskJuggler/DateAttribute.html +26 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
- data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
- data/doc/TaskJuggler/DurationAttribute.html +28 -8
- data/doc/TaskJuggler/FixnumAttribute.html +24 -4
- data/doc/TaskJuggler/FlagListAttribute.html +28 -8
- data/doc/TaskJuggler/FloatAttribute.html +26 -6
- data/doc/TaskJuggler/FormatListAttribute.html +24 -4
- data/doc/TaskJuggler/GanttChart.html +147 -126
- data/doc/TaskJuggler/GanttContainer.html +34 -14
- data/doc/TaskJuggler/GanttHeader.html +28 -8
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
- data/doc/TaskJuggler/GanttLine.html +38 -18
- data/doc/TaskJuggler/GanttLoadStack.html +26 -6
- data/doc/TaskJuggler/GanttMilestone.html +34 -14
- data/doc/TaskJuggler/GanttRouter.html +50 -30
- data/doc/TaskJuggler/GanttTaskBar.html +34 -14
- data/doc/TaskJuggler/HTMLDocument.html +26 -6
- data/doc/TaskJuggler/HTMLGraphics.html +30 -10
- data/doc/TaskJuggler/Interval.html +40 -22
- data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
- data/doc/TaskJuggler/JobInfo.html +24 -4
- data/doc/TaskJuggler/Journal.html +226 -147
- data/doc/TaskJuggler/JournalEntry.html +22 -2
- data/doc/TaskJuggler/JournalEntryList.html +129 -112
- data/doc/TaskJuggler/KeywordArray.html +26 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
- data/doc/TaskJuggler/Limits.html +152 -123
- data/doc/TaskJuggler/Limits/Limit.html +149 -70
- data/doc/TaskJuggler/LimitsAttribute.html +36 -51
- data/doc/TaskJuggler/ListAttributeBase.html +24 -4
- data/doc/TaskJuggler/Log.html +50 -32
- data/doc/TaskJuggler/LogFile.html +37 -17
- data/doc/TaskJuggler/LogicalAttribute.html +53 -33
- data/doc/TaskJuggler/LogicalExpression.html +26 -6
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
- data/doc/TaskJuggler/LogicalFlag.html +42 -22
- data/doc/TaskJuggler/LogicalFunction.html +204 -140
- data/doc/TaskJuggler/LogicalOperation.html +135 -111
- data/doc/TaskJuggler/Macro.html +22 -2
- data/doc/TaskJuggler/MacroParser.html +32 -12
- data/doc/TaskJuggler/MacroTable.html +32 -12
- data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
- data/doc/TaskJuggler/Message.html +24 -4
- data/doc/TaskJuggler/MessageHandler.html +24 -4
- data/doc/TaskJuggler/Navigator.html +104 -71
- data/doc/TaskJuggler/NavigatorElement.html +32 -12
- data/doc/TaskJuggler/NikuProject.html +22 -2
- data/doc/TaskJuggler/NikuReport.html +310 -228
- data/doc/TaskJuggler/NikuResource.html +22 -2
- data/doc/TaskJuggler/NodeListAttribute.html +615 -0
- data/doc/TaskJuggler/OnShiftCache.html +32 -12
- data/doc/TaskJuggler/ProcessIntercom.html +205 -78
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
- data/doc/TaskJuggler/Project.html +708 -660
- data/doc/TaskJuggler/ProjectBroker.html +506 -304
- data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
- data/doc/TaskJuggler/ProjectFileParser.html +429 -373
- data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
- data/doc/TaskJuggler/ProjectRecord.html +80 -60
- data/doc/TaskJuggler/ProjectServer.html +312 -237
- data/doc/TaskJuggler/ProjectServerIface.html +101 -43
- data/doc/TaskJuggler/PropertyAttribute.html +32 -12
- data/doc/TaskJuggler/PropertyList.html +166 -145
- data/doc/TaskJuggler/PropertySet.html +254 -224
- data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
- data/doc/TaskJuggler/Query.html +169 -148
- data/doc/TaskJuggler/RTFHandlers.html +622 -0
- data/doc/TaskJuggler/RTFNavigator.html +28 -8
- data/doc/TaskJuggler/RTFQuery.html +40 -20
- data/doc/TaskJuggler/RTFReport.html +62 -25
- data/doc/TaskJuggler/RTFReportLink.html +765 -0
- data/doc/TaskJuggler/RealFormat.html +26 -6
- data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
- data/doc/TaskJuggler/Report.html +402 -251
- data/doc/TaskJuggler/ReportBase.html +162 -137
- data/doc/TaskJuggler/ReportContext.html +112 -29
- data/doc/TaskJuggler/ReportServer.html +89 -64
- data/doc/TaskJuggler/ReportServerIface.html +75 -55
- data/doc/TaskJuggler/ReportServerRecord.html +54 -31
- data/doc/TaskJuggler/ReportServlet.html +980 -0
- data/doc/TaskJuggler/ReportTable.html +41 -21
- data/doc/TaskJuggler/ReportTableCell.html +214 -170
- data/doc/TaskJuggler/ReportTableColumn.html +30 -10
- data/doc/TaskJuggler/ReportTableLegend.html +36 -16
- data/doc/TaskJuggler/ReportTableLine.html +32 -12
- data/doc/TaskJuggler/Resource.html +99 -87
- data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
- data/doc/TaskJuggler/ResourceListRE.html +47 -26
- data/doc/TaskJuggler/ResourceScenario.html +403 -437
- data/doc/TaskJuggler/RichText.html +26 -6
- data/doc/TaskJuggler/RichTextAttribute.html +50 -30
- data/doc/TaskJuggler/RichTextDocument.html +37 -17
- data/doc/TaskJuggler/RichTextElement.html +475 -413
- data/doc/TaskJuggler/RichTextException.html +22 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
- data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
- data/doc/TaskJuggler/RichTextImage.html +22 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
- data/doc/TaskJuggler/RichTextParser.html +56 -34
- data/doc/TaskJuggler/RichTextScanner.html +82 -61
- data/doc/TaskJuggler/RichTextSnip.html +34 -14
- data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
- data/doc/TaskJuggler/Scenario.html +22 -2
- data/doc/TaskJuggler/ScenarioData.html +30 -46
- data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
- data/doc/TaskJuggler/Scoreboard.html +42 -22
- data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
- data/doc/TaskJuggler/SheetReceiver.html +333 -295
- data/doc/TaskJuggler/SheetSender.html +253 -230
- data/doc/TaskJuggler/Shift.html +26 -6
- data/doc/TaskJuggler/ShiftAssignment.html +89 -73
- data/doc/TaskJuggler/ShiftAssignments.html +226 -234
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
- data/doc/TaskJuggler/ShiftScenario.html +28 -8
- data/doc/TaskJuggler/SortListAttribute.html +34 -14
- data/doc/TaskJuggler/SourceFileInfo.html +24 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
- data/doc/TaskJuggler/StatusSheetReport.html +168 -153
- data/doc/TaskJuggler/StatusSheetSender.html +24 -3
- data/doc/TaskJuggler/StringAttribute.html +38 -18
- data/doc/TaskJuggler/SymbolAttribute.html +32 -12
- data/doc/TaskJuggler/SyntaxReference.html +40 -20
- data/doc/TaskJuggler/TOCEntry.html +26 -6
- data/doc/TaskJuggler/TSResourceRecord.html +22 -2
- data/doc/TaskJuggler/TSTaskRecord.html +22 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
- data/doc/TaskJuggler/TableOfContents.html +26 -6
- data/doc/TaskJuggler/TableReport.html +937 -904
- data/doc/TaskJuggler/Task.html +55 -36
- data/doc/TaskJuggler/TaskDependency.html +24 -4
- data/doc/TaskJuggler/TaskListAttribute.html +50 -30
- data/doc/TaskJuggler/TaskListRE.html +27 -7
- data/doc/TaskJuggler/TaskScenario.html +1273 -1153
- data/doc/TaskJuggler/TextFormatter.html +28 -8
- data/doc/TaskJuggler/TextParser.html +585 -338
- data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
- data/doc/TaskJuggler/TextParser/Rule.html +95 -73
- data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
- data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
- data/doc/TaskJuggler/TextReport.html +28 -8
- data/doc/TaskJuggler/TextScanner.html +400 -1404
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
- data/doc/TaskJuggler/TimeSheet.html +48 -28
- data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
- data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
- data/doc/TaskJuggler/TimeSheetReport.html +154 -133
- data/doc/TaskJuggler/TimeSheetSender.html +24 -3
- data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
- data/doc/TaskJuggler/TimeSheets.html +26 -6
- data/doc/TaskJuggler/Tj3AppBase.html +85 -58
- data/doc/TaskJuggler/Tj3Client.html +292 -238
- data/doc/TaskJuggler/Tj3Daemon.html +159 -74
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
- data/doc/TaskJuggler/Tj3SsSender.html +53 -26
- data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
- data/doc/TaskJuggler/Tj3TsSender.html +26 -6
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
- data/doc/TaskJuggler/TjException.html +22 -2
- data/doc/TaskJuggler/TjTime.html +216 -160
- data/doc/TaskJuggler/TjpExample.html +34 -14
- data/doc/TaskJuggler/TjpExportRE.html +403 -407
- data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
- data/doc/TaskJuggler/URLParameter.html +649 -0
- data/doc/TaskJuggler/UserManual.html +42 -22
- data/doc/TaskJuggler/WebServer.html +702 -0
- data/doc/TaskJuggler/WorkingHours.html +38 -18
- data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
- data/doc/TaskJuggler/XMLBlob.html +24 -4
- data/doc/TaskJuggler/XMLComment.html +24 -4
- data/doc/TaskJuggler/XMLDocument.html +30 -10
- data/doc/TaskJuggler/XMLElement.html +34 -14
- data/doc/TaskJuggler/XMLNamedText.html +22 -2
- data/doc/TaskJuggler/XMLText.html +24 -4
- data/doc/index.html +1841 -1666
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +2 -2
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +2 -2
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +2 -2
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +2 -2
- data/doc/lib/LogFile_rb.html +2 -2
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +2 -2
- data/doc/lib/LogicalOperation_rb.html +2 -2
- data/doc/lib/MacroParser_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -1
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/Message_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +4 -8
- data/doc/lib/ProjectFileScanner_rb.html +67 -0
- data/doc/lib/Project_rb.html +2 -2
- data/doc/lib/PropertyList_rb.html +2 -2
- data/doc/lib/PropertySet_rb.html +2 -2
- data/doc/lib/PropertyTreeNode_rb.html +2 -2
- data/doc/lib/Query_rb.html +2 -2
- data/doc/lib/RTFHandlers_rb.html +73 -0
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +1 -1
- data/doc/lib/RTFReportLink_rb.html +71 -0
- data/doc/lib/RTFReport_rb.html +2 -2
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +2 -2
- data/doc/lib/Resource_rb.html +2 -2
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +2 -2
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +2 -2
- data/doc/lib/RichTextScanner_rb.html +2 -2
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/SheetReceiver_rb.html +2 -2
- data/doc/lib/SheetSender_rb.html +4 -2
- data/doc/lib/ShiftAssignments_rb.html +4 -2
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +2 -2
- data/doc/lib/StatusSheetSender_rb.html +2 -2
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +2 -2
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +2 -2
- data/doc/lib/TaskScenario_rb.html +2 -2
- data/doc/lib/Task_rb.html +2 -2
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +2 -2
- data/doc/lib/TextParser/StackElement_rb.html +2 -2
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +2 -2
- data/doc/lib/TextScanner_rb.html +6 -2
- data/doc/lib/TimeSheetReceiver_rb.html +2 -2
- data/doc/lib/TimeSheetSender_rb.html +2 -2
- data/doc/lib/TimeSheetSummary_rb.html +2 -2
- data/doc/lib/TimeSheets_rb.html +2 -2
- data/doc/lib/Tj3AppBase_rb.html +2 -2
- data/doc/lib/Tj3Config_rb.html +2 -2
- data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +2 -2
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +2 -2
- data/doc/lib/URLParameter_rb.html +67 -0
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +2 -2
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
- data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
- data/doc/lib/daemon/ProjectServer_rb.html +2 -2
- data/doc/lib/daemon/ReportServer_rb.html +2 -2
- data/doc/lib/daemon/WebServer_rb.html +75 -0
- data/doc/lib/deep_copy_rb.html +2 -2
- data/doc/lib/reports/CSVFile_rb.html +2 -2
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +2 -2
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +2 -2
- data/doc/lib/reports/NikuReport_rb.html +2 -2
- data/doc/lib/reports/ReportBase_rb.html +2 -2
- data/doc/lib/reports/ReportContext_rb.html +2 -2
- data/doc/lib/reports/ReportTableCell_rb.html +2 -2
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +2 -2
- data/doc/lib/reports/Report_rb.html +2 -2
- data/doc/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
- data/doc/lib/reports/TableReport_rb.html +2 -2
- data/doc/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
- data/doc/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/lib/ruby-signal-bug_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +2 -2
- data/doc/lib/tj3client_rb.html +2 -2
- data/doc/lib/tj3d_rb.html +2 -2
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +2 -2
- data/doc/lib/tj3ts_receiver_rb.html +2 -2
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/doc/rdoc.css +9 -4
- data/examples/tutorial.tjp +17 -15
- data/gem_spec.rb +3 -0
- data/lib/AppConfig.rb +3 -1
- data/lib/Attributes.rb +10 -8
- data/lib/Journal.rb +55 -20
- data/lib/Limits.rb +72 -46
- data/lib/LogFile.rb +3 -3
- data/lib/LogicalFunction.rb +19 -6
- data/lib/LogicalOperation.rb +5 -1
- data/lib/Project.rb +37 -9
- data/lib/ProjectFileParser.rb +25 -22
- data/lib/ProjectFileScanner.rb +365 -0
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +14 -4
- data/lib/PropertyTreeNode.rb +42 -29
- data/lib/Query.rb +3 -1
- data/lib/RTFHandlers.rb +35 -0
- data/lib/RTFReport.rb +23 -6
- data/lib/RTFReportLink.rb +72 -0
- data/lib/Resource.rb +8 -16
- data/lib/ResourceScenario.rb +1 -22
- data/lib/RichTextElement.rb +42 -0
- data/lib/RichTextParser.rb +6 -4
- data/lib/RichTextScanner.rb +5 -5
- data/lib/RichTextSyntaxRules.rb +48 -10
- data/lib/ScenarioData.rb +5 -3
- data/lib/SheetReceiver.rb +24 -6
- data/lib/SheetSender.rb +17 -13
- data/lib/ShiftAssignments.rb +56 -52
- data/lib/StatusSheetReceiver.rb +1 -0
- data/lib/StatusSheetSender.rb +1 -0
- data/lib/TableColumnDefinition.rb +4 -2
- data/lib/Task.rb +8 -9
- data/lib/TaskJuggler.rb +21 -11
- data/lib/TaskScenario.rb +61 -26
- data/lib/TextParser.rb +268 -106
- data/lib/TextParser/Rule.rb +4 -2
- data/lib/TextParser/StackElement.rb +6 -4
- data/lib/TextScanner.rb +283 -700
- data/lib/TimeSheetReceiver.rb +1 -0
- data/lib/TimeSheetSender.rb +1 -0
- data/lib/TimeSheetSummary.rb +51 -26
- data/lib/TimeSheets.rb +1 -1
- data/lib/Tj3AppBase.rb +8 -1
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +5 -0
- data/lib/TjpSyntaxRules.rb +360 -144
- data/lib/URLParameter.rb +30 -0
- data/lib/XMLDocument.rb +2 -2
- data/lib/daemon/ProcessIntercom.rb +50 -9
- data/lib/daemon/ProjectBroker.rb +63 -10
- data/lib/daemon/ProjectServer.rb +47 -16
- data/lib/daemon/ReportServer.rb +9 -4
- data/lib/daemon/WebServer.rb +204 -0
- data/lib/deep_copy.rb +4 -1
- data/lib/reports/CSVFile.rb +150 -66
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/Navigator.rb +18 -5
- data/lib/reports/NikuReport.rb +32 -2
- data/lib/reports/Report.rb +65 -37
- data/lib/reports/ReportBase.rb +14 -9
- data/lib/reports/ReportContext.rb +19 -4
- data/lib/reports/ReportTable.rb +2 -2
- data/lib/reports/ReportTableCell.rb +54 -30
- data/lib/reports/ResourceListRE.rb +4 -3
- data/lib/reports/StatusSheetReport.rb +8 -13
- data/lib/reports/TableReport.rb +47 -32
- data/lib/reports/TaskListRE.rb +3 -3
- data/lib/reports/TimeSheetReport.rb +14 -5
- data/lib/reports/TjpExportRE.rb +14 -19
- data/lib/taskjuggler3.rb +15 -0
- data/lib/tj3client.rb +9 -7
- data/lib/tj3d.rb +38 -10
- data/lib/tj3ss_sender.rb +7 -0
- data/lib/tj3ts_receiver.rb +1 -0
- data/manual/Day_To_Day_Juggling +1 -1
- data/manual/Rich_Text_Attributes +8 -0
- data/manual/TaskJuggler_2x_Migration +7 -0
- data/manual/The_TaskJuggler_Syntax +20 -6
- data/prj_cfg.rb +3 -2
- data/tasks/changelog.rake +36 -0
- data/tasks/csts.rake +2 -3
- data/tasks/gem.rake +10 -0
- data/tasks/missing.rake +0 -17
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
- data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
- data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
- data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
- data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
- data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
- data/test/TestSuite/StatusSheets/run +3 -2
- data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
- data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
- data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
- data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +5 -5
- data/test/test_CSVFile.rb +75 -0
- data/test/test_Limits.rb +63 -5
- data/test/test_ProjectFileScanner.rb +163 -0
- data/test/test_ReportGenerator.rb +81 -0
- data/test/test_RichText.rb +21 -3
- data/test/test_Scheduler.rb +1 -1
- data/test/test_ShiftAssignments.rb +4 -4
- data/test/test_Syntax.rb +1 -1
- data/test/test_URLParameter.rb +30 -0
- metadata +126 -32
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
- data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
- data/test/TestSuite/TimeSheets/receiver.log +0 -102
- data/test/TestSuite/TimeSheets/sender.log +0 -794
- data/test/TestSuite/TimeSheets/summary.log +0 -884
- data/test/TestSuite/TimeSheets/timesheets.log +0 -45
- data/test/TestSuite/TimeSheets/tj3d.log +0 -292
- data/test/test_TextScanner.rb +0 -95
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
<h3 class="section-header">Methods</h3>
|
|
70
70
|
<ul class="link-list">
|
|
71
71
|
|
|
72
|
-
<li><a href="#
|
|
72
|
+
<li><a href="#method-c-new">::new</a></li>
|
|
73
73
|
|
|
74
|
-
<li><a href="#
|
|
74
|
+
<li><a href="#method-i-generateIntermediateFormat">#generateIntermediateFormat</a></li>
|
|
75
75
|
|
|
76
76
|
</ul>
|
|
77
77
|
</div>
|
|
@@ -88,6 +88,8 @@
|
|
|
88
88
|
<h3 class="section-header">Files</h3>
|
|
89
89
|
<ul>
|
|
90
90
|
|
|
91
|
+
<li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
|
|
92
|
+
|
|
91
93
|
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
|
92
94
|
|
|
93
95
|
<li class="file"><a href="../README.html">README</a></li>
|
|
@@ -257,6 +259,8 @@
|
|
|
257
259
|
|
|
258
260
|
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
|
259
261
|
|
|
262
|
+
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
263
|
+
|
|
260
264
|
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
|
261
265
|
|
|
262
266
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
@@ -271,6 +275,8 @@
|
|
|
271
275
|
|
|
272
276
|
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
|
273
277
|
|
|
278
|
+
<li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
|
|
279
|
+
|
|
274
280
|
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
|
275
281
|
|
|
276
282
|
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
|
@@ -287,12 +293,16 @@
|
|
|
287
293
|
|
|
288
294
|
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
|
289
295
|
|
|
296
|
+
<li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
|
|
297
|
+
|
|
290
298
|
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
|
291
299
|
|
|
292
300
|
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
|
293
301
|
|
|
294
302
|
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
|
295
303
|
|
|
304
|
+
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
305
|
+
|
|
296
306
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
297
307
|
|
|
298
308
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -311,6 +321,8 @@
|
|
|
311
321
|
|
|
312
322
|
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
|
313
323
|
|
|
324
|
+
<li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
|
|
325
|
+
|
|
314
326
|
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
|
315
327
|
|
|
316
328
|
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
|
@@ -439,6 +451,8 @@
|
|
|
439
451
|
|
|
440
452
|
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
|
441
453
|
|
|
454
|
+
<li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
|
|
455
|
+
|
|
442
456
|
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
|
443
457
|
|
|
444
458
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
@@ -483,8 +497,12 @@
|
|
|
483
497
|
|
|
484
498
|
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
|
485
499
|
|
|
500
|
+
<li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
|
|
501
|
+
|
|
486
502
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
487
503
|
|
|
504
|
+
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
505
|
+
|
|
488
506
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
489
507
|
|
|
490
508
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -511,6 +529,8 @@
|
|
|
511
529
|
|
|
512
530
|
<li><a href="../String.html">String</a></li>
|
|
513
531
|
|
|
532
|
+
<li><a href="../StringIO.html">StringIO</a></li>
|
|
533
|
+
|
|
514
534
|
</ul>
|
|
515
535
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
516
536
|
</div>
|
|
@@ -544,7 +564,7 @@ optionally have the assigned tasks nested underneath each resource line.
|
|
|
544
564
|
|
|
545
565
|
|
|
546
566
|
<div id="new-method" class="method-detail ">
|
|
547
|
-
<a name="
|
|
567
|
+
<a name="method-c-new"></a>
|
|
548
568
|
|
|
549
569
|
<div class="method-heading">
|
|
550
570
|
|
|
@@ -587,7 +607,7 @@ Create a new object and set some default values.
|
|
|
587
607
|
|
|
588
608
|
|
|
589
609
|
<div id="generate-ntermediate-ormat-method" class="method-detail ">
|
|
590
|
-
<a name="
|
|
610
|
+
<a name="method-i-generateIntermediateFormat"></a>
|
|
591
611
|
|
|
592
612
|
<div class="method-heading">
|
|
593
613
|
|
|
@@ -619,28 +639,29 @@ Generate the table in the intermediate format.
|
|
|
619
639
|
39: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'sortResources'</span>))
|
|
620
640
|
40: <span class="ruby-identifier">resourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-keyword kw">nil</span>,
|
|
621
641
|
41: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'hideResource'</span>),
|
|
622
|
-
42: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'rollupResource'</span>)
|
|
623
|
-
43:
|
|
624
|
-
44: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">
|
|
625
|
-
45:
|
|
626
|
-
46:
|
|
627
|
-
47: <span class="ruby-comment cmt">#
|
|
628
|
-
48: <span class="ruby-
|
|
629
|
-
49: <span class="ruby-identifier">taskList</span
|
|
630
|
-
50: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">
|
|
631
|
-
51: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">
|
|
632
|
-
52:
|
|
633
|
-
53:
|
|
634
|
-
54:
|
|
635
|
-
55:
|
|
636
|
-
56:
|
|
637
|
-
57: <span class="ruby-
|
|
638
|
-
58:
|
|
639
|
-
59:
|
|
640
|
-
60:
|
|
641
|
-
61:
|
|
642
|
-
62: <span class="ruby-
|
|
643
|
-
63:
|
|
642
|
+
42: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'rollupResource'</span>),
|
|
643
|
+
43: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'openNodes'</span>))
|
|
644
|
+
44: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>
|
|
645
|
+
45: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
|
|
646
|
+
46:
|
|
647
|
+
47: <span class="ruby-comment cmt"># Prepare the task list. Don't filter it yet! It would break the</span>
|
|
648
|
+
48: <span class="ruby-comment cmt"># *_() LogicalFunctions.</span>
|
|
649
|
+
49: <span class="ruby-identifier">taskList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>)
|
|
650
|
+
50: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'sortTasks'</span>))
|
|
651
|
+
51: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>
|
|
652
|
+
52: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
|
|
653
|
+
53:
|
|
654
|
+
54: <span class="ruby-identifier">adjustReportPeriod</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'scenarios'</span>),
|
|
655
|
+
55: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'columns'</span>))
|
|
656
|
+
56:
|
|
657
|
+
57: <span class="ruby-comment cmt"># Generate the table header.</span>
|
|
658
|
+
58: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'columns'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">columnDescr</span><span class="ruby-operator">|</span>
|
|
659
|
+
59: <span class="ruby-identifier">generateHeaderCell</span>(<span class="ruby-identifier">columnDescr</span>)
|
|
660
|
+
60: <span class="ruby-keyword kw">end</span>
|
|
661
|
+
61:
|
|
662
|
+
62: <span class="ruby-comment cmt"># Generate the list.</span>
|
|
663
|
+
63: <span class="ruby-identifier">generateResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">taskList</span>, <span class="ruby-keyword kw">nil</span>)
|
|
664
|
+
64: <span class="ruby-keyword kw">end</span></pre>
|
|
644
665
|
</div>
|
|
645
666
|
|
|
646
667
|
</div>
|
|
@@ -69,79 +69,77 @@
|
|
|
69
69
|
<h3 class="section-header">Methods</h3>
|
|
70
70
|
<ul class="link-list">
|
|
71
71
|
|
|
72
|
-
<li><a href="#
|
|
72
|
+
<li><a href="#method-c-new">::new</a></li>
|
|
73
73
|
|
|
74
|
-
<li><a href="#
|
|
74
|
+
<li><a href="#method-i-allocated%3F">#allocated?</a></li>
|
|
75
75
|
|
|
76
|
-
<li><a href="#
|
|
76
|
+
<li><a href="#method-i-allocatedSub">#allocatedSub</a></li>
|
|
77
77
|
|
|
78
|
-
<li><a href="#
|
|
78
|
+
<li><a href="#method-i-available%3F">#available?</a></li>
|
|
79
79
|
|
|
80
|
-
<li><a href="#
|
|
80
|
+
<li><a href="#method-i-book">#book</a></li>
|
|
81
81
|
|
|
82
|
-
<li><a href="#
|
|
82
|
+
<li><a href="#method-i-bookBooking">#bookBooking</a></li>
|
|
83
83
|
|
|
84
|
-
<li><a href="#
|
|
84
|
+
<li><a href="#method-i-booked%3F">#booked?</a></li>
|
|
85
85
|
|
|
86
|
-
<li><a href="#
|
|
86
|
+
<li><a href="#method-i-calcCriticalness">#calcCriticalness</a></li>
|
|
87
87
|
|
|
88
|
-
<li><a href="#
|
|
88
|
+
<li><a href="#method-i-collectTimeOffIntervals">#collectTimeOffIntervals</a></li>
|
|
89
89
|
|
|
90
|
-
<li><a href="#
|
|
90
|
+
<li><a href="#method-i-cost">#cost</a></li>
|
|
91
91
|
|
|
92
|
-
<li><a href="#
|
|
92
|
+
<li><a href="#method-i-getAllocatedSlots">#getAllocatedSlots</a></li>
|
|
93
93
|
|
|
94
|
-
<li><a href="#
|
|
94
|
+
<li><a href="#method-i-getAllocatedTime">#getAllocatedTime</a></li>
|
|
95
95
|
|
|
96
|
-
<li><a href="#
|
|
96
|
+
<li><a href="#method-i-getBookings">#getBookings</a></li>
|
|
97
97
|
|
|
98
|
-
<li><a href="#
|
|
98
|
+
<li><a href="#method-i-getEffectiveFreeTime">#getEffectiveFreeTime</a></li>
|
|
99
99
|
|
|
100
|
-
<li><a href="#
|
|
100
|
+
<li><a href="#method-i-getEffectiveFreeWork">#getEffectiveFreeWork</a></li>
|
|
101
101
|
|
|
102
|
-
<li><a href="#
|
|
102
|
+
<li><a href="#method-i-getEffectiveWork">#getEffectiveWork</a></li>
|
|
103
103
|
|
|
104
|
-
<li><a href="#
|
|
104
|
+
<li><a href="#method-i-getFreeSlots">#getFreeSlots</a></li>
|
|
105
105
|
|
|
106
|
-
<li><a href="#
|
|
106
|
+
<li><a href="#method-i-getVacationDays">#getVacationDays</a></li>
|
|
107
107
|
|
|
108
|
-
<li><a href="#
|
|
108
|
+
<li><a href="#method-i-getVacationSlots">#getVacationSlots</a></li>
|
|
109
109
|
|
|
110
|
-
<li><a href="#
|
|
110
|
+
<li><a href="#method-i-initScoreboard">#initScoreboard</a></li>
|
|
111
111
|
|
|
112
|
-
<li><a href="#
|
|
112
|
+
<li><a href="#method-i-onShift%3F">#onShift?</a></li>
|
|
113
113
|
|
|
114
|
-
<li><a href="#
|
|
114
|
+
<li><a href="#method-i-postScheduleCheck">#postScheduleCheck</a></li>
|
|
115
115
|
|
|
116
|
-
<li><a href="#
|
|
116
|
+
<li><a href="#method-i-preScheduleCheck">#preScheduleCheck</a></li>
|
|
117
117
|
|
|
118
|
-
<li><a href="#
|
|
118
|
+
<li><a href="#method-i-prepareScheduling">#prepareScheduling</a></li>
|
|
119
119
|
|
|
120
|
-
<li><a href="#
|
|
120
|
+
<li><a href="#method-i-query_cost">#query_cost</a></li>
|
|
121
121
|
|
|
122
|
-
<li><a href="#
|
|
122
|
+
<li><a href="#method-i-query_effort">#query_effort</a></li>
|
|
123
123
|
|
|
124
|
-
<li><a href="#
|
|
124
|
+
<li><a href="#method-i-query_freetime">#query_freetime</a></li>
|
|
125
125
|
|
|
126
|
-
<li><a href="#
|
|
126
|
+
<li><a href="#method-i-query_freework">#query_freework</a></li>
|
|
127
127
|
|
|
128
|
-
<li><a href="#
|
|
128
|
+
<li><a href="#method-i-query_rate">#query_rate</a></li>
|
|
129
129
|
|
|
130
|
-
<li><a href="#
|
|
130
|
+
<li><a href="#method-i-query_revenue">#query_revenue</a></li>
|
|
131
131
|
|
|
132
|
-
<li><a href="#
|
|
132
|
+
<li><a href="#method-i-query_vacationdays">#query_vacationdays</a></li>
|
|
133
133
|
|
|
134
|
-
<li><a href="#
|
|
134
|
+
<li><a href="#method-i-rate">#rate</a></li>
|
|
135
135
|
|
|
136
|
-
<li><a href="#
|
|
136
|
+
<li><a href="#method-i-setDirectReports">#setDirectReports</a></li>
|
|
137
137
|
|
|
138
|
-
<li><a href="#
|
|
138
|
+
<li><a href="#method-i-setReports">#setReports</a></li>
|
|
139
139
|
|
|
140
|
-
<li><a href="#
|
|
140
|
+
<li><a href="#method-i-setReports_i">#setReports_i</a></li>
|
|
141
141
|
|
|
142
|
-
<li><a href="#
|
|
143
|
-
|
|
144
|
-
<li><a href="#M000437">#turnover</a></li>
|
|
142
|
+
<li><a href="#method-i-turnover">#turnover</a></li>
|
|
145
143
|
|
|
146
144
|
</ul>
|
|
147
145
|
</div>
|
|
@@ -158,6 +156,8 @@
|
|
|
158
156
|
<h3 class="section-header">Files</h3>
|
|
159
157
|
<ul>
|
|
160
158
|
|
|
159
|
+
<li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
|
|
160
|
+
|
|
161
161
|
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
|
162
162
|
|
|
163
163
|
<li class="file"><a href="../README.html">README</a></li>
|
|
@@ -327,6 +327,8 @@
|
|
|
327
327
|
|
|
328
328
|
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
|
329
329
|
|
|
330
|
+
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
331
|
+
|
|
330
332
|
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
|
331
333
|
|
|
332
334
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
@@ -341,6 +343,8 @@
|
|
|
341
343
|
|
|
342
344
|
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
|
343
345
|
|
|
346
|
+
<li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
|
|
347
|
+
|
|
344
348
|
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
|
345
349
|
|
|
346
350
|
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
|
@@ -357,12 +361,16 @@
|
|
|
357
361
|
|
|
358
362
|
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
|
359
363
|
|
|
364
|
+
<li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
|
|
365
|
+
|
|
360
366
|
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
|
361
367
|
|
|
362
368
|
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
|
363
369
|
|
|
364
370
|
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
|
365
371
|
|
|
372
|
+
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
373
|
+
|
|
366
374
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
367
375
|
|
|
368
376
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -381,6 +389,8 @@
|
|
|
381
389
|
|
|
382
390
|
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
|
383
391
|
|
|
392
|
+
<li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
|
|
393
|
+
|
|
384
394
|
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
|
385
395
|
|
|
386
396
|
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
|
@@ -509,6 +519,8 @@
|
|
|
509
519
|
|
|
510
520
|
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
|
511
521
|
|
|
522
|
+
<li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
|
|
523
|
+
|
|
512
524
|
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
|
513
525
|
|
|
514
526
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
@@ -553,8 +565,12 @@
|
|
|
553
565
|
|
|
554
566
|
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
|
555
567
|
|
|
568
|
+
<li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
|
|
569
|
+
|
|
556
570
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
557
571
|
|
|
572
|
+
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
573
|
+
|
|
558
574
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
559
575
|
|
|
560
576
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -581,6 +597,8 @@
|
|
|
581
597
|
|
|
582
598
|
<li><a href="../String.html">String</a></li>
|
|
583
599
|
|
|
600
|
+
<li><a href="../StringIO.html">StringIO</a></li>
|
|
601
|
+
|
|
584
602
|
</ul>
|
|
585
603
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
586
604
|
</div>
|
|
@@ -609,7 +627,7 @@
|
|
|
609
627
|
|
|
610
628
|
|
|
611
629
|
<div id="new-method" class="method-detail ">
|
|
612
|
-
<a name="
|
|
630
|
+
<a name="method-c-new"></a>
|
|
613
631
|
|
|
614
632
|
<div class="method-heading">
|
|
615
633
|
|
|
@@ -669,7 +687,7 @@
|
|
|
669
687
|
|
|
670
688
|
|
|
671
689
|
<div id="allocated--method" class="method-detail ">
|
|
672
|
-
<a name="
|
|
690
|
+
<a name="method-i-allocated%3F"></a>
|
|
673
691
|
|
|
674
692
|
<div class="method-heading">
|
|
675
693
|
|
|
@@ -692,21 +710,21 @@ If task is not nil only allocations to this tasks are respected.
|
|
|
692
710
|
<div class="method-source-code"
|
|
693
711
|
id="allocated--source">
|
|
694
712
|
<pre>
|
|
695
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
713
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 421</span>
|
|
714
|
+
421: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allocated?</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>)
|
|
715
|
+
422: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
716
|
+
423:
|
|
717
|
+
424: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
|
|
718
|
+
425: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
|
|
719
|
+
426:
|
|
720
|
+
427: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@firstBookedSlot</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@firstBookedSlot</span> <span class="ruby-operator">&&</span>
|
|
721
|
+
428: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@firstBookedSlot</span>
|
|
722
|
+
429: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">&&</span>
|
|
723
|
+
430: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
724
|
+
431: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">></span> <span class="ruby-identifier">endIdx</span>
|
|
725
|
+
432:
|
|
726
|
+
433: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">allocatedSub</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>)
|
|
727
|
+
434: <span class="ruby-keyword kw">end</span></pre>
|
|
710
728
|
</div>
|
|
711
729
|
|
|
712
730
|
</div>
|
|
@@ -718,7 +736,7 @@ If task is not nil only allocations to this tasks are respected.
|
|
|
718
736
|
|
|
719
737
|
|
|
720
738
|
<div id="available--method" class="method-detail ">
|
|
721
|
-
<a name="
|
|
739
|
+
<a name="method-i-available%3F"></a>
|
|
722
740
|
|
|
723
741
|
<div class="method-heading">
|
|
724
742
|
|
|
@@ -760,7 +778,7 @@ Returns true if the resource is available at the time specified by
|
|
|
760
778
|
|
|
761
779
|
|
|
762
780
|
<div id="book-method" class="method-detail ">
|
|
763
|
-
<a name="
|
|
781
|
+
<a name="method-i-book"></a>
|
|
764
782
|
|
|
765
783
|
<div class="method-heading">
|
|
766
784
|
|
|
@@ -824,7 +842,7 @@ the slot was available.
|
|
|
824
842
|
|
|
825
843
|
|
|
826
844
|
<div id="book-ooking-method" class="method-detail ">
|
|
827
|
-
<a name="
|
|
845
|
+
<a name="method-i-bookBooking"></a>
|
|
828
846
|
|
|
829
847
|
<div class="method-heading">
|
|
830
848
|
|
|
@@ -893,7 +911,7 @@ the slot was available.
|
|
|
893
911
|
|
|
894
912
|
|
|
895
913
|
<div id="booked--method" class="method-detail ">
|
|
896
|
-
<a name="
|
|
914
|
+
<a name="method-i-booked%3F"></a>
|
|
897
915
|
|
|
898
916
|
<div class="method-heading">
|
|
899
917
|
|
|
@@ -930,7 +948,7 @@ Return true if the resource is booked for a tasks at the time specified by
|
|
|
930
948
|
|
|
931
949
|
|
|
932
950
|
<div id="calc-riticalness-method" class="method-detail ">
|
|
933
|
-
<a name="
|
|
951
|
+
<a name="method-i-calcCriticalness"></a>
|
|
934
952
|
|
|
935
953
|
<div class="method-heading">
|
|
936
954
|
|
|
@@ -980,7 +998,7 @@ guarantee, though.
|
|
|
980
998
|
|
|
981
999
|
|
|
982
1000
|
<div id="collect-ime-ff-ntervals-method" class="method-detail ">
|
|
983
|
-
<a name="
|
|
1001
|
+
<a name="method-i-collectTimeOffIntervals"></a>
|
|
984
1002
|
|
|
985
1003
|
<div class="method-heading">
|
|
986
1004
|
|
|
@@ -1009,14 +1027,14 @@ result is an Array of
|
|
|
1009
1027
|
<div class="method-source-code"
|
|
1010
1028
|
id="collect-ime-ff-ntervals-source">
|
|
1011
1029
|
<pre>
|
|
1012
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1030
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 486</span>
|
|
1031
|
+
486: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collectTimeOffIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>)
|
|
1032
|
+
487: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1033
|
+
488:
|
|
1034
|
+
489: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">collectIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
|
|
1035
|
+
490: <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">val</span> & <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
1036
|
+
491: <span class="ruby-keyword kw">end</span>
|
|
1037
|
+
492: <span class="ruby-keyword kw">end</span></pre>
|
|
1020
1038
|
</div>
|
|
1021
1039
|
|
|
1022
1040
|
</div>
|
|
@@ -1028,7 +1046,7 @@ result is an Array of
|
|
|
1028
1046
|
|
|
1029
1047
|
|
|
1030
1048
|
<div id="cost-method" class="method-detail ">
|
|
1031
|
-
<a name="
|
|
1049
|
+
<a name="method-i-cost"></a>
|
|
1032
1050
|
|
|
1033
1051
|
<div class="method-heading">
|
|
1034
1052
|
|
|
@@ -1052,10 +1070,10 @@ particular task is considered.
|
|
|
1052
1070
|
<div class="method-source-code"
|
|
1053
1071
|
id="cost-source">
|
|
1054
1072
|
<pre>
|
|
1055
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1073
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 414</span>
|
|
1074
|
+
414: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cost</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1075
|
+
415: <span class="ruby-identifier">getAllocatedTime</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>) * <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rate'</span>)
|
|
1076
|
+
416: <span class="ruby-keyword kw">end</span></pre>
|
|
1059
1077
|
</div>
|
|
1060
1078
|
|
|
1061
1079
|
</div>
|
|
@@ -1067,7 +1085,7 @@ particular task is considered.
|
|
|
1067
1085
|
|
|
1068
1086
|
|
|
1069
1087
|
<div id="get-llocated-lots-method" class="method-detail ">
|
|
1070
|
-
<a name="
|
|
1088
|
+
<a name="method-i-getAllocatedSlots"></a>
|
|
1071
1089
|
|
|
1072
1090
|
<div class="method-heading">
|
|
1073
1091
|
|
|
@@ -1089,26 +1107,26 @@ not nil count only those slots that are assigned to this particular task.
|
|
|
1089
1107
|
<div class="method-source-code"
|
|
1090
1108
|
id="get-llocated-lots-source">
|
|
1091
1109
|
<pre>
|
|
1092
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1110
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 496</span>
|
|
1111
|
+
496: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>)
|
|
1112
|
+
497: <span class="ruby-comment cmt"># To speedup the counting we start with the first booked slot and end</span>
|
|
1113
|
+
498: <span class="ruby-comment cmt"># with the last booked slot.</span>
|
|
1114
|
+
499: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@firstBookedSlot</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@firstBookedSlot</span> <span class="ruby-operator">&&</span>
|
|
1115
|
+
500: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@firstBookedSlot</span>
|
|
1116
|
+
501: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">&&</span>
|
|
1117
|
+
502: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
1118
|
+
503:
|
|
1119
|
+
504: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1120
|
+
505: <span class="ruby-identifier">bookedSlots</span> = <span class="ruby-value">0</span>
|
|
1121
|
+
506: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
1122
|
+
507: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">task</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)) <span class="ruby-operator">||</span>
|
|
1123
|
+
508: (<span class="ruby-identifier">task</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">task</span>)
|
|
1124
|
+
509: <span class="ruby-identifier">bookedSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1125
|
+
510: <span class="ruby-keyword kw">end</span>
|
|
1126
|
+
511: <span class="ruby-keyword kw">end</span>
|
|
1127
|
+
512:
|
|
1128
|
+
513: <span class="ruby-identifier">bookedSlots</span>
|
|
1129
|
+
514: <span class="ruby-keyword kw">end</span></pre>
|
|
1112
1130
|
</div>
|
|
1113
1131
|
|
|
1114
1132
|
</div>
|
|
@@ -1120,7 +1138,7 @@ not nil count only those slots that are assigned to this particular task.
|
|
|
1120
1138
|
|
|
1121
1139
|
|
|
1122
1140
|
<div id="get-llocated-ime-method" class="method-detail ">
|
|
1123
|
-
<a name="
|
|
1141
|
+
<a name="method-i-getAllocatedTime"></a>
|
|
1124
1142
|
|
|
1125
1143
|
<div class="method-heading">
|
|
1126
1144
|
|
|
@@ -1140,78 +1158,26 @@ Returns the allocated accumulated time of this resource and its children.
|
|
|
1140
1158
|
|
|
1141
1159
|
<div class="method-source-code"
|
|
1142
1160
|
id="get-llocated-ime-source">
|
|
1143
|
-
<pre>
|
|
1144
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 335</span>
|
|
1145
|
-
335: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAllocatedTime</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1146
|
-
336: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
|
|
1147
|
-
337: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1148
|
-
338: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1149
|
-
339:
|
|
1150
|
-
340: <span class="ruby-identifier">time</span> = <span class="ruby-value">0</span>
|
|
1151
|
-
341: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
1152
|
-
342: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1153
|
-
343: <span class="ruby-identifier">time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getAllocatedWork</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>)
|
|
1154
|
-
344: <span class="ruby-keyword kw">end</span>
|
|
1155
|
-
345: <span class="ruby-keyword kw">else</span>
|
|
1156
|
-
346: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1157
|
-
347:
|
|
1158
|
-
348: <span class="ruby-identifier">time</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>] *
|
|
1159
|
-
349: <span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>))
|
|
1160
|
-
350: <span class="ruby-keyword kw">end</span>
|
|
1161
|
-
351: <span class="ruby-identifier">time</span>
|
|
1162
|
-
352: <span class="ruby-keyword kw">end</span></pre>
|
|
1163
|
-
</div>
|
|
1164
|
-
|
|
1165
|
-
</div>
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
</div>
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
<div id="get-llocated-ork-method" class="method-detail ">
|
|
1174
|
-
<a name="M000432"></a>
|
|
1175
|
-
|
|
1176
|
-
<div class="method-heading">
|
|
1177
|
-
|
|
1178
|
-
<span class="method-name">getAllocatedWork</span><span
|
|
1179
|
-
class="method-args">(startIdx, endIdx, task = nil)</span>
|
|
1180
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1181
|
-
|
|
1182
|
-
</div>
|
|
1183
|
-
|
|
1184
|
-
<div class="method-description">
|
|
1185
|
-
|
|
1186
|
-
<p>
|
|
1187
|
-
Returns the allocated work of the resource (and its children).
|
|
1188
|
-
</p>
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
<div class="method-source-code"
|
|
1193
|
-
id="get-llocated-ork-source">
|
|
1194
1161
|
<pre>
|
|
1195
1162
|
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 314</span>
|
|
1196
|
-
314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
|
1163
|
+
314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAllocatedTime</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1197
1164
|
315: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
|
|
1198
1165
|
316: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1199
1166
|
317: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1200
1167
|
318:
|
|
1201
|
-
319: <span class="ruby-identifier">
|
|
1168
|
+
319: <span class="ruby-identifier">time</span> = <span class="ruby-value">0</span>
|
|
1202
1169
|
320: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
1203
1170
|
321: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1204
|
-
322: <span class="ruby-identifier">
|
|
1171
|
+
322: <span class="ruby-identifier">time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getAllocatedTime</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>)
|
|
1205
1172
|
323: <span class="ruby-keyword kw">end</span>
|
|
1206
1173
|
324: <span class="ruby-keyword kw">else</span>
|
|
1207
|
-
325: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0
|
|
1174
|
+
325: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1208
1175
|
326:
|
|
1209
|
-
327: <span class="ruby-identifier">
|
|
1210
|
-
328:
|
|
1211
|
-
329:
|
|
1212
|
-
330: <span class="ruby-
|
|
1213
|
-
331:
|
|
1214
|
-
332: <span class="ruby-keyword kw">end</span></pre>
|
|
1176
|
+
327: <span class="ruby-identifier">time</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>] *
|
|
1177
|
+
328: <span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>))
|
|
1178
|
+
329: <span class="ruby-keyword kw">end</span>
|
|
1179
|
+
330: <span class="ruby-identifier">time</span>
|
|
1180
|
+
331: <span class="ruby-keyword kw">end</span></pre>
|
|
1215
1181
|
</div>
|
|
1216
1182
|
|
|
1217
1183
|
</div>
|
|
@@ -1223,7 +1189,7 @@ Returns the allocated work of the resource (and its children).
|
|
|
1223
1189
|
|
|
1224
1190
|
|
|
1225
1191
|
<div id="get-ookings-method" class="method-detail ">
|
|
1226
|
-
<a name="
|
|
1192
|
+
<a name="method-i-getBookings"></a>
|
|
1227
1193
|
|
|
1228
1194
|
<div class="method-heading">
|
|
1229
1195
|
|
|
@@ -1244,52 +1210,52 @@ Iterate over the scoreboard and turn its content into a set of Bookings.
|
|
|
1244
1210
|
<div class="method-source-code"
|
|
1245
1211
|
id="get-ookings-source">
|
|
1246
1212
|
<pre>
|
|
1247
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1213
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 437</span>
|
|
1214
|
+
437: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getBookings</span>
|
|
1215
|
+
438: <span class="ruby-keyword kw">return</span> {} <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
|
|
1216
|
+
439: <span class="ruby-ivar">@firstBookedSlot</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@lastBookedSlot</span>.<span class="ruby-identifier">nil?</span>
|
|
1217
|
+
440:
|
|
1218
|
+
441: <span class="ruby-identifier">bookings</span> = {}
|
|
1219
|
+
442: <span class="ruby-identifier">lastTask</span> = <span class="ruby-keyword kw">nil</span>
|
|
1220
|
+
443: <span class="ruby-identifier">bookingStart</span> = <span class="ruby-keyword kw">nil</span>
|
|
1221
|
+
444:
|
|
1222
|
+
445: <span class="ruby-comment cmt"># To speedup the collection we start with the first booked slot and end</span>
|
|
1223
|
+
446: <span class="ruby-comment cmt"># with the last booked slot.</span>
|
|
1224
|
+
447: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@firstBookedSlot</span>
|
|
1225
|
+
448: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
1226
|
+
449:
|
|
1227
|
+
450: <span class="ruby-comment cmt"># In case the index markers are still uninitialized, we have no bookings.</span>
|
|
1228
|
+
451: <span class="ruby-keyword kw">return</span> {} <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endIdx</span>.<span class="ruby-identifier">nil?</span>
|
|
1229
|
+
452:
|
|
1230
|
+
453: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
1231
|
+
454: <span class="ruby-identifier">task</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
|
|
1232
|
+
455: <span class="ruby-comment cmt"># Now we watch for task changes.</span>
|
|
1233
|
+
456: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">lastTask</span> <span class="ruby-operator">||</span> (<span class="ruby-identifier">lastTask</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)) <span class="ruby-operator">||</span>
|
|
1234
|
+
457: (<span class="ruby-identifier">task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">endIdx</span>)
|
|
1235
|
+
458: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">lastTask</span>.<span class="ruby-identifier">nil?</span>
|
|
1236
|
+
459: <span class="ruby-comment cmt"># If we don't have a Booking for the task yet, we create one.</span>
|
|
1237
|
+
460: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bookings</span>[<span class="ruby-identifier">lastTask</span>].<span class="ruby-identifier">nil?</span>
|
|
1238
|
+
461: <span class="ruby-identifier">bookings</span>[<span class="ruby-identifier">lastTask</span>] = <span class="ruby-constant">Booking</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@property</span>, <span class="ruby-identifier">lastTask</span>, [])
|
|
1239
|
+
462: <span class="ruby-keyword kw">end</span>
|
|
1240
|
+
463:
|
|
1241
|
+
464: <span class="ruby-comment cmt"># Make sure the index is correct even for the last task block.</span>
|
|
1242
|
+
465: <span class="ruby-identifier">idx</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">endIdx</span>
|
|
1243
|
+
466: <span class="ruby-comment cmt"># Append the new interval to the Booking.</span>
|
|
1244
|
+
467: <span class="ruby-identifier">bookings</span>[<span class="ruby-identifier">lastTask</span>].<span class="ruby-identifier">intervals</span> <span class="ruby-operator"><<</span>
|
|
1245
|
+
468: <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">bookingStart</span>),
|
|
1246
|
+
469: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>))
|
|
1247
|
+
470: <span class="ruby-keyword kw">end</span>
|
|
1248
|
+
471: <span class="ruby-comment cmt"># Get ready for the next task booking interval</span>
|
|
1249
|
+
472: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
|
|
1250
|
+
473: <span class="ruby-identifier">lastTask</span> = <span class="ruby-identifier">task</span>
|
|
1251
|
+
474: <span class="ruby-identifier">bookingStart</span> = <span class="ruby-identifier">idx</span>
|
|
1252
|
+
475: <span class="ruby-keyword kw">else</span>
|
|
1253
|
+
476: <span class="ruby-identifier">lastTask</span> = <span class="ruby-identifier">bookingStart</span> = <span class="ruby-keyword kw">nil</span>
|
|
1254
|
+
477: <span class="ruby-keyword kw">end</span>
|
|
1255
|
+
478: <span class="ruby-keyword kw">end</span>
|
|
1256
|
+
479: <span class="ruby-keyword kw">end</span>
|
|
1257
|
+
480: <span class="ruby-identifier">bookings</span>
|
|
1258
|
+
481: <span class="ruby-keyword kw">end</span></pre>
|
|
1293
1259
|
</div>
|
|
1294
1260
|
|
|
1295
1261
|
</div>
|
|
@@ -1301,7 +1267,7 @@ Iterate over the scoreboard and turn its content into a set of Bookings.
|
|
|
1301
1267
|
|
|
1302
1268
|
|
|
1303
1269
|
<div id="get-ffective-ree-ime-method" class="method-detail ">
|
|
1304
|
-
<a name="
|
|
1270
|
+
<a name="method-i-getEffectiveFreeTime"></a>
|
|
1305
1271
|
|
|
1306
1272
|
<div class="method-heading">
|
|
1307
1273
|
|
|
@@ -1323,24 +1289,24 @@ children.
|
|
|
1323
1289
|
<div class="method-source-code"
|
|
1324
1290
|
id="get-ffective-ree-ime-source">
|
|
1325
1291
|
<pre>
|
|
1326
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1292
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 335</span>
|
|
1293
|
+
335: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getEffectiveFreeTime</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1294
|
+
336: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
|
|
1295
|
+
337: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1296
|
+
338: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1297
|
+
339:
|
|
1298
|
+
340: <span class="ruby-identifier">freeTime</span> = <span class="ruby-value">0</span>
|
|
1299
|
+
341: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
1300
|
+
342: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1301
|
+
343: <span class="ruby-identifier">freeTime</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getEffectiveFreeTime</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>,
|
|
1302
|
+
344: <span class="ruby-identifier">endIdx</span>)
|
|
1303
|
+
345: <span class="ruby-keyword kw">end</span>
|
|
1304
|
+
346: <span class="ruby-keyword kw">else</span>
|
|
1305
|
+
347: <span class="ruby-identifier">freeTime</span> = <span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>) *
|
|
1306
|
+
348: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
|
|
1307
|
+
349: <span class="ruby-keyword kw">end</span>
|
|
1308
|
+
350: <span class="ruby-identifier">freeTime</span>
|
|
1309
|
+
351: <span class="ruby-keyword kw">end</span></pre>
|
|
1344
1310
|
</div>
|
|
1345
1311
|
|
|
1346
1312
|
</div>
|
|
@@ -1352,7 +1318,7 @@ children.
|
|
|
1352
1318
|
|
|
1353
1319
|
|
|
1354
1320
|
<div id="get-ffective-ree-ork-method" class="method-detail ">
|
|
1355
|
-
<a name="
|
|
1321
|
+
<a name="method-i-getEffectiveFreeWork"></a>
|
|
1356
1322
|
|
|
1357
1323
|
<div class="method-heading">
|
|
1358
1324
|
|
|
@@ -1374,24 +1340,24 @@ their efficiency.
|
|
|
1374
1340
|
<div class="method-source-code"
|
|
1375
1341
|
id="get-ffective-ree-ork-source">
|
|
1376
1342
|
<pre>
|
|
1377
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1343
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 355</span>
|
|
1344
|
+
355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getEffectiveFreeWork</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1345
|
+
356: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
|
|
1346
|
+
357: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1347
|
+
358: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1348
|
+
359:
|
|
1349
|
+
360: <span class="ruby-identifier">work</span> = <span class="ruby-value">0.0</span>
|
|
1350
|
+
361: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
1351
|
+
362: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1352
|
+
363: <span class="ruby-identifier">work</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getEffectiveFreeWork</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1353
|
+
364: <span class="ruby-keyword kw">end</span>
|
|
1354
|
+
365: <span class="ruby-keyword kw">else</span>
|
|
1355
|
+
366: <span class="ruby-identifier">work</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(
|
|
1356
|
+
367: <span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>) *
|
|
1357
|
+
368: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]) * <span class="ruby-identifier">a</span>(<span class="ruby-value str">'efficiency'</span>)
|
|
1358
|
+
369: <span class="ruby-keyword kw">end</span>
|
|
1359
|
+
370: <span class="ruby-identifier">work</span>
|
|
1360
|
+
371: <span class="ruby-keyword kw">end</span></pre>
|
|
1395
1361
|
</div>
|
|
1396
1362
|
|
|
1397
1363
|
</div>
|
|
@@ -1403,7 +1369,7 @@ their efficiency.
|
|
|
1403
1369
|
|
|
1404
1370
|
|
|
1405
1371
|
<div id="get-ffective-ork-method" class="method-detail ">
|
|
1406
|
-
<a name="
|
|
1372
|
+
<a name="method-i-getEffectiveWork"></a>
|
|
1407
1373
|
|
|
1408
1374
|
<div class="method-heading">
|
|
1409
1375
|
|
|
@@ -1456,7 +1422,7 @@ efficiency.
|
|
|
1456
1422
|
|
|
1457
1423
|
|
|
1458
1424
|
<div id="get-ree-lots-method" class="method-detail ">
|
|
1459
|
-
<a name="
|
|
1425
|
+
<a name="method-i-getFreeSlots"></a>
|
|
1460
1426
|
|
|
1461
1427
|
<div class="method-heading">
|
|
1462
1428
|
|
|
@@ -1477,17 +1443,17 @@ Count the free slots between the start and end index.
|
|
|
1477
1443
|
<div class="method-source-code"
|
|
1478
1444
|
id="get-ree-lots-source">
|
|
1479
1445
|
<pre>
|
|
1480
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1446
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 517</span>
|
|
1447
|
+
517: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1448
|
+
518: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1449
|
+
519:
|
|
1450
|
+
520: <span class="ruby-identifier">freeSlots</span> = <span class="ruby-value">0</span>
|
|
1451
|
+
521: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
1452
|
+
522: <span class="ruby-identifier">freeSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>].<span class="ruby-identifier">nil?</span>
|
|
1453
|
+
523: <span class="ruby-keyword kw">end</span>
|
|
1454
|
+
524:
|
|
1455
|
+
525: <span class="ruby-identifier">freeSlots</span>
|
|
1456
|
+
526: <span class="ruby-keyword kw">end</span></pre>
|
|
1491
1457
|
</div>
|
|
1492
1458
|
|
|
1493
1459
|
</div>
|
|
@@ -1499,7 +1465,7 @@ Count the free slots between the start and end index.
|
|
|
1499
1465
|
|
|
1500
1466
|
|
|
1501
1467
|
<div id="get-acation-ays-method" class="method-detail ">
|
|
1502
|
-
<a name="
|
|
1468
|
+
<a name="method-i-getVacationDays"></a>
|
|
1503
1469
|
|
|
1504
1470
|
<div class="method-heading">
|
|
1505
1471
|
|
|
@@ -1520,27 +1486,27 @@ Return the number of working days that are blocked by vacations.
|
|
|
1520
1486
|
<div class="method-source-code"
|
|
1521
1487
|
id="get-acation-ays-source">
|
|
1522
1488
|
<pre>
|
|
1523
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1489
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 374</span>
|
|
1490
|
+
374: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getVacationDays</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1491
|
+
375: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
|
|
1492
|
+
376: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1493
|
+
377: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endIdx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1494
|
+
378:
|
|
1495
|
+
379: <span class="ruby-identifier">vacationDays</span> = <span class="ruby-value">0.0</span>
|
|
1496
|
+
380: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
1497
|
+
381: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1498
|
+
382: <span class="ruby-identifier">vacationDays</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getVacationDays</span>(<span class="ruby-ivar">@scenarioIdx</span>,
|
|
1499
|
+
383: <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1500
|
+
384: <span class="ruby-keyword kw">end</span>
|
|
1501
|
+
385: <span class="ruby-keyword kw">else</span>
|
|
1502
|
+
386: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1503
|
+
387:
|
|
1504
|
+
388: <span class="ruby-identifier">vacationDays</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(
|
|
1505
|
+
389: <span class="ruby-identifier">getVacationSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>) *
|
|
1506
|
+
390: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]) * <span class="ruby-identifier">a</span>(<span class="ruby-value str">'efficiency'</span>)
|
|
1507
|
+
391: <span class="ruby-keyword kw">end</span>
|
|
1508
|
+
392: <span class="ruby-identifier">vacationDays</span>
|
|
1509
|
+
393: <span class="ruby-keyword kw">end</span></pre>
|
|
1544
1510
|
</div>
|
|
1545
1511
|
|
|
1546
1512
|
</div>
|
|
@@ -1552,7 +1518,7 @@ Return the number of working days that are blocked by vacations.
|
|
|
1552
1518
|
|
|
1553
1519
|
|
|
1554
1520
|
<div id="get-acation-lots-method" class="method-detail ">
|
|
1555
|
-
<a name="
|
|
1521
|
+
<a name="method-i-getVacationSlots"></a>
|
|
1556
1522
|
|
|
1557
1523
|
<div class="method-heading">
|
|
1558
1524
|
|
|
@@ -1574,19 +1540,19 @@ been blocked by a vacation.
|
|
|
1574
1540
|
<div class="method-source-code"
|
|
1575
1541
|
id="get-acation-lots-source">
|
|
1576
1542
|
<pre>
|
|
1577
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1543
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 530</span>
|
|
1544
|
+
530: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getVacationSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1545
|
+
531: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
|
|
1546
|
+
532:
|
|
1547
|
+
533: <span class="ruby-identifier">vacationSlots</span> = <span class="ruby-value">0</span>
|
|
1548
|
+
534: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
1549
|
+
535: <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
|
|
1550
|
+
536: <span class="ruby-comment cmt"># Bit 1 needs to be unset and the vacation bits must not be 0.</span>
|
|
1551
|
+
537: <span class="ruby-identifier">vacationSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">val</span> & <span class="ruby-value">0x2</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span>
|
|
1552
|
+
538: (<span class="ruby-identifier">val</span> & <span class="ruby-value">0x3C</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
1553
|
+
539: <span class="ruby-keyword kw">end</span>
|
|
1554
|
+
540: <span class="ruby-identifier">vacationSlots</span>
|
|
1555
|
+
541: <span class="ruby-keyword kw">end</span></pre>
|
|
1590
1556
|
</div>
|
|
1591
1557
|
|
|
1592
1558
|
</div>
|
|
@@ -1598,7 +1564,7 @@ been blocked by a vacation.
|
|
|
1598
1564
|
|
|
1599
1565
|
|
|
1600
1566
|
<div id="post-chedule-heck-method" class="method-detail ">
|
|
1601
|
-
<a name="
|
|
1567
|
+
<a name="method-i-postScheduleCheck"></a>
|
|
1602
1568
|
|
|
1603
1569
|
<div class="method-heading">
|
|
1604
1570
|
|
|
@@ -1657,7 +1623,7 @@ been blocked by a vacation.
|
|
|
1657
1623
|
|
|
1658
1624
|
|
|
1659
1625
|
<div id="pre-chedule-heck-method" class="method-detail ">
|
|
1660
|
-
<a name="
|
|
1626
|
+
<a name="method-i-preScheduleCheck"></a>
|
|
1661
1627
|
|
|
1662
1628
|
<div class="method-heading">
|
|
1663
1629
|
|
|
@@ -1701,7 +1667,7 @@ been blocked by a vacation.
|
|
|
1701
1667
|
|
|
1702
1668
|
|
|
1703
1669
|
<div id="prepare-cheduling-method" class="method-detail ">
|
|
1704
|
-
<a name="
|
|
1670
|
+
<a name="method-i-prepareScheduling"></a>
|
|
1705
1671
|
|
|
1706
1672
|
<div class="method-heading">
|
|
1707
1673
|
|
|
@@ -1741,7 +1707,7 @@ initializes variables used during the scheduling process.
|
|
|
1741
1707
|
|
|
1742
1708
|
|
|
1743
1709
|
<div id="query-cost-method" class="method-detail ">
|
|
1744
|
-
<a name="
|
|
1710
|
+
<a name="method-i-query_cost"></a>
|
|
1745
1711
|
|
|
1746
1712
|
<div class="method-heading">
|
|
1747
1713
|
|
|
@@ -1788,7 +1754,7 @@ account.
|
|
|
1788
1754
|
|
|
1789
1755
|
|
|
1790
1756
|
<div id="query-effort-method" class="method-detail ">
|
|
1791
|
-
<a name="
|
|
1757
|
+
<a name="method-i-query_effort"></a>
|
|
1792
1758
|
|
|
1793
1759
|
<div class="method-heading">
|
|
1794
1760
|
|
|
@@ -1829,7 +1795,7 @@ href="Task.html">Task</a> is taken into account.
|
|
|
1829
1795
|
|
|
1830
1796
|
|
|
1831
1797
|
<div id="query-freetime-method" class="method-detail ">
|
|
1832
|
-
<a name="
|
|
1798
|
+
<a name="method-i-query_freetime"></a>
|
|
1833
1799
|
|
|
1834
1800
|
<div class="method-heading">
|
|
1835
1801
|
|
|
@@ -1868,7 +1834,7 @@ during the specified interval.
|
|
|
1868
1834
|
|
|
1869
1835
|
|
|
1870
1836
|
<div id="query-freework-method" class="method-detail ">
|
|
1871
|
-
<a name="
|
|
1837
|
+
<a name="method-i-query_freework"></a>
|
|
1872
1838
|
|
|
1873
1839
|
<div class="method-heading">
|
|
1874
1840
|
|
|
@@ -1907,7 +1873,7 @@ the specified interval.
|
|
|
1907
1873
|
|
|
1908
1874
|
|
|
1909
1875
|
<div id="query-rate-method" class="method-detail ">
|
|
1910
|
-
<a name="
|
|
1876
|
+
<a name="method-i-query_rate"></a>
|
|
1911
1877
|
|
|
1912
1878
|
<div class="method-heading">
|
|
1913
1879
|
|
|
@@ -1944,7 +1910,7 @@ Get the rate of the resource.
|
|
|
1944
1910
|
|
|
1945
1911
|
|
|
1946
1912
|
<div id="query-revenue-method" class="method-detail ">
|
|
1947
|
-
<a name="
|
|
1913
|
+
<a name="method-i-query_revenue"></a>
|
|
1948
1914
|
|
|
1949
1915
|
<div class="method-heading">
|
|
1950
1916
|
|
|
@@ -1991,7 +1957,7 @@ into account.
|
|
|
1991
1957
|
|
|
1992
1958
|
|
|
1993
1959
|
<div id="query-vacationdays-method" class="method-detail ">
|
|
1994
|
-
<a name="
|
|
1960
|
+
<a name="method-i-query_vacationdays"></a>
|
|
1995
1961
|
|
|
1996
1962
|
<div class="method-heading">
|
|
1997
1963
|
|
|
@@ -2031,7 +1997,7 @@ The result is in working days (effort).
|
|
|
2031
1997
|
|
|
2032
1998
|
|
|
2033
1999
|
<div id="set-irect-eports-method" class="method-detail ">
|
|
2034
|
-
<a name="
|
|
2000
|
+
<a name="method-i-setDirectReports"></a>
|
|
2035
2001
|
|
|
2036
2002
|
<div class="method-heading">
|
|
2037
2003
|
|
|
@@ -2075,7 +2041,7 @@ The result is in working days (effort).
|
|
|
2075
2041
|
|
|
2076
2042
|
|
|
2077
2043
|
<div id="set-eports-method" class="method-detail ">
|
|
2078
|
-
<a name="
|
|
2044
|
+
<a name="method-i-setReports"></a>
|
|
2079
2045
|
|
|
2080
2046
|
<div class="method-heading">
|
|
2081
2047
|
|
|
@@ -2113,7 +2079,7 @@ The result is in working days (effort).
|
|
|
2113
2079
|
|
|
2114
2080
|
|
|
2115
2081
|
<div id="turnover-method" class="method-detail ">
|
|
2116
|
-
<a name="
|
|
2082
|
+
<a name="method-i-turnover"></a>
|
|
2117
2083
|
|
|
2118
2084
|
<div class="method-heading">
|
|
2119
2085
|
|
|
@@ -2132,22 +2098,22 @@ The result is in working days (effort).
|
|
|
2132
2098
|
<div class="method-source-code"
|
|
2133
2099
|
id="turnover-source">
|
|
2134
2100
|
<pre>
|
|
2135
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2101
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 395</span>
|
|
2102
|
+
395: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">turnover</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">account</span>, <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>)
|
|
2103
|
+
396: <span class="ruby-identifier">amount</span> = <span class="ruby-value">0.0</span>
|
|
2104
|
+
397: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
2105
|
+
398: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
|
|
2106
|
+
399: <span class="ruby-identifier">amount</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">turnover</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">account</span>, <span class="ruby-identifier">task</span>)
|
|
2107
|
+
400: <span class="ruby-keyword kw">end</span>
|
|
2108
|
+
401: <span class="ruby-keyword kw">else</span>
|
|
2109
|
+
402: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'duties'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">duty</span><span class="ruby-operator">|</span>
|
|
2110
|
+
403: <span class="ruby-identifier">amount</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">duty</span>.<span class="ruby-identifier">turnover</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">account</span>,
|
|
2111
|
+
404: <span class="ruby-ivar">@property</span>)
|
|
2112
|
+
405: <span class="ruby-keyword kw">end</span>
|
|
2113
|
+
406: <span class="ruby-keyword kw">end</span>
|
|
2114
|
+
407:
|
|
2115
|
+
408: <span class="ruby-identifier">amount</span>
|
|
2116
|
+
409: <span class="ruby-keyword kw">end</span></pre>
|
|
2151
2117
|
</div>
|
|
2152
2118
|
|
|
2153
2119
|
</div>
|
|
@@ -2165,7 +2131,7 @@ The result is in working days (effort).
|
|
|
2165
2131
|
|
|
2166
2132
|
|
|
2167
2133
|
<div id="allocated-ub-method" class="method-detail ">
|
|
2168
|
-
<a name="
|
|
2134
|
+
<a name="method-i-allocatedSub"></a>
|
|
2169
2135
|
|
|
2170
2136
|
<div class="method-heading">
|
|
2171
2137
|
|
|
@@ -2188,22 +2154,22 @@ nil only allocations to this tasks are respected.
|
|
|
2188
2154
|
<div class="method-source-code"
|
|
2189
2155
|
id="allocated-ub-source">
|
|
2190
2156
|
<pre>
|
|
2191
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2157
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 634</span>
|
|
2158
|
+
634: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allocatedSub</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">task</span>)
|
|
2159
|
+
635: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
2160
|
+
636: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
2161
|
+
637: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">allocatedSub</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
|
|
2162
|
+
638: <span class="ruby-identifier">task</span>)
|
|
2163
|
+
639: <span class="ruby-keyword kw">end</span>
|
|
2164
|
+
640: <span class="ruby-keyword kw">else</span>
|
|
2165
|
+
641: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'duties'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">task</span>)
|
|
2166
|
+
642:
|
|
2167
|
+
643: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
2168
|
+
644: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">task</span>
|
|
2169
|
+
645: <span class="ruby-keyword kw">end</span>
|
|
2170
|
+
646: <span class="ruby-keyword kw">end</span>
|
|
2171
|
+
647: <span class="ruby-keyword kw">false</span>
|
|
2172
|
+
648: <span class="ruby-keyword kw">end</span></pre>
|
|
2207
2173
|
</div>
|
|
2208
2174
|
|
|
2209
2175
|
</div>
|
|
@@ -2215,7 +2181,7 @@ nil only allocations to this tasks are respected.
|
|
|
2215
2181
|
|
|
2216
2182
|
|
|
2217
2183
|
<div id="init-coreboard-method" class="method-detail ">
|
|
2218
|
-
<a name="
|
|
2184
|
+
<a name="method-i-initScoreboard"></a>
|
|
2219
2185
|
|
|
2220
2186
|
<div class="method-heading">
|
|
2221
2187
|
|
|
@@ -2234,67 +2200,67 @@ nil only allocations to this tasks are respected.
|
|
|
2234
2200
|
<div class="method-source-code"
|
|
2235
2201
|
id="init-coreboard-source">
|
|
2236
2202
|
<pre>
|
|
2237
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2203
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 545</span>
|
|
2204
|
+
545: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboard</span>
|
|
2205
|
+
546: <span class="ruby-comment cmt"># Create scoreboard and mark all slots as unavailable</span>
|
|
2206
|
+
547: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>],
|
|
2207
|
+
548: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>], <span class="ruby-value">2</span>)
|
|
2208
|
+
549:
|
|
2209
|
+
550: <span class="ruby-comment cmt"># We'll need this frequently and can savely cache it here.</span>
|
|
2210
|
+
551: <span class="ruby-ivar">@shifts</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'shifts'</span>)
|
|
2211
|
+
552: <span class="ruby-ivar">@workinghours</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'workinghours'</span>)
|
|
2212
|
+
553:
|
|
2213
|
+
554: <span class="ruby-comment cmt"># Change all work time slots to nil (available) again.</span>
|
|
2214
|
+
555: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-value">0</span>)
|
|
2215
|
+
556: <span class="ruby-identifier">delta</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
|
|
2216
|
+
557: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scoreboardSize</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
2217
|
+
558: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
2218
|
+
559: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">delta</span>
|
|
2219
|
+
560: <span class="ruby-keyword kw">end</span>
|
|
2220
|
+
561:
|
|
2221
|
+
562: <span class="ruby-comment cmt"># Mark all resource specific vacation slots as such</span>
|
|
2222
|
+
563: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'vacations'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">vacation</span><span class="ruby-operator">|</span>
|
|
2223
|
+
564: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
|
|
2224
|
+
565: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
|
|
2225
|
+
566: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
2226
|
+
567: <span class="ruby-comment cmt"># If the slot is nil, we don't set the time-off bit.</span>
|
|
2227
|
+
568: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">2</span>) <span class="ruby-operator">|</span> (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>)
|
|
2228
|
+
569: <span class="ruby-keyword kw">end</span>
|
|
2229
|
+
570: <span class="ruby-keyword kw">end</span>
|
|
2230
|
+
571:
|
|
2231
|
+
572: <span class="ruby-comment cmt"># Mark all global vacation slots as such</span>
|
|
2232
|
+
573: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'vacations'</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">vacation</span><span class="ruby-operator">|</span>
|
|
2233
|
+
574: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
|
|
2234
|
+
575: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
|
|
2235
|
+
576: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
2236
|
+
577: <span class="ruby-comment cmt"># If the slot is nil or set to 4 then don't set the time-off bit.</span>
|
|
2237
|
+
578: <span class="ruby-identifier">sb</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]
|
|
2238
|
+
579: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">sb</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">sb</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>) <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">2</span>) <span class="ruby-operator">|</span> (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>)
|
|
2239
|
+
580: <span class="ruby-keyword kw">end</span>
|
|
2253
2240
|
581: <span class="ruby-keyword kw">end</span>
|
|
2254
2241
|
582:
|
|
2255
|
-
583: <span class="ruby-
|
|
2256
|
-
584:
|
|
2257
|
-
585: <span class="ruby-
|
|
2258
|
-
586:
|
|
2259
|
-
587:
|
|
2260
|
-
588: <span class="ruby-comment cmt">#
|
|
2261
|
-
589: <span class="ruby-
|
|
2262
|
-
590:
|
|
2263
|
-
591:
|
|
2264
|
-
592:
|
|
2265
|
-
593:
|
|
2266
|
-
594:
|
|
2267
|
-
595:
|
|
2268
|
-
596:
|
|
2269
|
-
597:
|
|
2270
|
-
598:
|
|
2271
|
-
599:
|
|
2272
|
-
600:
|
|
2273
|
-
601:
|
|
2274
|
-
602:
|
|
2275
|
-
603:
|
|
2276
|
-
604:
|
|
2277
|
-
605: <span class="ruby-comment cmt"># Mark the vacations from all the shifts the resource is assigned to.</span>
|
|
2278
|
-
606: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scoreboardSize</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
2279
|
-
607: <span class="ruby-identifier">v</span> = <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">i</span>))
|
|
2280
|
-
608: <span class="ruby-comment cmt"># Check if the vacation replacement bit is set. In that case we copy</span>
|
|
2281
|
-
609: <span class="ruby-comment cmt"># the whole interval over to the resource scoreboard overriding any</span>
|
|
2282
|
-
610: <span class="ruby-comment cmt"># global vacations.</span>
|
|
2283
|
-
611: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">v</span> & (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">8</span>)) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
2284
|
-
612: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">v</span> & <span class="ruby-value">0x3E</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
2285
|
-
613: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span>
|
|
2286
|
-
614: <span class="ruby-keyword kw">else</span>
|
|
2287
|
-
615: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">v</span> & <span class="ruby-value">0x3E</span>
|
|
2288
|
-
616: <span class="ruby-keyword kw">end</span>
|
|
2289
|
-
617: <span class="ruby-keyword kw">elsif</span> ((<span class="ruby-identifier">sbV</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-identifier">sbV</span> & <span class="ruby-value">0x3C</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-operator">&&</span>
|
|
2290
|
-
618: (<span class="ruby-identifier">v</span> & <span class="ruby-value">0x3C</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
2291
|
-
619: <span class="ruby-comment cmt"># We only add the shift vacations but don't turn global vacation</span>
|
|
2292
|
-
620: <span class="ruby-comment cmt"># slots into working slots again.</span>
|
|
2293
|
-
621: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">v</span> & <span class="ruby-value">0x3E</span>
|
|
2294
|
-
622: <span class="ruby-keyword kw">end</span>
|
|
2295
|
-
623: <span class="ruby-keyword kw">end</span>
|
|
2296
|
-
624: <span class="ruby-keyword kw">end</span>
|
|
2297
|
-
625: <span class="ruby-keyword kw">end</span></pre>
|
|
2242
|
+
583: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">nil?</span>
|
|
2243
|
+
584: <span class="ruby-comment cmt"># Mark the vacations from all the shifts the resource is assigned to.</span>
|
|
2244
|
+
585: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scoreboardSize</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
2245
|
+
586: <span class="ruby-identifier">v</span> = <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">i</span>))
|
|
2246
|
+
587: <span class="ruby-comment cmt"># Check if the vacation replacement bit is set. In that case we copy</span>
|
|
2247
|
+
588: <span class="ruby-comment cmt"># the whole interval over to the resource scoreboard overriding any</span>
|
|
2248
|
+
589: <span class="ruby-comment cmt"># global vacations.</span>
|
|
2249
|
+
590: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">v</span> & (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">8</span>)) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
2250
|
+
591: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">v</span> & <span class="ruby-value">0x3E</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
2251
|
+
592: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span>
|
|
2252
|
+
593: <span class="ruby-keyword kw">else</span>
|
|
2253
|
+
594: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">v</span> & <span class="ruby-value">0x3E</span>
|
|
2254
|
+
595: <span class="ruby-keyword kw">end</span>
|
|
2255
|
+
596: <span class="ruby-keyword kw">elsif</span> ((<span class="ruby-identifier">sbV</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-identifier">sbV</span> & <span class="ruby-value">0x3C</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-operator">&&</span>
|
|
2256
|
+
597: (<span class="ruby-identifier">v</span> & <span class="ruby-value">0x3C</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
2257
|
+
598: <span class="ruby-comment cmt"># We only add the shift vacations but don't turn global vacation</span>
|
|
2258
|
+
599: <span class="ruby-comment cmt"># slots into working slots again.</span>
|
|
2259
|
+
600: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">v</span> & <span class="ruby-value">0x3E</span>
|
|
2260
|
+
601: <span class="ruby-keyword kw">end</span>
|
|
2261
|
+
602: <span class="ruby-keyword kw">end</span>
|
|
2262
|
+
603: <span class="ruby-keyword kw">end</span>
|
|
2263
|
+
604: <span class="ruby-keyword kw">end</span></pre>
|
|
2298
2264
|
</div>
|
|
2299
2265
|
|
|
2300
2266
|
</div>
|
|
@@ -2306,7 +2272,7 @@ nil only allocations to this tasks are respected.
|
|
|
2306
2272
|
|
|
2307
2273
|
|
|
2308
2274
|
<div id="on-hift--method" class="method-detail ">
|
|
2309
|
-
<a name="
|
|
2275
|
+
<a name="method-i-onShift%3F"></a>
|
|
2310
2276
|
|
|
2311
2277
|
<div class="method-heading">
|
|
2312
2278
|
|
|
@@ -2325,14 +2291,14 @@ nil only allocations to this tasks are respected.
|
|
|
2325
2291
|
<div class="method-source-code"
|
|
2326
2292
|
id="on-hift--source">
|
|
2327
2293
|
<pre>
|
|
2328
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2294
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 623</span>
|
|
2295
|
+
623: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
2296
|
+
624: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@shifts</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
|
|
2297
|
+
625: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
2298
|
+
626: <span class="ruby-keyword kw">else</span>
|
|
2299
|
+
627: <span class="ruby-ivar">@workinghours</span>.<span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
2300
|
+
628: <span class="ruby-keyword kw">end</span>
|
|
2301
|
+
629: <span class="ruby-keyword kw">end</span></pre>
|
|
2336
2302
|
</div>
|
|
2337
2303
|
|
|
2338
2304
|
</div>
|
|
@@ -2344,7 +2310,7 @@ nil only allocations to this tasks are respected.
|
|
|
2344
2310
|
|
|
2345
2311
|
|
|
2346
2312
|
<div id="rate-method" class="method-detail ">
|
|
2347
|
-
<a name="
|
|
2313
|
+
<a name="method-i-rate"></a>
|
|
2348
2314
|
|
|
2349
2315
|
<div class="method-heading">
|
|
2350
2316
|
|
|
@@ -2365,18 +2331,18 @@ Return the daily cost of a resource or resource group.
|
|
|
2365
2331
|
<div class="method-source-code"
|
|
2366
2332
|
id="rate-source">
|
|
2367
2333
|
<pre>
|
|
2368
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2334
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 651</span>
|
|
2335
|
+
651: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rate</span>
|
|
2336
|
+
652: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
|
|
2337
|
+
653: <span class="ruby-identifier">dailyRate</span> = <span class="ruby-value">0.0</span>
|
|
2338
|
+
654: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
2339
|
+
655: <span class="ruby-identifier">dailyRate</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">rate</span>(<span class="ruby-ivar">@scenarioIdx</span>)
|
|
2340
|
+
656: <span class="ruby-keyword kw">end</span>
|
|
2341
|
+
657: <span class="ruby-identifier">dailyRate</span>
|
|
2342
|
+
658: <span class="ruby-keyword kw">else</span>
|
|
2343
|
+
659: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rate'</span>)
|
|
2344
|
+
660: <span class="ruby-keyword kw">end</span>
|
|
2345
|
+
661: <span class="ruby-keyword kw">end</span></pre>
|
|
2380
2346
|
</div>
|
|
2381
2347
|
|
|
2382
2348
|
</div>
|
|
@@ -2388,7 +2354,7 @@ Return the daily cost of a resource or resource group.
|
|
|
2388
2354
|
|
|
2389
2355
|
|
|
2390
2356
|
<div id="set-eports-i-method" class="method-detail ">
|
|
2391
|
-
<a name="
|
|
2357
|
+
<a name="method-i-setReports_i"></a>
|
|
2392
2358
|
|
|
2393
2359
|
<div class="method-heading">
|
|
2394
2360
|
|
|
@@ -2407,23 +2373,23 @@ Return the daily cost of a resource or resource group.
|
|
|
2407
2373
|
<div class="method-source-code"
|
|
2408
2374
|
id="set-eports-i-source">
|
|
2409
2375
|
<pre>
|
|
2410
|
-
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2376
|
+
<span class="ruby-comment cmt"># File lib/ResourceScenario.rb, line 606</span>
|
|
2377
|
+
606: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setReports_i</span>(<span class="ruby-identifier">reports</span>)
|
|
2378
|
+
607: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@property</span>)
|
|
2379
|
+
608: <span class="ruby-comment cmt"># A manager must never show up in the list of his/her own reports.</span>
|
|
2380
|
+
609: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'manager_loop'</span>,
|
|
2381
|
+
610: <span class="ruby-node">"Management loop detected. #{@property.fullId} has self "</span> <span class="ruby-operator">+</span>
|
|
2382
|
+
611: <span class="ruby-value str">"in list of reports"</span>)
|
|
2383
|
+
612: <span class="ruby-keyword kw">end</span>
|
|
2384
|
+
613: <span class="ruby-ivar">@property</span>[<span class="ruby-value str">'reports'</span>, <span class="ruby-ivar">@scenarioIdx</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">reports</span>
|
|
2385
|
+
614: <span class="ruby-comment cmt"># Resources can end up multiple times in the list if they have multiple</span>
|
|
2386
|
+
615: <span class="ruby-comment cmt"># reporting chains. We only need them once in the list.</span>
|
|
2387
|
+
616: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'reports'</span>).<span class="ruby-identifier">uniq!</span>
|
|
2388
|
+
617:
|
|
2389
|
+
618: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'managers'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
|
2390
|
+
619: <span class="ruby-identifier">r</span>.<span class="ruby-identifier">setReports_i</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'reports'</span>))
|
|
2391
|
+
620: <span class="ruby-keyword kw">end</span>
|
|
2392
|
+
621: <span class="ruby-keyword kw">end</span></pre>
|
|
2427
2393
|
</div>
|
|
2428
2394
|
|
|
2429
2395
|
</div>
|