https://www.redmine.org/
https://www.redmine.org/favicon.ico?1679302129
2013-01-16T20:31:38Z
Redmine
Redmine - Defect #12803: Cross-year date range in time tracking report misses some hours
https://www.redmine.org/issues/12803?journal_id=44601
2013-01-16T20:31:38Z
Uwe Koloska
<ul></ul><p>Here is a patch against 1.4.4.stable.9879 (the lines that have to be changed are the same in trunk)<br /><pre><code class="ruby syntaxhl"><span class="o">---</span> <span class="n">lib</span><span class="o">/</span><span class="n">redmine</span><span class="o">/</span><span class="n">helpers</span><span class="o">/</span><span class="n">time_report</span><span class="p">.</span><span class="nf">rb</span> <span class="p">(</span><span class="no">Revision</span> <span class="mi">9879</span><span class="p">)</span>
<span class="o">+++</span> <span class="n">lib</span><span class="o">/</span><span class="n">redmine</span><span class="o">/</span><span class="n">helpers</span><span class="o">/</span><span class="n">time_report</span><span class="p">.</span><span class="nf">rb</span> <span class="p">(</span><span class="no">Arbeitskopie</span><span class="p">)</span>
<span class="err">@@</span> <span class="o">-</span><span class="mi">67</span><span class="p">,</span><span class="mi">7</span> <span class="o">+</span><span class="mi">67</span><span class="p">,</span><span class="mi">7</span> <span class="err">@@</span>
<span class="k">when</span> <span class="s1">'month'</span>
<span class="n">row</span><span class="p">[</span><span class="s1">'month'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'tyear'</span><span class="p">]</span><span class="si">}</span><span class="s2">-</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'tmonth'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
<span class="k">when</span> <span class="s1">'week'</span>
<span class="o">-</span> <span class="n">row</span><span class="p">[</span><span class="s1">'week'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'tyear'</span><span class="p">]</span><span class="si">}</span><span class="s2">-</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'tweek'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
<span class="o">+</span> <span class="n">row</span><span class="p">[</span><span class="s1">'week'</span><span class="p">]</span> <span class="o">=</span> <span class="no">Date</span><span class="p">.</span><span class="nf">parse</span><span class="p">(</span><span class="s2">"</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'spent_on'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span><span class="p">).</span><span class="nf">cwyear</span><span class="p">.</span><span class="nf">to_s</span> <span class="o">+</span> <span class="s2">"-</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'tweek'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
<span class="k">when</span> <span class="s1">'day'</span>
<span class="n">row</span><span class="p">[</span><span class="s1">'day'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">#{</span><span class="n">row</span><span class="p">[</span><span class="s1">'spent_on'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
<span class="k">end</span>
<span class="err">@@</span> <span class="o">-</span><span class="mi">98</span><span class="p">,</span><span class="mi">7</span> <span class="o">+</span><span class="mi">98</span><span class="p">,</span><span class="mi">7</span> <span class="err">@@</span>
<span class="vi">@periods</span> <span class="o"><<</span> <span class="s2">"</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">year</span><span class="si">}</span><span class="s2">-</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">month</span><span class="si">}</span><span class="s2">"</span>
<span class="n">date_from</span> <span class="o">=</span> <span class="p">(</span><span class="n">date_from</span> <span class="o">+</span> <span class="mi">1</span><span class="p">.</span><span class="nf">month</span><span class="p">).</span><span class="nf">at_beginning_of_month</span>
<span class="k">when</span> <span class="s1">'week'</span>
<span class="o">-</span> <span class="vi">@periods</span> <span class="o"><<</span> <span class="s2">"</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">year</span><span class="si">}</span><span class="s2">-</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">to_date</span><span class="p">.</span><span class="nf">cweek</span><span class="si">}</span><span class="s2">"</span>
<span class="o">+</span> <span class="vi">@periods</span> <span class="o"><<</span> <span class="s2">"</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">to_date</span><span class="p">.</span><span class="nf">cwyear</span><span class="si">}</span><span class="s2">-</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">to_date</span><span class="p">.</span><span class="nf">cweek</span><span class="si">}</span><span class="s2">"</span>
<span class="n">date_from</span> <span class="o">=</span> <span class="p">(</span><span class="n">date_from</span> <span class="o">+</span> <span class="mi">7</span><span class="p">.</span><span class="nf">day</span><span class="p">).</span><span class="nf">at_beginning_of_week</span>
<span class="k">when</span> <span class="s1">'day'</span>
<span class="vi">@periods</span> <span class="o"><<</span> <span class="s2">"</span><span class="si">#{</span><span class="n">date_from</span><span class="p">.</span><span class="nf">to_date</span><span class="si">}</span><span class="s2">"</span>
</code></pre></p>
<p>Reason is the difference between the year for the week and the year from the date. The first ISO week of this year looks like this in the <code>time_entries</code> table:</p>
<table>
<tr>
<th>tyear </th>
<th>tmonth </th>
<th>tweek </th>
<th>spent_on </th>
</tr>
<tr>
<td> 2012 </td>
<td> 12 </td>
<td> 1 </td>
<td> 2012-12-31 </td>
</tr>
<tr>
<td> 2013 </td>
<td> 1 </td>
<td> 1 </td>
<td> 2013-01-01 </td>
</tr>
<tr>
<td> 2013 </td>
<td> 1 </td>
<td> 1 </td>
<td> 2013-01-02 </td>
</tr>
<tr>
<td> 2013 </td>
<td> 1 </td>
<td> 1 </td>
<td> 2013-01-03 </td>
</tr>
</table>
Maybe someone could help me with the following questions, as I'm only a noob with redmine and rails development:
<ul>
<li>is there a more elegant way to get the year for the ISO week than parsing <code>spent_on</code>?</li>
<li>How can I create a test for this bug?</li>
<li>How can I use the logger in this function? <code>logger.debug</code> gives <code>undefined local variable or method `logger'</code></li>
</ul>
Redmine - Defect #12803: Cross-year date range in time tracking report misses some hours
https://www.redmine.org/issues/12803?journal_id=46311
2013-03-03T22:40:38Z
Filou Centrinov
<ul></ul><p>Duplicate of <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Defect: Time entries report broken on first week of year (Closed)" href="https://www.redmine.org/issues/5329">#5329</a></p>
Redmine - Defect #12803: Cross-year date range in time tracking report misses some hours
https://www.redmine.org/issues/12803?journal_id=46312
2013-03-03T23:02:58Z
Jean-Philippe Lang
jp_lang@yahoo.fr
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Closed</i></li><li><strong>Resolution</strong> set to <i>Duplicate</i></li></ul>