doc/TaskJuggler/TimeSheetRecord.html in taskjuggler-0.0.8 vs doc/TaskJuggler/TimeSheetRecord.html in taskjuggler-0.0.9

- old
+ new

@@ -149,10 +149,12 @@ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li> <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li> + <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li> + <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li> <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li> <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li> @@ -227,10 +229,12 @@ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li> <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li> + <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li> + <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li> <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li> <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li> @@ -259,10 +263,12 @@ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li> <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li> + <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li> + <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li> <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li> <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li> @@ -539,10 +545,12 @@ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li> <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li> + <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li> + <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li> <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li> <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li> @@ -565,12 +573,10 @@ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li> <li><a href="../String.html">String</a></li> - <li><a href="../StringIO.html">StringIO</a></li> - </ul> <div id="no-class-search-results" style="display: none;">No matching classes.</div> </div> @@ -760,30 +766,30 @@ <div class="method-source-code" id="new-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 26</span> -26: <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>) -27: <span class="ruby-comment cmt"># This is a reference to a Task object for existing tasks or an ID as</span> -28: <span class="ruby-comment cmt"># String for new tasks.</span> -29: <span class="ruby-ivar">@task</span> = <span class="ruby-identifier">task</span> -30: <span class="ruby-comment cmt"># Add the new TimeSheetRecord to the TimeSheet it belongs to.</span> -31: (<span class="ruby-ivar">@timeSheet</span> = <span class="ruby-identifier">timeSheet</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span> -32: <span class="ruby-comment cmt"># Work done will be measured in time slots.</span> -33: <span class="ruby-ivar">@work</span> = <span class="ruby-keyword kw">nil</span> -34: <span class="ruby-comment cmt"># Remaining work will be measured in time slots.</span> -35: <span class="ruby-ivar">@remaining</span> = <span class="ruby-keyword kw">nil</span> -36: <span class="ruby-ivar">@expectedEnd</span> = <span class="ruby-keyword kw">nil</span> -37: <span class="ruby-comment cmt"># For new task, we also need to store the name.</span> -38: <span class="ruby-ivar">@name</span> = <span class="ruby-keyword kw">nil</span> -39: <span class="ruby-comment cmt"># Reference to the JournalEntry object that holds the status for this</span> -40: <span class="ruby-comment cmt"># record.</span> -41: <span class="ruby-ivar">@status</span> = <span class="ruby-keyword kw">nil</span> -42: <span class="ruby-ivar">@priority</span> = <span class="ruby-value">0</span> -43: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span> -44: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 27</span> +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>) +28: <span class="ruby-comment cmt"># This is a reference to a Task object for existing tasks or an ID as</span> +29: <span class="ruby-comment cmt"># String for new tasks.</span> +30: <span class="ruby-ivar">@task</span> = <span class="ruby-identifier">task</span> +31: <span class="ruby-comment cmt"># Add the new TimeSheetRecord to the TimeSheet it belongs to.</span> +32: (<span class="ruby-ivar">@timeSheet</span> = <span class="ruby-identifier">timeSheet</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span> +33: <span class="ruby-comment cmt"># Work done will be measured in time slots.</span> +34: <span class="ruby-ivar">@work</span> = <span class="ruby-keyword kw">nil</span> +35: <span class="ruby-comment cmt"># Remaining work will be measured in time slots.</span> +36: <span class="ruby-ivar">@remaining</span> = <span class="ruby-keyword kw">nil</span> +37: <span class="ruby-ivar">@expectedEnd</span> = <span class="ruby-keyword kw">nil</span> +38: <span class="ruby-comment cmt"># For new task, we also need to store the name.</span> +39: <span class="ruby-ivar">@name</span> = <span class="ruby-keyword kw">nil</span> +40: <span class="ruby-comment cmt"># Reference to the JournalEntry object that holds the status for this</span> +41: <span class="ruby-comment cmt"># record.</span> +42: <span class="ruby-ivar">@status</span> = <span class="ruby-keyword kw">nil</span> +43: <span class="ruby-ivar">@priority</span> = <span class="ruby-value">0</span> +44: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span> +45: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -818,14 +824,14 @@ <div class="method-source-code" id="actual-nd-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 223</span> -223: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualEnd</span> -224: <span class="ruby-ivar">@expectedEnd</span> -225: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 224</span> +224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualEnd</span> +225: <span class="ruby-ivar">@expectedEnd</span> +226: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -854,15 +860,15 @@ <div class="method-source-code" id="actual-emaining-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 207</span> -207: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualRemaining</span> -208: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> -209: <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>]) -210: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 208</span> +208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualRemaining</span> +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> +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>]) +211: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -891,14 +897,14 @@ <div class="method-source-code" id="actual-ork-ercent-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 190</span> -190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualWorkPercent</span> -191: (<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> -192: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 191</span> +191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualWorkPercent</span> +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> +193: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -927,77 +933,77 @@ <div class="method-source-code" id="check-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 59</span> - 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span> - 60: <span class="ruby-identifier">scIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> - 61: <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> - 62: <span class="ruby-comment cmt"># All TimeSheetRecords must have a 'work' attribute.</span> - 63: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span>.<span class="ruby-identifier">nil?</span> - 64: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_work'</span>, - 65: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span> - 66: <span class="ruby-value str">&quot;have a 'work' attribute to specify how much was done &quot;</span> <span class="ruby-operator">+</span> - 67: <span class="ruby-value str">&quot;for this task during the reported period.&quot;</span>) - 68: <span class="ruby-keyword kw">end</span> - 69: <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>) - 70: <span class="ruby-comment cmt"># This is already known tasks.</span> - 71: <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">&gt;</span> <span class="ruby-value">0</span> - 72: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@remaining</span> - 73: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_remaining'</span>, - 74: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span> - 75: <span class="ruby-value str">&quot;have a 'remaining' attribute to specify how much &quot;</span> <span class="ruby-operator">+</span> - 76: <span class="ruby-value str">&quot;effort is left for this task.&quot;</span>) - 77: <span class="ruby-keyword kw">end</span> - 78: <span class="ruby-keyword kw">else</span> - 79: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@expectedEnd</span> - 80: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_expected_end'</span>, - 81: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span> - 82: <span class="ruby-value str">&quot;have an 'end' attribute to specify the expected end &quot;</span> <span class="ruby-operator">+</span> - 83: <span class="ruby-value str">&quot;of this task.&quot;</span>) - 84: <span class="ruby-keyword kw">end</span> - 85: <span class="ruby-keyword kw">end</span> - 86: <span class="ruby-keyword kw">else</span> - 87: <span class="ruby-comment cmt"># This is for new tasks.</span> - 88: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@remaining</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@expectedEnd</span>.<span class="ruby-identifier">nil?</span> - 89: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_rem_or_end'</span>, - 90: <span class="ruby-node">&quot;New task #{taskId} requires either a 'remaining' or a &quot;</span> <span class="ruby-operator">+</span> - 91: <span class="ruby-value str">&quot;'end' attribute.&quot;</span>) - 92: <span class="ruby-keyword kw">end</span> - 93: <span class="ruby-keyword kw">end</span> - 94: - 95: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">daysToSlots</span>(<span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">nil?</span> - 96: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_status_work'</span>, - 97: <span class="ruby-node">&quot;You must specify a status for task #{taskId}.&quot;</span>) - 98: <span class="ruby-keyword kw">end</span> - 99: -100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span> -101: <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> -102: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_headline'</span>, -103: <span class="ruby-value str">&quot;You must provide a headline for the status of &quot;</span> <span class="ruby-operator">+</span> -104: <span class="ruby-node">&quot;task #{@task.fullId}&quot;</span>) -105: <span class="ruby-keyword kw">end</span> -106: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span> <span class="ruby-operator">&amp;&amp;</span> -107: <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">&quot;A summary text\n&quot;</span> -108: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_default_summary'</span>, -109: <span class="ruby-value str">&quot;You must change the default summary text of the status &quot;</span> <span class="ruby-operator">+</span> -110: <span class="ruby-node">&quot;for task #{taskId}.&quot;</span>) -111: <span class="ruby-keyword kw">end</span> -112: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> -113: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span> -114: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert1_more_details'</span>, -115: <span class="ruby-node">&quot;Task #{taskId} has an elevated alert level and must &quot;</span> <span class="ruby-operator">+</span> -116: <span class="ruby-value str">&quot;have a summary or details section.&quot;</span>) -117: <span class="ruby-keyword kw">end</span> -118: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span> -119: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert2_more_details'</span>, -120: <span class="ruby-node">&quot;Task #{taskId} has a high alert level and must have &quot;</span> <span class="ruby-operator">+</span> -121: <span class="ruby-value str">&quot;a details section.&quot;</span>) -122: <span class="ruby-keyword kw">end</span> -123: <span class="ruby-keyword kw">end</span> -124: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 60</span> + 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span> + 61: <span class="ruby-identifier">scIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> + 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> + 63: <span class="ruby-comment cmt"># All TimeSheetRecords must have a 'work' attribute.</span> + 64: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span>.<span class="ruby-identifier">nil?</span> + 65: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_work'</span>, + 66: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span> + 67: <span class="ruby-value str">&quot;have a 'work' attribute to specify how much was done &quot;</span> <span class="ruby-operator">+</span> + 68: <span class="ruby-value str">&quot;for this task during the reported period.&quot;</span>) + 69: <span class="ruby-keyword kw">end</span> + 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>) + 71: <span class="ruby-comment cmt"># This is already known tasks.</span> + 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">&gt;</span> <span class="ruby-value">0</span> + 73: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@remaining</span> + 74: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_remaining'</span>, + 75: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span> + 76: <span class="ruby-value str">&quot;have a 'remaining' attribute to specify how much &quot;</span> <span class="ruby-operator">+</span> + 77: <span class="ruby-value str">&quot;effort is left for this task.&quot;</span>) + 78: <span class="ruby-keyword kw">end</span> + 79: <span class="ruby-keyword kw">else</span> + 80: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@expectedEnd</span> + 81: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_expected_end'</span>, + 82: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span> + 83: <span class="ruby-value str">&quot;have an 'end' attribute to specify the expected end &quot;</span> <span class="ruby-operator">+</span> + 84: <span class="ruby-value str">&quot;of this task.&quot;</span>) + 85: <span class="ruby-keyword kw">end</span> + 86: <span class="ruby-keyword kw">end</span> + 87: <span class="ruby-keyword kw">else</span> + 88: <span class="ruby-comment cmt"># This is for new tasks.</span> + 89: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@remaining</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@expectedEnd</span>.<span class="ruby-identifier">nil?</span> + 90: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_rem_or_end'</span>, + 91: <span class="ruby-node">&quot;New task #{taskId} requires either a 'remaining' or a &quot;</span> <span class="ruby-operator">+</span> + 92: <span class="ruby-value str">&quot;'end' attribute.&quot;</span>) + 93: <span class="ruby-keyword kw">end</span> + 94: <span class="ruby-keyword kw">end</span> + 95: + 96: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">daysToSlots</span>(<span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">nil?</span> + 97: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_status_work'</span>, + 98: <span class="ruby-node">&quot;You must specify a status for task #{taskId}.&quot;</span>) + 99: <span class="ruby-keyword kw">end</span> +100: +101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span> +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> +103: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_headline'</span>, +104: <span class="ruby-value str">&quot;You must provide a headline for the status of &quot;</span> <span class="ruby-operator">+</span> +105: <span class="ruby-node">&quot;task #{@task.fullId}&quot;</span>) +106: <span class="ruby-keyword kw">end</span> +107: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span> <span class="ruby-operator">&amp;&amp;</span> +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">&quot;A summary text\n&quot;</span> +109: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_default_summary'</span>, +110: <span class="ruby-value str">&quot;You must change the default summary text of the status &quot;</span> <span class="ruby-operator">+</span> +111: <span class="ruby-node">&quot;for task #{taskId}.&quot;</span>) +112: <span class="ruby-keyword kw">end</span> +113: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> +114: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span> +115: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert1_more_details'</span>, +116: <span class="ruby-node">&quot;Task #{taskId} has an elevated alert level and must &quot;</span> <span class="ruby-operator">+</span> +117: <span class="ruby-value str">&quot;have a summary or details section.&quot;</span>) +118: <span class="ruby-keyword kw">end</span> +119: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span> +120: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert2_more_details'</span>, +121: <span class="ruby-node">&quot;Task #{taskId} has a high alert level and must have &quot;</span> <span class="ruby-operator">+</span> +122: <span class="ruby-value str">&quot;a details section.&quot;</span>) +123: <span class="ruby-keyword kw">end</span> +124: <span class="ruby-keyword kw">end</span> +125: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1026,14 +1032,14 @@ <div class="method-source-code" id="plan-nd-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 228</span> -228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planEnd</span> -229: <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>] -230: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 229</span> +229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planEnd</span> +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>] +231: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1062,19 +1068,19 @@ <div class="method-source-code" id="plan-emaining-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 213</span> -213: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planRemaining</span> -214: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span> -215: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> -216: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> -217: <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>) -218: <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>]) -219: <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>) -220: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 214</span> +214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planRemaining</span> +215: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span> +216: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> +217: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> +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>) +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>]) +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>) +221: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1103,21 +1109,21 @@ <div class="method-source-code" id="plan-ork-ercent-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 195</span> -195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planWorkPercent</span> -196: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span> -197: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> -198: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> -199: <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>) -200: <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>) -201: (<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>, -202: <span class="ruby-ivar">@task</span>).<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> -203: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span> -204: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 196</span> +196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planWorkPercent</span> +197: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span> +198: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> +199: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> +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>) +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>) +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>, +203: <span class="ruby-ivar">@task</span>).<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> +204: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span> +205: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1144,14 +1150,14 @@ <div class="method-source-code" id="task-d-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 185</span> -185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">taskId</span> -186: <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> -187: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 186</span> +186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">taskId</span> +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> +188: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1178,69 +1184,69 @@ <div class="method-source-code" id="warn-n-elta-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 126</span> -126: <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>) -127: <span class="ruby-comment cmt"># Ignore personal entries.</span> -128: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@task</span> -129: -130: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span> -131: <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>) -132: <span class="ruby-comment cmt"># A resource has requested a new Task to be created.</span> -133: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_new_task'</span>, -134: <span class="ruby-node">&quot;#{resource.name} is requesting a new task:\n&quot;</span> <span class="ruby-operator">+</span> -135: <span class="ruby-node">&quot; ID: #{@task}\n&quot;</span> <span class="ruby-operator">+</span> -136: <span class="ruby-node">&quot; Name: #{@name}\n&quot;</span> <span class="ruby-operator">+</span> -137: <span class="ruby-node">&quot; Work: #{@timeSheet.slotsToDays(@work)}d &quot;</span> <span class="ruby-operator">+</span> -138: (<span class="ruby-ivar">@remaining</span> <span class="ruby-operator">?</span> -139: <span class="ruby-node">&quot;Remaining: #{@timeSheet.slotsToDays(@remaining)}d&quot;</span> <span class="ruby-operator">:</span> -140: <span class="ruby-node">&quot;End: #{@end.to_s}&quot;</span>)) -141: <span class="ruby-keyword kw">return</span> -142: <span class="ruby-keyword kw">end</span> -143: -144: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> -145: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> -146: <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>, -147: <span class="ruby-identifier">resource</span>) -148: <span class="ruby-comment cmt"># Convert the @work slots into a daily load.</span> -149: <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>]) -150: -151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">work</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">plannedWork</span> -152: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_work_delta'</span>, -153: <span class="ruby-node">&quot;#{resource.name} worked &quot;</span> <span class="ruby-operator">+</span> -154: <span class="ruby-node">&quot;#{work &lt; plannedWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span> -155: <span class="ruby-node">&quot;on #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span> -156: <span class="ruby-node">&quot;#{work}d instead of #{plannedWork}d&quot;</span>) -157: <span class="ruby-keyword kw">end</span> -158: <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">&gt;</span> <span class="ruby-value">0</span> -159: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">endIdx</span> -160: <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>]) -161: <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>, -162: <span class="ruby-identifier">resource</span>) -163: <span class="ruby-comment cmt"># Convert the @remaining slots into a daily load.</span> -164: <span class="ruby-identifier">remaining</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> * -165: <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]) -166: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">remaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">remainingWork</span> -167: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_remain_delta'</span>, -168: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span> -169: <span class="ruby-node">&quot;#{remaining &lt; remainingWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span> -170: <span class="ruby-node">&quot;remaining effort for task #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span> -171: <span class="ruby-node">&quot;#{remaining}d instead of #{remainingWork}d&quot;</span>) -172: <span class="ruby-keyword kw">end</span> -173: <span class="ruby-keyword kw">else</span> -174: <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>] -175: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_end_delta'</span>, -176: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span> -177: <span class="ruby-node">&quot;#{@expectedEnd &lt; @task['end', scenarioIdx] ? -178: 'earlier' : 'later'} end (#{@expectedEnd}) for task &quot;</span> <span class="ruby-operator">+</span> -179: <span class="ruby-node">&quot;#{@task.fullId}. Planned end is &quot;</span> <span class="ruby-operator">+</span> -180: <span class="ruby-node">&quot;#{@task['end', scenarioIdx]}.&quot;</span>) -181: <span class="ruby-keyword kw">end</span> -182: <span class="ruby-keyword kw">end</span> -183: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 127</span> +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>) +128: <span class="ruby-comment cmt"># Ignore personal entries.</span> +129: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@task</span> +130: +131: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span> +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>) +133: <span class="ruby-comment cmt"># A resource has requested a new Task to be created.</span> +134: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_new_task'</span>, +135: <span class="ruby-node">&quot;#{resource.name} is requesting a new task:\n&quot;</span> <span class="ruby-operator">+</span> +136: <span class="ruby-node">&quot; ID: #{@task}\n&quot;</span> <span class="ruby-operator">+</span> +137: <span class="ruby-node">&quot; Name: #{@name}\n&quot;</span> <span class="ruby-operator">+</span> +138: <span class="ruby-node">&quot; Work: #{@timeSheet.slotsToDays(@work)}d &quot;</span> <span class="ruby-operator">+</span> +139: (<span class="ruby-ivar">@remaining</span> <span class="ruby-operator">?</span> +140: <span class="ruby-node">&quot;Remaining: #{@timeSheet.slotsToDays(@remaining)}d&quot;</span> <span class="ruby-operator">:</span> +141: <span class="ruby-node">&quot;End: #{@end.to_s}&quot;</span>)) +142: <span class="ruby-keyword kw">return</span> +143: <span class="ruby-keyword kw">end</span> +144: +145: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span> +146: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span> +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>, +148: <span class="ruby-identifier">resource</span>) +149: <span class="ruby-comment cmt"># Convert the @work slots into a daily load.</span> +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>]) +151: +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> +153: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_work_delta'</span>, +154: <span class="ruby-node">&quot;#{resource.name} worked &quot;</span> <span class="ruby-operator">+</span> +155: <span class="ruby-node">&quot;#{work &lt; plannedWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span> +156: <span class="ruby-node">&quot;on #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span> +157: <span class="ruby-node">&quot;#{work}d instead of #{plannedWork}d&quot;</span>) +158: <span class="ruby-keyword kw">end</span> +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">&gt;</span> <span class="ruby-value">0</span> +160: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">endIdx</span> +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>]) +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>, +163: <span class="ruby-identifier">resource</span>) +164: <span class="ruby-comment cmt"># Convert the @remaining slots into a daily load.</span> +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> * +166: <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]) +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> +168: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_remain_delta'</span>, +169: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span> +170: <span class="ruby-node">&quot;#{remaining &lt; remainingWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span> +171: <span class="ruby-node">&quot;remaining effort for task #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span> +172: <span class="ruby-node">&quot;#{remaining}d instead of #{remainingWork}d&quot;</span>) +173: <span class="ruby-keyword kw">end</span> +174: <span class="ruby-keyword kw">else</span> +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>] +176: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_end_delta'</span>, +177: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span> +178: <span class="ruby-node">&quot;#{@expectedEnd &lt; @task['end', scenarioIdx] ? +179: 'earlier' : 'later'} end (#{@expectedEnd}) for task &quot;</span> <span class="ruby-operator">+</span> +180: <span class="ruby-node">&quot;#{@task.fullId}. Planned end is &quot;</span> <span class="ruby-operator">+</span> +181: <span class="ruby-node">&quot;#{@task['end', scenarioIdx]}.&quot;</span>) +182: <span class="ruby-keyword kw">end</span> +183: <span class="ruby-keyword kw">end</span> +184: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1271,19 +1277,19 @@ <div class="method-source-code" id="work--source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 49</span> -49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">work=</span>(<span class="ruby-identifier">value</span>) -50: <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>) -51: <span class="ruby-ivar">@work</span> = <span class="ruby-identifier">value</span> -52: <span class="ruby-keyword kw">else</span> -53: <span class="ruby-comment cmt"># Must be percent value</span> -54: <span class="ruby-ivar">@work</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>) -55: <span class="ruby-keyword kw">end</span> -56: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 50</span> +50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">work=</span>(<span class="ruby-identifier">value</span>) +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>) +52: <span class="ruby-ivar">@work</span> = <span class="ruby-identifier">value</span> +53: <span class="ruby-keyword kw">else</span> +54: <span class="ruby-comment cmt"># Must be percent value</span> +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>) +56: <span class="ruby-keyword kw">end</span> +57: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1316,14 +1322,14 @@ <div class="method-source-code" id="error-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 234</span> -234: <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>) -235: <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>) -236: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 235</span> +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>) +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>) +237: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1350,13 +1356,13 @@ <div class="method-source-code" id="warning-source"> <pre> - <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 238</span> -238: <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>) -239: <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>) -240: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 239</span> +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>) +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>) +241: <span class="ruby-keyword kw">end</span></pre> </div> </div>