taskjuggler 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +1144 -2047
- data/README +1 -1
- data/Rakefile +6 -6
- data/data/css/tjmanual.css +20 -0
- data/data/css/tjreport.css +7 -6
- data/doc/AppConfig.html +136 -130
- data/doc/Arguments.html +46 -40
- data/doc/CHANGELOG.html +1162 -2057
- data/doc/COPYING.html +8 -2
- data/doc/Object.html +205 -199
- data/doc/README.html +9 -3
- data/doc/RuntimeConfig.html +75 -69
- data/doc/String.html +69 -63
- data/doc/TaskJuggler.html +350 -291
- data/doc/TaskJuggler/Account.html +26 -20
- data/doc/TaskJuggler/AccountAttribute.html +24 -18
- data/doc/TaskJuggler/AccountScenario.html +24 -18
- data/doc/TaskJuggler/Allocation.html +74 -68
- data/doc/TaskJuggler/AllocationAttribute.html +54 -48
- data/doc/TaskJuggler/AttributeBase.html +172 -93
- data/doc/TaskJuggler/AttributeDefinition.html +22 -16
- data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
- data/doc/TaskJuggler/BatchProcessor.html +263 -257
- data/doc/TaskJuggler/Booking.html +44 -38
- data/doc/TaskJuggler/BookingListAttribute.html +25 -21
- data/doc/TaskJuggler/BooleanAttribute.html +24 -18
- data/doc/TaskJuggler/CSVFile.html +193 -187
- data/doc/TaskJuggler/CellSettingPattern.html +13 -7
- data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
- data/doc/TaskJuggler/Charge.html +49 -43
- data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
- data/doc/TaskJuggler/ChargeSet.html +94 -88
- data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
- data/doc/TaskJuggler/CollisionDetector.html +142 -136
- data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
- data/doc/TaskJuggler/ColumnTable.html +50 -44
- data/doc/TaskJuggler/Daemon.html +71 -50
- data/doc/TaskJuggler/DataCache.html +110 -58
- data/doc/TaskJuggler/DataCacheEntry.html +22 -16
- data/doc/TaskJuggler/DateAttribute.html +24 -18
- data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
- data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
- data/doc/TaskJuggler/DurationAttribute.html +25 -19
- data/doc/TaskJuggler/FileList.html +25 -19
- data/doc/TaskJuggler/FileRecord.html +17 -11
- data/doc/TaskJuggler/FixnumAttribute.html +16 -10
- data/doc/TaskJuggler/FlagListAttribute.html +25 -21
- data/doc/TaskJuggler/FloatAttribute.html +20 -14
- data/doc/TaskJuggler/FormatListAttribute.html +17 -11
- data/doc/TaskJuggler/GanttChart.html +242 -236
- data/doc/TaskJuggler/GanttContainer.html +71 -67
- data/doc/TaskJuggler/GanttHeader.html +113 -107
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
- data/doc/TaskJuggler/GanttLine.html +217 -210
- data/doc/TaskJuggler/GanttLoadStack.html +89 -83
- data/doc/TaskJuggler/GanttMilestone.html +11 -6
- data/doc/TaskJuggler/GanttRouter.html +194 -186
- data/doc/TaskJuggler/GanttTaskBar.html +41 -34
- data/doc/TaskJuggler/HTMLDocument.html +52 -46
- data/doc/TaskJuggler/HTMLGraphics.html +58 -52
- data/doc/TaskJuggler/Interval.html +90 -84
- data/doc/TaskJuggler/IntervalList.html +777 -0
- data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
- data/doc/TaskJuggler/JobInfo.html +36 -30
- data/doc/TaskJuggler/Journal.html +188 -177
- data/doc/TaskJuggler/JournalEntry.html +36 -30
- data/doc/TaskJuggler/JournalEntryList.html +88 -82
- data/doc/TaskJuggler/KeywordArray.html +12 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
- data/doc/TaskJuggler/Limits.html +111 -105
- data/doc/TaskJuggler/Limits/Limit.html +71 -65
- data/doc/TaskJuggler/LimitsAttribute.html +21 -15
- data/doc/TaskJuggler/ListAttributeBase.html +16 -10
- data/doc/TaskJuggler/Log.html +111 -105
- data/doc/TaskJuggler/LogFile.html +54 -48
- data/doc/TaskJuggler/LogicalAttribute.html +35 -29
- data/doc/TaskJuggler/LogicalExpression.html +32 -26
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
- data/doc/TaskJuggler/LogicalFlag.html +24 -18
- data/doc/TaskJuggler/LogicalFunction.html +164 -158
- data/doc/TaskJuggler/LogicalOperation.html +138 -132
- data/doc/TaskJuggler/Macro.html +14 -8
- data/doc/TaskJuggler/MacroTable.html +42 -36
- data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
- data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
- data/doc/TaskJuggler/Message.html +56 -50
- data/doc/TaskJuggler/MessageHandler.html +73 -67
- data/doc/TaskJuggler/Navigator.html +92 -86
- data/doc/TaskJuggler/NavigatorElement.html +88 -82
- data/doc/TaskJuggler/NikuProject.html +15 -9
- data/doc/TaskJuggler/NikuReport.html +405 -370
- data/doc/TaskJuggler/NikuResource.html +13 -7
- data/doc/TaskJuggler/NodeListAttribute.html +13 -9
- data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
- data/doc/TaskJuggler/ProcessIntercom.html +116 -110
- data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
- data/doc/TaskJuggler/Project.html +1064 -895
- data/doc/TaskJuggler/ProjectBroker.html +439 -366
- data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
- data/doc/TaskJuggler/ProjectFileParser.html +329 -319
- data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
- data/doc/TaskJuggler/ProjectRecord.html +66 -60
- data/doc/TaskJuggler/ProjectServer.html +287 -280
- data/doc/TaskJuggler/ProjectServerIface.html +43 -37
- data/doc/TaskJuggler/PropertyAttribute.html +16 -10
- data/doc/TaskJuggler/PropertyList.html +205 -199
- data/doc/TaskJuggler/PropertySet.html +264 -296
- data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
- data/doc/TaskJuggler/Query.html +309 -524
- data/doc/TaskJuggler/RTFHandlers.html +17 -11
- data/doc/TaskJuggler/RTFNavigator.html +33 -27
- data/doc/TaskJuggler/RTFQuery.html +135 -129
- data/doc/TaskJuggler/RTFReport.html +63 -57
- data/doc/TaskJuggler/RTFReportLink.html +55 -49
- data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
- data/doc/TaskJuggler/RealFormat.html +64 -58
- data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
- data/doc/TaskJuggler/Report.html +294 -249
- data/doc/TaskJuggler/ReportBase.html +229 -223
- data/doc/TaskJuggler/ReportContext.html +52 -46
- data/doc/TaskJuggler/ReportServer.html +143 -137
- data/doc/TaskJuggler/ReportServerIface.html +51 -43
- data/doc/TaskJuggler/ReportServerRecord.html +36 -30
- data/doc/TaskJuggler/ReportServlet.html +167 -140
- data/doc/TaskJuggler/ReportTable.html +137 -131
- data/doc/TaskJuggler/ReportTableCell.html +332 -292
- data/doc/TaskJuggler/ReportTableColumn.html +46 -40
- data/doc/TaskJuggler/ReportTableLegend.html +43 -38
- data/doc/TaskJuggler/ReportTableLine.html +66 -60
- data/doc/TaskJuggler/Resource.html +166 -160
- data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
- data/doc/TaskJuggler/ResourceListRE.html +47 -41
- data/doc/TaskJuggler/ResourceScenario.html +671 -644
- data/doc/TaskJuggler/RichText.html +51 -45
- data/doc/TaskJuggler/RichTextAttribute.html +28 -22
- data/doc/TaskJuggler/RichTextDocument.html +96 -90
- data/doc/TaskJuggler/RichTextElement.html +503 -497
- data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
- data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
- data/doc/TaskJuggler/RichTextImage.html +14 -8
- data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
- data/doc/TaskJuggler/RichTextParser.html +59 -53
- data/doc/TaskJuggler/RichTextScanner.html +184 -178
- data/doc/TaskJuggler/RichTextSnip.html +69 -63
- data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
- data/doc/TaskJuggler/Scenario.html +13 -7
- data/doc/TaskJuggler/ScenarioData.html +40 -34
- data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
- data/doc/TaskJuggler/Scoreboard.html +129 -107
- data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
- data/doc/TaskJuggler/SheetReceiver.html +333 -327
- data/doc/TaskJuggler/SheetSender.html +227 -221
- data/doc/TaskJuggler/Shift.html +26 -20
- data/doc/TaskJuggler/ShiftAssignment.html +45 -39
- data/doc/TaskJuggler/ShiftAssignments.html +178 -172
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
- data/doc/TaskJuggler/ShiftScenario.html +29 -23
- data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
- data/doc/TaskJuggler/SortListAttribute.html +17 -13
- data/doc/TaskJuggler/SourceFileInfo.html +19 -13
- data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
- data/doc/TaskJuggler/StatusSheetReport.html +166 -159
- data/doc/TaskJuggler/StatusSheetSender.html +80 -74
- data/doc/TaskJuggler/StringAttribute.html +20 -14
- data/doc/TaskJuggler/SymbolAttribute.html +16 -10
- data/doc/TaskJuggler/SyntaxReference.html +231 -225
- data/doc/TaskJuggler/TOCEntry.html +46 -40
- data/doc/TaskJuggler/TSResourceRecord.html +15 -9
- data/doc/TaskJuggler/TSTaskRecord.html +16 -10
- data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
- data/doc/TaskJuggler/TableOfContents.html +28 -22
- data/doc/TaskJuggler/TableReport.html +906 -866
- data/doc/TaskJuggler/Task.html +99 -93
- data/doc/TaskJuggler/TaskDependency.html +24 -18
- data/doc/TaskJuggler/TaskListAttribute.html +29 -25
- data/doc/TaskJuggler/TaskListRE.html +46 -39
- data/doc/TaskJuggler/TaskScenario.html +2218 -1965
- data/doc/TaskJuggler/TextFormatter.html +154 -148
- data/doc/TaskJuggler/TextParser.html +362 -348
- data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
- data/doc/TaskJuggler/TextParser/Rule.html +147 -141
- data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
- data/doc/TaskJuggler/TextParser/State.html +88 -82
- data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
- data/doc/TaskJuggler/TextReport.html +80 -74
- data/doc/TaskJuggler/TextScanner.html +284 -272
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +123 -117
- data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
- data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
- data/doc/TaskJuggler/TimeSheetReport.html +206 -199
- data/doc/TaskJuggler/TimeSheetSender.html +27 -21
- data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
- data/doc/TaskJuggler/TimeSheets.html +20 -14
- data/doc/TaskJuggler/Tj3AppBase.html +100 -94
- data/doc/TaskJuggler/Tj3Client.html +407 -483
- data/doc/TaskJuggler/Tj3Daemon.html +116 -107
- data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
- data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3SsSender.html +64 -58
- data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3TsSender.html +51 -45
- data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
- data/doc/TaskJuggler/TjException.html +13 -7
- data/doc/TaskJuggler/TjTime.html +444 -438
- data/doc/TaskJuggler/TjpExample.html +84 -78
- data/doc/TaskJuggler/TjpExportRE.html +356 -349
- data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
- data/doc/TaskJuggler/URLParameter.html +16 -10
- data/doc/TaskJuggler/UserManual.html +185 -179
- data/doc/TaskJuggler/VimSyntax.html +144 -138
- data/doc/TaskJuggler/WebServer.html +46 -39
- data/doc/TaskJuggler/WelcomePage.html +769 -0
- data/doc/TaskJuggler/WorkingHours.html +185 -179
- data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
- data/doc/TaskJuggler/XMLBlob.html +21 -15
- data/doc/TaskJuggler/XMLComment.html +17 -11
- data/doc/TaskJuggler/XMLDocument.html +33 -27
- data/doc/TaskJuggler/XMLElement.html +97 -91
- data/doc/TaskJuggler/XMLNamedText.html +13 -7
- data/doc/TaskJuggler/XMLText.html +32 -26
- data/doc/index.html +601 -563
- data/doc/lib/AccountScenario_rb.html +5 -3
- data/doc/lib/Account_rb.html +5 -3
- data/doc/lib/Allocation_rb.html +5 -3
- data/doc/lib/AppConfig_rb.html +5 -3
- data/doc/lib/AttributeBase_rb.html +5 -3
- data/doc/lib/AttributeDefinition_rb.html +5 -3
- data/doc/lib/Attributes_rb.html +5 -3
- data/doc/lib/BatchProcessor_rb.html +5 -3
- data/doc/lib/Booking_rb.html +5 -3
- data/doc/lib/ChargeSet_rb.html +5 -3
- data/doc/lib/Charge_rb.html +5 -3
- data/doc/lib/DataCache_rb.html +5 -3
- data/doc/lib/FileList_rb.html +5 -3
- data/doc/lib/HTMLDocument_rb.html +5 -3
- data/doc/lib/IntervalList_rb.html +69 -0
- data/doc/lib/Interval_rb.html +5 -3
- data/doc/lib/Journal_rb.html +5 -3
- data/doc/lib/KeywordArray_rb.html +5 -3
- data/doc/lib/KeywordDocumentation_rb.html +5 -3
- data/doc/lib/Limits_rb.html +5 -3
- data/doc/lib/LogFile_rb.html +5 -3
- data/doc/lib/Log_rb.html +5 -3
- data/doc/lib/LogicalExpression_rb.html +5 -3
- data/doc/lib/LogicalFunction_rb.html +5 -3
- data/doc/lib/LogicalOperation_rb.html +5 -3
- data/doc/lib/MacroTable_rb.html +5 -3
- data/doc/lib/MessageHandler_rb.html +5 -3
- data/doc/lib/ProjectFileParser_rb.html +5 -3
- data/doc/lib/ProjectFileScanner_rb.html +5 -3
- data/doc/lib/Project_rb.html +5 -3
- data/doc/lib/PropertyList_rb.html +5 -3
- data/doc/lib/PropertySet_rb.html +5 -3
- data/doc/lib/PropertyTreeNode_rb.html +5 -3
- data/doc/lib/Query_rb.html +5 -3
- data/doc/lib/RTFHandlers_rb.html +5 -3
- data/doc/lib/RTFNavigator_rb.html +5 -3
- data/doc/lib/RTFQuery_rb.html +5 -3
- data/doc/lib/RTFReportLink_rb.html +5 -3
- data/doc/lib/RTFReport_rb.html +5 -3
- data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
- data/doc/lib/RealFormat_rb.html +5 -3
- data/doc/lib/ResourceScenario_rb.html +5 -3
- data/doc/lib/Resource_rb.html +5 -3
- data/doc/lib/RichTextDocument_rb.html +5 -3
- data/doc/lib/RichTextElement_rb.html +5 -3
- data/doc/lib/RichTextFunctionExample_rb.html +5 -3
- data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
- data/doc/lib/RichTextParser_rb.html +5 -3
- data/doc/lib/RichTextScanner_rb.html +5 -3
- data/doc/lib/RichTextSnip_rb.html +5 -3
- data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
- data/doc/lib/RichText_rb.html +5 -3
- data/doc/lib/RuntimeConfig_rb.html +5 -3
- data/doc/lib/ScenarioData_rb.html +5 -3
- data/doc/lib/Scenario_rb.html +5 -3
- data/doc/lib/Scoreboard_rb.html +7 -3
- data/doc/lib/SheetHandlerBase_rb.html +5 -3
- data/doc/lib/SheetReceiver_rb.html +5 -3
- data/doc/lib/SheetSender_rb.html +5 -3
- data/doc/lib/ShiftAssignments_rb.html +5 -3
- data/doc/lib/ShiftScenario_rb.html +5 -3
- data/doc/lib/Shift_rb.html +5 -3
- data/doc/lib/SimpleQueryExpander_rb.html +5 -3
- data/doc/lib/SourceFileInfo_rb.html +5 -3
- data/doc/lib/StatusSheetReceiver_rb.html +5 -3
- data/doc/lib/StatusSheetSender_rb.html +5 -3
- data/doc/lib/SyntaxReference_rb.html +5 -3
- data/doc/lib/TOCEntry_rb.html +5 -3
- data/doc/lib/TableColumnDefinition_rb.html +5 -3
- data/doc/lib/TableOfContents_rb.html +5 -3
- data/doc/lib/TaskDependency_rb.html +5 -3
- data/doc/lib/TaskJuggler_rb.html +5 -3
- data/doc/lib/TaskScenario_rb.html +5 -3
- data/doc/lib/Task_rb.html +5 -3
- data/doc/lib/TextFormatter_rb.html +6 -4
- data/doc/lib/TextParser/Pattern_rb.html +5 -3
- data/doc/lib/TextParser/Rule_rb.html +5 -3
- data/doc/lib/TextParser/StackElement_rb.html +5 -3
- data/doc/lib/TextParser/State_rb.html +6 -4
- data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
- data/doc/lib/TextParser_rb.html +5 -3
- data/doc/lib/TextScanner_rb.html +5 -3
- data/doc/lib/TimeSheetReceiver_rb.html +5 -3
- data/doc/lib/TimeSheetSender_rb.html +5 -3
- data/doc/lib/TimeSheetSummary_rb.html +6 -4
- data/doc/lib/TimeSheets_rb.html +5 -3
- data/doc/lib/Tj3AppBase_rb.html +5 -3
- data/doc/lib/Tj3Config_rb.html +5 -3
- data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
- data/doc/lib/TjException_rb.html +5 -3
- data/doc/lib/TjTime_rb.html +5 -3
- data/doc/lib/TjpExample_rb.html +5 -3
- data/doc/lib/TjpSyntaxRules_rb.html +5 -3
- data/doc/lib/URLParameter_rb.html +5 -3
- data/doc/lib/UTF8String_rb.html +5 -3
- data/doc/lib/UserManual_rb.html +5 -3
- data/doc/lib/VimSyntax_rb.html +6 -4
- data/doc/lib/WorkingHours_rb.html +5 -3
- data/doc/lib/XMLDocument_rb.html +5 -3
- data/doc/lib/XMLElement_rb.html +5 -3
- data/doc/lib/daemon/Daemon_rb.html +5 -3
- data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
- data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
- data/doc/lib/daemon/ProjectServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServlet_rb.html +69 -0
- data/doc/lib/daemon/WebServer_rb.html +9 -3
- data/doc/lib/daemon/WelcomePage_rb.html +71 -0
- data/doc/lib/deep_copy_rb.html +5 -3
- data/doc/lib/reports/CSVFile_rb.html +5 -3
- data/doc/lib/reports/CollisionDetector_rb.html +5 -3
- data/doc/lib/reports/ColumnTable_rb.html +5 -3
- data/doc/lib/reports/GanttChart_rb.html +5 -3
- data/doc/lib/reports/GanttContainer_rb.html +5 -3
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
- data/doc/lib/reports/GanttHeader_rb.html +5 -3
- data/doc/lib/reports/GanttLine_rb.html +5 -3
- data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
- data/doc/lib/reports/GanttMilestone_rb.html +5 -3
- data/doc/lib/reports/GanttRouter_rb.html +5 -3
- data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
- data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
- data/doc/lib/reports/Navigator_rb.html +5 -3
- data/doc/lib/reports/NikuReport_rb.html +5 -3
- data/doc/lib/reports/ReportBase_rb.html +5 -3
- data/doc/lib/reports/ReportContext_rb.html +5 -3
- data/doc/lib/reports/ReportTableCell_rb.html +5 -3
- data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
- data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
- data/doc/lib/reports/ReportTableLine_rb.html +5 -3
- data/doc/lib/reports/ReportTable_rb.html +5 -3
- data/doc/lib/reports/Report_rb.html +5 -3
- data/doc/lib/reports/ResourceListRE_rb.html +5 -3
- data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
- data/doc/lib/reports/TableReport_rb.html +5 -3
- data/doc/lib/reports/TaskListRE_rb.html +5 -3
- data/doc/lib/reports/TextReport_rb.html +5 -3
- data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
- data/doc/lib/reports/TjpExportRE_rb.html +5 -3
- data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
- data/doc/lib/tj3client_rb.html +5 -3
- data/doc/lib/tj3d_rb.html +6 -4
- data/doc/lib/tj3man_rb.html +5 -3
- data/doc/lib/tj3ss_receiver_rb.html +5 -3
- data/doc/lib/tj3ss_sender_rb.html +5 -3
- data/doc/lib/tj3ts_receiver_rb.html +5 -3
- data/doc/lib/tj3ts_sender_rb.html +5 -3
- data/doc/lib/tj3ts_summary_rb.html +5 -3
- data/examples/tutorial.tjp +13 -5
- data/gem_spec.rb +3 -0
- data/lib/Account.rb +2 -1
- data/lib/AccountScenario.rb +2 -1
- data/lib/Allocation.rb +2 -1
- data/lib/AppConfig.rb +2 -1
- data/lib/AttributeBase.rb +19 -5
- data/lib/AttributeDefinition.rb +2 -1
- data/lib/Attributes.rb +49 -38
- data/lib/BatchProcessor.rb +2 -1
- data/lib/Booking.rb +2 -1
- data/lib/Charge.rb +2 -1
- data/lib/ChargeSet.rb +2 -1
- data/lib/DataCache.rb +15 -1
- data/lib/FileList.rb +2 -1
- data/lib/HTMLDocument.rb +2 -1
- data/lib/Interval.rb +2 -1
- data/lib/IntervalList.rb +100 -0
- data/lib/Journal.rb +8 -2
- data/lib/KeywordArray.rb +2 -1
- data/lib/KeywordDocumentation.rb +10 -6
- data/lib/Limits.rb +2 -1
- data/lib/Log.rb +3 -2
- data/lib/LogFile.rb +2 -1
- data/lib/LogicalExpression.rb +2 -1
- data/lib/LogicalFunction.rb +2 -1
- data/lib/LogicalOperation.rb +2 -1
- data/lib/MacroTable.rb +2 -1
- data/lib/MessageHandler.rb +2 -1
- data/lib/Project.rb +92 -25
- data/lib/ProjectFileParser.rb +7 -2
- data/lib/ProjectFileScanner.rb +2 -1
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +2 -6
- data/lib/PropertyTreeNode.rb +22 -44
- data/lib/Query.rb +32 -13
- data/lib/RTFHandlers.rb +2 -1
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +3 -2
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +2 -1
- data/lib/RTFWithQuerySupport.rb +2 -1
- data/lib/RealFormat.rb +2 -1
- data/lib/Resource.rb +2 -1
- data/lib/ResourceScenario.rb +35 -14
- data/lib/RichText.rb +2 -1
- data/lib/RichTextDocument.rb +2 -1
- data/lib/RichTextElement.rb +2 -1
- data/lib/RichTextFunctionExample.rb +2 -1
- data/lib/RichTextFunctionHandler.rb +2 -1
- data/lib/RichTextParser.rb +2 -1
- data/lib/RichTextScanner.rb +2 -1
- data/lib/RichTextSnip.rb +2 -1
- data/lib/RichTextSyntaxRules.rb +2 -1
- data/lib/RuntimeConfig.rb +2 -1
- data/lib/Scenario.rb +2 -1
- data/lib/ScenarioData.rb +2 -1
- data/lib/Scoreboard.rb +27 -8
- data/lib/SheetHandlerBase.rb +2 -1
- data/lib/SheetReceiver.rb +2 -1
- data/lib/SheetSender.rb +2 -1
- data/lib/Shift.rb +2 -1
- data/lib/ShiftAssignments.rb +2 -1
- data/lib/ShiftScenario.rb +2 -1
- data/lib/SimpleQueryExpander.rb +2 -1
- data/lib/SourceFileInfo.rb +2 -1
- data/lib/StatusSheetReceiver.rb +2 -1
- data/lib/StatusSheetSender.rb +2 -1
- data/lib/SyntaxReference.rb +2 -1
- data/lib/TOCEntry.rb +2 -1
- data/lib/TableColumnDefinition.rb +9 -2
- data/lib/TableOfContents.rb +2 -1
- data/lib/Task.rb +2 -1
- data/lib/TaskDependency.rb +2 -1
- data/lib/TaskJuggler.rb +8 -6
- data/lib/TaskScenario.rb +337 -153
- data/lib/TextFormatter.rb +3 -2
- data/lib/TextParser.rb +7 -2
- data/lib/TextParser/Pattern.rb +2 -1
- data/lib/TextParser/Rule.rb +2 -1
- data/lib/TextParser/StackElement.rb +2 -1
- data/lib/TextParser/State.rb +3 -2
- data/lib/TextParser/TokenDoc.rb +2 -1
- data/lib/TextScanner.rb +12 -5
- data/lib/TimeSheetReceiver.rb +2 -1
- data/lib/TimeSheetSender.rb +2 -1
- data/lib/TimeSheetSummary.rb +3 -2
- data/lib/TimeSheets.rb +2 -1
- data/lib/Tj3AppBase.rb +6 -5
- data/lib/Tj3Config.rb +5 -4
- data/lib/Tj3SheetAppBase.rb +2 -1
- data/lib/TjException.rb +2 -1
- data/lib/TjTime.rb +2 -1
- data/lib/TjpExample.rb +2 -1
- data/lib/TjpSyntaxRules.rb +264 -65
- data/lib/URLParameter.rb +2 -1
- data/lib/UTF8String.rb +2 -1
- data/lib/UserManual.rb +2 -1
- data/lib/VimSyntax.rb +3 -2
- data/lib/WorkingHours.rb +2 -1
- data/lib/XMLDocument.rb +2 -1
- data/lib/XMLElement.rb +2 -1
- data/lib/daemon/Daemon.rb +3 -1
- data/lib/daemon/ProcessIntercom.rb +3 -1
- data/lib/daemon/ProjectBroker.rb +84 -32
- data/lib/daemon/ProjectServer.rb +5 -3
- data/lib/daemon/ReportServer.rb +8 -5
- data/lib/daemon/ReportServlet.rb +166 -0
- data/lib/daemon/WebServer.rb +6 -150
- data/lib/daemon/WelcomePage.rb +80 -0
- data/lib/deep_copy.rb +2 -1
- data/lib/reports/CSVFile.rb +2 -1
- data/lib/reports/CollisionDetector.rb +2 -1
- data/lib/reports/ColumnTable.rb +2 -1
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/GanttContainer.rb +3 -4
- data/lib/reports/GanttHeader.rb +2 -1
- data/lib/reports/GanttHeaderScaleItem.rb +2 -1
- data/lib/reports/GanttLine.rb +12 -10
- data/lib/reports/GanttLoadStack.rb +2 -1
- data/lib/reports/GanttMilestone.rb +3 -3
- data/lib/reports/GanttRouter.rb +4 -1
- data/lib/reports/GanttTaskBar.rb +9 -7
- data/lib/reports/HTMLGraphics.rb +2 -1
- data/lib/reports/Navigator.rb +2 -1
- data/lib/reports/NikuReport.rb +79 -49
- data/lib/reports/Report.rb +42 -10
- data/lib/reports/ReportBase.rb +2 -1
- data/lib/reports/ReportContext.rb +2 -1
- data/lib/reports/ReportTable.rb +2 -1
- data/lib/reports/ReportTableCell.rb +63 -28
- data/lib/reports/ReportTableColumn.rb +2 -1
- data/lib/reports/ReportTableLegend.rb +5 -5
- data/lib/reports/ReportTableLine.rb +2 -1
- data/lib/reports/ResourceListRE.rb +2 -1
- data/lib/reports/StatusSheetReport.rb +4 -2
- data/lib/reports/TableReport.rb +42 -38
- data/lib/reports/TaskListRE.rb +4 -2
- data/lib/reports/TextReport.rb +2 -1
- data/lib/reports/TimeSheetReport.rb +4 -2
- data/lib/reports/TjpExportRE.rb +4 -2
- data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
- data/lib/tj3client.rb +19 -36
- data/lib/tj3d.rb +6 -2
- data/lib/tj3man.rb +4 -3
- data/lib/tj3ss_receiver.rb +2 -1
- data/lib/tj3ss_sender.rb +2 -1
- data/lib/tj3ts_receiver.rb +2 -1
- data/lib/tj3ts_sender.rb +2 -1
- data/lib/tj3ts_summary.rb +2 -1
- data/manual/Day_To_Day_Juggling +36 -0
- data/manual/How_To_Contribute +9 -4
- data/manual/Installation +10 -3
- data/manual/TaskJuggler_Internals +0 -2
- data/manual/Tutorial +25 -3
- data/prj_cfg.rb +4 -2
- data/spec/IntervalList_spec.rb +138 -0
- data/spec/ProjectBroker_spec.rb +133 -0
- data/tasks/changelog.rake +41 -24
- data/tasks/csts.rake +1 -0
- data/tasks/gem.rake +1 -0
- data/tasks/rcov.rake +1 -1
- data/tasks/spec.rake +7 -0
- data/tasks/test.rake +1 -0
- data/test/MessageChecker.rb +2 -1
- data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
- data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
- data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
- data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
- data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
- data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
- data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
- data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
- data/test/TestSuite/StatusSheets/sender.log +256 -0
- data/test/TestSuite/StatusSheets/statussheets.log +9 -0
- data/test/TestSuite/StatusSheets/tj3d.log +395 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
- data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
- data/test/all.rb +2 -4
- data/test/test_BatchProcessor.rb +2 -1
- data/test/test_CSV-Reports.rb +34 -23
- data/test/test_CSVFile.rb +2 -1
- data/test/test_CollisionDetector.rb +3 -2
- data/test/test_Journal.rb +2 -1
- data/test/test_Limits.rb +2 -1
- data/test/test_LogicalExpression.rb +2 -1
- data/test/test_MacroTable.rb +2 -1
- data/test/test_Project.rb +3 -2
- data/test/test_ProjectFileScanner.rb +2 -1
- data/test/test_PropertySet.rb +2 -1
- data/test/test_Query.rb +2 -1
- data/test/test_RealFormat.rb +2 -1
- data/test/test_ReportGenerator.rb +2 -1
- data/test/test_RichText.rb +2 -1
- data/test/test_Scheduler.rb +2 -1
- data/test/test_ShiftAssignments.rb +2 -1
- data/test/test_SimpleQueryExpander.rb +2 -1
- data/test/test_Syntax.rb +2 -1
- data/test/test_TextFormatter.rb +3 -2
- data/test/test_TjTime.rb +2 -1
- data/test/test_TjpExample.rb +2 -1
- data/test/test_URLParameter.rb +2 -1
- data/test/test_UTF8String.rb +2 -1
- data/test/test_WorkingHours.rb +2 -1
- data/test/test_deep_copy.rb +2 -1
- metadata +74 -20
- data/doc/StringIO.html +0 -595
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
|
@@ -151,6 +151,8 @@
|
|
|
151
151
|
|
|
152
152
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
153
153
|
|
|
154
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
155
|
+
|
|
154
156
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
155
157
|
|
|
156
158
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -229,6 +231,8 @@
|
|
|
229
231
|
|
|
230
232
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
231
233
|
|
|
234
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
235
|
+
|
|
232
236
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
233
237
|
|
|
234
238
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -261,6 +265,8 @@
|
|
|
261
265
|
|
|
262
266
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
263
267
|
|
|
268
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
269
|
+
|
|
264
270
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
265
271
|
|
|
266
272
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -541,6 +547,8 @@
|
|
|
541
547
|
|
|
542
548
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
543
549
|
|
|
550
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
551
|
+
|
|
544
552
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
545
553
|
|
|
546
554
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -567,8 +575,6 @@
|
|
|
567
575
|
|
|
568
576
|
<li><a href="../String.html">String</a></li>
|
|
569
577
|
|
|
570
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
571
|
-
|
|
572
578
|
</ul>
|
|
573
579
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
574
580
|
</div>
|
|
@@ -690,21 +696,21 @@ always bound to an existing <a href="Resource.html">Resource</a>.
|
|
|
690
696
|
<div class="method-source-code"
|
|
691
697
|
id="new-source">
|
|
692
698
|
<pre>
|
|
693
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
699
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 253</span>
|
|
700
|
+
253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">scenarioIdx</span>)
|
|
701
|
+
254: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Illegal resource"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
|
|
702
|
+
255: <span class="ruby-ivar">@resource</span> = <span class="ruby-identifier">resource</span>
|
|
703
|
+
256: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Interval undefined"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">nil?</span>
|
|
704
|
+
257: <span class="ruby-ivar">@interval</span> = <span class="ruby-identifier">interval</span>
|
|
705
|
+
258: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Sceneario index undefined"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
|
|
706
|
+
259: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
|
|
707
|
+
260: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
|
|
708
|
+
261: <span class="ruby-comment cmt"># This flag is set to true if at least one record was reported as</span>
|
|
709
|
+
262: <span class="ruby-comment cmt"># percentage.</span>
|
|
710
|
+
263: <span class="ruby-ivar">@percentageUsed</span> = <span class="ruby-keyword kw">false</span>
|
|
711
|
+
264: <span class="ruby-comment cmt"># The TimeSheetRecord list.</span>
|
|
712
|
+
265: <span class="ruby-ivar">@records</span> = []
|
|
713
|
+
266: <span class="ruby-keyword kw">end</span></pre>
|
|
708
714
|
</div>
|
|
709
715
|
|
|
710
716
|
</div>
|
|
@@ -743,16 +749,16 @@ Add a new <a href="TimeSheetRecord.html">TimeSheetRecord</a> to the list.
|
|
|
743
749
|
<div class="method-source-code"
|
|
744
750
|
id="--source">
|
|
745
751
|
<pre>
|
|
746
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
752
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 269</span>
|
|
753
|
+
269: <span class="ruby-keyword kw">def</span><span class="ruby-operator"><<</span>(<span class="ruby-identifier">record</span>)
|
|
754
|
+
270: <span class="ruby-ivar">@records</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>
|
|
755
|
+
271: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">task</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">task</span>
|
|
756
|
+
272: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_duplicate_task'</span>,
|
|
757
|
+
273: <span class="ruby-node">"Duplicate records for task #{r.taskId}"</span>)
|
|
758
|
+
274: <span class="ruby-keyword kw">end</span>
|
|
759
|
+
275: <span class="ruby-keyword kw">end</span>
|
|
760
|
+
276: <span class="ruby-ivar">@records</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">record</span>
|
|
761
|
+
277: <span class="ruby-keyword kw">end</span></pre>
|
|
756
762
|
</div>
|
|
757
763
|
|
|
758
764
|
</div>
|
|
@@ -785,31 +791,31 @@ Perform all kinds of consitency checks.
|
|
|
785
791
|
<div class="method-source-code"
|
|
786
792
|
id="check-source">
|
|
787
793
|
<pre>
|
|
788
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
794
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 280</span>
|
|
795
|
+
280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
|
|
796
|
+
281: <span class="ruby-identifier">totalSlots</span> = <span class="ruby-value">0</span>
|
|
797
|
+
282: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
|
|
798
|
+
283: <span class="ruby-identifier">record</span>.<span class="ruby-identifier">check</span>
|
|
799
|
+
284: <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">work</span>
|
|
800
|
+
285: <span class="ruby-keyword kw">end</span>
|
|
801
|
+
286:
|
|
802
|
+
287: <span class="ruby-identifier">targetSlots</span> = <span class="ruby-identifier">totalNetWorkingSlots</span>
|
|
803
|
+
288: <span class="ruby-comment cmt"># This is acceptable rounding error when checking the total reported</span>
|
|
804
|
+
289: <span class="ruby-comment cmt"># work.</span>
|
|
805
|
+
290: <span class="ruby-identifier">delta</span> = <span class="ruby-value">1</span>
|
|
806
|
+
291: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator"><</span> (<span class="ruby-identifier">targetSlots</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">delta</span>)
|
|
807
|
+
292: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_work_too_low'</span>,
|
|
808
|
+
293: <span class="ruby-value str">"The total work to be reported for this time sheet "</span> <span class="ruby-operator">+</span>
|
|
809
|
+
294: <span class="ruby-node">"is #{workWithUnit(targetSlots)} but only "</span> <span class="ruby-operator">+</span>
|
|
810
|
+
295: <span class="ruby-node">"#{workWithUnit(totalSlots)} were reported."</span>)
|
|
811
|
+
296: <span class="ruby-keyword kw">end</span>
|
|
812
|
+
297: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">></span> (<span class="ruby-identifier">targetSlots</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">delta</span>)
|
|
813
|
+
298: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_work_too_high'</span>,
|
|
814
|
+
299: <span class="ruby-value str">"The total work to be reported for this time sheet "</span> <span class="ruby-operator">+</span>
|
|
815
|
+
300: <span class="ruby-node">"is #{workWithUnit(targetSlots)} but "</span> <span class="ruby-operator">+</span>
|
|
816
|
+
301: <span class="ruby-node">"#{workWithUnit(totalSlots)} were reported."</span>)
|
|
817
|
+
302: <span class="ruby-keyword kw">end</span>
|
|
818
|
+
303: <span class="ruby-keyword kw">end</span></pre>
|
|
813
819
|
</div>
|
|
814
820
|
|
|
815
821
|
</div>
|
|
@@ -840,11 +846,11 @@ Perform all kinds of consitency checks.
|
|
|
840
846
|
<div class="method-source-code"
|
|
841
847
|
id="days-o-lots-source">
|
|
842
848
|
<pre>
|
|
843
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
849
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 354</span>
|
|
850
|
+
354: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daysToSlots</span>(<span class="ruby-identifier">days</span>)
|
|
851
|
+
355: ((<span class="ruby-identifier">days</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">dailyWorkingHours</span>) <span class="ruby-operator">/</span>
|
|
852
|
+
356: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
|
|
853
|
+
357: <span class="ruby-keyword kw">end</span></pre>
|
|
848
854
|
</div>
|
|
849
855
|
|
|
850
856
|
</div>
|
|
@@ -875,11 +881,11 @@ Perform all kinds of consitency checks.
|
|
|
875
881
|
<div class="method-source-code"
|
|
876
882
|
id="error-source">
|
|
877
883
|
<pre>
|
|
878
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
884
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 359</span>
|
|
885
|
+
359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
|
|
886
|
+
360: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">error</span>(
|
|
887
|
+
361: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@resource</span>)
|
|
888
|
+
362: <span class="ruby-keyword kw">end</span></pre>
|
|
883
889
|
</div>
|
|
884
890
|
|
|
885
891
|
</div>
|
|
@@ -912,11 +918,11 @@ Converts allocation percentage into time slots.
|
|
|
912
918
|
<div class="method-source-code"
|
|
913
919
|
id="percent-o-lots-source">
|
|
914
920
|
<pre>
|
|
915
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
921
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 338</span>
|
|
922
|
+
338: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>)
|
|
923
|
+
339: <span class="ruby-ivar">@percentageUsed</span> = <span class="ruby-keyword kw">true</span>
|
|
924
|
+
340: (<span class="ruby-identifier">totalGrossWorkingSlots</span> * <span class="ruby-identifier">value</span>).<span class="ruby-identifier">to_i</span>
|
|
925
|
+
341: <span class="ruby-keyword kw">end</span></pre>
|
|
920
926
|
</div>
|
|
921
927
|
|
|
922
928
|
</div>
|
|
@@ -947,11 +953,11 @@ Converts allocation percentage into time slots.
|
|
|
947
953
|
<div class="method-source-code"
|
|
948
954
|
id="slots-o-ays-source">
|
|
949
955
|
<pre>
|
|
950
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
956
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 349</span>
|
|
957
|
+
349: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
|
|
958
|
+
350: <span class="ruby-identifier">slots</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>] <span class="ruby-operator">/</span>
|
|
959
|
+
351: (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">dailyWorkingHours</span>)
|
|
960
|
+
352: <span class="ruby-keyword kw">end</span></pre>
|
|
955
961
|
</div>
|
|
956
962
|
|
|
957
963
|
</div>
|
|
@@ -985,10 +991,10 @@ in the report time frame.
|
|
|
985
991
|
<div class="method-source-code"
|
|
986
992
|
id="slots-o-ercent-source">
|
|
987
993
|
<pre>
|
|
988
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
994
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 345</span>
|
|
995
|
+
345: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToPercent</span>(<span class="ruby-identifier">slots</span>)
|
|
996
|
+
346: <span class="ruby-identifier">slots</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">totalGrossWorkingSlots</span>
|
|
997
|
+
347: <span class="ruby-keyword kw">end</span></pre>
|
|
992
998
|
</div>
|
|
993
999
|
|
|
994
1000
|
</div>
|
|
@@ -1022,16 +1028,16 @@ period. This value is not resource specific.
|
|
|
1022
1028
|
<div class="method-source-code"
|
|
1023
1029
|
id="total-ross-orking-lots-source">
|
|
1024
1030
|
<pre>
|
|
1025
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1031
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 317</span>
|
|
1032
|
+
317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">totalGrossWorkingSlots</span>
|
|
1033
|
+
318: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
|
|
1034
|
+
319: <span class="ruby-comment cmt"># Calculate the average working days per week (usually 5)</span>
|
|
1035
|
+
320: <span class="ruby-identifier">weeklyWorkingDays</span> = <span class="ruby-identifier">project</span>[<span class="ruby-value str">'yearlyworkingdays'</span>] <span class="ruby-operator">/</span> <span class="ruby-value">52.1428</span>
|
|
1036
|
+
321: <span class="ruby-comment cmt"># Calculate the number of weeks in the report</span>
|
|
1037
|
+
322: <span class="ruby-identifier">weeksToReport</span> = (<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>) <span class="ruby-operator">/</span> (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>)
|
|
1038
|
+
323:
|
|
1039
|
+
324: <span class="ruby-identifier">daysToSlots</span>(<span class="ruby-identifier">weeklyWorkingDays</span> * <span class="ruby-identifier">weeksToReport</span>)
|
|
1040
|
+
325: <span class="ruby-keyword kw">end</span></pre>
|
|
1035
1041
|
</div>
|
|
1036
1042
|
|
|
1037
1043
|
</div>
|
|
@@ -1066,14 +1072,14 @@ slots.
|
|
|
1066
1072
|
<div class="method-source-code"
|
|
1067
1073
|
id="total-et-orking-lots-source">
|
|
1068
1074
|
<pre>
|
|
1069
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1075
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 329</span>
|
|
1076
|
+
329: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">totalNetWorkingSlots</span>
|
|
1077
|
+
330: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
|
|
1078
|
+
331: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>)
|
|
1079
|
+
332: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>)
|
|
1080
|
+
333: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">nil</span>) <span class="ruby-operator">+</span>
|
|
1081
|
+
334: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1082
|
+
335: <span class="ruby-keyword kw">end</span></pre>
|
|
1077
1083
|
</div>
|
|
1078
1084
|
|
|
1079
1085
|
</div>
|
|
@@ -1104,16 +1110,16 @@ slots.
|
|
|
1104
1110
|
<div class="method-source-code"
|
|
1105
1111
|
id="warn-n-elta-source">
|
|
1106
1112
|
<pre>
|
|
1107
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1113
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 305</span>
|
|
1114
|
+
305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>
|
|
1115
|
+
306: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
|
|
1116
|
+
307: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>)
|
|
1117
|
+
308: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>)
|
|
1118
|
+
309:
|
|
1119
|
+
310: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
|
|
1120
|
+
311: <span class="ruby-identifier">record</span>.<span class="ruby-identifier">warnOnDelta</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1121
|
+
312: <span class="ruby-keyword kw">end</span>
|
|
1122
|
+
313: <span class="ruby-keyword kw">end</span></pre>
|
|
1117
1123
|
</div>
|
|
1118
1124
|
|
|
1119
1125
|
</div>
|
|
@@ -1144,11 +1150,11 @@ slots.
|
|
|
1144
1150
|
<div class="method-source-code"
|
|
1145
1151
|
id="warning-source">
|
|
1146
1152
|
<pre>
|
|
1147
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1153
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 364</span>
|
|
1154
|
+
364: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1155
|
+
365: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>,
|
|
1156
|
+
366: <span class="ruby-ivar">@resource</span>)
|
|
1157
|
+
367: <span class="ruby-keyword kw">end</span></pre>
|
|
1152
1158
|
</div>
|
|
1153
1159
|
|
|
1154
1160
|
</div>
|
|
@@ -1185,14 +1191,14 @@ slots.
|
|
|
1185
1191
|
<div class="method-source-code"
|
|
1186
1192
|
id="work-ith-nit-source">
|
|
1187
1193
|
<pre>
|
|
1188
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1194
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 371</span>
|
|
1195
|
+
371: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">workWithUnit</span>(<span class="ruby-identifier">slots</span>)
|
|
1196
|
+
372: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@percentageUsed</span>
|
|
1197
|
+
373: <span class="ruby-node">"#{(slotsToPercent(slots) * 100.0).to_i}%"</span>
|
|
1198
|
+
374: <span class="ruby-keyword kw">else</span>
|
|
1199
|
+
375: <span class="ruby-node">"#{slotsToDays(slots)} days"</span>
|
|
1200
|
+
376: <span class="ruby-keyword kw">end</span>
|
|
1201
|
+
377: <span class="ruby-keyword kw">end</span></pre>
|
|
1196
1202
|
</div>
|
|
1197
1203
|
|
|
1198
1204
|
</div>
|
|
@@ -127,6 +127,8 @@
|
|
|
127
127
|
|
|
128
128
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
129
129
|
|
|
130
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
131
|
+
|
|
130
132
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
131
133
|
|
|
132
134
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -205,6 +207,8 @@
|
|
|
205
207
|
|
|
206
208
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
207
209
|
|
|
210
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
211
|
+
|
|
208
212
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
209
213
|
|
|
210
214
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -237,6 +241,8 @@
|
|
|
237
241
|
|
|
238
242
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
239
243
|
|
|
244
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
245
|
+
|
|
240
246
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
241
247
|
|
|
242
248
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -517,6 +523,8 @@
|
|
|
517
523
|
|
|
518
524
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
519
525
|
|
|
526
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
527
|
+
|
|
520
528
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
521
529
|
|
|
522
530
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -543,8 +551,6 @@
|
|
|
543
551
|
|
|
544
552
|
<li><a href="../String.html">String</a></li>
|
|
545
553
|
|
|
546
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
547
|
-
|
|
548
554
|
</ul>
|
|
549
555
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
550
556
|
</div>
|
|
@@ -596,26 +602,26 @@ process time sheets.
|
|
|
596
602
|
<div class="method-source-code"
|
|
597
603
|
id="new-source">
|
|
598
604
|
<pre>
|
|
599
|
-
<span class="ruby-comment cmt"># File lib/TimeSheetReceiver.rb, line
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
605
|
+
<span class="ruby-comment cmt"># File lib/TimeSheetReceiver.rb, line 21</span>
|
|
606
|
+
21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
|
|
607
|
+
22: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">appName</span>, <span class="ruby-value str">'time'</span>)
|
|
608
|
+
23:
|
|
609
|
+
24: <span class="ruby-ivar">@tj3clientOption</span> = <span class="ruby-value str">'check-ts'</span>
|
|
610
|
+
25:
|
|
611
|
+
26: <span class="ruby-comment cmt"># File name and directory settings.</span>
|
|
612
|
+
27: <span class="ruby-ivar">@sheetDir</span> = <span class="ruby-value str">'TimeSheets'</span>
|
|
613
|
+
28: <span class="ruby-ivar">@templateDir</span> = <span class="ruby-value str">'TimeSheetTemplates'</span>
|
|
614
|
+
29: <span class="ruby-ivar">@failedMailsDir</span> = <span class="ruby-node">"#{@sheetDir}/FailedMails"</span>
|
|
615
|
+
30: <span class="ruby-ivar">@failedSheetsDir</span> = <span class="ruby-node">"#{@sheetDir}/FailedSheets"</span>
|
|
616
|
+
31: <span class="ruby-ivar">@signatureFile</span> = <span class="ruby-node">"#{@templateDir}/acceptable_intervals"</span>
|
|
617
|
+
32: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
|
|
618
|
+
33:
|
|
619
|
+
34: <span class="ruby-comment cmt"># Regular expression to identify time sheets.</span>
|
|
620
|
+
35: <span class="ruby-ivar">@sheetHeader</span> = <span class="ruby-regexp re">/^[ ]*timesheet\s([a-z][a-z0-9_]*)\s[0-9\-:+]*\s-\s([0-9]*-[0-9]*-[0-9]*)/</span>
|
|
621
|
+
36: <span class="ruby-comment cmt"># Regular expression to extract the sheet signature (time period).</span>
|
|
622
|
+
37: <span class="ruby-ivar">@signatureFilter</span> = <span class="ruby-regexp re">/^[ ]*timesheet\s[a-z][a-z0-9_]*\s([0-9:\-+]*\s-\s[0-9:\-+]*)/</span>
|
|
623
|
+
38: <span class="ruby-ivar">@emailSubject</span> = <span class="ruby-value str">"Report from %s for %s"</span>
|
|
624
|
+
39: <span class="ruby-keyword kw">end</span></pre>
|
|
619
625
|
</div>
|
|
620
626
|
|
|
621
627
|
</div>
|
|
@@ -151,6 +151,8 @@
|
|
|
151
151
|
|
|
152
152
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
153
153
|
|
|
154
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
155
|
+
|
|
154
156
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
155
157
|
|
|
156
158
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -229,6 +231,8 @@
|
|
|
229
231
|
|
|
230
232
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
231
233
|
|
|
234
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
235
|
+
|
|
232
236
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
233
237
|
|
|
234
238
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -261,6 +265,8 @@
|
|
|
261
265
|
|
|
262
266
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
263
267
|
|
|
268
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
269
|
+
|
|
264
270
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
265
271
|
|
|
266
272
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -541,6 +547,8 @@
|
|
|
541
547
|
|
|
542
548
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
543
549
|
|
|
550
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
551
|
+
|
|
544
552
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
545
553
|
|
|
546
554
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -567,8 +575,6 @@
|
|
|
567
575
|
|
|
568
576
|
<li><a href="../String.html">String</a></li>
|
|
569
577
|
|
|
570
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
571
|
-
|
|
572
578
|
</ul>
|
|
573
579
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
574
580
|
</div>
|
|
@@ -762,26 +768,26 @@ stores the completed work during the reporting time frame.
|
|
|
762
768
|
<div class="method-source-code"
|
|
763
769
|
id="new-source">
|
|
764
770
|
<pre>
|
|
765
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
771
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 27</span>
|
|
772
|
+
27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">timeSheet</span>, <span class="ruby-identifier">task</span>)
|
|
773
|
+
28: <span class="ruby-comment cmt"># This is a reference to a Task object for existing tasks or an ID as</span>
|
|
774
|
+
29: <span class="ruby-comment cmt"># String for new tasks.</span>
|
|
775
|
+
30: <span class="ruby-ivar">@task</span> = <span class="ruby-identifier">task</span>
|
|
776
|
+
31: <span class="ruby-comment cmt"># Add the new TimeSheetRecord to the TimeSheet it belongs to.</span>
|
|
777
|
+
32: (<span class="ruby-ivar">@timeSheet</span> = <span class="ruby-identifier">timeSheet</span>) <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>
|
|
778
|
+
33: <span class="ruby-comment cmt"># Work done will be measured in time slots.</span>
|
|
779
|
+
34: <span class="ruby-ivar">@work</span> = <span class="ruby-keyword kw">nil</span>
|
|
780
|
+
35: <span class="ruby-comment cmt"># Remaining work will be measured in time slots.</span>
|
|
781
|
+
36: <span class="ruby-ivar">@remaining</span> = <span class="ruby-keyword kw">nil</span>
|
|
782
|
+
37: <span class="ruby-ivar">@expectedEnd</span> = <span class="ruby-keyword kw">nil</span>
|
|
783
|
+
38: <span class="ruby-comment cmt"># For new task, we also need to store the name.</span>
|
|
784
|
+
39: <span class="ruby-ivar">@name</span> = <span class="ruby-keyword kw">nil</span>
|
|
785
|
+
40: <span class="ruby-comment cmt"># Reference to the JournalEntry object that holds the status for this</span>
|
|
786
|
+
41: <span class="ruby-comment cmt"># record.</span>
|
|
787
|
+
42: <span class="ruby-ivar">@status</span> = <span class="ruby-keyword kw">nil</span>
|
|
788
|
+
43: <span class="ruby-ivar">@priority</span> = <span class="ruby-value">0</span>
|
|
789
|
+
44: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
|
|
790
|
+
45: <span class="ruby-keyword kw">end</span></pre>
|
|
785
791
|
</div>
|
|
786
792
|
|
|
787
793
|
</div>
|
|
@@ -820,10 +826,10 @@ The reported expected end of the task.
|
|
|
820
826
|
<div class="method-source-code"
|
|
821
827
|
id="actual-nd-source">
|
|
822
828
|
<pre>
|
|
823
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
829
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 224</span>
|
|
830
|
+
224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualEnd</span>
|
|
831
|
+
225: <span class="ruby-ivar">@expectedEnd</span>
|
|
832
|
+
226: <span class="ruby-keyword kw">end</span></pre>
|
|
827
833
|
</div>
|
|
828
834
|
|
|
829
835
|
</div>
|
|
@@ -856,11 +862,11 @@ The reporting remaining effort in days.
|
|
|
856
862
|
<div class="method-source-code"
|
|
857
863
|
id="actual-emaining-source">
|
|
858
864
|
<pre>
|
|
859
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
865
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 208</span>
|
|
866
|
+
208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualRemaining</span>
|
|
867
|
+
209: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
|
|
868
|
+
210: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> * <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
869
|
+
211: <span class="ruby-keyword kw">end</span></pre>
|
|
864
870
|
</div>
|
|
865
871
|
|
|
866
872
|
</div>
|
|
@@ -893,10 +899,10 @@ The reported work in % (0.0 - 100.0) of the average working time.
|
|
|
893
899
|
<div class="method-source-code"
|
|
894
900
|
id="actual-ork-ercent-source">
|
|
895
901
|
<pre>
|
|
896
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
902
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 191</span>
|
|
903
|
+
191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualWorkPercent</span>
|
|
904
|
+
192: (<span class="ruby-ivar">@work</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span>
|
|
905
|
+
193: <span class="ruby-keyword kw">end</span></pre>
|
|
900
906
|
</div>
|
|
901
907
|
|
|
902
908
|
</div>
|
|
@@ -929,73 +935,73 @@ Perform all kinds of consistency checks.
|
|
|
929
935
|
<div class="method-source-code"
|
|
930
936
|
id="check-source">
|
|
931
937
|
<pre>
|
|
932
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
938
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 60</span>
|
|
939
|
+
60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
|
|
940
|
+
61: <span class="ruby-identifier">scIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
|
|
941
|
+
62: <span class="ruby-identifier">taskId</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@task</span>
|
|
942
|
+
63: <span class="ruby-comment cmt"># All TimeSheetRecords must have a 'work' attribute.</span>
|
|
943
|
+
64: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span>.<span class="ruby-identifier">nil?</span>
|
|
944
|
+
65: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_work'</span>,
|
|
945
|
+
66: <span class="ruby-node">"The time sheet record for task #{taskId} must "</span> <span class="ruby-operator">+</span>
|
|
946
|
+
67: <span class="ruby-value str">"have a 'work' attribute to specify how much was done "</span> <span class="ruby-operator">+</span>
|
|
947
|
+
68: <span class="ruby-value str">"for this task during the reported period."</span>)
|
|
948
|
+
69: <span class="ruby-keyword kw">end</span>
|
|
949
|
+
70: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
|
|
950
|
+
71: <span class="ruby-comment cmt"># This is already known tasks.</span>
|
|
951
|
+
72: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'effort'</span>, <span class="ruby-identifier">scIdx</span>] <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
952
|
+
73: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@remaining</span>
|
|
953
|
+
74: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_remaining'</span>,
|
|
954
|
+
75: <span class="ruby-node">"The time sheet record for task #{taskId} must "</span> <span class="ruby-operator">+</span>
|
|
955
|
+
76: <span class="ruby-value str">"have a 'remaining' attribute to specify how much "</span> <span class="ruby-operator">+</span>
|
|
956
|
+
77: <span class="ruby-value str">"effort is left for this task."</span>)
|
|
957
|
+
78: <span class="ruby-keyword kw">end</span>
|
|
958
|
+
79: <span class="ruby-keyword kw">else</span>
|
|
959
|
+
80: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@expectedEnd</span>
|
|
960
|
+
81: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_expected_end'</span>,
|
|
961
|
+
82: <span class="ruby-node">"The time sheet record for task #{taskId} must "</span> <span class="ruby-operator">+</span>
|
|
962
|
+
83: <span class="ruby-value str">"have an 'end' attribute to specify the expected end "</span> <span class="ruby-operator">+</span>
|
|
963
|
+
84: <span class="ruby-value str">"of this task."</span>)
|
|
964
|
+
85: <span class="ruby-keyword kw">end</span>
|
|
965
|
+
86: <span class="ruby-keyword kw">end</span>
|
|
966
|
+
87: <span class="ruby-keyword kw">else</span>
|
|
967
|
+
88: <span class="ruby-comment cmt"># This is for new tasks.</span>
|
|
968
|
+
89: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@remaining</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@expectedEnd</span>.<span class="ruby-identifier">nil?</span>
|
|
969
|
+
90: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_rem_or_end'</span>,
|
|
970
|
+
91: <span class="ruby-node">"New task #{taskId} requires either a 'remaining' or a "</span> <span class="ruby-operator">+</span>
|
|
971
|
+
92: <span class="ruby-value str">"'end' attribute."</span>)
|
|
972
|
+
93: <span class="ruby-keyword kw">end</span>
|
|
973
|
+
94: <span class="ruby-keyword kw">end</span>
|
|
974
|
+
95:
|
|
975
|
+
96: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span> <span class="ruby-operator">>=</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">daysToSlots</span>(<span class="ruby-value">1</span>) <span class="ruby-operator">&&</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">nil?</span>
|
|
976
|
+
97: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_status_work'</span>,
|
|
977
|
+
98: <span class="ruby-node">"You must specify a status for task #{taskId}."</span>)
|
|
978
|
+
99: <span class="ruby-keyword kw">end</span>
|
|
979
|
+
100:
|
|
980
|
+
101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>
|
|
981
|
+
102: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">headline</span>.<span class="ruby-identifier">empty?</span>
|
|
982
|
+
103: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_headline'</span>,
|
|
983
|
+
104: <span class="ruby-value str">"You must provide a headline for the status of "</span> <span class="ruby-operator">+</span>
|
|
984
|
+
105: <span class="ruby-node">"task #{@task.fullId}"</span>)
|
|
985
|
+
106: <span class="ruby-keyword kw">end</span>
|
|
986
|
+
107: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span> <span class="ruby-operator">&&</span>
|
|
987
|
+
108: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"A summary text\n"</span>
|
|
988
|
+
109: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_default_summary'</span>,
|
|
989
|
+
110: <span class="ruby-value str">"You must change the default summary text of the status "</span> <span class="ruby-operator">+</span>
|
|
990
|
+
111: <span class="ruby-node">"for task #{taskId}."</span>)
|
|
991
|
+
112: <span class="ruby-keyword kw">end</span>
|
|
992
|
+
113: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span>
|
|
993
|
+
114: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span>
|
|
994
|
+
115: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert1_more_details'</span>,
|
|
995
|
+
116: <span class="ruby-node">"Task #{taskId} has an elevated alert level and must "</span> <span class="ruby-operator">+</span>
|
|
996
|
+
117: <span class="ruby-value str">"have a summary or details section."</span>)
|
|
997
|
+
118: <span class="ruby-keyword kw">end</span>
|
|
998
|
+
119: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">></span> <span class="ruby-value">1</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span>
|
|
999
|
+
120: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert2_more_details'</span>,
|
|
1000
|
+
121: <span class="ruby-node">"Task #{taskId} has a high alert level and must have "</span> <span class="ruby-operator">+</span>
|
|
1001
|
+
122: <span class="ruby-value str">"a details section."</span>)
|
|
1002
|
+
123: <span class="ruby-keyword kw">end</span>
|
|
1003
|
+
124: <span class="ruby-keyword kw">end</span>
|
|
1004
|
+
125: <span class="ruby-keyword kw">end</span></pre>
|
|
999
1005
|
</div>
|
|
1000
1006
|
|
|
1001
1007
|
</div>
|
|
@@ -1028,10 +1034,10 @@ The planned end of the task.
|
|
|
1028
1034
|
<div class="method-source-code"
|
|
1029
1035
|
id="plan-nd-source">
|
|
1030
1036
|
<pre>
|
|
1031
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1037
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 229</span>
|
|
1038
|
+
229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planEnd</span>
|
|
1039
|
+
230: <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>]
|
|
1040
|
+
231: <span class="ruby-keyword kw">end</span></pre>
|
|
1035
1041
|
</div>
|
|
1036
1042
|
|
|
1037
1043
|
</div>
|
|
@@ -1064,15 +1070,15 @@ The remaining effort according to the plan.
|
|
|
1064
1070
|
<div class="method-source-code"
|
|
1065
1071
|
id="plan-emaining-source">
|
|
1066
1072
|
<pre>
|
|
1067
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1073
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 214</span>
|
|
1074
|
+
214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planRemaining</span>
|
|
1075
|
+
215: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
|
|
1076
|
+
216: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
|
|
1077
|
+
217: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
|
|
1078
|
+
218: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">project</span>[<span class="ruby-value str">'now'</span>], <span class="ruby-keyword kw">true</span>)
|
|
1079
|
+
219: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
|
|
1080
|
+
220: <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">resource</span>)
|
|
1081
|
+
221: <span class="ruby-keyword kw">end</span></pre>
|
|
1076
1082
|
</div>
|
|
1077
1083
|
|
|
1078
1084
|
</div>
|
|
@@ -1105,17 +1111,17 @@ The planned work in % (0.0 - 100.0) of the average working time.
|
|
|
1105
1111
|
<div class="method-source-code"
|
|
1106
1112
|
id="plan-ork-ercent-source">
|
|
1107
1113
|
<pre>
|
|
1108
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1114
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 196</span>
|
|
1115
|
+
196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planWorkPercent</span>
|
|
1116
|
+
197: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
|
|
1117
|
+
198: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
|
|
1118
|
+
199: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
|
|
1119
|
+
200: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>)
|
|
1120
|
+
201: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>)
|
|
1121
|
+
202: (<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
|
|
1122
|
+
203: <span class="ruby-ivar">@task</span>).<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span>
|
|
1123
|
+
204: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span>
|
|
1124
|
+
205: <span class="ruby-keyword kw">end</span></pre>
|
|
1119
1125
|
</div>
|
|
1120
1126
|
|
|
1121
1127
|
</div>
|
|
@@ -1146,10 +1152,10 @@ The planned work in % (0.0 - 100.0) of the average working time.
|
|
|
1146
1152
|
<div class="method-source-code"
|
|
1147
1153
|
id="task-d-source">
|
|
1148
1154
|
<pre>
|
|
1149
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1155
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 186</span>
|
|
1156
|
+
186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">taskId</span>
|
|
1157
|
+
187: <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">task</span>
|
|
1158
|
+
188: <span class="ruby-keyword kw">end</span></pre>
|
|
1153
1159
|
</div>
|
|
1154
1160
|
|
|
1155
1161
|
</div>
|
|
@@ -1180,65 +1186,65 @@ The planned work in % (0.0 - 100.0) of the average working time.
|
|
|
1180
1186
|
<div class="method-source-code"
|
|
1181
1187
|
id="warn-n-elta-source">
|
|
1182
1188
|
<pre>
|
|
1183
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1189
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 127</span>
|
|
1190
|
+
127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
|
|
1191
|
+
128: <span class="ruby-comment cmt"># Ignore personal entries.</span>
|
|
1192
|
+
129: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@task</span>
|
|
1193
|
+
130:
|
|
1194
|
+
131: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
|
|
1195
|
+
132: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
|
|
1196
|
+
133: <span class="ruby-comment cmt"># A resource has requested a new Task to be created.</span>
|
|
1197
|
+
134: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_new_task'</span>,
|
|
1198
|
+
135: <span class="ruby-node">"#{resource.name} is requesting a new task:\n"</span> <span class="ruby-operator">+</span>
|
|
1199
|
+
136: <span class="ruby-node">" ID: #{@task}\n"</span> <span class="ruby-operator">+</span>
|
|
1200
|
+
137: <span class="ruby-node">" Name: #{@name}\n"</span> <span class="ruby-operator">+</span>
|
|
1201
|
+
138: <span class="ruby-node">" Work: #{@timeSheet.slotsToDays(@work)}d "</span> <span class="ruby-operator">+</span>
|
|
1202
|
+
139: (<span class="ruby-ivar">@remaining</span> <span class="ruby-operator">?</span>
|
|
1203
|
+
140: <span class="ruby-node">"Remaining: #{@timeSheet.slotsToDays(@remaining)}d"</span> <span class="ruby-operator">:</span>
|
|
1204
|
+
141: <span class="ruby-node">"End: #{@end.to_s}"</span>))
|
|
1205
|
+
142: <span class="ruby-keyword kw">return</span>
|
|
1206
|
+
143: <span class="ruby-keyword kw">end</span>
|
|
1207
|
+
144:
|
|
1208
|
+
145: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
|
|
1209
|
+
146: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
|
|
1210
|
+
147: <span class="ruby-identifier">plannedWork</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
|
|
1211
|
+
148: <span class="ruby-identifier">resource</span>)
|
|
1212
|
+
149: <span class="ruby-comment cmt"># Convert the @work slots into a daily load.</span>
|
|
1213
|
+
150: <span class="ruby-identifier">work</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@work</span> * <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
1214
|
+
151:
|
|
1215
|
+
152: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">work</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">plannedWork</span>
|
|
1216
|
+
153: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_work_delta'</span>,
|
|
1217
|
+
154: <span class="ruby-node">"#{resource.name} worked "</span> <span class="ruby-operator">+</span>
|
|
1218
|
+
155: <span class="ruby-node">"#{work < plannedWork ? 'less' : 'more'} "</span> <span class="ruby-operator">+</span>
|
|
1219
|
+
156: <span class="ruby-node">"on #{@task.fullId}\n"</span> <span class="ruby-operator">+</span>
|
|
1220
|
+
157: <span class="ruby-node">"#{work}d instead of #{plannedWork}d"</span>)
|
|
1221
|
+
158: <span class="ruby-keyword kw">end</span>
|
|
1222
|
+
159: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'effort'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
1223
|
+
160: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">endIdx</span>
|
|
1224
|
+
161: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
|
|
1225
|
+
162: <span class="ruby-identifier">remainingWork</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
|
|
1226
|
+
163: <span class="ruby-identifier">resource</span>)
|
|
1227
|
+
164: <span class="ruby-comment cmt"># Convert the @remaining slots into a daily load.</span>
|
|
1228
|
+
165: <span class="ruby-identifier">remaining</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> *
|
|
1229
|
+
166: <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
1230
|
+
167: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">remaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">remainingWork</span>
|
|
1231
|
+
168: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_remain_delta'</span>,
|
|
1232
|
+
169: <span class="ruby-node">"#{resource.name} requests "</span> <span class="ruby-operator">+</span>
|
|
1233
|
+
170: <span class="ruby-node">"#{remaining < remainingWork ? 'less' : 'more'} "</span> <span class="ruby-operator">+</span>
|
|
1234
|
+
171: <span class="ruby-node">"remaining effort for task #{@task.fullId}\n"</span> <span class="ruby-operator">+</span>
|
|
1235
|
+
172: <span class="ruby-node">"#{remaining}d instead of #{remainingWork}d"</span>)
|
|
1236
|
+
173: <span class="ruby-keyword kw">end</span>
|
|
1237
|
+
174: <span class="ruby-keyword kw">else</span>
|
|
1238
|
+
175: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@expectedEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>]
|
|
1239
|
+
176: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_end_delta'</span>,
|
|
1240
|
+
177: <span class="ruby-node">"#{resource.name} requests "</span> <span class="ruby-operator">+</span>
|
|
1241
|
+
178: <span class="ruby-node">"#{@expectedEnd < @task['end', scenarioIdx] ?
|
|
1242
|
+
179: 'earlier' : 'later'} end (#{@expectedEnd}) for task "</span> <span class="ruby-operator">+</span>
|
|
1243
|
+
180: <span class="ruby-node">"#{@task.fullId}. Planned end is "</span> <span class="ruby-operator">+</span>
|
|
1244
|
+
181: <span class="ruby-node">"#{@task['end', scenarioIdx]}."</span>)
|
|
1245
|
+
182: <span class="ruby-keyword kw">end</span>
|
|
1246
|
+
183: <span class="ruby-keyword kw">end</span>
|
|
1247
|
+
184: <span class="ruby-keyword kw">end</span></pre>
|
|
1242
1248
|
</div>
|
|
1243
1249
|
|
|
1244
1250
|
</div>
|
|
@@ -1273,15 +1279,15 @@ rage of 0.0 to 1.0.
|
|
|
1273
1279
|
<div class="method-source-code"
|
|
1274
1280
|
id="work--source">
|
|
1275
1281
|
<pre>
|
|
1276
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1282
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 50</span>
|
|
1283
|
+
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">work=</span>(<span class="ruby-identifier">value</span>)
|
|
1284
|
+
51: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
|
|
1285
|
+
52: <span class="ruby-ivar">@work</span> = <span class="ruby-identifier">value</span>
|
|
1286
|
+
53: <span class="ruby-keyword kw">else</span>
|
|
1287
|
+
54: <span class="ruby-comment cmt"># Must be percent value</span>
|
|
1288
|
+
55: <span class="ruby-ivar">@work</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>)
|
|
1289
|
+
56: <span class="ruby-keyword kw">end</span>
|
|
1290
|
+
57: <span class="ruby-keyword kw">end</span></pre>
|
|
1285
1291
|
</div>
|
|
1286
1292
|
|
|
1287
1293
|
</div>
|
|
@@ -1318,10 +1324,10 @@ rage of 0.0 to 1.0.
|
|
|
1318
1324
|
<div class="method-source-code"
|
|
1319
1325
|
id="error-source">
|
|
1320
1326
|
<pre>
|
|
1321
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1327
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 235</span>
|
|
1328
|
+
235: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
|
|
1329
|
+
236: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
|
|
1330
|
+
237: <span class="ruby-keyword kw">end</span></pre>
|
|
1325
1331
|
</div>
|
|
1326
1332
|
|
|
1327
1333
|
</div>
|
|
@@ -1352,10 +1358,10 @@ rage of 0.0 to 1.0.
|
|
|
1352
1358
|
<div class="method-source-code"
|
|
1353
1359
|
id="warning-source">
|
|
1354
1360
|
<pre>
|
|
1355
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1361
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 239</span>
|
|
1362
|
+
239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
|
|
1363
|
+
240: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
|
|
1364
|
+
241: <span class="ruby-keyword kw">end</span></pre>
|
|
1359
1365
|
</div>
|
|
1360
1366
|
|
|
1361
1367
|
</div>
|