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.
Files changed (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. 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="#M000928">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000929">#generateIntermediateFormat</a></li>
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="M000928"></a>
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="M000929"></a>
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: <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">reportContext</span>.<span class="ruby-identifier">query</span>
624
- 44: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
625
- 45:
626
- 46: <span class="ruby-comment cmt"># Prepare the task list. Don't filter it yet! It would break the</span>
627
- 47: <span class="ruby-comment cmt"># *_() LogicalFunctions.</span>
628
- 48: <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>)
629
- 49: <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>))
630
- 50: <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">reportContext</span>.<span class="ruby-identifier">query</span>
631
- 51: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
632
- 52:
633
- 53: <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>),
634
- 54: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'columns'</span>))
635
- 55:
636
- 56: <span class="ruby-comment cmt"># Generate the table header.</span>
637
- 57: <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>
638
- 58: <span class="ruby-identifier">generateHeaderCell</span>(<span class="ruby-identifier">columnDescr</span>)
639
- 59: <span class="ruby-keyword kw">end</span>
640
- 60:
641
- 61: <span class="ruby-comment cmt"># Generate the list.</span>
642
- 62: <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>)
643
- 63: <span class="ruby-keyword kw">end</span></pre>
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="#M000413">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000439">#allocated?</a></li>
74
+ <li><a href="#method-i-allocated%3F">#allocated?</a></li>
75
75
 
76
- <li><a href="#M000448">#allocatedSub</a></li>
76
+ <li><a href="#method-i-allocatedSub">#allocatedSub</a></li>
77
77
 
78
- <li><a href="#M000420">#available?</a></li>
78
+ <li><a href="#method-i-available%3F">#available?</a></li>
79
79
 
80
- <li><a href="#M000422">#book</a></li>
80
+ <li><a href="#method-i-book">#book</a></li>
81
81
 
82
- <li><a href="#M000423">#bookBooking</a></li>
82
+ <li><a href="#method-i-bookBooking">#bookBooking</a></li>
83
83
 
84
- <li><a href="#M000421">#booked?</a></li>
84
+ <li><a href="#method-i-booked%3F">#booked?</a></li>
85
85
 
86
- <li><a href="#M000415">#calcCriticalness</a></li>
86
+ <li><a href="#method-i-calcCriticalness">#calcCriticalness</a></li>
87
87
 
88
- <li><a href="#M000441">#collectTimeOffIntervals</a></li>
88
+ <li><a href="#method-i-collectTimeOffIntervals">#collectTimeOffIntervals</a></li>
89
89
 
90
- <li><a href="#M000438">#cost</a></li>
90
+ <li><a href="#method-i-cost">#cost</a></li>
91
91
 
92
- <li><a href="#M000442">#getAllocatedSlots</a></li>
92
+ <li><a href="#method-i-getAllocatedSlots">#getAllocatedSlots</a></li>
93
93
 
94
- <li><a href="#M000433">#getAllocatedTime</a></li>
94
+ <li><a href="#method-i-getAllocatedTime">#getAllocatedTime</a></li>
95
95
 
96
- <li><a href="#M000432">#getAllocatedWork</a></li>
96
+ <li><a href="#method-i-getBookings">#getBookings</a></li>
97
97
 
98
- <li><a href="#M000440">#getBookings</a></li>
98
+ <li><a href="#method-i-getEffectiveFreeTime">#getEffectiveFreeTime</a></li>
99
99
 
100
- <li><a href="#M000434">#getEffectiveFreeTime</a></li>
100
+ <li><a href="#method-i-getEffectiveFreeWork">#getEffectiveFreeWork</a></li>
101
101
 
102
- <li><a href="#M000435">#getEffectiveFreeWork</a></li>
102
+ <li><a href="#method-i-getEffectiveWork">#getEffectiveWork</a></li>
103
103
 
104
- <li><a href="#M000431">#getEffectiveWork</a></li>
104
+ <li><a href="#method-i-getFreeSlots">#getFreeSlots</a></li>
105
105
 
106
- <li><a href="#M000443">#getFreeSlots</a></li>
106
+ <li><a href="#method-i-getVacationDays">#getVacationDays</a></li>
107
107
 
108
- <li><a href="#M000436">#getVacationDays</a></li>
108
+ <li><a href="#method-i-getVacationSlots">#getVacationSlots</a></li>
109
109
 
110
- <li><a href="#M000444">#getVacationSlots</a></li>
110
+ <li><a href="#method-i-initScoreboard">#initScoreboard</a></li>
111
111
 
112
- <li><a href="#M000445">#initScoreboard</a></li>
112
+ <li><a href="#method-i-onShift%3F">#onShift?</a></li>
113
113
 
114
- <li><a href="#M000447">#onShift?</a></li>
114
+ <li><a href="#method-i-postScheduleCheck">#postScheduleCheck</a></li>
115
115
 
116
- <li><a href="#M000419">#postScheduleCheck</a></li>
116
+ <li><a href="#method-i-preScheduleCheck">#preScheduleCheck</a></li>
117
117
 
118
- <li><a href="#M000418">#preScheduleCheck</a></li>
118
+ <li><a href="#method-i-prepareScheduling">#prepareScheduling</a></li>
119
119
 
120
- <li><a href="#M000414">#prepareScheduling</a></li>
120
+ <li><a href="#method-i-query_cost">#query_cost</a></li>
121
121
 
122
- <li><a href="#M000424">#query_cost</a></li>
122
+ <li><a href="#method-i-query_effort">#query_effort</a></li>
123
123
 
124
- <li><a href="#M000425">#query_effort</a></li>
124
+ <li><a href="#method-i-query_freetime">#query_freetime</a></li>
125
125
 
126
- <li><a href="#M000426">#query_freetime</a></li>
126
+ <li><a href="#method-i-query_freework">#query_freework</a></li>
127
127
 
128
- <li><a href="#M000427">#query_freework</a></li>
128
+ <li><a href="#method-i-query_rate">#query_rate</a></li>
129
129
 
130
- <li><a href="#M000428">#query_rate</a></li>
130
+ <li><a href="#method-i-query_revenue">#query_revenue</a></li>
131
131
 
132
- <li><a href="#M000429">#query_revenue</a></li>
132
+ <li><a href="#method-i-query_vacationdays">#query_vacationdays</a></li>
133
133
 
134
- <li><a href="#M000430">#query_vacationdays</a></li>
134
+ <li><a href="#method-i-rate">#rate</a></li>
135
135
 
136
- <li><a href="#M000449">#rate</a></li>
136
+ <li><a href="#method-i-setDirectReports">#setDirectReports</a></li>
137
137
 
138
- <li><a href="#M000416">#setDirectReports</a></li>
138
+ <li><a href="#method-i-setReports">#setReports</a></li>
139
139
 
140
- <li><a href="#M000417">#setReports</a></li>
140
+ <li><a href="#method-i-setReports_i">#setReports_i</a></li>
141
141
 
142
- <li><a href="#M000446">#setReports_i</a></li>
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="M000413"></a>
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="M000439"></a>
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 442</span>
696
- 442: <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>)
697
- 443: <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>
698
- 444:
699
- 445: <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>)
700
- 446: <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>)
701
- 447:
702
- 448: <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">&amp;&amp;</span>
703
- 449: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@firstBookedSlot</span>
704
- 450: <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">&amp;&amp;</span>
705
- 451: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
706
- 452: <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">&gt;</span> <span class="ruby-identifier">endIdx</span>
707
- 453:
708
- 454: <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>)
709
- 455: <span class="ruby-keyword kw">end</span></pre>
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">&amp;&amp;</span>
721
+ 428: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">&lt;</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">&amp;&amp;</span>
723
+ 430: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">&lt;</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">&gt;</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="M000420"></a>
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="M000422"></a>
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="M000423"></a>
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="M000421"></a>
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="M000415"></a>
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="M000441"></a>
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 507</span>
1013
- 507: <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>)
1014
- 508: <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>
1015
- 509:
1016
- 510: <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>
1017
- 511: <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">val</span> &amp; <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
1018
- 512: <span class="ruby-keyword kw">end</span>
1019
- 513: <span class="ruby-keyword kw">end</span></pre>
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">&amp;&amp;</span> (<span class="ruby-identifier">val</span> &amp; <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="M000438"></a>
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 435</span>
1056
- 435: <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>)
1057
- 436: <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>)
1058
- 437: <span class="ruby-keyword kw">end</span></pre>
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="M000442"></a>
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 517</span>
1093
- 517: <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>)
1094
- 518: <span class="ruby-comment cmt"># To speedup the counting we start with the first booked slot and end</span>
1095
- 519: <span class="ruby-comment cmt"># with the last booked slot.</span>
1096
- 520: <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">&amp;&amp;</span>
1097
- 521: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@firstBookedSlot</span>
1098
- 522: <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">&amp;&amp;</span>
1099
- 523: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1100
- 524:
1101
- 525: <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>
1102
- 526: <span class="ruby-identifier">bookedSlots</span> = <span class="ruby-value">0</span>
1103
- 527: <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>
1104
- 528: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">task</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</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>
1105
- 529: (<span class="ruby-identifier">task</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">task</span>)
1106
- 530: <span class="ruby-identifier">bookedSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1107
- 531: <span class="ruby-keyword kw">end</span>
1108
- 532: <span class="ruby-keyword kw">end</span>
1109
- 533:
1110
- 534: <span class="ruby-identifier">bookedSlots</span>
1111
- 535: <span class="ruby-keyword kw">end</span></pre>
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">&amp;&amp;</span>
1115
+ 500: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">&lt;</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">&amp;&amp;</span>
1117
+ 502: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">&gt;</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">&amp;&amp;</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">&amp;&amp;</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="M000433"></a>
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">getAllocatedWork</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>)
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">work</span> = <span class="ruby-value">0.0</span>
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">work</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>)
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.0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">nil?</span>
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">work</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(
1210
- 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>) *
1211
- 329: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
1212
- 330: <span class="ruby-keyword kw">end</span>
1213
- 331: <span class="ruby-identifier">work</span>
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="M000440"></a>
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 458</span>
1248
- 458: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getBookings</span>
1249
- 459: <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>
1250
- 460: <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>
1251
- 461:
1252
- 462: <span class="ruby-identifier">bookings</span> = {}
1253
- 463: <span class="ruby-identifier">lastTask</span> = <span class="ruby-keyword kw">nil</span>
1254
- 464: <span class="ruby-identifier">bookingStart</span> = <span class="ruby-keyword kw">nil</span>
1255
- 465:
1256
- 466: <span class="ruby-comment cmt"># To speedup the collection we start with the first booked slot and end</span>
1257
- 467: <span class="ruby-comment cmt"># with the last booked slot.</span>
1258
- 468: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@firstBookedSlot</span>
1259
- 469: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@lastBookedSlot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1260
- 470:
1261
- 471: <span class="ruby-comment cmt"># In case the index markers are still uninitialized, we have no bookings.</span>
1262
- 472: <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>
1263
- 473:
1264
- 474: <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>
1265
- 475: <span class="ruby-identifier">task</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
1266
- 476: <span class="ruby-comment cmt"># Now we watch for task changes.</span>
1267
- 477: <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">&amp;&amp;</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>
1268
- 478: (<span class="ruby-identifier">task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">endIdx</span>)
1269
- 479: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">lastTask</span>.<span class="ruby-identifier">nil?</span>
1270
- 480: <span class="ruby-comment cmt"># If we don't have a Booking for the task yet, we create one.</span>
1271
- 481: <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>
1272
- 482: <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>, [])
1273
- 483: <span class="ruby-keyword kw">end</span>
1274
- 484:
1275
- 485: <span class="ruby-comment cmt"># Make sure the index is correct even for the last task block.</span>
1276
- 486: <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>
1277
- 487: <span class="ruby-comment cmt"># Append the new interval to the Booking.</span>
1278
- 488: <span class="ruby-identifier">bookings</span>[<span class="ruby-identifier">lastTask</span>].<span class="ruby-identifier">intervals</span> <span class="ruby-operator">&lt;&lt;</span>
1279
- 489: <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>),
1280
- 490: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>))
1281
- 491: <span class="ruby-keyword kw">end</span>
1282
- 492: <span class="ruby-comment cmt"># Get ready for the next task booking interval</span>
1283
- 493: <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>)
1284
- 494: <span class="ruby-identifier">lastTask</span> = <span class="ruby-identifier">task</span>
1285
- 495: <span class="ruby-identifier">bookingStart</span> = <span class="ruby-identifier">idx</span>
1286
- 496: <span class="ruby-keyword kw">else</span>
1287
- 497: <span class="ruby-identifier">lastTask</span> = <span class="ruby-identifier">bookingStart</span> = <span class="ruby-keyword kw">nil</span>
1288
- 498: <span class="ruby-keyword kw">end</span>
1289
- 499: <span class="ruby-keyword kw">end</span>
1290
- 500: <span class="ruby-keyword kw">end</span>
1291
- 501: <span class="ruby-identifier">bookings</span>
1292
- 502: <span class="ruby-keyword kw">end</span></pre>
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">&amp;&amp;</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">&amp;&amp;</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">&lt;&lt;</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="M000434"></a>
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 356</span>
1327
- 356: <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>)
1328
- 357: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
1329
- 358: <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>)
1330
- 359: <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>)
1331
- 360:
1332
- 361: <span class="ruby-identifier">freeTime</span> = <span class="ruby-value">0</span>
1333
- 362: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1334
- 363: <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>
1335
- 364: <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>,
1336
- 365: <span class="ruby-identifier">endIdx</span>)
1337
- 366: <span class="ruby-keyword kw">end</span>
1338
- 367: <span class="ruby-keyword kw">else</span>
1339
- 368: <span class="ruby-identifier">freeTime</span> = <span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>) *
1340
- 369: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
1341
- 370: <span class="ruby-keyword kw">end</span>
1342
- 371: <span class="ruby-identifier">freeTime</span>
1343
- 372: <span class="ruby-keyword kw">end</span></pre>
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="M000435"></a>
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 376</span>
1378
- 376: <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>)
1379
- 377: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
1380
- 378: <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>)
1381
- 379: <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>)
1382
- 380:
1383
- 381: <span class="ruby-identifier">work</span> = <span class="ruby-value">0.0</span>
1384
- 382: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1385
- 383: <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>
1386
- 384: <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>)
1387
- 385: <span class="ruby-keyword kw">end</span>
1388
- 386: <span class="ruby-keyword kw">else</span>
1389
- 387: <span class="ruby-identifier">work</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(
1390
- 388: <span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>) *
1391
- 389: <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>)
1392
- 390: <span class="ruby-keyword kw">end</span>
1393
- 391: <span class="ruby-identifier">work</span>
1394
- 392: <span class="ruby-keyword kw">end</span></pre>
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="M000431"></a>
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="M000443"></a>
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 538</span>
1481
- 538: <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>)
1482
- 539: <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>
1483
- 540:
1484
- 541: <span class="ruby-identifier">freeSlots</span> = <span class="ruby-value">0</span>
1485
- 542: <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>
1486
- 543: <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>
1487
- 544: <span class="ruby-keyword kw">end</span>
1488
- 545:
1489
- 546: <span class="ruby-identifier">freeSlots</span>
1490
- 547: <span class="ruby-keyword kw">end</span></pre>
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="M000436"></a>
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 395</span>
1524
- 395: <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>)
1525
- 396: <span class="ruby-comment cmt"># Convert the interval dates to indexes if needed.</span>
1526
- 397: <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>)
1527
- 398: <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>)
1528
- 399:
1529
- 400: <span class="ruby-identifier">vacationDays</span> = <span class="ruby-value">0.0</span>
1530
- 401: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1531
- 402: <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>
1532
- 403: <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>,
1533
- 404: <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1534
- 405: <span class="ruby-keyword kw">end</span>
1535
- 406: <span class="ruby-keyword kw">else</span>
1536
- 407: <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>
1537
- 408:
1538
- 409: <span class="ruby-identifier">vacationDays</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(
1539
- 410: <span class="ruby-identifier">getVacationSlots</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>) *
1540
- 411: <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>)
1541
- 412: <span class="ruby-keyword kw">end</span>
1542
- 413: <span class="ruby-identifier">vacationDays</span>
1543
- 414: <span class="ruby-keyword kw">end</span></pre>
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="M000444"></a>
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 551</span>
1578
- 551: <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>)
1579
- 552: <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>
1580
- 553:
1581
- 554: <span class="ruby-identifier">vacationSlots</span> = <span class="ruby-value">0</span>
1582
- 555: <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>
1583
- 556: <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
1584
- 557: <span class="ruby-comment cmt"># Bit 1 needs to be unset and the vacation bits must not be 0.</span>
1585
- 558: <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">&amp;&amp;</span> (<span class="ruby-identifier">val</span> &amp; <span class="ruby-value">0x2</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span>
1586
- 559: (<span class="ruby-identifier">val</span> &amp; <span class="ruby-value">0x3C</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
1587
- 560: <span class="ruby-keyword kw">end</span>
1588
- 561: <span class="ruby-identifier">vacationSlots</span>
1589
- 562: <span class="ruby-keyword kw">end</span></pre>
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">&amp;&amp;</span> (<span class="ruby-identifier">val</span> &amp; <span class="ruby-value">0x2</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span>
1552
+ 538: (<span class="ruby-identifier">val</span> &amp; <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="M000419"></a>
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="M000418"></a>
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="M000414"></a>
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="M000424"></a>
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="M000425"></a>
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="M000426"></a>
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="M000427"></a>
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="M000428"></a>
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="M000429"></a>
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="M000430"></a>
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="M000416"></a>
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="M000417"></a>
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="M000437"></a>
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 416</span>
2136
- 416: <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>)
2137
- 417: <span class="ruby-identifier">amount</span> = <span class="ruby-value">0.0</span>
2138
- 418: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
2139
- 419: <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>
2140
- 420: <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>)
2141
- 421: <span class="ruby-keyword kw">end</span>
2142
- 422: <span class="ruby-keyword kw">else</span>
2143
- 423: <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>
2144
- 424: <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>,
2145
- 425: <span class="ruby-ivar">@property</span>)
2146
- 426: <span class="ruby-keyword kw">end</span>
2147
- 427: <span class="ruby-keyword kw">end</span>
2148
- 428:
2149
- 429: <span class="ruby-identifier">amount</span>
2150
- 430: <span class="ruby-keyword kw">end</span></pre>
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="M000448"></a>
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 655</span>
2192
- 655: <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>)
2193
- 656: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
2194
- 657: <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>
2195
- 658: <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>,
2196
- 659: <span class="ruby-identifier">task</span>)
2197
- 660: <span class="ruby-keyword kw">end</span>
2198
- 661: <span class="ruby-keyword kw">else</span>
2199
- 662: <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>)
2200
- 663:
2201
- 664: <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>
2202
- 665: <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>
2203
- 666: <span class="ruby-keyword kw">end</span>
2204
- 667: <span class="ruby-keyword kw">end</span>
2205
- 668: <span class="ruby-keyword kw">false</span>
2206
- 669: <span class="ruby-keyword kw">end</span></pre>
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="M000445"></a>
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 566</span>
2238
- 566: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboard</span>
2239
- 567: <span class="ruby-comment cmt"># Create scoreboard and mark all slots as unavailable</span>
2240
- 568: <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>],
2241
- 569: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>], <span class="ruby-value">2</span>)
2242
- 570:
2243
- 571: <span class="ruby-comment cmt"># We'll need this frequently and can savely cache it here.</span>
2244
- 572: <span class="ruby-ivar">@shifts</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'shifts'</span>)
2245
- 573: <span class="ruby-ivar">@workinghours</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'workinghours'</span>)
2246
- 574:
2247
- 575: <span class="ruby-comment cmt"># Change all work time slots to nil (available) again.</span>
2248
- 576: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-value">0</span>)
2249
- 577: <span class="ruby-identifier">delta</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
2250
- 578: <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>
2251
- 579: <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>)
2252
- 580: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">delta</span>
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">&lt;&lt;</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">&lt;&lt;</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-comment cmt"># Mark all resource specific vacation slots as such</span>
2256
- 584: <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>
2257
- 585: <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>)
2258
- 586: <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>)
2259
- 587: <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>
2260
- 588: <span class="ruby-comment cmt"># If the slot is nil, we don't set the time-off bit.</span>
2261
- 589: <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">&lt;&lt;</span> <span class="ruby-value">2</span>)
2262
- 590: <span class="ruby-keyword kw">end</span>
2263
- 591: <span class="ruby-keyword kw">end</span>
2264
- 592:
2265
- 593: <span class="ruby-comment cmt"># Mark all global vacation slots as such</span>
2266
- 594: <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>
2267
- 595: <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>)
2268
- 596: <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>)
2269
- 597: <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>
2270
- 598: <span class="ruby-comment cmt"># If the slot is nil or set to 4 then don't set the time-off bit.</span>
2271
- 599: <span class="ruby-identifier">sb</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]
2272
- 600: <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">&lt;&lt;</span> <span class="ruby-value">2</span>)
2273
- 601: <span class="ruby-keyword kw">end</span>
2274
- 602: <span class="ruby-keyword kw">end</span>
2275
- 603:
2276
- 604: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">nil?</span>
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> &amp; (<span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</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> &amp; <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> &amp; <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> &amp; <span class="ruby-value">0x3C</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-operator">&amp;&amp;</span>
2290
- 618: (<span class="ruby-identifier">v</span> &amp; <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> &amp; <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> &amp; (<span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</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> &amp; <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> &amp; <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> &amp; <span class="ruby-value">0x3C</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-operator">&amp;&amp;</span>
2256
+ 597: (<span class="ruby-identifier">v</span> &amp; <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> &amp; <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="M000447"></a>
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 644</span>
2329
- 644: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
2330
- 645: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@shifts</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
2331
- 646: <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>)
2332
- 647: <span class="ruby-keyword kw">else</span>
2333
- 648: <span class="ruby-ivar">@workinghours</span>.<span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
2334
- 649: <span class="ruby-keyword kw">end</span>
2335
- 650: <span class="ruby-keyword kw">end</span></pre>
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">&amp;&amp;</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="M000449"></a>
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 672</span>
2369
- 672: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rate</span>
2370
- 673: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
2371
- 674: <span class="ruby-identifier">dailyRate</span> = <span class="ruby-value">0.0</span>
2372
- 675: <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>
2373
- 676: <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>)
2374
- 677: <span class="ruby-keyword kw">end</span>
2375
- 678: <span class="ruby-identifier">dailyRate</span>
2376
- 679: <span class="ruby-keyword kw">else</span>
2377
- 680: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rate'</span>)
2378
- 681: <span class="ruby-keyword kw">end</span>
2379
- 682: <span class="ruby-keyword kw">end</span></pre>
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="M000446"></a>
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 627</span>
2411
- 627: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setReports_i</span>(<span class="ruby-identifier">reports</span>)
2412
- 628: <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>)
2413
- 629: <span class="ruby-comment cmt"># A manager must never show up in the list of his/her own reports.</span>
2414
- 630: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'manager_loop'</span>,
2415
- 631: <span class="ruby-node">&quot;Management loop detected. #{@property.fullId} has self &quot;</span> <span class="ruby-operator">+</span>
2416
- 632: <span class="ruby-value str">&quot;in list of reports&quot;</span>)
2417
- 633: <span class="ruby-keyword kw">end</span>
2418
- 634: <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>
2419
- 635: <span class="ruby-comment cmt"># Resources can end up multiple times in the list if they have multiple</span>
2420
- 636: <span class="ruby-comment cmt"># reporting chains. We only need them once in the list.</span>
2421
- 637: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'reports'</span>).<span class="ruby-identifier">uniq!</span>
2422
- 638:
2423
- 639: <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>
2424
- 640: <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>))
2425
- 641: <span class="ruby-keyword kw">end</span>
2426
- 642: <span class="ruby-keyword kw">end</span></pre>
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">&quot;Management loop detected. #{@property.fullId} has self &quot;</span> <span class="ruby-operator">+</span>
2382
+ 611: <span class="ruby-value str">&quot;in list of reports&quot;</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>