diff --git a/README.md b/README.md
index 37bd5717e9888dc26566efa0bf8213435451bb78..0b3f59644fc7da6e0c3d4897f2601fb6385c64aa 100644
--- a/README.md
+++ b/README.md
@@ -12,14 +12,13 @@ Die Installation ist durch entsprechend geschultes Fachpersonal durchzuführen.
 
 Die Installationsanleitung ist [hier](./docs/installation.md) zu finden. Für den Betrieb sind ein paar [Hinweise](./docs/hinweise_betrieb.md) zu beachten.
 
-
 ## Verteilungsdiagramm
 
 Die Anwendung setzt sich aus mehreren Mikroservices zusammen, die mithilfe von "Docker" und "Docker-Compose" orchestriert werden. Ein entsprechende Überblick ist dem [Verteilungsdriagramm](./docs/Verteilungsdiagramm/Verteilungsdiagramm.md) zu entnehmen.
 
 ## Klassendokumentation
 
-Die Webapplikation wurde mithilfe des Rahmenwerks "Django" in Python geschrieben. Aus dem kommentierten Quelltext des Programms kann mithilfe von von [Pdoc](https://pdoc.dev/) eine Dokumentation generiert werden. Eine entsprechende [kompilierte Version](./docs/pdoc/index.html) ist in dieser Ablage zu finden. (Achtung: Die Dokumentation ist in Englisch verfasst.)
+Die Webapplikation wurde mithilfe des Rahmenwerks "Django" in Python geschrieben. Aus dem kommentierten Quelltext des Programms kann mithilfe von von [Pdoc](https://pdoc.dev/) eine Dokumentation generiert werden. Eine [Anleitung](./docs/anleitung_pdoc.md) zur Generierung liegt bei. Eine entsprechende [kompilierte Version](./docs/pdoc/index.html) ist in dieser Ablage zu finden. (Achtung: Die Dokumentation ist in Englisch verfasst.)
 
 ## Datenbankmodell
 
diff --git a/docs/anleitung_pdoc.md b/docs/anleitung_pdoc.md
new file mode 100644
index 0000000000000000000000000000000000000000..6dbd9bcda7b2d2c7850b5a4df2c83134e6561754
--- /dev/null
+++ b/docs/anleitung_pdoc.md
@@ -0,0 +1,26 @@
+# Generieren der Dokumentation des Quellltextes
+
+Der Quelltext des Programms wurde in einer Art kommentiert, welche eine automatische Auswertung erlaubt. Empfohlen wird das Werkezug [Pdoc](https://pdoc.dev/).
+
+Benötigt wird ein Python-Interpreter, sowie (optional) ein Paketverwatlungswerkzeug. Es müssen die Pakete `pdoc` und `django` installiert werden.
+
+Unter dem [Python Interpreter](https://www.python.org/) mit `pip`: (Das erstellen einer [virtuellen Umgebung](https://docs.python.org/3/library/venv.html) zur Installation der Pakete wird empfohlen.)
+
+```
+pip install django pdoc
+```
+
+Für die Generierung ist das Setzen einer Umgebungsvariable nötig:
+```
+export DOC_GEN=1
+```
+
+Zum Einen kann mit Pdoc ein Webserver zum Lesen der Dokumentation gestartet werden:
+```
+pdoc ./app/vkk/
+```
+
+Zum Anderen kann eine Reiue von HTML-Dokumenten generiert werden:
+```
+pdoc ./app/vkk/ -o ./docs/pdoc
+```
\ No newline at end of file
diff --git a/docs/pdoc/vkk.html b/docs/pdoc/vkk.html
index 5c8b4ff4a003d5193cf02ae8a77a9968edda3c41..d1beb541217ce8ca54b1e53bd31ad41e93cace54 100644
--- a/docs/pdoc/vkk.html
+++ b/docs/pdoc/vkk.html
@@ -89,7 +89,6 @@ of the Django framework. For further reading, please always consult the
 </span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a>    <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;PYTHONPATH&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;../&quot;</span>
 </span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a>
 </span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a>    <span class="n">django</span><span class="o">.</span><span class="n">setup</span><span class="p">()</span>
-</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a>    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;things set&quot;</span><span class="p">)</span>
 </span></pre></div>
 
 
diff --git a/docs/pdoc/vkk/workhours/accounting/departments/views.html b/docs/pdoc/vkk/workhours/accounting/departments/views.html
index d0cb05ef388a1aea55fed3ff19a07be18cf0c77f..d8f46d55d5ad83ddd92128b8021b4ba72e3f7b02 100644
--- a/docs/pdoc/vkk/workhours/accounting/departments/views.html
+++ b/docs/pdoc/vkk/workhours/accounting/departments/views.html
@@ -96,255 +96,267 @@
 </span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd">        Returns the result of an SQL query calculating the evaluation.</span>
 </span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd">        &quot;&quot;&quot;</span>
 </span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a>        <span class="k">with</span> <span class="n">connection</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span> <span class="k">as</span> <span class="n">cursor</span><span class="p">:</span>
-</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a>            <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;WITH assignments AS ( </span><span class="se">\</span>
-</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="s2">                    SELECT  \periodsdepartment_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
-</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="s2">                workhours AS ( </span><span class="se">\</span>
-</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="s2">                    FROM assignments JOIN vkk_workhours </span><span class="se">\</span>
-</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhours.project_assignment_id </span><span class="se">\</span>
-</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="s2">                    UNION </span><span class="se">\</span>
-</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="s2">                        ammount AS hours </span><span class="se">\</span>
-</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="s2">                    FROM assignments JOIN vkk_workhourscorrection </span><span class="se">\</span>
-</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhourscorrection.project_assignment_id </span><span class="se">\</span>
-</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="s2">                periods AS ( </span><span class="se">\</span>
-</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="s2">                        vkk_period.id, </span><span class="se">\</span>
-</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="s2">                        vkk_period.start, </span><span class="se">\</span>
-</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="s2">                        vkk_period.end </span><span class="se">\</span>
-</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="s2">                    FROM vkk_period </span><span class="se">\</span>
-</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="s2">                    WHERE id IN </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
-</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="s2">                workhours_bounded AS ( </span><span class="se">\</span>
-</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="s2">                        periods.start AS period_start, </span><span class="se">\</span>
-</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="s2">                        periods.end AS period_end, </span><span class="se">\</span>
-</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="s2">                    FROM workhours JOIN periods </span><span class="se">\</span>
-</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="s2">                    ON workhours.period_id = periods.id </span><span class="se">\</span>
-</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="s2">                    WHERE  </span><span class="se">\</span>
-</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="s2">                        periods.end &gt;= workhours.project_start </span><span class="se">\</span>
-</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="s2">                        AND periods.start &lt;= workhours.project_end </span><span class="se">\</span>
-</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="s2">                workhours_summed AS ( </span><span class="se">\</span>
-</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="s2">                    FROM workhours_bounded </span><span class="se">\</span>
-</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="s2">                    GROUP BY  </span><span class="se">\</span>
-</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="s2">                        period_id </span><span class="se">\</span>
-</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="s2">                salary_dates AS ( </span><span class="se">\</span>
-</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="s2">                        vkk_salaryleveldate.id AS salary_date_id, </span><span class="se">\</span>
-</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a><span class="s2">                    FROM vkk_salaryleveldate JOIN ( </span><span class="se">\</span>
-</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="s2">                            MAX(vkk_salaryleveldate.date) AS salary_date, </span><span class="se">\</span>
-</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
-</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a><span class="s2">                        FROM vkk_salaryleveldate, periods </span><span class="se">\</span>
-</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a><span class="s2">                        WHERE vkk_salaryleveldate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="s2">                    ON vkk_salaryleveldate.date = p.salary_date </span><span class="se">\</span>
-</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="s2">                department_dates AS ( </span><span class="se">\</span>
-</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a><span class="s2">                        vkk_departmentdate.id AS departmentdate_id, </span><span class="se">\</span>
-</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a><span class="s2">                        p.id AS period_id </span><span class="se">\</span>
-</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a><span class="s2">                    FROM vkk_departmentdate JOIN ( </span><span class="se">\</span>
-</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a><span class="s2">                            MAX(vkk_departmentdate.date) AS department_date, </span><span class="se">\</span>
-</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a><span class="s2">                            periods.id AS id </span><span class="se">\</span>
-</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a><span class="s2">                        FROM vkk_departmentdate, periods </span><span class="se">\</span>
-</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="s2">                        WHERE vkk_departmentdate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a><span class="s2">                    ON vkk_departmentdate.date = p.department_date </span><span class="se">\</span>
-</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a><span class="s2">                project_funded_staff_date AS ( </span><span class="se">\</span>
-</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a><span class="s2">                        vkk_projectfundedstaffdate.id, </span><span class="se">\</span>
-</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a><span class="s2">                        p.project_id, </span><span class="se">\</span>
-</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a><span class="s2">                    FROM vkk_projectfundedstaffdate, ( </span><span class="se">\</span>
-</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a><span class="s2">                            SELECT </span><span class="se">\</span>
-</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a><span class="s2">                                MAX(vkk_projectfundedstaffdate.date) AS staff_date, </span><span class="se">\</span>
-</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a><span class="s2">                                project_id, </span><span class="se">\</span>
-</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a><span class="s2">                                periods.id AS period_id </span><span class="se">\</span>
-</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a><span class="s2">                            FROM vkk_projectfundedstaffdate, periods </span><span class="se">\</span>
-</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="s2">                            WHERE vkk_projectfundedstaffdate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="s2">                            GROUP BY project_id, periods.id </span><span class="se">\</span>
-</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="s2">                        ) AS p </span><span class="se">\</span>
-</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a><span class="s2">                    WHERE </span><span class="se">\</span>
-</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="s2">                        vkk_projectfundedstaffdate.date = p.staff_date </span><span class="se">\</span>
-</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="s2">                        AND vkk_projectfundedstaffdate.project_id = p.project_id </span><span class="se">\</span>
-</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="s2">                general_costs AS ( </span><span class="se">\</span>
-</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a><span class="s2">                        vkk_generalcosts.costs, </span><span class="se">\</span>
-</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="s2">                    FROM vkk_generalcosts JOIN ( </span><span class="se">\</span>
-</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="s2">                            MAX(vkk_generalcosts.start) AS general_costs_date, </span><span class="se">\</span>
-</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
-</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="s2">                        FROM vkk_generalcosts, periods </span><span class="se">\</span>
-</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="s2">                        WHERE vkk_generalcosts.start &lt;= periods.start </span><span class="se">\</span>
-</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a><span class="s2">                    ON vkk_generalcosts.start = p.general_costs_date </span><span class="se">\</span>
-</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a><span class="s2">                salary_level_costs AS ( </span><span class="se">\</span>
-</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a><span class="s2">                        vkk_salarylevelcosts.salary_level_id, </span><span class="se">\</span>
-</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a><span class="s2">                        vkk_salarylevelcosts.brutto_per_hour, </span><span class="se">\</span>
-</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a><span class="s2">                        salary_dates.period_id </span><span class="se">\</span>
-</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a><span class="s2">                    FROM vkk_salarylevelcosts JOIN salary_dates </span><span class="se">\</span>
-</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a><span class="s2">                    ON vkk_salarylevelcosts.start_id = salary_dates.salary_date_id </span><span class="se">\</span>
-</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a><span class="s2">                department_costs AS ( </span><span class="se">\</span>
-</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a><span class="s2">                        vkk_departmentcosts.equivalents_per_hour, </span><span class="se">\</span>
-</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a><span class="s2">                        department_dates.period_id </span><span class="se">\</span>
-</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a><span class="s2">                    FROM vkk_departmentcosts JOIN department_dates </span><span class="se">\</span>
-</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a><span class="s2">                    ON vkk_departmentcosts.start_id = department_dates.departmentdate_id </span><span class="se">\</span>
-</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a><span class="s2">                    WHERE department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a>            <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;WITH projects AS ( </span><span class="se">\</span>
+</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="s2">                        vkk_project.id, </span><span class="se">\</span>
+</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="s2">                        vkk_project.start, </span><span class="se">\</span>
+</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="s2">                        vkk_project.end, </span><span class="se">\</span>
+</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="s2">                        vkk_project.invoice_number </span><span class="se">\</span>
+</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="s2">                    FROM vkk_project </span><span class="se">\</span>
+</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="s2">                    WHERE vkk_project.department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="s2">                assignments AS ( </span><span class="se">\</span>
+</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="s2">                        projects.id AS project_id, </span><span class="se">\</span>
+</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="s2">                        projects.start AS project_start, </span><span class="se">\</span>
+</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="s2">                        projects.end AS project_end, </span><span class="se">\</span>
+</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="s2">                        vkk_projectassignment.id AS assignment_id, </span><span class="se">\</span>
+</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="s2">                        salary_level_id </span><span class="se">\</span>
+</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="s2">                    FROM projects JOIN vkk_projectassignment </span><span class="se">\</span>
+</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="s2">                        ON projects.id = vkk_projectassignment.project_id </span><span class="se">\</span>
+</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="s2">                workhours AS ( </span><span class="se">\</span>
+</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="s2">                    FROM assignments JOIN vkk_workhours </span><span class="se">\</span>
+</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhours.project_assignment_id </span><span class="se">\</span>
+</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="s2">                        ammount AS hours </span><span class="se">\</span>
+</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="s2">                    FROM assignments JOIN vkk_workhourscorrection </span><span class="se">\</span>
+</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhourscorrection.project_assignment_id </span><span class="se">\</span>
+</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="s2">                periods AS ( </span><span class="se">\</span>
+</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="s2">                        vkk_period.id, </span><span class="se">\</span>
+</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="s2">                        vkk_period.start, </span><span class="se">\</span>
+</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="s2">                        vkk_period.end </span><span class="se">\</span>
+</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="s2">                    FROM vkk_period </span><span class="se">\</span>
+</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="s2">                    WHERE id IN </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="s2">                workhours_bounded AS ( </span><span class="se">\</span>
+</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="s2">                        periods.start AS period_start, </span><span class="se">\</span>
+</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="s2">                        periods.end AS period_end, </span><span class="se">\</span>
+</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="s2">                    FROM workhours JOIN periods </span><span class="se">\</span>
+</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="s2">                    ON workhours.period_id = periods.id </span><span class="se">\</span>
+</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="s2">                    WHERE  </span><span class="se">\</span>
+</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="s2">                        periods.end &gt; workhours.project_start </span><span class="se">\</span>
+</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="s2">                        AND periods.start &lt;= workhours.project_end </span><span class="se">\</span>
+</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a><span class="s2">                workhours_summed AS ( </span><span class="se">\</span>
+</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
+</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a><span class="s2">                    FROM workhours_bounded </span><span class="se">\</span>
+</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="s2">                    GROUP BY  </span><span class="se">\</span>
+</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="s2">                        period_id </span><span class="se">\</span>
+</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a><span class="s2">                salary_dates AS ( </span><span class="se">\</span>
+</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a><span class="s2">                        vkk_salaryleveldate.id AS salary_date_id, </span><span class="se">\</span>
+</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a><span class="s2">                    FROM vkk_salaryleveldate JOIN ( </span><span class="se">\</span>
+</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a><span class="s2">                            MAX(vkk_salaryleveldate.date) AS salary_date, </span><span class="se">\</span>
+</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
+</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a><span class="s2">                        FROM vkk_salaryleveldate, periods </span><span class="se">\</span>
+</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a><span class="s2">                        WHERE vkk_salaryleveldate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a><span class="s2">                    ON vkk_salaryleveldate.date = p.salary_date </span><span class="se">\</span>
+</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a><span class="s2">                department_dates AS ( </span><span class="se">\</span>
+</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a><span class="s2">                        vkk_departmentdate.id AS departmentdate_id, </span><span class="se">\</span>
+</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a><span class="s2">                        p.id AS period_id </span><span class="se">\</span>
+</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a><span class="s2">                    FROM vkk_departmentdate JOIN ( </span><span class="se">\</span>
+</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a><span class="s2">                            MAX(vkk_departmentdate.date) AS department_date, </span><span class="se">\</span>
+</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a><span class="s2">                            periods.id AS id </span><span class="se">\</span>
+</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a><span class="s2">                        FROM vkk_departmentdate, periods </span><span class="se">\</span>
+</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="s2">                        WHERE vkk_departmentdate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a><span class="s2">                    ON vkk_departmentdate.date = p.department_date </span><span class="se">\</span>
+</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="s2">                project_funded_staff_date AS ( </span><span class="se">\</span>
+</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="s2">                        vkk_projectfundedstaffdate.id, </span><span class="se">\</span>
+</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a><span class="s2">                        p.project_id, </span><span class="se">\</span>
+</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="s2">                    FROM vkk_projectfundedstaffdate, ( </span><span class="se">\</span>
+</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="s2">                            SELECT </span><span class="se">\</span>
+</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="s2">                                MAX(vkk_projectfundedstaffdate.date) AS staff_date, </span><span class="se">\</span>
+</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="s2">                                project_id, </span><span class="se">\</span>
+</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a><span class="s2">                                periods.id AS period_id </span><span class="se">\</span>
+</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="s2">                            FROM vkk_projectfundedstaffdate, periods </span><span class="se">\</span>
+</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="s2">                            WHERE vkk_projectfundedstaffdate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a><span class="s2">                            GROUP BY project_id, periods.id </span><span class="se">\</span>
+</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a><span class="s2">                        ) AS p </span><span class="se">\</span>
+</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a><span class="s2">                    WHERE </span><span class="se">\</span>
+</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a><span class="s2">                        vkk_projectfundedstaffdate.date = p.staff_date </span><span class="se">\</span>
+</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a><span class="s2">                        AND vkk_projectfundedstaffdate.project_id = p.project_id </span><span class="se">\</span>
+</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a><span class="s2">                general_costs AS ( </span><span class="se">\</span>
+</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a><span class="s2">                        vkk_generalcosts.costs, </span><span class="se">\</span>
+</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a><span class="s2">                    FROM vkk_generalcosts JOIN ( </span><span class="se">\</span>
+</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a><span class="s2">                            MAX(vkk_generalcosts.start) AS general_costs_date, </span><span class="se">\</span>
+</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
+</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a><span class="s2">                        FROM vkk_generalcosts, periods </span><span class="se">\</span>
+</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a><span class="s2">                        WHERE vkk_generalcosts.start &lt;= periods.start </span><span class="se">\</span>
+</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a><span class="s2">                    ON vkk_generalcosts.start = p.general_costs_date </span><span class="se">\</span>
 </span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a><span class="s2">                project_funded_staff AS ( </span><span class="se">\</span>
+</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a><span class="s2">                salary_level_costs AS ( </span><span class="se">\</span>
 </span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a><span class="s2">                        vkk_projectfundedstaff.salary_level_id, </span><span class="se">\</span>
-</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a><span class="s2">                        vkk_projectfundedstaff.hours </span><span class="se">\</span>
-</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a><span class="s2">                    FROM project_funded_staff_date JOIN vkk_projectfundedstaff </span><span class="se">\</span>
-</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a><span class="s2">                    ON project_funded_staff_date.id = vkk_projectfundedstaff.start_id </span><span class="se">\</span>
-</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a><span class="s2">                workhours_together AS ( </span><span class="se">\</span>
-</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a><span class="s2">                    FROM workhours_summed </span><span class="se">\</span>
-</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a><span class="s2">                        vkk_salarylevelcosts.salary_level_id, </span><span class="se">\</span>
+</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a><span class="s2">                        vkk_salarylevelcosts.brutto_per_hour, </span><span class="se">\</span>
+</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a><span class="s2">                        salary_dates.period_id </span><span class="se">\</span>
+</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a><span class="s2">                    FROM vkk_salarylevelcosts JOIN salary_dates </span><span class="se">\</span>
+</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a><span class="s2">                    ON vkk_salarylevelcosts.start_id = salary_dates.salary_date_id </span><span class="se">\</span>
+</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a><span class="s2">                department_costs AS ( </span><span class="se">\</span>
+</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a><span class="s2">                        vkk_departmentcosts.equivalents_per_hour, </span><span class="se">\</span>
+</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a><span class="s2">                        department_dates.period_id </span><span class="se">\</span>
+</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a><span class="s2">                    FROM vkk_departmentcosts JOIN department_dates </span><span class="se">\</span>
+</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a><span class="s2">                    ON vkk_departmentcosts.start_id = department_dates.departmentdate_id </span><span class="se">\</span>
+</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a><span class="s2">                    WHERE department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a><span class="s2">                project_funded_staff AS ( </span><span class="se">\</span>
 </span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
 </span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
 </span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a><span class="s2">                    FROM project_funded_staff </span><span class="se">\</span>
-</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a><span class="s2">                workhours_together_summed_salary AS ( </span><span class="se">\</span>
-</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a><span class="s2">                    FROM workhours_together </span><span class="se">\</span>
-</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a><span class="s2">                    GROUP BY project_id, salary_level_id, period_id </span><span class="se">\</span>
-</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a><span class="s2">                salary_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="s2">                        workhours_together_summed_salary.project_id, </span><span class="se">\</span>
-</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a><span class="s2">                        SUM(workhours_together_summed_salary.hours * salary_level_costs.brutto_per_hour) AS salary_costs </span><span class="se">\</span>
-</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a><span class="s2">                    FROM workhours_together_summed_salary, salary_level_costs </span><span class="se">\</span>
-</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a><span class="s2">                    WHERE workhours_together_summed_salary.salary_level_id = salary_level_costs.salary_level_id </span><span class="se">\</span>
-</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a><span class="s2">                    AND workhours_together_summed_salary.period_id = salary_level_costs.period_id </span><span class="se">\</span>
-</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a><span class="s2">                    GROUP BY workhours_together_summed_salary.project_id </span><span class="se">\</span>
+</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a><span class="s2">                        vkk_projectfundedstaff.salary_level_id, </span><span class="se">\</span>
+</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a><span class="s2">                        vkk_projectfundedstaff.hours </span><span class="se">\</span>
+</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a><span class="s2">                    FROM project_funded_staff_date JOIN vkk_projectfundedstaff </span><span class="se">\</span>
+</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a><span class="s2">                    ON project_funded_staff_date.id = vkk_projectfundedstaff.start_id </span><span class="se">\</span>
+</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a><span class="s2">                workhours_together AS ( </span><span class="se">\</span>
+</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a><span class="s2">                    FROM workhours_summed </span><span class="se">\</span>
+</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="s2">                </span><span class="se">\</span>
+</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a><span class="s2">                </span><span class="se">\</span>
+</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a><span class="s2">                    FROM project_funded_staff </span><span class="se">\</span>
 </span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a><span class="s2">                workhours_together_summed AS ( </span><span class="se">\</span>
+</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a><span class="s2">                salary_costs_by_project AS ( </span><span class="se">\</span>
 </span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a><span class="s2">                    FROM workhours_together_summed_salary </span><span class="se">\</span>
-</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a><span class="s2">                    GROUP BY project_id, period_id </span><span class="se">\</span>
-</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a><span class="s2">                general_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a><span class="s2">                        SUM(hours * costs) AS general_costs </span><span class="se">\</span>
-</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a><span class="s2">                    FROM workhours_together_summed JOIN general_costs </span><span class="se">\</span>
-</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a><span class="s2">                    ON workhours_together_summed.period_id = general_costs.period_id </span><span class="se">\</span>
-</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
-</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a><span class="s2">                department_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a><span class="s2">                        SUM(hours * equivalents_per_hour) AS department_costs </span><span class="se">\</span>
-</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a><span class="s2">                    FROM workhours_together_summed JOIN department_costs </span><span class="se">\</span>
-</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a><span class="s2">                    ON workhours_together_summed.period_id = department_costs.period_id </span><span class="se">\</span>
-</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
-</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a><span class="s2">                ) </span><span class="se">\</span>
-</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a><span class="s2">                SELECT </span><span class="se">\</span>
-</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a><span class="s2">                    vkk_project.invoice_number AS projekt, </span><span class="se">\</span>
-</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a><span class="s2">                    salary_costs_by_project.salary_costs AS pgk, </span><span class="se">\</span>
-</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a><span class="s2">                    general_costs_by_project.general_costs AS sgk, </span><span class="se">\</span>
-</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs AS sum_pgk_sgk, </span><span class="se">\</span>
-</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="s2">                    department_costs_by_project.department_costs AS vgk, </span><span class="se">\</span>
-</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs + department_costs_by_project.department_costs AS sum_all </span><span class="se">\</span>
-</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a><span class="s2">                FROM  </span><span class="se">\</span>
-</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a><span class="s2">                    vkk_project,  </span><span class="se">\</span>
-</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a><span class="s2">                    salary_costs_by_project, </span><span class="se">\</span>
-</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a><span class="s2">                    general_costs_by_project, </span><span class="se">\</span>
-</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a><span class="s2">                    department_costs_by_project </span><span class="se">\</span>
-</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a><span class="s2">                WHERE  </span><span class="se">\</span>
-</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a><span class="s2">                    vkk_project.id = salary_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a><span class="s2">                    AND salary_costs_by_project.project_id = general_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a><span class="s2">                    AND general_costs_by_project.project_id = department_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a><span class="s2">                ORDER BY vkk_project.invoice_number;&quot;</span><span class="p">,</span> 
-</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a>                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">],</span> <span class="n">periods</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]],</span>
-</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a>            <span class="p">)</span>
-</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a>            <span class="n">queryset</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
-</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a>        <span class="k">return</span> <span class="n">queryset</span>
-</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a>    
-</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a>
-</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a>    <span class="k">def</span> <span class="nf">form_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">form</span><span class="p">):</span>
-</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a><span class="sd">        Returns the result of the evaluation in shape of a `.csv` file.</span>
-</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a><span class="sd">        &quot;&quot;&quot;</span>
-</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a>        <span class="n">periods</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;periods&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">))</span>
-</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">()</span>
-</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a>        <span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_queryset</span><span class="p">(</span><span class="n">periods</span><span class="p">)</span>
-</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a>        <span class="n">response</span> <span class="o">=</span> <span class="n">HttpResponse</span><span class="p">(</span>
-</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a>            <span class="n">content_type</span><span class="o">=</span><span class="s1">&#39;text/csv&#39;</span><span class="p">,</span>
-</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a>            <span class="n">headers</span><span class="o">=</span><span class="p">{</span>
-</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a>                <span class="s1">&#39;Content-Disposition&#39;</span><span class="p">:</span> <span class="s1">&#39;attachment; filename=&quot;12345.csv&quot;&#39;</span><span class="p">},</span>
-</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a>        <span class="p">)</span>
-</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a>        <span class="n">response</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
-</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a>            <span class="n">loader</span>
-</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a>                <span class="o">.</span><span class="n">get_template</span><span class="p">(</span><span class="s1">&#39;vkk/workhours/accounting/department/evaluation.csv&#39;</span><span class="p">)</span>
-</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a>                <span class="o">.</span><span class="n">render</span><span class="p">(</span>
-</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a>                    <span class="n">context</span><span class="o">=</span><span class="n">context</span><span class="p">,</span>
-</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a>                    <span class="n">request</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span>
-</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a>                <span class="p">)</span>
-</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a>        <span class="p">)</span>
-</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a>        <span class="k">return</span> <span class="n">response</span>
+</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a><span class="s2">                        workhours_summed.project_id, </span><span class="se">\</span>
+</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a><span class="s2">                        SUM(workhours_summed.hours * salary_level_costs.brutto_per_hour) AS salary_costs </span><span class="se">\</span>
+</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a><span class="s2">                    FROM workhours_summed, salary_level_costs </span><span class="se">\</span>
+</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a><span class="s2">                    WHERE workhours_summed.salary_level_id = salary_level_costs.salary_level_id </span><span class="se">\</span>
+</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a><span class="s2">                    AND workhours_summed.period_id = salary_level_costs.period_id </span><span class="se">\</span>
+</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a><span class="s2">                    GROUP BY workhours_summed.project_id </span><span class="se">\</span>
+</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a><span class="s2">                workhours_together_summed AS ( </span><span class="se">\</span>
+</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
+</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a><span class="s2">                    FROM workhours_together </span><span class="se">\</span>
+</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a><span class="s2">                    GROUP BY project_id, period_id </span><span class="se">\</span>
+</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a><span class="s2">                general_costs_by_project AS ( </span><span class="se">\</span>
+</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a><span class="s2">                        SUM(hours * costs) AS general_costs </span><span class="se">\</span>
+</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a><span class="s2">                    FROM workhours_together_summed JOIN general_costs </span><span class="se">\</span>
+</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a><span class="s2">                    ON workhours_together_summed.period_id = general_costs.period_id </span><span class="se">\</span>
+</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
+</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a><span class="s2">                department_costs_by_project AS ( </span><span class="se">\</span>
+</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="s2">                        SUM(hours * equivalents_per_hour) AS department_costs </span><span class="se">\</span>
+</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="s2">                    FROM workhours_together_summed JOIN department_costs </span><span class="se">\</span>
+</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a><span class="s2">                    ON workhours_together_summed.period_id = department_costs.period_id </span><span class="se">\</span>
+</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
+</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a><span class="s2">                ) </span><span class="se">\</span>
+</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a><span class="s2">                SELECT </span><span class="se">\</span>
+</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a><span class="s2">                    projects.invoice_number AS projekt, </span><span class="se">\</span>
+</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a><span class="s2">                    salary_costs_by_project.salary_costs AS pgk, </span><span class="se">\</span>
+</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a><span class="s2">                    department_costs_by_project.department_costs AS sgk, </span><span class="se">\</span>
+</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a><span class="s2">                    salary_costs_by_project.salary_costs + department_costs_by_project.department_costs AS sum_pgk_sgk, </span><span class="se">\</span>
+</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a><span class="s2">                    general_costs_by_project.general_costs AS vgk, </span><span class="se">\</span>
+</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs + department_costs_by_project.department_costs AS sum_all </span><span class="se">\</span>
+</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a><span class="s2">                FROM  </span><span class="se">\</span>
+</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a><span class="s2">                    projects,  </span><span class="se">\</span>
+</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a><span class="s2">                    salary_costs_by_project, </span><span class="se">\</span>
+</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a><span class="s2">                    general_costs_by_project, </span><span class="se">\</span>
+</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a><span class="s2">                    department_costs_by_project </span><span class="se">\</span>
+</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a><span class="s2">                WHERE  </span><span class="se">\</span>
+</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a><span class="s2">                    projects.id = salary_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a><span class="s2">                    AND salary_costs_by_project.project_id = general_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a><span class="s2">                    AND general_costs_by_project.project_id = department_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a><span class="s2">                ORDER BY projects.invoice_number;&quot;</span><span class="p">,</span> 
+</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a>                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">],</span> <span class="n">periods</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]],</span>
+</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a>            <span class="p">)</span>
+</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a>            <span class="n">queryset</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
+</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a>        <span class="k">return</span> <span class="n">queryset</span>
+</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a>    
+</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a>
+</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a>    <span class="k">def</span> <span class="nf">form_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">form</span><span class="p">):</span>
+</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a><span class="sd">        Returns the result of the evaluation in shape of a `.csv` file.</span>
+</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a><span class="sd">        &quot;&quot;&quot;</span>
+</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a>        <span class="n">periods</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;periods&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">))</span>
+</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">()</span>
+</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a>        <span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_queryset</span><span class="p">(</span><span class="n">periods</span><span class="p">)</span>
+</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a>        <span class="nb">print</span><span class="p">(</span><span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a>        <span class="n">periods_string</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">periods</span><span class="p">)</span>
+</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a>        <span class="n">department_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]</span>
+</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a>        <span class="n">response</span> <span class="o">=</span> <span class="n">HttpResponse</span><span class="p">(</span>
+</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a>            <span class="n">content_type</span><span class="o">=</span><span class="s1">&#39;text/csv&#39;</span><span class="p">,</span>
+</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a>            <span class="n">headers</span><span class="o">=</span><span class="p">{</span>
+</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a>                <span class="s1">&#39;Content-Disposition&#39;</span><span class="p">:</span> <span class="sa">f</span><span class="s1">&#39;attachment; filename=&quot;</span><span class="si">{</span><span class="n">department_string</span><span class="si">}</span><span class="s1">-</span><span class="si">{</span><span class="n">periods_string</span><span class="si">}</span><span class="s1">.csv&quot;&#39;</span><span class="p">},</span>
+</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a>        <span class="p">)</span>
+</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a>        <span class="n">response</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
+</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a>            <span class="n">loader</span>
+</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a>                <span class="o">.</span><span class="n">get_template</span><span class="p">(</span><span class="s1">&#39;vkk/workhours/accounting/department/evaluation.csv&#39;</span><span class="p">)</span>
+</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a>                <span class="o">.</span><span class="n">render</span><span class="p">(</span>
+</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a>                    <span class="n">context</span><span class="o">=</span><span class="n">context</span><span class="p">,</span>
+</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a>                    <span class="n">request</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span>
+</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a>                <span class="p">)</span>
+</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a>        <span class="p">)</span>
+</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a>        <span class="k">return</span> <span class="n">response</span>
 </span></pre></div>
 
 
@@ -373,255 +385,267 @@
 </span><span id="EvaluationView-24"><a href="#EvaluationView-24"><span class="linenos"> 24</span></a><span class="sd">        Returns the result of an SQL query calculating the evaluation.</span>
 </span><span id="EvaluationView-25"><a href="#EvaluationView-25"><span class="linenos"> 25</span></a><span class="sd">        &quot;&quot;&quot;</span>
 </span><span id="EvaluationView-26"><a href="#EvaluationView-26"><span class="linenos"> 26</span></a>        <span class="k">with</span> <span class="n">connection</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span> <span class="k">as</span> <span class="n">cursor</span><span class="p">:</span>
-</span><span id="EvaluationView-27"><a href="#EvaluationView-27"><span class="linenos"> 27</span></a>            <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;WITH assignments AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-28"><a href="#EvaluationView-28"><span class="linenos"> 28</span></a><span class="s2">                    SELECT  \periodsdepartment_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
-</span><span id="EvaluationView-29"><a href="#EvaluationView-29"><span class="linenos"> 29</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-30"><a href="#EvaluationView-30"><span class="linenos"> 30</span></a><span class="s2">                workhours AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-31"><a href="#EvaluationView-31"><span class="linenos"> 31</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView-32"><a href="#EvaluationView-32"><span class="linenos"> 32</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-33"><a href="#EvaluationView-33"><span class="linenos"> 33</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="EvaluationView-34"><a href="#EvaluationView-34"><span class="linenos"> 34</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="EvaluationView-35"><a href="#EvaluationView-35"><span class="linenos"> 35</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-36"><a href="#EvaluationView-36"><span class="linenos"> 36</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-37"><a href="#EvaluationView-37"><span class="linenos"> 37</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-38"><a href="#EvaluationView-38"><span class="linenos"> 38</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView-39"><a href="#EvaluationView-39"><span class="linenos"> 39</span></a><span class="s2">                    FROM assignments JOIN vkk_workhours </span><span class="se">\</span>
-</span><span id="EvaluationView-40"><a href="#EvaluationView-40"><span class="linenos"> 40</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhours.project_assignment_id </span><span class="se">\</span>
-</span><span id="EvaluationView-41"><a href="#EvaluationView-41"><span class="linenos"> 41</span></a><span class="s2">                    UNION </span><span class="se">\</span>
-</span><span id="EvaluationView-42"><a href="#EvaluationView-42"><span class="linenos"> 42</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView-43"><a href="#EvaluationView-43"><span class="linenos"> 43</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-44"><a href="#EvaluationView-44"><span class="linenos"> 44</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="EvaluationView-45"><a href="#EvaluationView-45"><span class="linenos"> 45</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="EvaluationView-46"><a href="#EvaluationView-46"><span class="linenos"> 46</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-47"><a href="#EvaluationView-47"><span class="linenos"> 47</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-48"><a href="#EvaluationView-48"><span class="linenos"> 48</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-49"><a href="#EvaluationView-49"><span class="linenos"> 49</span></a><span class="s2">                        ammount AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView-50"><a href="#EvaluationView-50"><span class="linenos"> 50</span></a><span class="s2">                    FROM assignments JOIN vkk_workhourscorrection </span><span class="se">\</span>
-</span><span id="EvaluationView-51"><a href="#EvaluationView-51"><span class="linenos"> 51</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhourscorrection.project_assignment_id </span><span class="se">\</span>
-</span><span id="EvaluationView-52"><a href="#EvaluationView-52"><span class="linenos"> 52</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-53"><a href="#EvaluationView-53"><span class="linenos"> 53</span></a><span class="s2">                periods AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-54"><a href="#EvaluationView-54"><span class="linenos"> 54</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView-55"><a href="#EvaluationView-55"><span class="linenos"> 55</span></a><span class="s2">                        vkk_period.id, </span><span class="se">\</span>
-</span><span id="EvaluationView-56"><a href="#EvaluationView-56"><span class="linenos"> 56</span></a><span class="s2">                        vkk_period.start, </span><span class="se">\</span>
-</span><span id="EvaluationView-57"><a href="#EvaluationView-57"><span class="linenos"> 57</span></a><span class="s2">                        vkk_period.end </span><span class="se">\</span>
-</span><span id="EvaluationView-58"><a href="#EvaluationView-58"><span class="linenos"> 58</span></a><span class="s2">                    FROM vkk_period </span><span class="se">\</span>
-</span><span id="EvaluationView-59"><a href="#EvaluationView-59"><span class="linenos"> 59</span></a><span class="s2">                    WHERE id IN </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
-</span><span id="EvaluationView-60"><a href="#EvaluationView-60"><span class="linenos"> 60</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-61"><a href="#EvaluationView-61"><span class="linenos"> 61</span></a><span class="s2">                workhours_bounded AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-62"><a href="#EvaluationView-62"><span class="linenos"> 62</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-63"><a href="#EvaluationView-63"><span class="linenos"> 63</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-64"><a href="#EvaluationView-64"><span class="linenos"> 64</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="EvaluationView-65"><a href="#EvaluationView-65"><span class="linenos"> 65</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="EvaluationView-66"><a href="#EvaluationView-66"><span class="linenos"> 66</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-67"><a href="#EvaluationView-67"><span class="linenos"> 67</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-68"><a href="#EvaluationView-68"><span class="linenos"> 68</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-69"><a href="#EvaluationView-69"><span class="linenos"> 69</span></a><span class="s2">                        periods.start AS period_start, </span><span class="se">\</span>
-</span><span id="EvaluationView-70"><a href="#EvaluationView-70"><span class="linenos"> 70</span></a><span class="s2">                        periods.end AS period_end, </span><span class="se">\</span>
-</span><span id="EvaluationView-71"><a href="#EvaluationView-71"><span class="linenos"> 71</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView-72"><a href="#EvaluationView-72"><span class="linenos"> 72</span></a><span class="s2">                    FROM workhours JOIN periods </span><span class="se">\</span>
-</span><span id="EvaluationView-73"><a href="#EvaluationView-73"><span class="linenos"> 73</span></a><span class="s2">                    ON workhours.period_id = periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView-74"><a href="#EvaluationView-74"><span class="linenos"> 74</span></a><span class="s2">                    WHERE  </span><span class="se">\</span>
-</span><span id="EvaluationView-75"><a href="#EvaluationView-75"><span class="linenos"> 75</span></a><span class="s2">                        periods.end &gt;= workhours.project_start </span><span class="se">\</span>
-</span><span id="EvaluationView-76"><a href="#EvaluationView-76"><span class="linenos"> 76</span></a><span class="s2">                        AND periods.start &lt;= workhours.project_end </span><span class="se">\</span>
-</span><span id="EvaluationView-77"><a href="#EvaluationView-77"><span class="linenos"> 77</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-78"><a href="#EvaluationView-78"><span class="linenos"> 78</span></a><span class="s2">                workhours_summed AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-79"><a href="#EvaluationView-79"><span class="linenos"> 79</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView-80"><a href="#EvaluationView-80"><span class="linenos"> 80</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-81"><a href="#EvaluationView-81"><span class="linenos"> 81</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-82"><a href="#EvaluationView-82"><span class="linenos"> 82</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-83"><a href="#EvaluationView-83"><span class="linenos"> 83</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView-84"><a href="#EvaluationView-84"><span class="linenos"> 84</span></a><span class="s2">                    FROM workhours_bounded </span><span class="se">\</span>
-</span><span id="EvaluationView-85"><a href="#EvaluationView-85"><span class="linenos"> 85</span></a><span class="s2">                    GROUP BY  </span><span class="se">\</span>
-</span><span id="EvaluationView-86"><a href="#EvaluationView-86"><span class="linenos"> 86</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-87"><a href="#EvaluationView-87"><span class="linenos"> 87</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-88"><a href="#EvaluationView-88"><span class="linenos"> 88</span></a><span class="s2">                        period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-89"><a href="#EvaluationView-89"><span class="linenos"> 89</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-90"><a href="#EvaluationView-90"><span class="linenos"> 90</span></a><span class="s2">                salary_dates AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-91"><a href="#EvaluationView-91"><span class="linenos"> 91</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-92"><a href="#EvaluationView-92"><span class="linenos"> 92</span></a><span class="s2">                        vkk_salaryleveldate.id AS salary_date_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-93"><a href="#EvaluationView-93"><span class="linenos"> 93</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-94"><a href="#EvaluationView-94"><span class="linenos"> 94</span></a><span class="s2">                    FROM vkk_salaryleveldate JOIN ( </span><span class="se">\</span>
-</span><span id="EvaluationView-95"><a href="#EvaluationView-95"><span class="linenos"> 95</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-96"><a href="#EvaluationView-96"><span class="linenos"> 96</span></a><span class="s2">                            MAX(vkk_salaryleveldate.date) AS salary_date, </span><span class="se">\</span>
-</span><span id="EvaluationView-97"><a href="#EvaluationView-97"><span class="linenos"> 97</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-98"><a href="#EvaluationView-98"><span class="linenos"> 98</span></a><span class="s2">                        FROM vkk_salaryleveldate, periods </span><span class="se">\</span>
-</span><span id="EvaluationView-99"><a href="#EvaluationView-99"><span class="linenos"> 99</span></a><span class="s2">                        WHERE vkk_salaryleveldate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView-100"><a href="#EvaluationView-100"><span class="linenos">100</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView-101"><a href="#EvaluationView-101"><span class="linenos">101</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView-102"><a href="#EvaluationView-102"><span class="linenos">102</span></a><span class="s2">                    ON vkk_salaryleveldate.date = p.salary_date </span><span class="se">\</span>
-</span><span id="EvaluationView-103"><a href="#EvaluationView-103"><span class="linenos">103</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-104"><a href="#EvaluationView-104"><span class="linenos">104</span></a><span class="s2">                department_dates AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-105"><a href="#EvaluationView-105"><span class="linenos">105</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-106"><a href="#EvaluationView-106"><span class="linenos">106</span></a><span class="s2">                        vkk_departmentdate.id AS departmentdate_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-107"><a href="#EvaluationView-107"><span class="linenos">107</span></a><span class="s2">                        p.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-108"><a href="#EvaluationView-108"><span class="linenos">108</span></a><span class="s2">                    FROM vkk_departmentdate JOIN ( </span><span class="se">\</span>
-</span><span id="EvaluationView-109"><a href="#EvaluationView-109"><span class="linenos">109</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-110"><a href="#EvaluationView-110"><span class="linenos">110</span></a><span class="s2">                            MAX(vkk_departmentdate.date) AS department_date, </span><span class="se">\</span>
-</span><span id="EvaluationView-111"><a href="#EvaluationView-111"><span class="linenos">111</span></a><span class="s2">                            periods.id AS id </span><span class="se">\</span>
-</span><span id="EvaluationView-112"><a href="#EvaluationView-112"><span class="linenos">112</span></a><span class="s2">                        FROM vkk_departmentdate, periods </span><span class="se">\</span>
-</span><span id="EvaluationView-113"><a href="#EvaluationView-113"><span class="linenos">113</span></a><span class="s2">                        WHERE vkk_departmentdate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView-114"><a href="#EvaluationView-114"><span class="linenos">114</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView-115"><a href="#EvaluationView-115"><span class="linenos">115</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView-116"><a href="#EvaluationView-116"><span class="linenos">116</span></a><span class="s2">                    ON vkk_departmentdate.date = p.department_date </span><span class="se">\</span>
-</span><span id="EvaluationView-117"><a href="#EvaluationView-117"><span class="linenos">117</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-118"><a href="#EvaluationView-118"><span class="linenos">118</span></a><span class="s2">                project_funded_staff_date AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-119"><a href="#EvaluationView-119"><span class="linenos">119</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-120"><a href="#EvaluationView-120"><span class="linenos">120</span></a><span class="s2">                        vkk_projectfundedstaffdate.id, </span><span class="se">\</span>
-</span><span id="EvaluationView-121"><a href="#EvaluationView-121"><span class="linenos">121</span></a><span class="s2">                        p.project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-122"><a href="#EvaluationView-122"><span class="linenos">122</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-123"><a href="#EvaluationView-123"><span class="linenos">123</span></a><span class="s2">                    FROM vkk_projectfundedstaffdate, ( </span><span class="se">\</span>
-</span><span id="EvaluationView-124"><a href="#EvaluationView-124"><span class="linenos">124</span></a><span class="s2">                            SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-125"><a href="#EvaluationView-125"><span class="linenos">125</span></a><span class="s2">                                MAX(vkk_projectfundedstaffdate.date) AS staff_date, </span><span class="se">\</span>
-</span><span id="EvaluationView-126"><a href="#EvaluationView-126"><span class="linenos">126</span></a><span class="s2">                                project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-127"><a href="#EvaluationView-127"><span class="linenos">127</span></a><span class="s2">                                periods.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-128"><a href="#EvaluationView-128"><span class="linenos">128</span></a><span class="s2">                            FROM vkk_projectfundedstaffdate, periods </span><span class="se">\</span>
-</span><span id="EvaluationView-129"><a href="#EvaluationView-129"><span class="linenos">129</span></a><span class="s2">                            WHERE vkk_projectfundedstaffdate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView-130"><a href="#EvaluationView-130"><span class="linenos">130</span></a><span class="s2">                            GROUP BY project_id, periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView-131"><a href="#EvaluationView-131"><span class="linenos">131</span></a><span class="s2">                        ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView-132"><a href="#EvaluationView-132"><span class="linenos">132</span></a><span class="s2">                    WHERE </span><span class="se">\</span>
-</span><span id="EvaluationView-133"><a href="#EvaluationView-133"><span class="linenos">133</span></a><span class="s2">                        vkk_projectfundedstaffdate.date = p.staff_date </span><span class="se">\</span>
-</span><span id="EvaluationView-134"><a href="#EvaluationView-134"><span class="linenos">134</span></a><span class="s2">                        AND vkk_projectfundedstaffdate.project_id = p.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView-135"><a href="#EvaluationView-135"><span class="linenos">135</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-136"><a href="#EvaluationView-136"><span class="linenos">136</span></a><span class="s2">                general_costs AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-137"><a href="#EvaluationView-137"><span class="linenos">137</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-138"><a href="#EvaluationView-138"><span class="linenos">138</span></a><span class="s2">                        vkk_generalcosts.costs, </span><span class="se">\</span>
-</span><span id="EvaluationView-139"><a href="#EvaluationView-139"><span class="linenos">139</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-140"><a href="#EvaluationView-140"><span class="linenos">140</span></a><span class="s2">                    FROM vkk_generalcosts JOIN ( </span><span class="se">\</span>
-</span><span id="EvaluationView-141"><a href="#EvaluationView-141"><span class="linenos">141</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-142"><a href="#EvaluationView-142"><span class="linenos">142</span></a><span class="s2">                            MAX(vkk_generalcosts.start) AS general_costs_date, </span><span class="se">\</span>
-</span><span id="EvaluationView-143"><a href="#EvaluationView-143"><span class="linenos">143</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-144"><a href="#EvaluationView-144"><span class="linenos">144</span></a><span class="s2">                        FROM vkk_generalcosts, periods </span><span class="se">\</span>
-</span><span id="EvaluationView-145"><a href="#EvaluationView-145"><span class="linenos">145</span></a><span class="s2">                        WHERE vkk_generalcosts.start &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView-146"><a href="#EvaluationView-146"><span class="linenos">146</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView-147"><a href="#EvaluationView-147"><span class="linenos">147</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView-148"><a href="#EvaluationView-148"><span class="linenos">148</span></a><span class="s2">                    ON vkk_generalcosts.start = p.general_costs_date </span><span class="se">\</span>
-</span><span id="EvaluationView-149"><a href="#EvaluationView-149"><span class="linenos">149</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-150"><a href="#EvaluationView-150"><span class="linenos">150</span></a><span class="s2">                salary_level_costs AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-151"><a href="#EvaluationView-151"><span class="linenos">151</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-152"><a href="#EvaluationView-152"><span class="linenos">152</span></a><span class="s2">                        vkk_salarylevelcosts.salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-153"><a href="#EvaluationView-153"><span class="linenos">153</span></a><span class="s2">                        vkk_salarylevelcosts.brutto_per_hour, </span><span class="se">\</span>
-</span><span id="EvaluationView-154"><a href="#EvaluationView-154"><span class="linenos">154</span></a><span class="s2">                        salary_dates.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-155"><a href="#EvaluationView-155"><span class="linenos">155</span></a><span class="s2">                    FROM vkk_salarylevelcosts JOIN salary_dates </span><span class="se">\</span>
-</span><span id="EvaluationView-156"><a href="#EvaluationView-156"><span class="linenos">156</span></a><span class="s2">                    ON vkk_salarylevelcosts.start_id = salary_dates.salary_date_id </span><span class="se">\</span>
-</span><span id="EvaluationView-157"><a href="#EvaluationView-157"><span class="linenos">157</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-158"><a href="#EvaluationView-158"><span class="linenos">158</span></a><span class="s2">                department_costs AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-159"><a href="#EvaluationView-159"><span class="linenos">159</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-160"><a href="#EvaluationView-160"><span class="linenos">160</span></a><span class="s2">                        vkk_departmentcosts.equivalents_per_hour, </span><span class="se">\</span>
-</span><span id="EvaluationView-161"><a href="#EvaluationView-161"><span class="linenos">161</span></a><span class="s2">                        department_dates.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-162"><a href="#EvaluationView-162"><span class="linenos">162</span></a><span class="s2">                    FROM vkk_departmentcosts JOIN department_dates </span><span class="se">\</span>
-</span><span id="EvaluationView-163"><a href="#EvaluationView-163"><span class="linenos">163</span></a><span class="s2">                    ON vkk_departmentcosts.start_id = department_dates.departmentdate_id </span><span class="se">\</span>
-</span><span id="EvaluationView-164"><a href="#EvaluationView-164"><span class="linenos">164</span></a><span class="s2">                    WHERE department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView-27"><a href="#EvaluationView-27"><span class="linenos"> 27</span></a>            <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;WITH projects AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-28"><a href="#EvaluationView-28"><span class="linenos"> 28</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-29"><a href="#EvaluationView-29"><span class="linenos"> 29</span></a><span class="s2">                        vkk_project.id, </span><span class="se">\</span>
+</span><span id="EvaluationView-30"><a href="#EvaluationView-30"><span class="linenos"> 30</span></a><span class="s2">                        vkk_project.start, </span><span class="se">\</span>
+</span><span id="EvaluationView-31"><a href="#EvaluationView-31"><span class="linenos"> 31</span></a><span class="s2">                        vkk_project.end, </span><span class="se">\</span>
+</span><span id="EvaluationView-32"><a href="#EvaluationView-32"><span class="linenos"> 32</span></a><span class="s2">                        vkk_project.invoice_number </span><span class="se">\</span>
+</span><span id="EvaluationView-33"><a href="#EvaluationView-33"><span class="linenos"> 33</span></a><span class="s2">                    FROM vkk_project </span><span class="se">\</span>
+</span><span id="EvaluationView-34"><a href="#EvaluationView-34"><span class="linenos"> 34</span></a><span class="s2">                    WHERE vkk_project.department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView-35"><a href="#EvaluationView-35"><span class="linenos"> 35</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-36"><a href="#EvaluationView-36"><span class="linenos"> 36</span></a><span class="s2">                assignments AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-37"><a href="#EvaluationView-37"><span class="linenos"> 37</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-38"><a href="#EvaluationView-38"><span class="linenos"> 38</span></a><span class="s2">                        projects.id AS project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-39"><a href="#EvaluationView-39"><span class="linenos"> 39</span></a><span class="s2">                        projects.start AS project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView-40"><a href="#EvaluationView-40"><span class="linenos"> 40</span></a><span class="s2">                        projects.end AS project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView-41"><a href="#EvaluationView-41"><span class="linenos"> 41</span></a><span class="s2">                        vkk_projectassignment.id AS assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-42"><a href="#EvaluationView-42"><span class="linenos"> 42</span></a><span class="s2">                        salary_level_id </span><span class="se">\</span>
+</span><span id="EvaluationView-43"><a href="#EvaluationView-43"><span class="linenos"> 43</span></a><span class="s2">                    FROM projects JOIN vkk_projectassignment </span><span class="se">\</span>
+</span><span id="EvaluationView-44"><a href="#EvaluationView-44"><span class="linenos"> 44</span></a><span class="s2">                        ON projects.id = vkk_projectassignment.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-45"><a href="#EvaluationView-45"><span class="linenos"> 45</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-46"><a href="#EvaluationView-46"><span class="linenos"> 46</span></a><span class="s2">                workhours AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-47"><a href="#EvaluationView-47"><span class="linenos"> 47</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-48"><a href="#EvaluationView-48"><span class="linenos"> 48</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-49"><a href="#EvaluationView-49"><span class="linenos"> 49</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView-50"><a href="#EvaluationView-50"><span class="linenos"> 50</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView-51"><a href="#EvaluationView-51"><span class="linenos"> 51</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-52"><a href="#EvaluationView-52"><span class="linenos"> 52</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-53"><a href="#EvaluationView-53"><span class="linenos"> 53</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-54"><a href="#EvaluationView-54"><span class="linenos"> 54</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView-55"><a href="#EvaluationView-55"><span class="linenos"> 55</span></a><span class="s2">                    FROM assignments JOIN vkk_workhours </span><span class="se">\</span>
+</span><span id="EvaluationView-56"><a href="#EvaluationView-56"><span class="linenos"> 56</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhours.project_assignment_id </span><span class="se">\</span>
+</span><span id="EvaluationView-57"><a href="#EvaluationView-57"><span class="linenos"> 57</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="EvaluationView-58"><a href="#EvaluationView-58"><span class="linenos"> 58</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-59"><a href="#EvaluationView-59"><span class="linenos"> 59</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-60"><a href="#EvaluationView-60"><span class="linenos"> 60</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView-61"><a href="#EvaluationView-61"><span class="linenos"> 61</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView-62"><a href="#EvaluationView-62"><span class="linenos"> 62</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-63"><a href="#EvaluationView-63"><span class="linenos"> 63</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-64"><a href="#EvaluationView-64"><span class="linenos"> 64</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-65"><a href="#EvaluationView-65"><span class="linenos"> 65</span></a><span class="s2">                        ammount AS hours </span><span class="se">\</span>
+</span><span id="EvaluationView-66"><a href="#EvaluationView-66"><span class="linenos"> 66</span></a><span class="s2">                    FROM assignments JOIN vkk_workhourscorrection </span><span class="se">\</span>
+</span><span id="EvaluationView-67"><a href="#EvaluationView-67"><span class="linenos"> 67</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhourscorrection.project_assignment_id </span><span class="se">\</span>
+</span><span id="EvaluationView-68"><a href="#EvaluationView-68"><span class="linenos"> 68</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-69"><a href="#EvaluationView-69"><span class="linenos"> 69</span></a><span class="s2">                periods AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-70"><a href="#EvaluationView-70"><span class="linenos"> 70</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-71"><a href="#EvaluationView-71"><span class="linenos"> 71</span></a><span class="s2">                        vkk_period.id, </span><span class="se">\</span>
+</span><span id="EvaluationView-72"><a href="#EvaluationView-72"><span class="linenos"> 72</span></a><span class="s2">                        vkk_period.start, </span><span class="se">\</span>
+</span><span id="EvaluationView-73"><a href="#EvaluationView-73"><span class="linenos"> 73</span></a><span class="s2">                        vkk_period.end </span><span class="se">\</span>
+</span><span id="EvaluationView-74"><a href="#EvaluationView-74"><span class="linenos"> 74</span></a><span class="s2">                    FROM vkk_period </span><span class="se">\</span>
+</span><span id="EvaluationView-75"><a href="#EvaluationView-75"><span class="linenos"> 75</span></a><span class="s2">                    WHERE id IN </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView-76"><a href="#EvaluationView-76"><span class="linenos"> 76</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-77"><a href="#EvaluationView-77"><span class="linenos"> 77</span></a><span class="s2">                workhours_bounded AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-78"><a href="#EvaluationView-78"><span class="linenos"> 78</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-79"><a href="#EvaluationView-79"><span class="linenos"> 79</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-80"><a href="#EvaluationView-80"><span class="linenos"> 80</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView-81"><a href="#EvaluationView-81"><span class="linenos"> 81</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView-82"><a href="#EvaluationView-82"><span class="linenos"> 82</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-83"><a href="#EvaluationView-83"><span class="linenos"> 83</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-84"><a href="#EvaluationView-84"><span class="linenos"> 84</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-85"><a href="#EvaluationView-85"><span class="linenos"> 85</span></a><span class="s2">                        periods.start AS period_start, </span><span class="se">\</span>
+</span><span id="EvaluationView-86"><a href="#EvaluationView-86"><span class="linenos"> 86</span></a><span class="s2">                        periods.end AS period_end, </span><span class="se">\</span>
+</span><span id="EvaluationView-87"><a href="#EvaluationView-87"><span class="linenos"> 87</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView-88"><a href="#EvaluationView-88"><span class="linenos"> 88</span></a><span class="s2">                    FROM workhours JOIN periods </span><span class="se">\</span>
+</span><span id="EvaluationView-89"><a href="#EvaluationView-89"><span class="linenos"> 89</span></a><span class="s2">                    ON workhours.period_id = periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView-90"><a href="#EvaluationView-90"><span class="linenos"> 90</span></a><span class="s2">                    WHERE  </span><span class="se">\</span>
+</span><span id="EvaluationView-91"><a href="#EvaluationView-91"><span class="linenos"> 91</span></a><span class="s2">                        periods.end &gt; workhours.project_start </span><span class="se">\</span>
+</span><span id="EvaluationView-92"><a href="#EvaluationView-92"><span class="linenos"> 92</span></a><span class="s2">                        AND periods.start &lt;= workhours.project_end </span><span class="se">\</span>
+</span><span id="EvaluationView-93"><a href="#EvaluationView-93"><span class="linenos"> 93</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-94"><a href="#EvaluationView-94"><span class="linenos"> 94</span></a><span class="s2">                workhours_summed AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-95"><a href="#EvaluationView-95"><span class="linenos"> 95</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-96"><a href="#EvaluationView-96"><span class="linenos"> 96</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-97"><a href="#EvaluationView-97"><span class="linenos"> 97</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-98"><a href="#EvaluationView-98"><span class="linenos"> 98</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-99"><a href="#EvaluationView-99"><span class="linenos"> 99</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
+</span><span id="EvaluationView-100"><a href="#EvaluationView-100"><span class="linenos">100</span></a><span class="s2">                    FROM workhours_bounded </span><span class="se">\</span>
+</span><span id="EvaluationView-101"><a href="#EvaluationView-101"><span class="linenos">101</span></a><span class="s2">                    GROUP BY  </span><span class="se">\</span>
+</span><span id="EvaluationView-102"><a href="#EvaluationView-102"><span class="linenos">102</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-103"><a href="#EvaluationView-103"><span class="linenos">103</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-104"><a href="#EvaluationView-104"><span class="linenos">104</span></a><span class="s2">                        period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-105"><a href="#EvaluationView-105"><span class="linenos">105</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-106"><a href="#EvaluationView-106"><span class="linenos">106</span></a><span class="s2">                salary_dates AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-107"><a href="#EvaluationView-107"><span class="linenos">107</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-108"><a href="#EvaluationView-108"><span class="linenos">108</span></a><span class="s2">                        vkk_salaryleveldate.id AS salary_date_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-109"><a href="#EvaluationView-109"><span class="linenos">109</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-110"><a href="#EvaluationView-110"><span class="linenos">110</span></a><span class="s2">                    FROM vkk_salaryleveldate JOIN ( </span><span class="se">\</span>
+</span><span id="EvaluationView-111"><a href="#EvaluationView-111"><span class="linenos">111</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-112"><a href="#EvaluationView-112"><span class="linenos">112</span></a><span class="s2">                            MAX(vkk_salaryleveldate.date) AS salary_date, </span><span class="se">\</span>
+</span><span id="EvaluationView-113"><a href="#EvaluationView-113"><span class="linenos">113</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-114"><a href="#EvaluationView-114"><span class="linenos">114</span></a><span class="s2">                        FROM vkk_salaryleveldate, periods </span><span class="se">\</span>
+</span><span id="EvaluationView-115"><a href="#EvaluationView-115"><span class="linenos">115</span></a><span class="s2">                        WHERE vkk_salaryleveldate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView-116"><a href="#EvaluationView-116"><span class="linenos">116</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView-117"><a href="#EvaluationView-117"><span class="linenos">117</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView-118"><a href="#EvaluationView-118"><span class="linenos">118</span></a><span class="s2">                    ON vkk_salaryleveldate.date = p.salary_date </span><span class="se">\</span>
+</span><span id="EvaluationView-119"><a href="#EvaluationView-119"><span class="linenos">119</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-120"><a href="#EvaluationView-120"><span class="linenos">120</span></a><span class="s2">                department_dates AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-121"><a href="#EvaluationView-121"><span class="linenos">121</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-122"><a href="#EvaluationView-122"><span class="linenos">122</span></a><span class="s2">                        vkk_departmentdate.id AS departmentdate_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-123"><a href="#EvaluationView-123"><span class="linenos">123</span></a><span class="s2">                        p.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-124"><a href="#EvaluationView-124"><span class="linenos">124</span></a><span class="s2">                    FROM vkk_departmentdate JOIN ( </span><span class="se">\</span>
+</span><span id="EvaluationView-125"><a href="#EvaluationView-125"><span class="linenos">125</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-126"><a href="#EvaluationView-126"><span class="linenos">126</span></a><span class="s2">                            MAX(vkk_departmentdate.date) AS department_date, </span><span class="se">\</span>
+</span><span id="EvaluationView-127"><a href="#EvaluationView-127"><span class="linenos">127</span></a><span class="s2">                            periods.id AS id </span><span class="se">\</span>
+</span><span id="EvaluationView-128"><a href="#EvaluationView-128"><span class="linenos">128</span></a><span class="s2">                        FROM vkk_departmentdate, periods </span><span class="se">\</span>
+</span><span id="EvaluationView-129"><a href="#EvaluationView-129"><span class="linenos">129</span></a><span class="s2">                        WHERE vkk_departmentdate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView-130"><a href="#EvaluationView-130"><span class="linenos">130</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView-131"><a href="#EvaluationView-131"><span class="linenos">131</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView-132"><a href="#EvaluationView-132"><span class="linenos">132</span></a><span class="s2">                    ON vkk_departmentdate.date = p.department_date </span><span class="se">\</span>
+</span><span id="EvaluationView-133"><a href="#EvaluationView-133"><span class="linenos">133</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-134"><a href="#EvaluationView-134"><span class="linenos">134</span></a><span class="s2">                project_funded_staff_date AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-135"><a href="#EvaluationView-135"><span class="linenos">135</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-136"><a href="#EvaluationView-136"><span class="linenos">136</span></a><span class="s2">                        vkk_projectfundedstaffdate.id, </span><span class="se">\</span>
+</span><span id="EvaluationView-137"><a href="#EvaluationView-137"><span class="linenos">137</span></a><span class="s2">                        p.project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-138"><a href="#EvaluationView-138"><span class="linenos">138</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-139"><a href="#EvaluationView-139"><span class="linenos">139</span></a><span class="s2">                    FROM vkk_projectfundedstaffdate, ( </span><span class="se">\</span>
+</span><span id="EvaluationView-140"><a href="#EvaluationView-140"><span class="linenos">140</span></a><span class="s2">                            SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-141"><a href="#EvaluationView-141"><span class="linenos">141</span></a><span class="s2">                                MAX(vkk_projectfundedstaffdate.date) AS staff_date, </span><span class="se">\</span>
+</span><span id="EvaluationView-142"><a href="#EvaluationView-142"><span class="linenos">142</span></a><span class="s2">                                project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-143"><a href="#EvaluationView-143"><span class="linenos">143</span></a><span class="s2">                                periods.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-144"><a href="#EvaluationView-144"><span class="linenos">144</span></a><span class="s2">                            FROM vkk_projectfundedstaffdate, periods </span><span class="se">\</span>
+</span><span id="EvaluationView-145"><a href="#EvaluationView-145"><span class="linenos">145</span></a><span class="s2">                            WHERE vkk_projectfundedstaffdate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView-146"><a href="#EvaluationView-146"><span class="linenos">146</span></a><span class="s2">                            GROUP BY project_id, periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView-147"><a href="#EvaluationView-147"><span class="linenos">147</span></a><span class="s2">                        ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView-148"><a href="#EvaluationView-148"><span class="linenos">148</span></a><span class="s2">                    WHERE </span><span class="se">\</span>
+</span><span id="EvaluationView-149"><a href="#EvaluationView-149"><span class="linenos">149</span></a><span class="s2">                        vkk_projectfundedstaffdate.date = p.staff_date </span><span class="se">\</span>
+</span><span id="EvaluationView-150"><a href="#EvaluationView-150"><span class="linenos">150</span></a><span class="s2">                        AND vkk_projectfundedstaffdate.project_id = p.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-151"><a href="#EvaluationView-151"><span class="linenos">151</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-152"><a href="#EvaluationView-152"><span class="linenos">152</span></a><span class="s2">                general_costs AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-153"><a href="#EvaluationView-153"><span class="linenos">153</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-154"><a href="#EvaluationView-154"><span class="linenos">154</span></a><span class="s2">                        vkk_generalcosts.costs, </span><span class="se">\</span>
+</span><span id="EvaluationView-155"><a href="#EvaluationView-155"><span class="linenos">155</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-156"><a href="#EvaluationView-156"><span class="linenos">156</span></a><span class="s2">                    FROM vkk_generalcosts JOIN ( </span><span class="se">\</span>
+</span><span id="EvaluationView-157"><a href="#EvaluationView-157"><span class="linenos">157</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-158"><a href="#EvaluationView-158"><span class="linenos">158</span></a><span class="s2">                            MAX(vkk_generalcosts.start) AS general_costs_date, </span><span class="se">\</span>
+</span><span id="EvaluationView-159"><a href="#EvaluationView-159"><span class="linenos">159</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-160"><a href="#EvaluationView-160"><span class="linenos">160</span></a><span class="s2">                        FROM vkk_generalcosts, periods </span><span class="se">\</span>
+</span><span id="EvaluationView-161"><a href="#EvaluationView-161"><span class="linenos">161</span></a><span class="s2">                        WHERE vkk_generalcosts.start &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView-162"><a href="#EvaluationView-162"><span class="linenos">162</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView-163"><a href="#EvaluationView-163"><span class="linenos">163</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView-164"><a href="#EvaluationView-164"><span class="linenos">164</span></a><span class="s2">                    ON vkk_generalcosts.start = p.general_costs_date </span><span class="se">\</span>
 </span><span id="EvaluationView-165"><a href="#EvaluationView-165"><span class="linenos">165</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-166"><a href="#EvaluationView-166"><span class="linenos">166</span></a><span class="s2">                project_funded_staff AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-166"><a href="#EvaluationView-166"><span class="linenos">166</span></a><span class="s2">                salary_level_costs AS ( </span><span class="se">\</span>
 </span><span id="EvaluationView-167"><a href="#EvaluationView-167"><span class="linenos">167</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-168"><a href="#EvaluationView-168"><span class="linenos">168</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-169"><a href="#EvaluationView-169"><span class="linenos">169</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-170"><a href="#EvaluationView-170"><span class="linenos">170</span></a><span class="s2">                        vkk_projectfundedstaff.salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-171"><a href="#EvaluationView-171"><span class="linenos">171</span></a><span class="s2">                        vkk_projectfundedstaff.hours </span><span class="se">\</span>
-</span><span id="EvaluationView-172"><a href="#EvaluationView-172"><span class="linenos">172</span></a><span class="s2">                    FROM project_funded_staff_date JOIN vkk_projectfundedstaff </span><span class="se">\</span>
-</span><span id="EvaluationView-173"><a href="#EvaluationView-173"><span class="linenos">173</span></a><span class="s2">                    ON project_funded_staff_date.id = vkk_projectfundedstaff.start_id </span><span class="se">\</span>
-</span><span id="EvaluationView-174"><a href="#EvaluationView-174"><span class="linenos">174</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-175"><a href="#EvaluationView-175"><span class="linenos">175</span></a><span class="s2">                workhours_together AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-176"><a href="#EvaluationView-176"><span class="linenos">176</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView-177"><a href="#EvaluationView-177"><span class="linenos">177</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-178"><a href="#EvaluationView-178"><span class="linenos">178</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-179"><a href="#EvaluationView-179"><span class="linenos">179</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-180"><a href="#EvaluationView-180"><span class="linenos">180</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView-181"><a href="#EvaluationView-181"><span class="linenos">181</span></a><span class="s2">                    FROM workhours_summed </span><span class="se">\</span>
-</span><span id="EvaluationView-182"><a href="#EvaluationView-182"><span class="linenos">182</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="EvaluationView-168"><a href="#EvaluationView-168"><span class="linenos">168</span></a><span class="s2">                        vkk_salarylevelcosts.salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-169"><a href="#EvaluationView-169"><span class="linenos">169</span></a><span class="s2">                        vkk_salarylevelcosts.brutto_per_hour, </span><span class="se">\</span>
+</span><span id="EvaluationView-170"><a href="#EvaluationView-170"><span class="linenos">170</span></a><span class="s2">                        salary_dates.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-171"><a href="#EvaluationView-171"><span class="linenos">171</span></a><span class="s2">                    FROM vkk_salarylevelcosts JOIN salary_dates </span><span class="se">\</span>
+</span><span id="EvaluationView-172"><a href="#EvaluationView-172"><span class="linenos">172</span></a><span class="s2">                    ON vkk_salarylevelcosts.start_id = salary_dates.salary_date_id </span><span class="se">\</span>
+</span><span id="EvaluationView-173"><a href="#EvaluationView-173"><span class="linenos">173</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-174"><a href="#EvaluationView-174"><span class="linenos">174</span></a><span class="s2">                department_costs AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-175"><a href="#EvaluationView-175"><span class="linenos">175</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-176"><a href="#EvaluationView-176"><span class="linenos">176</span></a><span class="s2">                        vkk_departmentcosts.equivalents_per_hour, </span><span class="se">\</span>
+</span><span id="EvaluationView-177"><a href="#EvaluationView-177"><span class="linenos">177</span></a><span class="s2">                        department_dates.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-178"><a href="#EvaluationView-178"><span class="linenos">178</span></a><span class="s2">                    FROM vkk_departmentcosts JOIN department_dates </span><span class="se">\</span>
+</span><span id="EvaluationView-179"><a href="#EvaluationView-179"><span class="linenos">179</span></a><span class="s2">                    ON vkk_departmentcosts.start_id = department_dates.departmentdate_id </span><span class="se">\</span>
+</span><span id="EvaluationView-180"><a href="#EvaluationView-180"><span class="linenos">180</span></a><span class="s2">                    WHERE department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView-181"><a href="#EvaluationView-181"><span class="linenos">181</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-182"><a href="#EvaluationView-182"><span class="linenos">182</span></a><span class="s2">                project_funded_staff AS ( </span><span class="se">\</span>
 </span><span id="EvaluationView-183"><a href="#EvaluationView-183"><span class="linenos">183</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
 </span><span id="EvaluationView-184"><a href="#EvaluationView-184"><span class="linenos">184</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
 </span><span id="EvaluationView-185"><a href="#EvaluationView-185"><span class="linenos">185</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-186"><a href="#EvaluationView-186"><span class="linenos">186</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-187"><a href="#EvaluationView-187"><span class="linenos">187</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView-188"><a href="#EvaluationView-188"><span class="linenos">188</span></a><span class="s2">                    FROM project_funded_staff </span><span class="se">\</span>
-</span><span id="EvaluationView-189"><a href="#EvaluationView-189"><span class="linenos">189</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-190"><a href="#EvaluationView-190"><span class="linenos">190</span></a><span class="s2">                workhours_together_summed_salary AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-191"><a href="#EvaluationView-191"><span class="linenos">191</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-192"><a href="#EvaluationView-192"><span class="linenos">192</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-193"><a href="#EvaluationView-193"><span class="linenos">193</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-194"><a href="#EvaluationView-194"><span class="linenos">194</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-195"><a href="#EvaluationView-195"><span class="linenos">195</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView-196"><a href="#EvaluationView-196"><span class="linenos">196</span></a><span class="s2">                    FROM workhours_together </span><span class="se">\</span>
-</span><span id="EvaluationView-197"><a href="#EvaluationView-197"><span class="linenos">197</span></a><span class="s2">                    GROUP BY project_id, salary_level_id, period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-198"><a href="#EvaluationView-198"><span class="linenos">198</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-199"><a href="#EvaluationView-199"><span class="linenos">199</span></a><span class="s2">                salary_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-200"><a href="#EvaluationView-200"><span class="linenos">200</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-201"><a href="#EvaluationView-201"><span class="linenos">201</span></a><span class="s2">                        workhours_together_summed_salary.project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-202"><a href="#EvaluationView-202"><span class="linenos">202</span></a><span class="s2">                        SUM(workhours_together_summed_salary.hours * salary_level_costs.brutto_per_hour) AS salary_costs </span><span class="se">\</span>
-</span><span id="EvaluationView-203"><a href="#EvaluationView-203"><span class="linenos">203</span></a><span class="s2">                    FROM workhours_together_summed_salary, salary_level_costs </span><span class="se">\</span>
-</span><span id="EvaluationView-204"><a href="#EvaluationView-204"><span class="linenos">204</span></a><span class="s2">                    WHERE workhours_together_summed_salary.salary_level_id = salary_level_costs.salary_level_id </span><span class="se">\</span>
-</span><span id="EvaluationView-205"><a href="#EvaluationView-205"><span class="linenos">205</span></a><span class="s2">                    AND workhours_together_summed_salary.period_id = salary_level_costs.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-206"><a href="#EvaluationView-206"><span class="linenos">206</span></a><span class="s2">                    GROUP BY workhours_together_summed_salary.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-186"><a href="#EvaluationView-186"><span class="linenos">186</span></a><span class="s2">                        vkk_projectfundedstaff.salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-187"><a href="#EvaluationView-187"><span class="linenos">187</span></a><span class="s2">                        vkk_projectfundedstaff.hours </span><span class="se">\</span>
+</span><span id="EvaluationView-188"><a href="#EvaluationView-188"><span class="linenos">188</span></a><span class="s2">                    FROM project_funded_staff_date JOIN vkk_projectfundedstaff </span><span class="se">\</span>
+</span><span id="EvaluationView-189"><a href="#EvaluationView-189"><span class="linenos">189</span></a><span class="s2">                    ON project_funded_staff_date.id = vkk_projectfundedstaff.start_id </span><span class="se">\</span>
+</span><span id="EvaluationView-190"><a href="#EvaluationView-190"><span class="linenos">190</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-191"><a href="#EvaluationView-191"><span class="linenos">191</span></a><span class="s2">                workhours_together AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-192"><a href="#EvaluationView-192"><span class="linenos">192</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-193"><a href="#EvaluationView-193"><span class="linenos">193</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-194"><a href="#EvaluationView-194"><span class="linenos">194</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-195"><a href="#EvaluationView-195"><span class="linenos">195</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-196"><a href="#EvaluationView-196"><span class="linenos">196</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView-197"><a href="#EvaluationView-197"><span class="linenos">197</span></a><span class="s2">                    FROM workhours_summed </span><span class="se">\</span>
+</span><span id="EvaluationView-198"><a href="#EvaluationView-198"><span class="linenos">198</span></a><span class="s2">                </span><span class="se">\</span>
+</span><span id="EvaluationView-199"><a href="#EvaluationView-199"><span class="linenos">199</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="EvaluationView-200"><a href="#EvaluationView-200"><span class="linenos">200</span></a><span class="s2">                </span><span class="se">\</span>
+</span><span id="EvaluationView-201"><a href="#EvaluationView-201"><span class="linenos">201</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-202"><a href="#EvaluationView-202"><span class="linenos">202</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-203"><a href="#EvaluationView-203"><span class="linenos">203</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-204"><a href="#EvaluationView-204"><span class="linenos">204</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-205"><a href="#EvaluationView-205"><span class="linenos">205</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView-206"><a href="#EvaluationView-206"><span class="linenos">206</span></a><span class="s2">                    FROM project_funded_staff </span><span class="se">\</span>
 </span><span id="EvaluationView-207"><a href="#EvaluationView-207"><span class="linenos">207</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-208"><a href="#EvaluationView-208"><span class="linenos">208</span></a><span class="s2">                workhours_together_summed AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-208"><a href="#EvaluationView-208"><span class="linenos">208</span></a><span class="s2">                salary_costs_by_project AS ( </span><span class="se">\</span>
 </span><span id="EvaluationView-209"><a href="#EvaluationView-209"><span class="linenos">209</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-210"><a href="#EvaluationView-210"><span class="linenos">210</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-211"><a href="#EvaluationView-211"><span class="linenos">211</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-212"><a href="#EvaluationView-212"><span class="linenos">212</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView-213"><a href="#EvaluationView-213"><span class="linenos">213</span></a><span class="s2">                    FROM workhours_together_summed_salary </span><span class="se">\</span>
-</span><span id="EvaluationView-214"><a href="#EvaluationView-214"><span class="linenos">214</span></a><span class="s2">                    GROUP BY project_id, period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-215"><a href="#EvaluationView-215"><span class="linenos">215</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-216"><a href="#EvaluationView-216"><span class="linenos">216</span></a><span class="s2">                general_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-217"><a href="#EvaluationView-217"><span class="linenos">217</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-218"><a href="#EvaluationView-218"><span class="linenos">218</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-219"><a href="#EvaluationView-219"><span class="linenos">219</span></a><span class="s2">                        SUM(hours * costs) AS general_costs </span><span class="se">\</span>
-</span><span id="EvaluationView-220"><a href="#EvaluationView-220"><span class="linenos">220</span></a><span class="s2">                    FROM workhours_together_summed JOIN general_costs </span><span class="se">\</span>
-</span><span id="EvaluationView-221"><a href="#EvaluationView-221"><span class="linenos">221</span></a><span class="s2">                    ON workhours_together_summed.period_id = general_costs.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-222"><a href="#EvaluationView-222"><span class="linenos">222</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
-</span><span id="EvaluationView-223"><a href="#EvaluationView-223"><span class="linenos">223</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView-224"><a href="#EvaluationView-224"><span class="linenos">224</span></a><span class="s2">                department_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView-225"><a href="#EvaluationView-225"><span class="linenos">225</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-226"><a href="#EvaluationView-226"><span class="linenos">226</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView-227"><a href="#EvaluationView-227"><span class="linenos">227</span></a><span class="s2">                        SUM(hours * equivalents_per_hour) AS department_costs </span><span class="se">\</span>
-</span><span id="EvaluationView-228"><a href="#EvaluationView-228"><span class="linenos">228</span></a><span class="s2">                    FROM workhours_together_summed JOIN department_costs </span><span class="se">\</span>
-</span><span id="EvaluationView-229"><a href="#EvaluationView-229"><span class="linenos">229</span></a><span class="s2">                    ON workhours_together_summed.period_id = department_costs.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView-230"><a href="#EvaluationView-230"><span class="linenos">230</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
-</span><span id="EvaluationView-231"><a href="#EvaluationView-231"><span class="linenos">231</span></a><span class="s2">                ) </span><span class="se">\</span>
-</span><span id="EvaluationView-232"><a href="#EvaluationView-232"><span class="linenos">232</span></a><span class="s2">                SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView-233"><a href="#EvaluationView-233"><span class="linenos">233</span></a><span class="s2">                    vkk_project.invoice_number AS projekt, </span><span class="se">\</span>
-</span><span id="EvaluationView-234"><a href="#EvaluationView-234"><span class="linenos">234</span></a><span class="s2">                    salary_costs_by_project.salary_costs AS pgk, </span><span class="se">\</span>
-</span><span id="EvaluationView-235"><a href="#EvaluationView-235"><span class="linenos">235</span></a><span class="s2">                    general_costs_by_project.general_costs AS sgk, </span><span class="se">\</span>
-</span><span id="EvaluationView-236"><a href="#EvaluationView-236"><span class="linenos">236</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs AS sum_pgk_sgk, </span><span class="se">\</span>
-</span><span id="EvaluationView-237"><a href="#EvaluationView-237"><span class="linenos">237</span></a><span class="s2">                    department_costs_by_project.department_costs AS vgk, </span><span class="se">\</span>
-</span><span id="EvaluationView-238"><a href="#EvaluationView-238"><span class="linenos">238</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs + department_costs_by_project.department_costs AS sum_all </span><span class="se">\</span>
-</span><span id="EvaluationView-239"><a href="#EvaluationView-239"><span class="linenos">239</span></a><span class="s2">                FROM  </span><span class="se">\</span>
-</span><span id="EvaluationView-240"><a href="#EvaluationView-240"><span class="linenos">240</span></a><span class="s2">                    vkk_project,  </span><span class="se">\</span>
-</span><span id="EvaluationView-241"><a href="#EvaluationView-241"><span class="linenos">241</span></a><span class="s2">                    salary_costs_by_project, </span><span class="se">\</span>
-</span><span id="EvaluationView-242"><a href="#EvaluationView-242"><span class="linenos">242</span></a><span class="s2">                    general_costs_by_project, </span><span class="se">\</span>
-</span><span id="EvaluationView-243"><a href="#EvaluationView-243"><span class="linenos">243</span></a><span class="s2">                    department_costs_by_project </span><span class="se">\</span>
-</span><span id="EvaluationView-244"><a href="#EvaluationView-244"><span class="linenos">244</span></a><span class="s2">                WHERE  </span><span class="se">\</span>
-</span><span id="EvaluationView-245"><a href="#EvaluationView-245"><span class="linenos">245</span></a><span class="s2">                    vkk_project.id = salary_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView-246"><a href="#EvaluationView-246"><span class="linenos">246</span></a><span class="s2">                    AND salary_costs_by_project.project_id = general_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView-247"><a href="#EvaluationView-247"><span class="linenos">247</span></a><span class="s2">                    AND general_costs_by_project.project_id = department_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView-248"><a href="#EvaluationView-248"><span class="linenos">248</span></a><span class="s2">                ORDER BY vkk_project.invoice_number;&quot;</span><span class="p">,</span> 
-</span><span id="EvaluationView-249"><a href="#EvaluationView-249"><span class="linenos">249</span></a>                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">],</span> <span class="n">periods</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]],</span>
-</span><span id="EvaluationView-250"><a href="#EvaluationView-250"><span class="linenos">250</span></a>            <span class="p">)</span>
-</span><span id="EvaluationView-251"><a href="#EvaluationView-251"><span class="linenos">251</span></a>            <span class="n">queryset</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
-</span><span id="EvaluationView-252"><a href="#EvaluationView-252"><span class="linenos">252</span></a>        <span class="k">return</span> <span class="n">queryset</span>
-</span><span id="EvaluationView-253"><a href="#EvaluationView-253"><span class="linenos">253</span></a>    
-</span><span id="EvaluationView-254"><a href="#EvaluationView-254"><span class="linenos">254</span></a>
-</span><span id="EvaluationView-255"><a href="#EvaluationView-255"><span class="linenos">255</span></a>    <span class="k">def</span> <span class="nf">form_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">form</span><span class="p">):</span>
-</span><span id="EvaluationView-256"><a href="#EvaluationView-256"><span class="linenos">256</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="EvaluationView-257"><a href="#EvaluationView-257"><span class="linenos">257</span></a><span class="sd">        Returns the result of the evaluation in shape of a `.csv` file.</span>
-</span><span id="EvaluationView-258"><a href="#EvaluationView-258"><span class="linenos">258</span></a><span class="sd">        &quot;&quot;&quot;</span>
-</span><span id="EvaluationView-259"><a href="#EvaluationView-259"><span class="linenos">259</span></a>        <span class="n">periods</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;periods&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">))</span>
-</span><span id="EvaluationView-260"><a href="#EvaluationView-260"><span class="linenos">260</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">()</span>
-</span><span id="EvaluationView-261"><a href="#EvaluationView-261"><span class="linenos">261</span></a>        <span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_queryset</span><span class="p">(</span><span class="n">periods</span><span class="p">)</span>
-</span><span id="EvaluationView-262"><a href="#EvaluationView-262"><span class="linenos">262</span></a>        <span class="n">response</span> <span class="o">=</span> <span class="n">HttpResponse</span><span class="p">(</span>
-</span><span id="EvaluationView-263"><a href="#EvaluationView-263"><span class="linenos">263</span></a>            <span class="n">content_type</span><span class="o">=</span><span class="s1">&#39;text/csv&#39;</span><span class="p">,</span>
-</span><span id="EvaluationView-264"><a href="#EvaluationView-264"><span class="linenos">264</span></a>            <span class="n">headers</span><span class="o">=</span><span class="p">{</span>
-</span><span id="EvaluationView-265"><a href="#EvaluationView-265"><span class="linenos">265</span></a>                <span class="s1">&#39;Content-Disposition&#39;</span><span class="p">:</span> <span class="s1">&#39;attachment; filename=&quot;12345.csv&quot;&#39;</span><span class="p">},</span>
-</span><span id="EvaluationView-266"><a href="#EvaluationView-266"><span class="linenos">266</span></a>        <span class="p">)</span>
-</span><span id="EvaluationView-267"><a href="#EvaluationView-267"><span class="linenos">267</span></a>        <span class="n">response</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
-</span><span id="EvaluationView-268"><a href="#EvaluationView-268"><span class="linenos">268</span></a>            <span class="n">loader</span>
-</span><span id="EvaluationView-269"><a href="#EvaluationView-269"><span class="linenos">269</span></a>                <span class="o">.</span><span class="n">get_template</span><span class="p">(</span><span class="s1">&#39;vkk/workhours/accounting/department/evaluation.csv&#39;</span><span class="p">)</span>
-</span><span id="EvaluationView-270"><a href="#EvaluationView-270"><span class="linenos">270</span></a>                <span class="o">.</span><span class="n">render</span><span class="p">(</span>
-</span><span id="EvaluationView-271"><a href="#EvaluationView-271"><span class="linenos">271</span></a>                    <span class="n">context</span><span class="o">=</span><span class="n">context</span><span class="p">,</span>
-</span><span id="EvaluationView-272"><a href="#EvaluationView-272"><span class="linenos">272</span></a>                    <span class="n">request</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span>
-</span><span id="EvaluationView-273"><a href="#EvaluationView-273"><span class="linenos">273</span></a>                <span class="p">)</span>
-</span><span id="EvaluationView-274"><a href="#EvaluationView-274"><span class="linenos">274</span></a>        <span class="p">)</span>
-</span><span id="EvaluationView-275"><a href="#EvaluationView-275"><span class="linenos">275</span></a>        <span class="k">return</span> <span class="n">response</span>
+</span><span id="EvaluationView-210"><a href="#EvaluationView-210"><span class="linenos">210</span></a><span class="s2">                        workhours_summed.project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-211"><a href="#EvaluationView-211"><span class="linenos">211</span></a><span class="s2">                        SUM(workhours_summed.hours * salary_level_costs.brutto_per_hour) AS salary_costs </span><span class="se">\</span>
+</span><span id="EvaluationView-212"><a href="#EvaluationView-212"><span class="linenos">212</span></a><span class="s2">                    FROM workhours_summed, salary_level_costs </span><span class="se">\</span>
+</span><span id="EvaluationView-213"><a href="#EvaluationView-213"><span class="linenos">213</span></a><span class="s2">                    WHERE workhours_summed.salary_level_id = salary_level_costs.salary_level_id </span><span class="se">\</span>
+</span><span id="EvaluationView-214"><a href="#EvaluationView-214"><span class="linenos">214</span></a><span class="s2">                    AND workhours_summed.period_id = salary_level_costs.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-215"><a href="#EvaluationView-215"><span class="linenos">215</span></a><span class="s2">                    GROUP BY workhours_summed.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-216"><a href="#EvaluationView-216"><span class="linenos">216</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-217"><a href="#EvaluationView-217"><span class="linenos">217</span></a><span class="s2">                workhours_together_summed AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-218"><a href="#EvaluationView-218"><span class="linenos">218</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-219"><a href="#EvaluationView-219"><span class="linenos">219</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-220"><a href="#EvaluationView-220"><span class="linenos">220</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-221"><a href="#EvaluationView-221"><span class="linenos">221</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
+</span><span id="EvaluationView-222"><a href="#EvaluationView-222"><span class="linenos">222</span></a><span class="s2">                    FROM workhours_together </span><span class="se">\</span>
+</span><span id="EvaluationView-223"><a href="#EvaluationView-223"><span class="linenos">223</span></a><span class="s2">                    GROUP BY project_id, period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-224"><a href="#EvaluationView-224"><span class="linenos">224</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-225"><a href="#EvaluationView-225"><span class="linenos">225</span></a><span class="s2">                general_costs_by_project AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-226"><a href="#EvaluationView-226"><span class="linenos">226</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-227"><a href="#EvaluationView-227"><span class="linenos">227</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-228"><a href="#EvaluationView-228"><span class="linenos">228</span></a><span class="s2">                        SUM(hours * costs) AS general_costs </span><span class="se">\</span>
+</span><span id="EvaluationView-229"><a href="#EvaluationView-229"><span class="linenos">229</span></a><span class="s2">                    FROM workhours_together_summed JOIN general_costs </span><span class="se">\</span>
+</span><span id="EvaluationView-230"><a href="#EvaluationView-230"><span class="linenos">230</span></a><span class="s2">                    ON workhours_together_summed.period_id = general_costs.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-231"><a href="#EvaluationView-231"><span class="linenos">231</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-232"><a href="#EvaluationView-232"><span class="linenos">232</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView-233"><a href="#EvaluationView-233"><span class="linenos">233</span></a><span class="s2">                department_costs_by_project AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView-234"><a href="#EvaluationView-234"><span class="linenos">234</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-235"><a href="#EvaluationView-235"><span class="linenos">235</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView-236"><a href="#EvaluationView-236"><span class="linenos">236</span></a><span class="s2">                        SUM(hours * equivalents_per_hour) AS department_costs </span><span class="se">\</span>
+</span><span id="EvaluationView-237"><a href="#EvaluationView-237"><span class="linenos">237</span></a><span class="s2">                    FROM workhours_together_summed JOIN department_costs </span><span class="se">\</span>
+</span><span id="EvaluationView-238"><a href="#EvaluationView-238"><span class="linenos">238</span></a><span class="s2">                    ON workhours_together_summed.period_id = department_costs.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView-239"><a href="#EvaluationView-239"><span class="linenos">239</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-240"><a href="#EvaluationView-240"><span class="linenos">240</span></a><span class="s2">                ) </span><span class="se">\</span>
+</span><span id="EvaluationView-241"><a href="#EvaluationView-241"><span class="linenos">241</span></a><span class="s2">                SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView-242"><a href="#EvaluationView-242"><span class="linenos">242</span></a><span class="s2">                    projects.invoice_number AS projekt, </span><span class="se">\</span>
+</span><span id="EvaluationView-243"><a href="#EvaluationView-243"><span class="linenos">243</span></a><span class="s2">                    salary_costs_by_project.salary_costs AS pgk, </span><span class="se">\</span>
+</span><span id="EvaluationView-244"><a href="#EvaluationView-244"><span class="linenos">244</span></a><span class="s2">                    department_costs_by_project.department_costs AS sgk, </span><span class="se">\</span>
+</span><span id="EvaluationView-245"><a href="#EvaluationView-245"><span class="linenos">245</span></a><span class="s2">                    salary_costs_by_project.salary_costs + department_costs_by_project.department_costs AS sum_pgk_sgk, </span><span class="se">\</span>
+</span><span id="EvaluationView-246"><a href="#EvaluationView-246"><span class="linenos">246</span></a><span class="s2">                    general_costs_by_project.general_costs AS vgk, </span><span class="se">\</span>
+</span><span id="EvaluationView-247"><a href="#EvaluationView-247"><span class="linenos">247</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs + department_costs_by_project.department_costs AS sum_all </span><span class="se">\</span>
+</span><span id="EvaluationView-248"><a href="#EvaluationView-248"><span class="linenos">248</span></a><span class="s2">                FROM  </span><span class="se">\</span>
+</span><span id="EvaluationView-249"><a href="#EvaluationView-249"><span class="linenos">249</span></a><span class="s2">                    projects,  </span><span class="se">\</span>
+</span><span id="EvaluationView-250"><a href="#EvaluationView-250"><span class="linenos">250</span></a><span class="s2">                    salary_costs_by_project, </span><span class="se">\</span>
+</span><span id="EvaluationView-251"><a href="#EvaluationView-251"><span class="linenos">251</span></a><span class="s2">                    general_costs_by_project, </span><span class="se">\</span>
+</span><span id="EvaluationView-252"><a href="#EvaluationView-252"><span class="linenos">252</span></a><span class="s2">                    department_costs_by_project </span><span class="se">\</span>
+</span><span id="EvaluationView-253"><a href="#EvaluationView-253"><span class="linenos">253</span></a><span class="s2">                WHERE  </span><span class="se">\</span>
+</span><span id="EvaluationView-254"><a href="#EvaluationView-254"><span class="linenos">254</span></a><span class="s2">                    projects.id = salary_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-255"><a href="#EvaluationView-255"><span class="linenos">255</span></a><span class="s2">                    AND salary_costs_by_project.project_id = general_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-256"><a href="#EvaluationView-256"><span class="linenos">256</span></a><span class="s2">                    AND general_costs_by_project.project_id = department_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView-257"><a href="#EvaluationView-257"><span class="linenos">257</span></a><span class="s2">                ORDER BY projects.invoice_number;&quot;</span><span class="p">,</span> 
+</span><span id="EvaluationView-258"><a href="#EvaluationView-258"><span class="linenos">258</span></a>                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">],</span> <span class="n">periods</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]],</span>
+</span><span id="EvaluationView-259"><a href="#EvaluationView-259"><span class="linenos">259</span></a>            <span class="p">)</span>
+</span><span id="EvaluationView-260"><a href="#EvaluationView-260"><span class="linenos">260</span></a>            <span class="n">queryset</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
+</span><span id="EvaluationView-261"><a href="#EvaluationView-261"><span class="linenos">261</span></a>        <span class="k">return</span> <span class="n">queryset</span>
+</span><span id="EvaluationView-262"><a href="#EvaluationView-262"><span class="linenos">262</span></a>    
+</span><span id="EvaluationView-263"><a href="#EvaluationView-263"><span class="linenos">263</span></a>
+</span><span id="EvaluationView-264"><a href="#EvaluationView-264"><span class="linenos">264</span></a>    <span class="k">def</span> <span class="nf">form_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">form</span><span class="p">):</span>
+</span><span id="EvaluationView-265"><a href="#EvaluationView-265"><span class="linenos">265</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="EvaluationView-266"><a href="#EvaluationView-266"><span class="linenos">266</span></a><span class="sd">        Returns the result of the evaluation in shape of a `.csv` file.</span>
+</span><span id="EvaluationView-267"><a href="#EvaluationView-267"><span class="linenos">267</span></a><span class="sd">        &quot;&quot;&quot;</span>
+</span><span id="EvaluationView-268"><a href="#EvaluationView-268"><span class="linenos">268</span></a>        <span class="n">periods</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;periods&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">))</span>
+</span><span id="EvaluationView-269"><a href="#EvaluationView-269"><span class="linenos">269</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">()</span>
+</span><span id="EvaluationView-270"><a href="#EvaluationView-270"><span class="linenos">270</span></a>        <span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_queryset</span><span class="p">(</span><span class="n">periods</span><span class="p">)</span>
+</span><span id="EvaluationView-271"><a href="#EvaluationView-271"><span class="linenos">271</span></a>        <span class="nb">print</span><span class="p">(</span><span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+</span><span id="EvaluationView-272"><a href="#EvaluationView-272"><span class="linenos">272</span></a>        <span class="n">periods_string</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">periods</span><span class="p">)</span>
+</span><span id="EvaluationView-273"><a href="#EvaluationView-273"><span class="linenos">273</span></a>        <span class="n">department_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]</span>
+</span><span id="EvaluationView-274"><a href="#EvaluationView-274"><span class="linenos">274</span></a>        <span class="n">response</span> <span class="o">=</span> <span class="n">HttpResponse</span><span class="p">(</span>
+</span><span id="EvaluationView-275"><a href="#EvaluationView-275"><span class="linenos">275</span></a>            <span class="n">content_type</span><span class="o">=</span><span class="s1">&#39;text/csv&#39;</span><span class="p">,</span>
+</span><span id="EvaluationView-276"><a href="#EvaluationView-276"><span class="linenos">276</span></a>            <span class="n">headers</span><span class="o">=</span><span class="p">{</span>
+</span><span id="EvaluationView-277"><a href="#EvaluationView-277"><span class="linenos">277</span></a>                <span class="s1">&#39;Content-Disposition&#39;</span><span class="p">:</span> <span class="sa">f</span><span class="s1">&#39;attachment; filename=&quot;</span><span class="si">{</span><span class="n">department_string</span><span class="si">}</span><span class="s1">-</span><span class="si">{</span><span class="n">periods_string</span><span class="si">}</span><span class="s1">.csv&quot;&#39;</span><span class="p">},</span>
+</span><span id="EvaluationView-278"><a href="#EvaluationView-278"><span class="linenos">278</span></a>        <span class="p">)</span>
+</span><span id="EvaluationView-279"><a href="#EvaluationView-279"><span class="linenos">279</span></a>        <span class="n">response</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
+</span><span id="EvaluationView-280"><a href="#EvaluationView-280"><span class="linenos">280</span></a>            <span class="n">loader</span>
+</span><span id="EvaluationView-281"><a href="#EvaluationView-281"><span class="linenos">281</span></a>                <span class="o">.</span><span class="n">get_template</span><span class="p">(</span><span class="s1">&#39;vkk/workhours/accounting/department/evaluation.csv&#39;</span><span class="p">)</span>
+</span><span id="EvaluationView-282"><a href="#EvaluationView-282"><span class="linenos">282</span></a>                <span class="o">.</span><span class="n">render</span><span class="p">(</span>
+</span><span id="EvaluationView-283"><a href="#EvaluationView-283"><span class="linenos">283</span></a>                    <span class="n">context</span><span class="o">=</span><span class="n">context</span><span class="p">,</span>
+</span><span id="EvaluationView-284"><a href="#EvaluationView-284"><span class="linenos">284</span></a>                    <span class="n">request</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span>
+</span><span id="EvaluationView-285"><a href="#EvaluationView-285"><span class="linenos">285</span></a>                <span class="p">)</span>
+</span><span id="EvaluationView-286"><a href="#EvaluationView-286"><span class="linenos">286</span></a>        <span class="p">)</span>
+</span><span id="EvaluationView-287"><a href="#EvaluationView-287"><span class="linenos">287</span></a>        <span class="k">return</span> <span class="n">response</span>
 </span></pre></div>
 
 
@@ -670,232 +694,241 @@ the given <code>Department</code> over some <code>Periods</code>.</p>
 </span><span id="EvaluationView.get_queryset-24"><a href="#EvaluationView.get_queryset-24"><span class="linenos"> 24</span></a><span class="sd">        Returns the result of an SQL query calculating the evaluation.</span>
 </span><span id="EvaluationView.get_queryset-25"><a href="#EvaluationView.get_queryset-25"><span class="linenos"> 25</span></a><span class="sd">        &quot;&quot;&quot;</span>
 </span><span id="EvaluationView.get_queryset-26"><a href="#EvaluationView.get_queryset-26"><span class="linenos"> 26</span></a>        <span class="k">with</span> <span class="n">connection</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span> <span class="k">as</span> <span class="n">cursor</span><span class="p">:</span>
-</span><span id="EvaluationView.get_queryset-27"><a href="#EvaluationView.get_queryset-27"><span class="linenos"> 27</span></a>            <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;WITH assignments AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-28"><a href="#EvaluationView.get_queryset-28"><span class="linenos"> 28</span></a><span class="s2">                    SELECT  \periodsdepartment_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-29"><a href="#EvaluationView.get_queryset-29"><span class="linenos"> 29</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-30"><a href="#EvaluationView.get_queryset-30"><span class="linenos"> 30</span></a><span class="s2">                workhours AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-31"><a href="#EvaluationView.get_queryset-31"><span class="linenos"> 31</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-32"><a href="#EvaluationView.get_queryset-32"><span class="linenos"> 32</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-33"><a href="#EvaluationView.get_queryset-33"><span class="linenos"> 33</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-34"><a href="#EvaluationView.get_queryset-34"><span class="linenos"> 34</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-35"><a href="#EvaluationView.get_queryset-35"><span class="linenos"> 35</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-36"><a href="#EvaluationView.get_queryset-36"><span class="linenos"> 36</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-37"><a href="#EvaluationView.get_queryset-37"><span class="linenos"> 37</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-38"><a href="#EvaluationView.get_queryset-38"><span class="linenos"> 38</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-39"><a href="#EvaluationView.get_queryset-39"><span class="linenos"> 39</span></a><span class="s2">                    FROM assignments JOIN vkk_workhours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-40"><a href="#EvaluationView.get_queryset-40"><span class="linenos"> 40</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhours.project_assignment_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-41"><a href="#EvaluationView.get_queryset-41"><span class="linenos"> 41</span></a><span class="s2">                    UNION </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-42"><a href="#EvaluationView.get_queryset-42"><span class="linenos"> 42</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-43"><a href="#EvaluationView.get_queryset-43"><span class="linenos"> 43</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-44"><a href="#EvaluationView.get_queryset-44"><span class="linenos"> 44</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-45"><a href="#EvaluationView.get_queryset-45"><span class="linenos"> 45</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-46"><a href="#EvaluationView.get_queryset-46"><span class="linenos"> 46</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-47"><a href="#EvaluationView.get_queryset-47"><span class="linenos"> 47</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-48"><a href="#EvaluationView.get_queryset-48"><span class="linenos"> 48</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-49"><a href="#EvaluationView.get_queryset-49"><span class="linenos"> 49</span></a><span class="s2">                        ammount AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-50"><a href="#EvaluationView.get_queryset-50"><span class="linenos"> 50</span></a><span class="s2">                    FROM assignments JOIN vkk_workhourscorrection </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-51"><a href="#EvaluationView.get_queryset-51"><span class="linenos"> 51</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhourscorrection.project_assignment_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-52"><a href="#EvaluationView.get_queryset-52"><span class="linenos"> 52</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-53"><a href="#EvaluationView.get_queryset-53"><span class="linenos"> 53</span></a><span class="s2">                periods AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-54"><a href="#EvaluationView.get_queryset-54"><span class="linenos"> 54</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-55"><a href="#EvaluationView.get_queryset-55"><span class="linenos"> 55</span></a><span class="s2">                        vkk_period.id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-56"><a href="#EvaluationView.get_queryset-56"><span class="linenos"> 56</span></a><span class="s2">                        vkk_period.start, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-57"><a href="#EvaluationView.get_queryset-57"><span class="linenos"> 57</span></a><span class="s2">                        vkk_period.end </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-58"><a href="#EvaluationView.get_queryset-58"><span class="linenos"> 58</span></a><span class="s2">                    FROM vkk_period </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-59"><a href="#EvaluationView.get_queryset-59"><span class="linenos"> 59</span></a><span class="s2">                    WHERE id IN </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-60"><a href="#EvaluationView.get_queryset-60"><span class="linenos"> 60</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-61"><a href="#EvaluationView.get_queryset-61"><span class="linenos"> 61</span></a><span class="s2">                workhours_bounded AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-62"><a href="#EvaluationView.get_queryset-62"><span class="linenos"> 62</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-63"><a href="#EvaluationView.get_queryset-63"><span class="linenos"> 63</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-64"><a href="#EvaluationView.get_queryset-64"><span class="linenos"> 64</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-65"><a href="#EvaluationView.get_queryset-65"><span class="linenos"> 65</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-66"><a href="#EvaluationView.get_queryset-66"><span class="linenos"> 66</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-67"><a href="#EvaluationView.get_queryset-67"><span class="linenos"> 67</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-68"><a href="#EvaluationView.get_queryset-68"><span class="linenos"> 68</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-69"><a href="#EvaluationView.get_queryset-69"><span class="linenos"> 69</span></a><span class="s2">                        periods.start AS period_start, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-70"><a href="#EvaluationView.get_queryset-70"><span class="linenos"> 70</span></a><span class="s2">                        periods.end AS period_end, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-71"><a href="#EvaluationView.get_queryset-71"><span class="linenos"> 71</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-72"><a href="#EvaluationView.get_queryset-72"><span class="linenos"> 72</span></a><span class="s2">                    FROM workhours JOIN periods </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-73"><a href="#EvaluationView.get_queryset-73"><span class="linenos"> 73</span></a><span class="s2">                    ON workhours.period_id = periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-74"><a href="#EvaluationView.get_queryset-74"><span class="linenos"> 74</span></a><span class="s2">                    WHERE  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-75"><a href="#EvaluationView.get_queryset-75"><span class="linenos"> 75</span></a><span class="s2">                        periods.end &gt;= workhours.project_start </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-76"><a href="#EvaluationView.get_queryset-76"><span class="linenos"> 76</span></a><span class="s2">                        AND periods.start &lt;= workhours.project_end </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-77"><a href="#EvaluationView.get_queryset-77"><span class="linenos"> 77</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-78"><a href="#EvaluationView.get_queryset-78"><span class="linenos"> 78</span></a><span class="s2">                workhours_summed AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-79"><a href="#EvaluationView.get_queryset-79"><span class="linenos"> 79</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-80"><a href="#EvaluationView.get_queryset-80"><span class="linenos"> 80</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-81"><a href="#EvaluationView.get_queryset-81"><span class="linenos"> 81</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-82"><a href="#EvaluationView.get_queryset-82"><span class="linenos"> 82</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-83"><a href="#EvaluationView.get_queryset-83"><span class="linenos"> 83</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-84"><a href="#EvaluationView.get_queryset-84"><span class="linenos"> 84</span></a><span class="s2">                    FROM workhours_bounded </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-85"><a href="#EvaluationView.get_queryset-85"><span class="linenos"> 85</span></a><span class="s2">                    GROUP BY  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-86"><a href="#EvaluationView.get_queryset-86"><span class="linenos"> 86</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-87"><a href="#EvaluationView.get_queryset-87"><span class="linenos"> 87</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-88"><a href="#EvaluationView.get_queryset-88"><span class="linenos"> 88</span></a><span class="s2">                        period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-89"><a href="#EvaluationView.get_queryset-89"><span class="linenos"> 89</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-90"><a href="#EvaluationView.get_queryset-90"><span class="linenos"> 90</span></a><span class="s2">                salary_dates AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-91"><a href="#EvaluationView.get_queryset-91"><span class="linenos"> 91</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-92"><a href="#EvaluationView.get_queryset-92"><span class="linenos"> 92</span></a><span class="s2">                        vkk_salaryleveldate.id AS salary_date_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-93"><a href="#EvaluationView.get_queryset-93"><span class="linenos"> 93</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-94"><a href="#EvaluationView.get_queryset-94"><span class="linenos"> 94</span></a><span class="s2">                    FROM vkk_salaryleveldate JOIN ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-95"><a href="#EvaluationView.get_queryset-95"><span class="linenos"> 95</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-96"><a href="#EvaluationView.get_queryset-96"><span class="linenos"> 96</span></a><span class="s2">                            MAX(vkk_salaryleveldate.date) AS salary_date, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-97"><a href="#EvaluationView.get_queryset-97"><span class="linenos"> 97</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-98"><a href="#EvaluationView.get_queryset-98"><span class="linenos"> 98</span></a><span class="s2">                        FROM vkk_salaryleveldate, periods </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-99"><a href="#EvaluationView.get_queryset-99"><span class="linenos"> 99</span></a><span class="s2">                        WHERE vkk_salaryleveldate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-100"><a href="#EvaluationView.get_queryset-100"><span class="linenos">100</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-101"><a href="#EvaluationView.get_queryset-101"><span class="linenos">101</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-102"><a href="#EvaluationView.get_queryset-102"><span class="linenos">102</span></a><span class="s2">                    ON vkk_salaryleveldate.date = p.salary_date </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-103"><a href="#EvaluationView.get_queryset-103"><span class="linenos">103</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-104"><a href="#EvaluationView.get_queryset-104"><span class="linenos">104</span></a><span class="s2">                department_dates AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-105"><a href="#EvaluationView.get_queryset-105"><span class="linenos">105</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-106"><a href="#EvaluationView.get_queryset-106"><span class="linenos">106</span></a><span class="s2">                        vkk_departmentdate.id AS departmentdate_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-107"><a href="#EvaluationView.get_queryset-107"><span class="linenos">107</span></a><span class="s2">                        p.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-108"><a href="#EvaluationView.get_queryset-108"><span class="linenos">108</span></a><span class="s2">                    FROM vkk_departmentdate JOIN ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-109"><a href="#EvaluationView.get_queryset-109"><span class="linenos">109</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-110"><a href="#EvaluationView.get_queryset-110"><span class="linenos">110</span></a><span class="s2">                            MAX(vkk_departmentdate.date) AS department_date, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-111"><a href="#EvaluationView.get_queryset-111"><span class="linenos">111</span></a><span class="s2">                            periods.id AS id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-112"><a href="#EvaluationView.get_queryset-112"><span class="linenos">112</span></a><span class="s2">                        FROM vkk_departmentdate, periods </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-113"><a href="#EvaluationView.get_queryset-113"><span class="linenos">113</span></a><span class="s2">                        WHERE vkk_departmentdate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-114"><a href="#EvaluationView.get_queryset-114"><span class="linenos">114</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-115"><a href="#EvaluationView.get_queryset-115"><span class="linenos">115</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-116"><a href="#EvaluationView.get_queryset-116"><span class="linenos">116</span></a><span class="s2">                    ON vkk_departmentdate.date = p.department_date </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-117"><a href="#EvaluationView.get_queryset-117"><span class="linenos">117</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-118"><a href="#EvaluationView.get_queryset-118"><span class="linenos">118</span></a><span class="s2">                project_funded_staff_date AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-119"><a href="#EvaluationView.get_queryset-119"><span class="linenos">119</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-120"><a href="#EvaluationView.get_queryset-120"><span class="linenos">120</span></a><span class="s2">                        vkk_projectfundedstaffdate.id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-121"><a href="#EvaluationView.get_queryset-121"><span class="linenos">121</span></a><span class="s2">                        p.project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-122"><a href="#EvaluationView.get_queryset-122"><span class="linenos">122</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-123"><a href="#EvaluationView.get_queryset-123"><span class="linenos">123</span></a><span class="s2">                    FROM vkk_projectfundedstaffdate, ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-124"><a href="#EvaluationView.get_queryset-124"><span class="linenos">124</span></a><span class="s2">                            SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-125"><a href="#EvaluationView.get_queryset-125"><span class="linenos">125</span></a><span class="s2">                                MAX(vkk_projectfundedstaffdate.date) AS staff_date, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-126"><a href="#EvaluationView.get_queryset-126"><span class="linenos">126</span></a><span class="s2">                                project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-127"><a href="#EvaluationView.get_queryset-127"><span class="linenos">127</span></a><span class="s2">                                periods.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-128"><a href="#EvaluationView.get_queryset-128"><span class="linenos">128</span></a><span class="s2">                            FROM vkk_projectfundedstaffdate, periods </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-129"><a href="#EvaluationView.get_queryset-129"><span class="linenos">129</span></a><span class="s2">                            WHERE vkk_projectfundedstaffdate.date &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-130"><a href="#EvaluationView.get_queryset-130"><span class="linenos">130</span></a><span class="s2">                            GROUP BY project_id, periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-131"><a href="#EvaluationView.get_queryset-131"><span class="linenos">131</span></a><span class="s2">                        ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-132"><a href="#EvaluationView.get_queryset-132"><span class="linenos">132</span></a><span class="s2">                    WHERE </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-133"><a href="#EvaluationView.get_queryset-133"><span class="linenos">133</span></a><span class="s2">                        vkk_projectfundedstaffdate.date = p.staff_date </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-134"><a href="#EvaluationView.get_queryset-134"><span class="linenos">134</span></a><span class="s2">                        AND vkk_projectfundedstaffdate.project_id = p.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-135"><a href="#EvaluationView.get_queryset-135"><span class="linenos">135</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-136"><a href="#EvaluationView.get_queryset-136"><span class="linenos">136</span></a><span class="s2">                general_costs AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-137"><a href="#EvaluationView.get_queryset-137"><span class="linenos">137</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-138"><a href="#EvaluationView.get_queryset-138"><span class="linenos">138</span></a><span class="s2">                        vkk_generalcosts.costs, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-139"><a href="#EvaluationView.get_queryset-139"><span class="linenos">139</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-140"><a href="#EvaluationView.get_queryset-140"><span class="linenos">140</span></a><span class="s2">                    FROM vkk_generalcosts JOIN ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-141"><a href="#EvaluationView.get_queryset-141"><span class="linenos">141</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-142"><a href="#EvaluationView.get_queryset-142"><span class="linenos">142</span></a><span class="s2">                            MAX(vkk_generalcosts.start) AS general_costs_date, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-143"><a href="#EvaluationView.get_queryset-143"><span class="linenos">143</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-144"><a href="#EvaluationView.get_queryset-144"><span class="linenos">144</span></a><span class="s2">                        FROM vkk_generalcosts, periods </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-145"><a href="#EvaluationView.get_queryset-145"><span class="linenos">145</span></a><span class="s2">                        WHERE vkk_generalcosts.start &lt;= periods.start </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-146"><a href="#EvaluationView.get_queryset-146"><span class="linenos">146</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-147"><a href="#EvaluationView.get_queryset-147"><span class="linenos">147</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-148"><a href="#EvaluationView.get_queryset-148"><span class="linenos">148</span></a><span class="s2">                    ON vkk_generalcosts.start = p.general_costs_date </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-149"><a href="#EvaluationView.get_queryset-149"><span class="linenos">149</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-150"><a href="#EvaluationView.get_queryset-150"><span class="linenos">150</span></a><span class="s2">                salary_level_costs AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-151"><a href="#EvaluationView.get_queryset-151"><span class="linenos">151</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-152"><a href="#EvaluationView.get_queryset-152"><span class="linenos">152</span></a><span class="s2">                        vkk_salarylevelcosts.salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-153"><a href="#EvaluationView.get_queryset-153"><span class="linenos">153</span></a><span class="s2">                        vkk_salarylevelcosts.brutto_per_hour, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-154"><a href="#EvaluationView.get_queryset-154"><span class="linenos">154</span></a><span class="s2">                        salary_dates.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-155"><a href="#EvaluationView.get_queryset-155"><span class="linenos">155</span></a><span class="s2">                    FROM vkk_salarylevelcosts JOIN salary_dates </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-156"><a href="#EvaluationView.get_queryset-156"><span class="linenos">156</span></a><span class="s2">                    ON vkk_salarylevelcosts.start_id = salary_dates.salary_date_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-157"><a href="#EvaluationView.get_queryset-157"><span class="linenos">157</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-158"><a href="#EvaluationView.get_queryset-158"><span class="linenos">158</span></a><span class="s2">                department_costs AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-159"><a href="#EvaluationView.get_queryset-159"><span class="linenos">159</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-160"><a href="#EvaluationView.get_queryset-160"><span class="linenos">160</span></a><span class="s2">                        vkk_departmentcosts.equivalents_per_hour, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-161"><a href="#EvaluationView.get_queryset-161"><span class="linenos">161</span></a><span class="s2">                        department_dates.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-162"><a href="#EvaluationView.get_queryset-162"><span class="linenos">162</span></a><span class="s2">                    FROM vkk_departmentcosts JOIN department_dates </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-163"><a href="#EvaluationView.get_queryset-163"><span class="linenos">163</span></a><span class="s2">                    ON vkk_departmentcosts.start_id = department_dates.departmentdate_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-164"><a href="#EvaluationView.get_queryset-164"><span class="linenos">164</span></a><span class="s2">                    WHERE department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-27"><a href="#EvaluationView.get_queryset-27"><span class="linenos"> 27</span></a>            <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;WITH projects AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-28"><a href="#EvaluationView.get_queryset-28"><span class="linenos"> 28</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-29"><a href="#EvaluationView.get_queryset-29"><span class="linenos"> 29</span></a><span class="s2">                        vkk_project.id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-30"><a href="#EvaluationView.get_queryset-30"><span class="linenos"> 30</span></a><span class="s2">                        vkk_project.start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-31"><a href="#EvaluationView.get_queryset-31"><span class="linenos"> 31</span></a><span class="s2">                        vkk_project.end, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-32"><a href="#EvaluationView.get_queryset-32"><span class="linenos"> 32</span></a><span class="s2">                        vkk_project.invoice_number </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-33"><a href="#EvaluationView.get_queryset-33"><span class="linenos"> 33</span></a><span class="s2">                    FROM vkk_project </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-34"><a href="#EvaluationView.get_queryset-34"><span class="linenos"> 34</span></a><span class="s2">                    WHERE vkk_project.department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-35"><a href="#EvaluationView.get_queryset-35"><span class="linenos"> 35</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-36"><a href="#EvaluationView.get_queryset-36"><span class="linenos"> 36</span></a><span class="s2">                assignments AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-37"><a href="#EvaluationView.get_queryset-37"><span class="linenos"> 37</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-38"><a href="#EvaluationView.get_queryset-38"><span class="linenos"> 38</span></a><span class="s2">                        projects.id AS project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-39"><a href="#EvaluationView.get_queryset-39"><span class="linenos"> 39</span></a><span class="s2">                        projects.start AS project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-40"><a href="#EvaluationView.get_queryset-40"><span class="linenos"> 40</span></a><span class="s2">                        projects.end AS project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-41"><a href="#EvaluationView.get_queryset-41"><span class="linenos"> 41</span></a><span class="s2">                        vkk_projectassignment.id AS assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-42"><a href="#EvaluationView.get_queryset-42"><span class="linenos"> 42</span></a><span class="s2">                        salary_level_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-43"><a href="#EvaluationView.get_queryset-43"><span class="linenos"> 43</span></a><span class="s2">                    FROM projects JOIN vkk_projectassignment </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-44"><a href="#EvaluationView.get_queryset-44"><span class="linenos"> 44</span></a><span class="s2">                        ON projects.id = vkk_projectassignment.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-45"><a href="#EvaluationView.get_queryset-45"><span class="linenos"> 45</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-46"><a href="#EvaluationView.get_queryset-46"><span class="linenos"> 46</span></a><span class="s2">                workhours AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-47"><a href="#EvaluationView.get_queryset-47"><span class="linenos"> 47</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-48"><a href="#EvaluationView.get_queryset-48"><span class="linenos"> 48</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-49"><a href="#EvaluationView.get_queryset-49"><span class="linenos"> 49</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-50"><a href="#EvaluationView.get_queryset-50"><span class="linenos"> 50</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-51"><a href="#EvaluationView.get_queryset-51"><span class="linenos"> 51</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-52"><a href="#EvaluationView.get_queryset-52"><span class="linenos"> 52</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-53"><a href="#EvaluationView.get_queryset-53"><span class="linenos"> 53</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-54"><a href="#EvaluationView.get_queryset-54"><span class="linenos"> 54</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-55"><a href="#EvaluationView.get_queryset-55"><span class="linenos"> 55</span></a><span class="s2">                    FROM assignments JOIN vkk_workhours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-56"><a href="#EvaluationView.get_queryset-56"><span class="linenos"> 56</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhours.project_assignment_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-57"><a href="#EvaluationView.get_queryset-57"><span class="linenos"> 57</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-58"><a href="#EvaluationView.get_queryset-58"><span class="linenos"> 58</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-59"><a href="#EvaluationView.get_queryset-59"><span class="linenos"> 59</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-60"><a href="#EvaluationView.get_queryset-60"><span class="linenos"> 60</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-61"><a href="#EvaluationView.get_queryset-61"><span class="linenos"> 61</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-62"><a href="#EvaluationView.get_queryset-62"><span class="linenos"> 62</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-63"><a href="#EvaluationView.get_queryset-63"><span class="linenos"> 63</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-64"><a href="#EvaluationView.get_queryset-64"><span class="linenos"> 64</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-65"><a href="#EvaluationView.get_queryset-65"><span class="linenos"> 65</span></a><span class="s2">                        ammount AS hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-66"><a href="#EvaluationView.get_queryset-66"><span class="linenos"> 66</span></a><span class="s2">                    FROM assignments JOIN vkk_workhourscorrection </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-67"><a href="#EvaluationView.get_queryset-67"><span class="linenos"> 67</span></a><span class="s2">                        ON assignments.assignment_id = vkk_workhourscorrection.project_assignment_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-68"><a href="#EvaluationView.get_queryset-68"><span class="linenos"> 68</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-69"><a href="#EvaluationView.get_queryset-69"><span class="linenos"> 69</span></a><span class="s2">                periods AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-70"><a href="#EvaluationView.get_queryset-70"><span class="linenos"> 70</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-71"><a href="#EvaluationView.get_queryset-71"><span class="linenos"> 71</span></a><span class="s2">                        vkk_period.id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-72"><a href="#EvaluationView.get_queryset-72"><span class="linenos"> 72</span></a><span class="s2">                        vkk_period.start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-73"><a href="#EvaluationView.get_queryset-73"><span class="linenos"> 73</span></a><span class="s2">                        vkk_period.end </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-74"><a href="#EvaluationView.get_queryset-74"><span class="linenos"> 74</span></a><span class="s2">                    FROM vkk_period </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-75"><a href="#EvaluationView.get_queryset-75"><span class="linenos"> 75</span></a><span class="s2">                    WHERE id IN </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-76"><a href="#EvaluationView.get_queryset-76"><span class="linenos"> 76</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-77"><a href="#EvaluationView.get_queryset-77"><span class="linenos"> 77</span></a><span class="s2">                workhours_bounded AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-78"><a href="#EvaluationView.get_queryset-78"><span class="linenos"> 78</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-79"><a href="#EvaluationView.get_queryset-79"><span class="linenos"> 79</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-80"><a href="#EvaluationView.get_queryset-80"><span class="linenos"> 80</span></a><span class="s2">                        project_start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-81"><a href="#EvaluationView.get_queryset-81"><span class="linenos"> 81</span></a><span class="s2">                        project_end, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-82"><a href="#EvaluationView.get_queryset-82"><span class="linenos"> 82</span></a><span class="s2">                        assignment_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-83"><a href="#EvaluationView.get_queryset-83"><span class="linenos"> 83</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-84"><a href="#EvaluationView.get_queryset-84"><span class="linenos"> 84</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-85"><a href="#EvaluationView.get_queryset-85"><span class="linenos"> 85</span></a><span class="s2">                        periods.start AS period_start, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-86"><a href="#EvaluationView.get_queryset-86"><span class="linenos"> 86</span></a><span class="s2">                        periods.end AS period_end, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-87"><a href="#EvaluationView.get_queryset-87"><span class="linenos"> 87</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-88"><a href="#EvaluationView.get_queryset-88"><span class="linenos"> 88</span></a><span class="s2">                    FROM workhours JOIN periods </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-89"><a href="#EvaluationView.get_queryset-89"><span class="linenos"> 89</span></a><span class="s2">                    ON workhours.period_id = periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-90"><a href="#EvaluationView.get_queryset-90"><span class="linenos"> 90</span></a><span class="s2">                    WHERE  </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-91"><a href="#EvaluationView.get_queryset-91"><span class="linenos"> 91</span></a><span class="s2">                        periods.end &gt; workhours.project_start </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-92"><a href="#EvaluationView.get_queryset-92"><span class="linenos"> 92</span></a><span class="s2">                        AND periods.start &lt;= workhours.project_end </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-93"><a href="#EvaluationView.get_queryset-93"><span class="linenos"> 93</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-94"><a href="#EvaluationView.get_queryset-94"><span class="linenos"> 94</span></a><span class="s2">                workhours_summed AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-95"><a href="#EvaluationView.get_queryset-95"><span class="linenos"> 95</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-96"><a href="#EvaluationView.get_queryset-96"><span class="linenos"> 96</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-97"><a href="#EvaluationView.get_queryset-97"><span class="linenos"> 97</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-98"><a href="#EvaluationView.get_queryset-98"><span class="linenos"> 98</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-99"><a href="#EvaluationView.get_queryset-99"><span class="linenos"> 99</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-100"><a href="#EvaluationView.get_queryset-100"><span class="linenos">100</span></a><span class="s2">                    FROM workhours_bounded </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-101"><a href="#EvaluationView.get_queryset-101"><span class="linenos">101</span></a><span class="s2">                    GROUP BY  </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-102"><a href="#EvaluationView.get_queryset-102"><span class="linenos">102</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-103"><a href="#EvaluationView.get_queryset-103"><span class="linenos">103</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-104"><a href="#EvaluationView.get_queryset-104"><span class="linenos">104</span></a><span class="s2">                        period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-105"><a href="#EvaluationView.get_queryset-105"><span class="linenos">105</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-106"><a href="#EvaluationView.get_queryset-106"><span class="linenos">106</span></a><span class="s2">                salary_dates AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-107"><a href="#EvaluationView.get_queryset-107"><span class="linenos">107</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-108"><a href="#EvaluationView.get_queryset-108"><span class="linenos">108</span></a><span class="s2">                        vkk_salaryleveldate.id AS salary_date_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-109"><a href="#EvaluationView.get_queryset-109"><span class="linenos">109</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-110"><a href="#EvaluationView.get_queryset-110"><span class="linenos">110</span></a><span class="s2">                    FROM vkk_salaryleveldate JOIN ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-111"><a href="#EvaluationView.get_queryset-111"><span class="linenos">111</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-112"><a href="#EvaluationView.get_queryset-112"><span class="linenos">112</span></a><span class="s2">                            MAX(vkk_salaryleveldate.date) AS salary_date, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-113"><a href="#EvaluationView.get_queryset-113"><span class="linenos">113</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-114"><a href="#EvaluationView.get_queryset-114"><span class="linenos">114</span></a><span class="s2">                        FROM vkk_salaryleveldate, periods </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-115"><a href="#EvaluationView.get_queryset-115"><span class="linenos">115</span></a><span class="s2">                        WHERE vkk_salaryleveldate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-116"><a href="#EvaluationView.get_queryset-116"><span class="linenos">116</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-117"><a href="#EvaluationView.get_queryset-117"><span class="linenos">117</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-118"><a href="#EvaluationView.get_queryset-118"><span class="linenos">118</span></a><span class="s2">                    ON vkk_salaryleveldate.date = p.salary_date </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-119"><a href="#EvaluationView.get_queryset-119"><span class="linenos">119</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-120"><a href="#EvaluationView.get_queryset-120"><span class="linenos">120</span></a><span class="s2">                department_dates AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-121"><a href="#EvaluationView.get_queryset-121"><span class="linenos">121</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-122"><a href="#EvaluationView.get_queryset-122"><span class="linenos">122</span></a><span class="s2">                        vkk_departmentdate.id AS departmentdate_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-123"><a href="#EvaluationView.get_queryset-123"><span class="linenos">123</span></a><span class="s2">                        p.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-124"><a href="#EvaluationView.get_queryset-124"><span class="linenos">124</span></a><span class="s2">                    FROM vkk_departmentdate JOIN ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-125"><a href="#EvaluationView.get_queryset-125"><span class="linenos">125</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-126"><a href="#EvaluationView.get_queryset-126"><span class="linenos">126</span></a><span class="s2">                            MAX(vkk_departmentdate.date) AS department_date, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-127"><a href="#EvaluationView.get_queryset-127"><span class="linenos">127</span></a><span class="s2">                            periods.id AS id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-128"><a href="#EvaluationView.get_queryset-128"><span class="linenos">128</span></a><span class="s2">                        FROM vkk_departmentdate, periods </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-129"><a href="#EvaluationView.get_queryset-129"><span class="linenos">129</span></a><span class="s2">                        WHERE vkk_departmentdate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-130"><a href="#EvaluationView.get_queryset-130"><span class="linenos">130</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-131"><a href="#EvaluationView.get_queryset-131"><span class="linenos">131</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-132"><a href="#EvaluationView.get_queryset-132"><span class="linenos">132</span></a><span class="s2">                    ON vkk_departmentdate.date = p.department_date </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-133"><a href="#EvaluationView.get_queryset-133"><span class="linenos">133</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-134"><a href="#EvaluationView.get_queryset-134"><span class="linenos">134</span></a><span class="s2">                project_funded_staff_date AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-135"><a href="#EvaluationView.get_queryset-135"><span class="linenos">135</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-136"><a href="#EvaluationView.get_queryset-136"><span class="linenos">136</span></a><span class="s2">                        vkk_projectfundedstaffdate.id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-137"><a href="#EvaluationView.get_queryset-137"><span class="linenos">137</span></a><span class="s2">                        p.project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-138"><a href="#EvaluationView.get_queryset-138"><span class="linenos">138</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-139"><a href="#EvaluationView.get_queryset-139"><span class="linenos">139</span></a><span class="s2">                    FROM vkk_projectfundedstaffdate, ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-140"><a href="#EvaluationView.get_queryset-140"><span class="linenos">140</span></a><span class="s2">                            SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-141"><a href="#EvaluationView.get_queryset-141"><span class="linenos">141</span></a><span class="s2">                                MAX(vkk_projectfundedstaffdate.date) AS staff_date, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-142"><a href="#EvaluationView.get_queryset-142"><span class="linenos">142</span></a><span class="s2">                                project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-143"><a href="#EvaluationView.get_queryset-143"><span class="linenos">143</span></a><span class="s2">                                periods.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-144"><a href="#EvaluationView.get_queryset-144"><span class="linenos">144</span></a><span class="s2">                            FROM vkk_projectfundedstaffdate, periods </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-145"><a href="#EvaluationView.get_queryset-145"><span class="linenos">145</span></a><span class="s2">                            WHERE vkk_projectfundedstaffdate.date &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-146"><a href="#EvaluationView.get_queryset-146"><span class="linenos">146</span></a><span class="s2">                            GROUP BY project_id, periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-147"><a href="#EvaluationView.get_queryset-147"><span class="linenos">147</span></a><span class="s2">                        ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-148"><a href="#EvaluationView.get_queryset-148"><span class="linenos">148</span></a><span class="s2">                    WHERE </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-149"><a href="#EvaluationView.get_queryset-149"><span class="linenos">149</span></a><span class="s2">                        vkk_projectfundedstaffdate.date = p.staff_date </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-150"><a href="#EvaluationView.get_queryset-150"><span class="linenos">150</span></a><span class="s2">                        AND vkk_projectfundedstaffdate.project_id = p.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-151"><a href="#EvaluationView.get_queryset-151"><span class="linenos">151</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-152"><a href="#EvaluationView.get_queryset-152"><span class="linenos">152</span></a><span class="s2">                general_costs AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-153"><a href="#EvaluationView.get_queryset-153"><span class="linenos">153</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-154"><a href="#EvaluationView.get_queryset-154"><span class="linenos">154</span></a><span class="s2">                        vkk_generalcosts.costs, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-155"><a href="#EvaluationView.get_queryset-155"><span class="linenos">155</span></a><span class="s2">                        p.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-156"><a href="#EvaluationView.get_queryset-156"><span class="linenos">156</span></a><span class="s2">                    FROM vkk_generalcosts JOIN ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-157"><a href="#EvaluationView.get_queryset-157"><span class="linenos">157</span></a><span class="s2">                        SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-158"><a href="#EvaluationView.get_queryset-158"><span class="linenos">158</span></a><span class="s2">                            MAX(vkk_generalcosts.start) AS general_costs_date, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-159"><a href="#EvaluationView.get_queryset-159"><span class="linenos">159</span></a><span class="s2">                            periods.id AS period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-160"><a href="#EvaluationView.get_queryset-160"><span class="linenos">160</span></a><span class="s2">                        FROM vkk_generalcosts, periods </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-161"><a href="#EvaluationView.get_queryset-161"><span class="linenos">161</span></a><span class="s2">                        WHERE vkk_generalcosts.start &lt;= periods.start </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-162"><a href="#EvaluationView.get_queryset-162"><span class="linenos">162</span></a><span class="s2">                        GROUP BY periods.id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-163"><a href="#EvaluationView.get_queryset-163"><span class="linenos">163</span></a><span class="s2">                    ) AS p </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-164"><a href="#EvaluationView.get_queryset-164"><span class="linenos">164</span></a><span class="s2">                    ON vkk_generalcosts.start = p.general_costs_date </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-165"><a href="#EvaluationView.get_queryset-165"><span class="linenos">165</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-166"><a href="#EvaluationView.get_queryset-166"><span class="linenos">166</span></a><span class="s2">                project_funded_staff AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-166"><a href="#EvaluationView.get_queryset-166"><span class="linenos">166</span></a><span class="s2">                salary_level_costs AS ( </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-167"><a href="#EvaluationView.get_queryset-167"><span class="linenos">167</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-168"><a href="#EvaluationView.get_queryset-168"><span class="linenos">168</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-169"><a href="#EvaluationView.get_queryset-169"><span class="linenos">169</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-170"><a href="#EvaluationView.get_queryset-170"><span class="linenos">170</span></a><span class="s2">                        vkk_projectfundedstaff.salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-171"><a href="#EvaluationView.get_queryset-171"><span class="linenos">171</span></a><span class="s2">                        vkk_projectfundedstaff.hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-172"><a href="#EvaluationView.get_queryset-172"><span class="linenos">172</span></a><span class="s2">                    FROM project_funded_staff_date JOIN vkk_projectfundedstaff </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-173"><a href="#EvaluationView.get_queryset-173"><span class="linenos">173</span></a><span class="s2">                    ON project_funded_staff_date.id = vkk_projectfundedstaff.start_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-174"><a href="#EvaluationView.get_queryset-174"><span class="linenos">174</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-175"><a href="#EvaluationView.get_queryset-175"><span class="linenos">175</span></a><span class="s2">                workhours_together AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-176"><a href="#EvaluationView.get_queryset-176"><span class="linenos">176</span></a><span class="s2">                    SELECT  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-177"><a href="#EvaluationView.get_queryset-177"><span class="linenos">177</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-178"><a href="#EvaluationView.get_queryset-178"><span class="linenos">178</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-179"><a href="#EvaluationView.get_queryset-179"><span class="linenos">179</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-180"><a href="#EvaluationView.get_queryset-180"><span class="linenos">180</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-181"><a href="#EvaluationView.get_queryset-181"><span class="linenos">181</span></a><span class="s2">                    FROM workhours_summed </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-182"><a href="#EvaluationView.get_queryset-182"><span class="linenos">182</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-168"><a href="#EvaluationView.get_queryset-168"><span class="linenos">168</span></a><span class="s2">                        vkk_salarylevelcosts.salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-169"><a href="#EvaluationView.get_queryset-169"><span class="linenos">169</span></a><span class="s2">                        vkk_salarylevelcosts.brutto_per_hour, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-170"><a href="#EvaluationView.get_queryset-170"><span class="linenos">170</span></a><span class="s2">                        salary_dates.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-171"><a href="#EvaluationView.get_queryset-171"><span class="linenos">171</span></a><span class="s2">                    FROM vkk_salarylevelcosts JOIN salary_dates </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-172"><a href="#EvaluationView.get_queryset-172"><span class="linenos">172</span></a><span class="s2">                    ON vkk_salarylevelcosts.start_id = salary_dates.salary_date_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-173"><a href="#EvaluationView.get_queryset-173"><span class="linenos">173</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-174"><a href="#EvaluationView.get_queryset-174"><span class="linenos">174</span></a><span class="s2">                department_costs AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-175"><a href="#EvaluationView.get_queryset-175"><span class="linenos">175</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-176"><a href="#EvaluationView.get_queryset-176"><span class="linenos">176</span></a><span class="s2">                        vkk_departmentcosts.equivalents_per_hour, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-177"><a href="#EvaluationView.get_queryset-177"><span class="linenos">177</span></a><span class="s2">                        department_dates.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-178"><a href="#EvaluationView.get_queryset-178"><span class="linenos">178</span></a><span class="s2">                    FROM vkk_departmentcosts JOIN department_dates </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-179"><a href="#EvaluationView.get_queryset-179"><span class="linenos">179</span></a><span class="s2">                    ON vkk_departmentcosts.start_id = department_dates.departmentdate_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-180"><a href="#EvaluationView.get_queryset-180"><span class="linenos">180</span></a><span class="s2">                    WHERE department_id = </span><span class="si">%s</span><span class="s2"> </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-181"><a href="#EvaluationView.get_queryset-181"><span class="linenos">181</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-182"><a href="#EvaluationView.get_queryset-182"><span class="linenos">182</span></a><span class="s2">                project_funded_staff AS ( </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-183"><a href="#EvaluationView.get_queryset-183"><span class="linenos">183</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-184"><a href="#EvaluationView.get_queryset-184"><span class="linenos">184</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-185"><a href="#EvaluationView.get_queryset-185"><span class="linenos">185</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-186"><a href="#EvaluationView.get_queryset-186"><span class="linenos">186</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-187"><a href="#EvaluationView.get_queryset-187"><span class="linenos">187</span></a><span class="s2">                        hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-188"><a href="#EvaluationView.get_queryset-188"><span class="linenos">188</span></a><span class="s2">                    FROM project_funded_staff </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-189"><a href="#EvaluationView.get_queryset-189"><span class="linenos">189</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-190"><a href="#EvaluationView.get_queryset-190"><span class="linenos">190</span></a><span class="s2">                workhours_together_summed_salary AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-191"><a href="#EvaluationView.get_queryset-191"><span class="linenos">191</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-192"><a href="#EvaluationView.get_queryset-192"><span class="linenos">192</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-193"><a href="#EvaluationView.get_queryset-193"><span class="linenos">193</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-194"><a href="#EvaluationView.get_queryset-194"><span class="linenos">194</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-195"><a href="#EvaluationView.get_queryset-195"><span class="linenos">195</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-196"><a href="#EvaluationView.get_queryset-196"><span class="linenos">196</span></a><span class="s2">                    FROM workhours_together </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-197"><a href="#EvaluationView.get_queryset-197"><span class="linenos">197</span></a><span class="s2">                    GROUP BY project_id, salary_level_id, period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-198"><a href="#EvaluationView.get_queryset-198"><span class="linenos">198</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-199"><a href="#EvaluationView.get_queryset-199"><span class="linenos">199</span></a><span class="s2">                salary_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-200"><a href="#EvaluationView.get_queryset-200"><span class="linenos">200</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-201"><a href="#EvaluationView.get_queryset-201"><span class="linenos">201</span></a><span class="s2">                        workhours_together_summed_salary.project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-202"><a href="#EvaluationView.get_queryset-202"><span class="linenos">202</span></a><span class="s2">                        SUM(workhours_together_summed_salary.hours * salary_level_costs.brutto_per_hour) AS salary_costs </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-203"><a href="#EvaluationView.get_queryset-203"><span class="linenos">203</span></a><span class="s2">                    FROM workhours_together_summed_salary, salary_level_costs </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-204"><a href="#EvaluationView.get_queryset-204"><span class="linenos">204</span></a><span class="s2">                    WHERE workhours_together_summed_salary.salary_level_id = salary_level_costs.salary_level_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-205"><a href="#EvaluationView.get_queryset-205"><span class="linenos">205</span></a><span class="s2">                    AND workhours_together_summed_salary.period_id = salary_level_costs.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-206"><a href="#EvaluationView.get_queryset-206"><span class="linenos">206</span></a><span class="s2">                    GROUP BY workhours_together_summed_salary.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-186"><a href="#EvaluationView.get_queryset-186"><span class="linenos">186</span></a><span class="s2">                        vkk_projectfundedstaff.salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-187"><a href="#EvaluationView.get_queryset-187"><span class="linenos">187</span></a><span class="s2">                        vkk_projectfundedstaff.hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-188"><a href="#EvaluationView.get_queryset-188"><span class="linenos">188</span></a><span class="s2">                    FROM project_funded_staff_date JOIN vkk_projectfundedstaff </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-189"><a href="#EvaluationView.get_queryset-189"><span class="linenos">189</span></a><span class="s2">                    ON project_funded_staff_date.id = vkk_projectfundedstaff.start_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-190"><a href="#EvaluationView.get_queryset-190"><span class="linenos">190</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-191"><a href="#EvaluationView.get_queryset-191"><span class="linenos">191</span></a><span class="s2">                workhours_together AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-192"><a href="#EvaluationView.get_queryset-192"><span class="linenos">192</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-193"><a href="#EvaluationView.get_queryset-193"><span class="linenos">193</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-194"><a href="#EvaluationView.get_queryset-194"><span class="linenos">194</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-195"><a href="#EvaluationView.get_queryset-195"><span class="linenos">195</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-196"><a href="#EvaluationView.get_queryset-196"><span class="linenos">196</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-197"><a href="#EvaluationView.get_queryset-197"><span class="linenos">197</span></a><span class="s2">                    FROM workhours_summed </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-198"><a href="#EvaluationView.get_queryset-198"><span class="linenos">198</span></a><span class="s2">                </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-199"><a href="#EvaluationView.get_queryset-199"><span class="linenos">199</span></a><span class="s2">                    UNION </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-200"><a href="#EvaluationView.get_queryset-200"><span class="linenos">200</span></a><span class="s2">                </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-201"><a href="#EvaluationView.get_queryset-201"><span class="linenos">201</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-202"><a href="#EvaluationView.get_queryset-202"><span class="linenos">202</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-203"><a href="#EvaluationView.get_queryset-203"><span class="linenos">203</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-204"><a href="#EvaluationView.get_queryset-204"><span class="linenos">204</span></a><span class="s2">                        salary_level_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-205"><a href="#EvaluationView.get_queryset-205"><span class="linenos">205</span></a><span class="s2">                        hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-206"><a href="#EvaluationView.get_queryset-206"><span class="linenos">206</span></a><span class="s2">                    FROM project_funded_staff </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-207"><a href="#EvaluationView.get_queryset-207"><span class="linenos">207</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-208"><a href="#EvaluationView.get_queryset-208"><span class="linenos">208</span></a><span class="s2">                workhours_together_summed AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-208"><a href="#EvaluationView.get_queryset-208"><span class="linenos">208</span></a><span class="s2">                salary_costs_by_project AS ( </span><span class="se">\</span>
 </span><span id="EvaluationView.get_queryset-209"><a href="#EvaluationView.get_queryset-209"><span class="linenos">209</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-210"><a href="#EvaluationView.get_queryset-210"><span class="linenos">210</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-211"><a href="#EvaluationView.get_queryset-211"><span class="linenos">211</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-212"><a href="#EvaluationView.get_queryset-212"><span class="linenos">212</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-213"><a href="#EvaluationView.get_queryset-213"><span class="linenos">213</span></a><span class="s2">                    FROM workhours_together_summed_salary </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-214"><a href="#EvaluationView.get_queryset-214"><span class="linenos">214</span></a><span class="s2">                    GROUP BY project_id, period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-215"><a href="#EvaluationView.get_queryset-215"><span class="linenos">215</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-216"><a href="#EvaluationView.get_queryset-216"><span class="linenos">216</span></a><span class="s2">                general_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-217"><a href="#EvaluationView.get_queryset-217"><span class="linenos">217</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-218"><a href="#EvaluationView.get_queryset-218"><span class="linenos">218</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-219"><a href="#EvaluationView.get_queryset-219"><span class="linenos">219</span></a><span class="s2">                        SUM(hours * costs) AS general_costs </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-220"><a href="#EvaluationView.get_queryset-220"><span class="linenos">220</span></a><span class="s2">                    FROM workhours_together_summed JOIN general_costs </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-221"><a href="#EvaluationView.get_queryset-221"><span class="linenos">221</span></a><span class="s2">                    ON workhours_together_summed.period_id = general_costs.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-222"><a href="#EvaluationView.get_queryset-222"><span class="linenos">222</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-223"><a href="#EvaluationView.get_queryset-223"><span class="linenos">223</span></a><span class="s2">                ), </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-224"><a href="#EvaluationView.get_queryset-224"><span class="linenos">224</span></a><span class="s2">                department_costs_by_project AS ( </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-225"><a href="#EvaluationView.get_queryset-225"><span class="linenos">225</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-226"><a href="#EvaluationView.get_queryset-226"><span class="linenos">226</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-227"><a href="#EvaluationView.get_queryset-227"><span class="linenos">227</span></a><span class="s2">                        SUM(hours * equivalents_per_hour) AS department_costs </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-228"><a href="#EvaluationView.get_queryset-228"><span class="linenos">228</span></a><span class="s2">                    FROM workhours_together_summed JOIN department_costs </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-229"><a href="#EvaluationView.get_queryset-229"><span class="linenos">229</span></a><span class="s2">                    ON workhours_together_summed.period_id = department_costs.period_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-230"><a href="#EvaluationView.get_queryset-230"><span class="linenos">230</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-231"><a href="#EvaluationView.get_queryset-231"><span class="linenos">231</span></a><span class="s2">                ) </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-232"><a href="#EvaluationView.get_queryset-232"><span class="linenos">232</span></a><span class="s2">                SELECT </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-233"><a href="#EvaluationView.get_queryset-233"><span class="linenos">233</span></a><span class="s2">                    vkk_project.invoice_number AS projekt, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-234"><a href="#EvaluationView.get_queryset-234"><span class="linenos">234</span></a><span class="s2">                    salary_costs_by_project.salary_costs AS pgk, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-235"><a href="#EvaluationView.get_queryset-235"><span class="linenos">235</span></a><span class="s2">                    general_costs_by_project.general_costs AS sgk, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-236"><a href="#EvaluationView.get_queryset-236"><span class="linenos">236</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs AS sum_pgk_sgk, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-237"><a href="#EvaluationView.get_queryset-237"><span class="linenos">237</span></a><span class="s2">                    department_costs_by_project.department_costs AS vgk, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-238"><a href="#EvaluationView.get_queryset-238"><span class="linenos">238</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs + department_costs_by_project.department_costs AS sum_all </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-239"><a href="#EvaluationView.get_queryset-239"><span class="linenos">239</span></a><span class="s2">                FROM  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-240"><a href="#EvaluationView.get_queryset-240"><span class="linenos">240</span></a><span class="s2">                    vkk_project,  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-241"><a href="#EvaluationView.get_queryset-241"><span class="linenos">241</span></a><span class="s2">                    salary_costs_by_project, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-242"><a href="#EvaluationView.get_queryset-242"><span class="linenos">242</span></a><span class="s2">                    general_costs_by_project, </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-243"><a href="#EvaluationView.get_queryset-243"><span class="linenos">243</span></a><span class="s2">                    department_costs_by_project </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-244"><a href="#EvaluationView.get_queryset-244"><span class="linenos">244</span></a><span class="s2">                WHERE  </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-245"><a href="#EvaluationView.get_queryset-245"><span class="linenos">245</span></a><span class="s2">                    vkk_project.id = salary_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-246"><a href="#EvaluationView.get_queryset-246"><span class="linenos">246</span></a><span class="s2">                    AND salary_costs_by_project.project_id = general_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-247"><a href="#EvaluationView.get_queryset-247"><span class="linenos">247</span></a><span class="s2">                    AND general_costs_by_project.project_id = department_costs_by_project.project_id </span><span class="se">\</span>
-</span><span id="EvaluationView.get_queryset-248"><a href="#EvaluationView.get_queryset-248"><span class="linenos">248</span></a><span class="s2">                ORDER BY vkk_project.invoice_number;&quot;</span><span class="p">,</span> 
-</span><span id="EvaluationView.get_queryset-249"><a href="#EvaluationView.get_queryset-249"><span class="linenos">249</span></a>                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">],</span> <span class="n">periods</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]],</span>
-</span><span id="EvaluationView.get_queryset-250"><a href="#EvaluationView.get_queryset-250"><span class="linenos">250</span></a>            <span class="p">)</span>
-</span><span id="EvaluationView.get_queryset-251"><a href="#EvaluationView.get_queryset-251"><span class="linenos">251</span></a>            <span class="n">queryset</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
-</span><span id="EvaluationView.get_queryset-252"><a href="#EvaluationView.get_queryset-252"><span class="linenos">252</span></a>        <span class="k">return</span> <span class="n">queryset</span>
+</span><span id="EvaluationView.get_queryset-210"><a href="#EvaluationView.get_queryset-210"><span class="linenos">210</span></a><span class="s2">                        workhours_summed.project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-211"><a href="#EvaluationView.get_queryset-211"><span class="linenos">211</span></a><span class="s2">                        SUM(workhours_summed.hours * salary_level_costs.brutto_per_hour) AS salary_costs </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-212"><a href="#EvaluationView.get_queryset-212"><span class="linenos">212</span></a><span class="s2">                    FROM workhours_summed, salary_level_costs </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-213"><a href="#EvaluationView.get_queryset-213"><span class="linenos">213</span></a><span class="s2">                    WHERE workhours_summed.salary_level_id = salary_level_costs.salary_level_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-214"><a href="#EvaluationView.get_queryset-214"><span class="linenos">214</span></a><span class="s2">                    AND workhours_summed.period_id = salary_level_costs.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-215"><a href="#EvaluationView.get_queryset-215"><span class="linenos">215</span></a><span class="s2">                    GROUP BY workhours_summed.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-216"><a href="#EvaluationView.get_queryset-216"><span class="linenos">216</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-217"><a href="#EvaluationView.get_queryset-217"><span class="linenos">217</span></a><span class="s2">                workhours_together_summed AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-218"><a href="#EvaluationView.get_queryset-218"><span class="linenos">218</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-219"><a href="#EvaluationView.get_queryset-219"><span class="linenos">219</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-220"><a href="#EvaluationView.get_queryset-220"><span class="linenos">220</span></a><span class="s2">                        period_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-221"><a href="#EvaluationView.get_queryset-221"><span class="linenos">221</span></a><span class="s2">                        SUM(hours) AS hours </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-222"><a href="#EvaluationView.get_queryset-222"><span class="linenos">222</span></a><span class="s2">                    FROM workhours_together </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-223"><a href="#EvaluationView.get_queryset-223"><span class="linenos">223</span></a><span class="s2">                    GROUP BY project_id, period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-224"><a href="#EvaluationView.get_queryset-224"><span class="linenos">224</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-225"><a href="#EvaluationView.get_queryset-225"><span class="linenos">225</span></a><span class="s2">                general_costs_by_project AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-226"><a href="#EvaluationView.get_queryset-226"><span class="linenos">226</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-227"><a href="#EvaluationView.get_queryset-227"><span class="linenos">227</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-228"><a href="#EvaluationView.get_queryset-228"><span class="linenos">228</span></a><span class="s2">                        SUM(hours * costs) AS general_costs </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-229"><a href="#EvaluationView.get_queryset-229"><span class="linenos">229</span></a><span class="s2">                    FROM workhours_together_summed JOIN general_costs </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-230"><a href="#EvaluationView.get_queryset-230"><span class="linenos">230</span></a><span class="s2">                    ON workhours_together_summed.period_id = general_costs.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-231"><a href="#EvaluationView.get_queryset-231"><span class="linenos">231</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-232"><a href="#EvaluationView.get_queryset-232"><span class="linenos">232</span></a><span class="s2">                ), </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-233"><a href="#EvaluationView.get_queryset-233"><span class="linenos">233</span></a><span class="s2">                department_costs_by_project AS ( </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-234"><a href="#EvaluationView.get_queryset-234"><span class="linenos">234</span></a><span class="s2">                    SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-235"><a href="#EvaluationView.get_queryset-235"><span class="linenos">235</span></a><span class="s2">                        project_id, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-236"><a href="#EvaluationView.get_queryset-236"><span class="linenos">236</span></a><span class="s2">                        SUM(hours * equivalents_per_hour) AS department_costs </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-237"><a href="#EvaluationView.get_queryset-237"><span class="linenos">237</span></a><span class="s2">                    FROM workhours_together_summed JOIN department_costs </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-238"><a href="#EvaluationView.get_queryset-238"><span class="linenos">238</span></a><span class="s2">                    ON workhours_together_summed.period_id = department_costs.period_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-239"><a href="#EvaluationView.get_queryset-239"><span class="linenos">239</span></a><span class="s2">                    GROUP BY project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-240"><a href="#EvaluationView.get_queryset-240"><span class="linenos">240</span></a><span class="s2">                ) </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-241"><a href="#EvaluationView.get_queryset-241"><span class="linenos">241</span></a><span class="s2">                SELECT </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-242"><a href="#EvaluationView.get_queryset-242"><span class="linenos">242</span></a><span class="s2">                    projects.invoice_number AS projekt, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-243"><a href="#EvaluationView.get_queryset-243"><span class="linenos">243</span></a><span class="s2">                    salary_costs_by_project.salary_costs AS pgk, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-244"><a href="#EvaluationView.get_queryset-244"><span class="linenos">244</span></a><span class="s2">                    department_costs_by_project.department_costs AS sgk, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-245"><a href="#EvaluationView.get_queryset-245"><span class="linenos">245</span></a><span class="s2">                    salary_costs_by_project.salary_costs + department_costs_by_project.department_costs AS sum_pgk_sgk, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-246"><a href="#EvaluationView.get_queryset-246"><span class="linenos">246</span></a><span class="s2">                    general_costs_by_project.general_costs AS vgk, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-247"><a href="#EvaluationView.get_queryset-247"><span class="linenos">247</span></a><span class="s2">                    salary_costs_by_project.salary_costs + general_costs_by_project.general_costs + department_costs_by_project.department_costs AS sum_all </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-248"><a href="#EvaluationView.get_queryset-248"><span class="linenos">248</span></a><span class="s2">                FROM  </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-249"><a href="#EvaluationView.get_queryset-249"><span class="linenos">249</span></a><span class="s2">                    projects,  </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-250"><a href="#EvaluationView.get_queryset-250"><span class="linenos">250</span></a><span class="s2">                    salary_costs_by_project, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-251"><a href="#EvaluationView.get_queryset-251"><span class="linenos">251</span></a><span class="s2">                    general_costs_by_project, </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-252"><a href="#EvaluationView.get_queryset-252"><span class="linenos">252</span></a><span class="s2">                    department_costs_by_project </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-253"><a href="#EvaluationView.get_queryset-253"><span class="linenos">253</span></a><span class="s2">                WHERE  </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-254"><a href="#EvaluationView.get_queryset-254"><span class="linenos">254</span></a><span class="s2">                    projects.id = salary_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-255"><a href="#EvaluationView.get_queryset-255"><span class="linenos">255</span></a><span class="s2">                    AND salary_costs_by_project.project_id = general_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-256"><a href="#EvaluationView.get_queryset-256"><span class="linenos">256</span></a><span class="s2">                    AND general_costs_by_project.project_id = department_costs_by_project.project_id </span><span class="se">\</span>
+</span><span id="EvaluationView.get_queryset-257"><a href="#EvaluationView.get_queryset-257"><span class="linenos">257</span></a><span class="s2">                ORDER BY projects.invoice_number;&quot;</span><span class="p">,</span> 
+</span><span id="EvaluationView.get_queryset-258"><a href="#EvaluationView.get_queryset-258"><span class="linenos">258</span></a>                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">],</span> <span class="n">periods</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]],</span>
+</span><span id="EvaluationView.get_queryset-259"><a href="#EvaluationView.get_queryset-259"><span class="linenos">259</span></a>            <span class="p">)</span>
+</span><span id="EvaluationView.get_queryset-260"><a href="#EvaluationView.get_queryset-260"><span class="linenos">260</span></a>            <span class="n">queryset</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
+</span><span id="EvaluationView.get_queryset-261"><a href="#EvaluationView.get_queryset-261"><span class="linenos">261</span></a>        <span class="k">return</span> <span class="n">queryset</span>
 </span></pre></div>
 
 
@@ -915,27 +948,30 @@ the given <code>Department</code> over some <code>Periods</code>.</p>
 
     </div>
     <a class="headerlink" href="#EvaluationView.form_valid"></a>
-            <div class="pdoc-code codehilite"><pre><span></span><span id="EvaluationView.form_valid-255"><a href="#EvaluationView.form_valid-255"><span class="linenos">255</span></a>    <span class="k">def</span> <span class="nf">form_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">form</span><span class="p">):</span>
-</span><span id="EvaluationView.form_valid-256"><a href="#EvaluationView.form_valid-256"><span class="linenos">256</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="EvaluationView.form_valid-257"><a href="#EvaluationView.form_valid-257"><span class="linenos">257</span></a><span class="sd">        Returns the result of the evaluation in shape of a `.csv` file.</span>
-</span><span id="EvaluationView.form_valid-258"><a href="#EvaluationView.form_valid-258"><span class="linenos">258</span></a><span class="sd">        &quot;&quot;&quot;</span>
-</span><span id="EvaluationView.form_valid-259"><a href="#EvaluationView.form_valid-259"><span class="linenos">259</span></a>        <span class="n">periods</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;periods&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">))</span>
-</span><span id="EvaluationView.form_valid-260"><a href="#EvaluationView.form_valid-260"><span class="linenos">260</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">()</span>
-</span><span id="EvaluationView.form_valid-261"><a href="#EvaluationView.form_valid-261"><span class="linenos">261</span></a>        <span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_queryset</span><span class="p">(</span><span class="n">periods</span><span class="p">)</span>
-</span><span id="EvaluationView.form_valid-262"><a href="#EvaluationView.form_valid-262"><span class="linenos">262</span></a>        <span class="n">response</span> <span class="o">=</span> <span class="n">HttpResponse</span><span class="p">(</span>
-</span><span id="EvaluationView.form_valid-263"><a href="#EvaluationView.form_valid-263"><span class="linenos">263</span></a>            <span class="n">content_type</span><span class="o">=</span><span class="s1">&#39;text/csv&#39;</span><span class="p">,</span>
-</span><span id="EvaluationView.form_valid-264"><a href="#EvaluationView.form_valid-264"><span class="linenos">264</span></a>            <span class="n">headers</span><span class="o">=</span><span class="p">{</span>
-</span><span id="EvaluationView.form_valid-265"><a href="#EvaluationView.form_valid-265"><span class="linenos">265</span></a>                <span class="s1">&#39;Content-Disposition&#39;</span><span class="p">:</span> <span class="s1">&#39;attachment; filename=&quot;12345.csv&quot;&#39;</span><span class="p">},</span>
-</span><span id="EvaluationView.form_valid-266"><a href="#EvaluationView.form_valid-266"><span class="linenos">266</span></a>        <span class="p">)</span>
-</span><span id="EvaluationView.form_valid-267"><a href="#EvaluationView.form_valid-267"><span class="linenos">267</span></a>        <span class="n">response</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
-</span><span id="EvaluationView.form_valid-268"><a href="#EvaluationView.form_valid-268"><span class="linenos">268</span></a>            <span class="n">loader</span>
-</span><span id="EvaluationView.form_valid-269"><a href="#EvaluationView.form_valid-269"><span class="linenos">269</span></a>                <span class="o">.</span><span class="n">get_template</span><span class="p">(</span><span class="s1">&#39;vkk/workhours/accounting/department/evaluation.csv&#39;</span><span class="p">)</span>
-</span><span id="EvaluationView.form_valid-270"><a href="#EvaluationView.form_valid-270"><span class="linenos">270</span></a>                <span class="o">.</span><span class="n">render</span><span class="p">(</span>
-</span><span id="EvaluationView.form_valid-271"><a href="#EvaluationView.form_valid-271"><span class="linenos">271</span></a>                    <span class="n">context</span><span class="o">=</span><span class="n">context</span><span class="p">,</span>
-</span><span id="EvaluationView.form_valid-272"><a href="#EvaluationView.form_valid-272"><span class="linenos">272</span></a>                    <span class="n">request</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span>
-</span><span id="EvaluationView.form_valid-273"><a href="#EvaluationView.form_valid-273"><span class="linenos">273</span></a>                <span class="p">)</span>
-</span><span id="EvaluationView.form_valid-274"><a href="#EvaluationView.form_valid-274"><span class="linenos">274</span></a>        <span class="p">)</span>
-</span><span id="EvaluationView.form_valid-275"><a href="#EvaluationView.form_valid-275"><span class="linenos">275</span></a>        <span class="k">return</span> <span class="n">response</span>
+            <div class="pdoc-code codehilite"><pre><span></span><span id="EvaluationView.form_valid-264"><a href="#EvaluationView.form_valid-264"><span class="linenos">264</span></a>    <span class="k">def</span> <span class="nf">form_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">form</span><span class="p">):</span>
+</span><span id="EvaluationView.form_valid-265"><a href="#EvaluationView.form_valid-265"><span class="linenos">265</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="EvaluationView.form_valid-266"><a href="#EvaluationView.form_valid-266"><span class="linenos">266</span></a><span class="sd">        Returns the result of the evaluation in shape of a `.csv` file.</span>
+</span><span id="EvaluationView.form_valid-267"><a href="#EvaluationView.form_valid-267"><span class="linenos">267</span></a><span class="sd">        &quot;&quot;&quot;</span>
+</span><span id="EvaluationView.form_valid-268"><a href="#EvaluationView.form_valid-268"><span class="linenos">268</span></a>        <span class="n">periods</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;periods&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">))</span>
+</span><span id="EvaluationView.form_valid-269"><a href="#EvaluationView.form_valid-269"><span class="linenos">269</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">()</span>
+</span><span id="EvaluationView.form_valid-270"><a href="#EvaluationView.form_valid-270"><span class="linenos">270</span></a>        <span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_queryset</span><span class="p">(</span><span class="n">periods</span><span class="p">)</span>
+</span><span id="EvaluationView.form_valid-271"><a href="#EvaluationView.form_valid-271"><span class="linenos">271</span></a>        <span class="nb">print</span><span class="p">(</span><span class="n">context</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+</span><span id="EvaluationView.form_valid-272"><a href="#EvaluationView.form_valid-272"><span class="linenos">272</span></a>        <span class="n">periods_string</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">periods</span><span class="p">)</span>
+</span><span id="EvaluationView.form_valid-273"><a href="#EvaluationView.form_valid-273"><span class="linenos">273</span></a>        <span class="n">department_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;pk&#39;</span><span class="p">]</span>
+</span><span id="EvaluationView.form_valid-274"><a href="#EvaluationView.form_valid-274"><span class="linenos">274</span></a>        <span class="n">response</span> <span class="o">=</span> <span class="n">HttpResponse</span><span class="p">(</span>
+</span><span id="EvaluationView.form_valid-275"><a href="#EvaluationView.form_valid-275"><span class="linenos">275</span></a>            <span class="n">content_type</span><span class="o">=</span><span class="s1">&#39;text/csv&#39;</span><span class="p">,</span>
+</span><span id="EvaluationView.form_valid-276"><a href="#EvaluationView.form_valid-276"><span class="linenos">276</span></a>            <span class="n">headers</span><span class="o">=</span><span class="p">{</span>
+</span><span id="EvaluationView.form_valid-277"><a href="#EvaluationView.form_valid-277"><span class="linenos">277</span></a>                <span class="s1">&#39;Content-Disposition&#39;</span><span class="p">:</span> <span class="sa">f</span><span class="s1">&#39;attachment; filename=&quot;</span><span class="si">{</span><span class="n">department_string</span><span class="si">}</span><span class="s1">-</span><span class="si">{</span><span class="n">periods_string</span><span class="si">}</span><span class="s1">.csv&quot;&#39;</span><span class="p">},</span>
+</span><span id="EvaluationView.form_valid-278"><a href="#EvaluationView.form_valid-278"><span class="linenos">278</span></a>        <span class="p">)</span>
+</span><span id="EvaluationView.form_valid-279"><a href="#EvaluationView.form_valid-279"><span class="linenos">279</span></a>        <span class="n">response</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
+</span><span id="EvaluationView.form_valid-280"><a href="#EvaluationView.form_valid-280"><span class="linenos">280</span></a>            <span class="n">loader</span>
+</span><span id="EvaluationView.form_valid-281"><a href="#EvaluationView.form_valid-281"><span class="linenos">281</span></a>                <span class="o">.</span><span class="n">get_template</span><span class="p">(</span><span class="s1">&#39;vkk/workhours/accounting/department/evaluation.csv&#39;</span><span class="p">)</span>
+</span><span id="EvaluationView.form_valid-282"><a href="#EvaluationView.form_valid-282"><span class="linenos">282</span></a>                <span class="o">.</span><span class="n">render</span><span class="p">(</span>
+</span><span id="EvaluationView.form_valid-283"><a href="#EvaluationView.form_valid-283"><span class="linenos">283</span></a>                    <span class="n">context</span><span class="o">=</span><span class="n">context</span><span class="p">,</span>
+</span><span id="EvaluationView.form_valid-284"><a href="#EvaluationView.form_valid-284"><span class="linenos">284</span></a>                    <span class="n">request</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span>
+</span><span id="EvaluationView.form_valid-285"><a href="#EvaluationView.form_valid-285"><span class="linenos">285</span></a>                <span class="p">)</span>
+</span><span id="EvaluationView.form_valid-286"><a href="#EvaluationView.form_valid-286"><span class="linenos">286</span></a>        <span class="p">)</span>
+</span><span id="EvaluationView.form_valid-287"><a href="#EvaluationView.form_valid-287"><span class="linenos">287</span></a>        <span class="k">return</span> <span class="n">response</span>
 </span></pre></div>
 
 
diff --git a/docs/pdoc/vkk/workhours/allprojects/forms.html b/docs/pdoc/vkk/workhours/allprojects/forms.html
index 958ad81c5e1a365d0a5e99c716f66725c791d288..c470fe4d3d4fa5ce1ec5a060fed65f26756224dd 100644
--- a/docs/pdoc/vkk/workhours/allprojects/forms.html
+++ b/docs/pdoc/vkk/workhours/allprojects/forms.html
@@ -196,7 +196,7 @@
 </span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a>            <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
 </span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a>            <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span><span class="p">,</span>
 </span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a>            <span class="n">project__projectmanager__end__gte</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">date</span><span class="p">()</span>
-</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;project__invoice_number&#39;</span><span class="p">)</span>
+</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">select_related</span><span class="p">(</span><span class="s2">&quot;project&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;project__invoice_number&#39;</span><span class="p">)</span>
 </span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a>
 </span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a>        <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
 </span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a>            <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
@@ -218,99 +218,103 @@
 </span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a>                    <span class="k">if</span> <span class="n">closure</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
 </span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a>                        <span class="n">disabled</span> <span class="o">=</span> <span class="n">closure</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">is_closed_manager</span>
 </span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a>
-</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a>                <span class="n">field</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">DecimalField</span><span class="p">(</span>
-</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a>                    <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a>                    <span class="n">min_value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
-</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a>                    <span class="n">max_digits</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
-</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a>                    <span class="n">decimal_places</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
-</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a>                    <span class="n">disabled</span><span class="o">=</span><span class="n">disabled</span>
-</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a>                <span class="p">)</span>
-</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a>
-</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a>                <span class="n">initial</span> <span class="o">=</span> <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span>
-</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>                <span class="k">if</span> <span class="n">workhours_correction</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
-</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a>                    <span class="n">initial</span> <span class="o">+=</span> <span class="n">workhours_correction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ammount</span>
-</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a>                <span class="k">if</span> <span class="n">initial</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
-</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a>                    <span class="n">field</span><span class="o">.</span><span class="n">initial</span> <span class="o">=</span> <span class="n">initial</span>
-</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a>
-</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a>                <span class="bp">self</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">field</span>
-</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a>
-</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a>    <span class="k">def</span> <span class="nf">_get_field_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>        <span class="k">return</span> <span class="p">[</span>
-</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a>            <span class="p">(</span>
-</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a>                <span class="n">assignment</span><span class="p">,</span>
-</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a>                <span class="p">[</span>
-</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a>                    <span class="bp">self</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span>
-</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a>                <span class="p">]</span>
-</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span>
-</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a>        <span class="p">]</span>
-</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a>
-</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a>    <span class="k">def</span> <span class="nf">as_html</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context</span><span class="p">()</span>
-</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a>        <span class="n">context</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
-</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a>            <span class="s1">&#39;assignee&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span><span class="p">,</span>
-</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a>            <span class="s1">&#39;year&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_year</span><span class="p">,</span>
-</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a>            <span class="s1">&#39;periods&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">,</span>
-</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a>            <span class="s1">&#39;fields_more&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_field_structure</span><span class="p">()</span>
-</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a>        <span class="p">})</span>
-</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
-</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a>            <span class="n">template_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
-</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a>            <span class="n">context</span><span class="o">=</span><span class="n">context</span>
-</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a>        <span class="p">)</span>
-</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a>
-</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_changed</span><span class="p">():</span>
-</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a>            <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
-</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a>                <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
-</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a>                    <span class="n">field_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
-</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a>                    <span class="k">if</span> <span class="n">field_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">changed_data</span><span class="p">:</span>
-</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a>                        <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a>                            <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a>                            <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a>                        <span class="p">)</span>
-</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a>                        <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="n">field_name</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span>
-</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a>                            <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span>
-</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a>                        <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
-</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a>                            <span class="p">)</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
-</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a>                        <span class="k">else</span><span class="p">:</span>
-</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">update_or_create</span><span class="p">(</span>
-</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a>                                <span class="n">defaults</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;ammount&#39;</span><span class="p">:</span> <span class="n">value</span><span class="p">}</span>
-</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a>                            <span class="p">)</span>
-</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a>
-</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a>
-</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a><span class="k">class</span> <span class="nc">AssgineeClosureForm</span><span class="p">(</span><span class="n">forms</span><span class="o">.</span><span class="n">Form</span><span class="p">):</span>
-</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a>    <span class="n">assignee</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
-</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a>    <span class="n">period</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">Period</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
-</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a>    <span class="n">manager</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
-</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a>
-</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span>
-</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a>            <span class="n">assignee</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;assignee&#39;</span><span class="p">]</span>
-</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a>            <span class="n">period</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">]</span>
-</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a>            <span class="n">manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;manager&#39;</span><span class="p">]</span>
-</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a>            <span class="n">project_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a>                <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
-</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a>                <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span>
-</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a>            <span class="p">)</span>
-</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a>
-</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a>            <span class="n">objs</span> <span class="o">=</span> <span class="p">[</span><span class="n">PeriodClosure</span><span class="p">(</span>
-</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a>                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a>                <span class="n">project_assignment</span><span class="o">=</span><span class="n">project_assignment</span><span class="p">,</span>
-</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a>                <span class="n">is_closed_contributor</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a>                <span class="n">is_closed_manager</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">project_assignment</span> <span class="ow">in</span> <span class="n">project_assignments</span><span class="p">]</span>
-</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a>
-</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a>            <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">bulk_create</span><span class="p">(</span>
-</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a>                <span class="n">objs</span><span class="o">=</span><span class="n">objs</span><span class="p">,</span>
-</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a>                <span class="n">ignore_conflicts</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a>                <span class="n">update_conflicts</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a>                <span class="n">update_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;is_closed_contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;is_closed_manager&#39;</span><span class="p">],</span>
-</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a>                <span class="n">unique_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">,</span> <span class="s1">&#39;project_assignment&#39;</span><span class="p">]</span>
-</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a>            <span class="p">)</span>
+</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a>                <span class="k">if</span> <span class="ow">not</span> <span class="n">disabled</span><span class="p">:</span>
+</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a>                    <span class="n">disabled</span> <span class="o">=</span> <span class="n">period</span><span class="o">.</span><span class="n">end</span> <span class="o">&lt;</span> <span class="n">assignment</span><span class="o">.</span><span class="n">project</span><span class="o">.</span><span class="n">start</span>
+</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a>                    <span class="n">disabled</span> <span class="o">|=</span> <span class="n">period</span><span class="o">.</span><span class="n">start</span> <span class="o">&gt;</span> <span class="n">assignment</span><span class="o">.</span><span class="n">project</span><span class="o">.</span><span class="n">end</span>
+</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a>
+</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a>                <span class="n">field</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">DecimalField</span><span class="p">(</span>
+</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a>                    <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a>                    <span class="n">min_value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a>                    <span class="n">max_digits</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
+</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a>                    <span class="n">decimal_places</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
+</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>                    <span class="n">disabled</span><span class="o">=</span><span class="n">disabled</span>
+</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a>                <span class="p">)</span>
+</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a>
+</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a>                <span class="n">initial</span> <span class="o">=</span> <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span>
+</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a>                <span class="k">if</span> <span class="n">workhours_correction</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
+</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a>                    <span class="n">initial</span> <span class="o">+=</span> <span class="n">workhours_correction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ammount</span>
+</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a>                <span class="k">if</span> <span class="n">initial</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a>                    <span class="n">field</span><span class="o">.</span><span class="n">initial</span> <span class="o">=</span> <span class="n">initial</span>
+</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>
+</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a>                <span class="bp">self</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">field</span>
+</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a>
+</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a>    <span class="k">def</span> <span class="nf">_get_field_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a>        <span class="k">return</span> <span class="p">[</span>
+</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a>            <span class="p">(</span>
+</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a>                <span class="n">assignment</span><span class="p">,</span>
+</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a>                <span class="p">[</span>
+</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a>                    <span class="bp">self</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span>
+</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a>                <span class="p">]</span>
+</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span>
+</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a>        <span class="p">]</span>
+</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a>
+</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a>    <span class="k">def</span> <span class="nf">as_html</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context</span><span class="p">()</span>
+</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a>        <span class="n">context</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
+</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a>            <span class="s1">&#39;assignee&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span><span class="p">,</span>
+</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a>            <span class="s1">&#39;year&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_year</span><span class="p">,</span>
+</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a>            <span class="s1">&#39;periods&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">,</span>
+</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a>            <span class="s1">&#39;fields_more&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_field_structure</span><span class="p">()</span>
+</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a>        <span class="p">})</span>
+</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
+</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a>            <span class="n">template_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
+</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a>            <span class="n">context</span><span class="o">=</span><span class="n">context</span>
+</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a>        <span class="p">)</span>
+</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a>
+</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_changed</span><span class="p">():</span>
+</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a>            <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
+</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a>                <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
+</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a>                    <span class="n">field_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
+</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a>                    <span class="k">if</span> <span class="n">field_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">changed_data</span><span class="p">:</span>
+</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a>                        <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a>                            <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a>                            <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a>                        <span class="p">)</span>
+</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a>                        <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="n">field_name</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span>
+</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a>                            <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span>
+</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a>                        <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a>                            <span class="p">)</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
+</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a>                        <span class="k">else</span><span class="p">:</span>
+</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">update_or_create</span><span class="p">(</span>
+</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a>                                <span class="n">defaults</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;ammount&#39;</span><span class="p">:</span> <span class="n">value</span><span class="p">}</span>
+</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a>                            <span class="p">)</span>
+</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a>
+</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a>
+</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="k">class</span> <span class="nc">AssgineeClosureForm</span><span class="p">(</span><span class="n">forms</span><span class="o">.</span><span class="n">Form</span><span class="p">):</span>
+</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a>    <span class="n">assignee</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
+</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a>    <span class="n">period</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">Period</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
+</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a>    <span class="n">manager</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
+</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a>
+</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span>
+</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a>            <span class="n">assignee</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;assignee&#39;</span><span class="p">]</span>
+</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a>            <span class="n">period</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">]</span>
+</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a>            <span class="n">manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;manager&#39;</span><span class="p">]</span>
+</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a>            <span class="n">project_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a>                <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
+</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a>                <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span>
+</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a>            <span class="p">)</span>
+</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a>
+</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a>            <span class="n">objs</span> <span class="o">=</span> <span class="p">[</span><span class="n">PeriodClosure</span><span class="p">(</span>
+</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a>                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a>                <span class="n">project_assignment</span><span class="o">=</span><span class="n">project_assignment</span><span class="p">,</span>
+</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a>                <span class="n">is_closed_contributor</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a>                <span class="n">is_closed_manager</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">project_assignment</span> <span class="ow">in</span> <span class="n">project_assignments</span><span class="p">]</span>
+</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a>
+</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a>            <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">bulk_create</span><span class="p">(</span>
+</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a>                <span class="n">objs</span><span class="o">=</span><span class="n">objs</span><span class="p">,</span>
+</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a>                <span class="n">ignore_conflicts</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a>                <span class="n">update_conflicts</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a>                <span class="n">update_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;is_closed_contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;is_closed_manager&#39;</span><span class="p">],</span>
+</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a>                <span class="n">unique_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">,</span> <span class="s1">&#39;project_assignment&#39;</span><span class="p">]</span>
+</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a>            <span class="p">)</span>
 </span></pre></div>
 
 
@@ -514,7 +518,7 @@
 </span><span id="AssigneeForm-58"><a href="#AssigneeForm-58"><span class="linenos"> 58</span></a>            <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
 </span><span id="AssigneeForm-59"><a href="#AssigneeForm-59"><span class="linenos"> 59</span></a>            <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span><span class="p">,</span>
 </span><span id="AssigneeForm-60"><a href="#AssigneeForm-60"><span class="linenos"> 60</span></a>            <span class="n">project__projectmanager__end__gte</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">date</span><span class="p">()</span>
-</span><span id="AssigneeForm-61"><a href="#AssigneeForm-61"><span class="linenos"> 61</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;project__invoice_number&#39;</span><span class="p">)</span>
+</span><span id="AssigneeForm-61"><a href="#AssigneeForm-61"><span class="linenos"> 61</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">select_related</span><span class="p">(</span><span class="s2">&quot;project&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;project__invoice_number&#39;</span><span class="p">)</span>
 </span><span id="AssigneeForm-62"><a href="#AssigneeForm-62"><span class="linenos"> 62</span></a>
 </span><span id="AssigneeForm-63"><a href="#AssigneeForm-63"><span class="linenos"> 63</span></a>        <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
 </span><span id="AssigneeForm-64"><a href="#AssigneeForm-64"><span class="linenos"> 64</span></a>            <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
@@ -536,68 +540,72 @@
 </span><span id="AssigneeForm-80"><a href="#AssigneeForm-80"><span class="linenos"> 80</span></a>                    <span class="k">if</span> <span class="n">closure</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
 </span><span id="AssigneeForm-81"><a href="#AssigneeForm-81"><span class="linenos"> 81</span></a>                        <span class="n">disabled</span> <span class="o">=</span> <span class="n">closure</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">is_closed_manager</span>
 </span><span id="AssigneeForm-82"><a href="#AssigneeForm-82"><span class="linenos"> 82</span></a>
-</span><span id="AssigneeForm-83"><a href="#AssigneeForm-83"><span class="linenos"> 83</span></a>                <span class="n">field</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">DecimalField</span><span class="p">(</span>
-</span><span id="AssigneeForm-84"><a href="#AssigneeForm-84"><span class="linenos"> 84</span></a>                    <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="AssigneeForm-85"><a href="#AssigneeForm-85"><span class="linenos"> 85</span></a>                    <span class="n">min_value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
-</span><span id="AssigneeForm-86"><a href="#AssigneeForm-86"><span class="linenos"> 86</span></a>                    <span class="n">max_digits</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
-</span><span id="AssigneeForm-87"><a href="#AssigneeForm-87"><span class="linenos"> 87</span></a>                    <span class="n">decimal_places</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
-</span><span id="AssigneeForm-88"><a href="#AssigneeForm-88"><span class="linenos"> 88</span></a>                    <span class="n">disabled</span><span class="o">=</span><span class="n">disabled</span>
-</span><span id="AssigneeForm-89"><a href="#AssigneeForm-89"><span class="linenos"> 89</span></a>                <span class="p">)</span>
-</span><span id="AssigneeForm-90"><a href="#AssigneeForm-90"><span class="linenos"> 90</span></a>
-</span><span id="AssigneeForm-91"><a href="#AssigneeForm-91"><span class="linenos"> 91</span></a>                <span class="n">initial</span> <span class="o">=</span> <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span>
-</span><span id="AssigneeForm-92"><a href="#AssigneeForm-92"><span class="linenos"> 92</span></a>                <span class="k">if</span> <span class="n">workhours_correction</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
-</span><span id="AssigneeForm-93"><a href="#AssigneeForm-93"><span class="linenos"> 93</span></a>                    <span class="n">initial</span> <span class="o">+=</span> <span class="n">workhours_correction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ammount</span>
-</span><span id="AssigneeForm-94"><a href="#AssigneeForm-94"><span class="linenos"> 94</span></a>                <span class="k">if</span> <span class="n">initial</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
-</span><span id="AssigneeForm-95"><a href="#AssigneeForm-95"><span class="linenos"> 95</span></a>                    <span class="n">field</span><span class="o">.</span><span class="n">initial</span> <span class="o">=</span> <span class="n">initial</span>
-</span><span id="AssigneeForm-96"><a href="#AssigneeForm-96"><span class="linenos"> 96</span></a>
-</span><span id="AssigneeForm-97"><a href="#AssigneeForm-97"><span class="linenos"> 97</span></a>                <span class="bp">self</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">field</span>
-</span><span id="AssigneeForm-98"><a href="#AssigneeForm-98"><span class="linenos"> 98</span></a>
-</span><span id="AssigneeForm-99"><a href="#AssigneeForm-99"><span class="linenos"> 99</span></a>    <span class="k">def</span> <span class="nf">_get_field_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssigneeForm-100"><a href="#AssigneeForm-100"><span class="linenos">100</span></a>        <span class="k">return</span> <span class="p">[</span>
-</span><span id="AssigneeForm-101"><a href="#AssigneeForm-101"><span class="linenos">101</span></a>            <span class="p">(</span>
-</span><span id="AssigneeForm-102"><a href="#AssigneeForm-102"><span class="linenos">102</span></a>                <span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm-103"><a href="#AssigneeForm-103"><span class="linenos">103</span></a>                <span class="p">[</span>
-</span><span id="AssigneeForm-104"><a href="#AssigneeForm-104"><span class="linenos">104</span></a>                    <span class="bp">self</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span>
-</span><span id="AssigneeForm-105"><a href="#AssigneeForm-105"><span class="linenos">105</span></a>                <span class="p">]</span>
-</span><span id="AssigneeForm-106"><a href="#AssigneeForm-106"><span class="linenos">106</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span>
-</span><span id="AssigneeForm-107"><a href="#AssigneeForm-107"><span class="linenos">107</span></a>        <span class="p">]</span>
-</span><span id="AssigneeForm-108"><a href="#AssigneeForm-108"><span class="linenos">108</span></a>
-</span><span id="AssigneeForm-109"><a href="#AssigneeForm-109"><span class="linenos">109</span></a>    <span class="k">def</span> <span class="nf">as_html</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssigneeForm-110"><a href="#AssigneeForm-110"><span class="linenos">110</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context</span><span class="p">()</span>
-</span><span id="AssigneeForm-111"><a href="#AssigneeForm-111"><span class="linenos">111</span></a>        <span class="n">context</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
-</span><span id="AssigneeForm-112"><a href="#AssigneeForm-112"><span class="linenos">112</span></a>            <span class="s1">&#39;assignee&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span><span class="p">,</span>
-</span><span id="AssigneeForm-113"><a href="#AssigneeForm-113"><span class="linenos">113</span></a>            <span class="s1">&#39;year&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_year</span><span class="p">,</span>
-</span><span id="AssigneeForm-114"><a href="#AssigneeForm-114"><span class="linenos">114</span></a>            <span class="s1">&#39;periods&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">,</span>
-</span><span id="AssigneeForm-115"><a href="#AssigneeForm-115"><span class="linenos">115</span></a>            <span class="s1">&#39;fields_more&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_field_structure</span><span class="p">()</span>
-</span><span id="AssigneeForm-116"><a href="#AssigneeForm-116"><span class="linenos">116</span></a>        <span class="p">})</span>
-</span><span id="AssigneeForm-117"><a href="#AssigneeForm-117"><span class="linenos">117</span></a>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
-</span><span id="AssigneeForm-118"><a href="#AssigneeForm-118"><span class="linenos">118</span></a>            <span class="n">template_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
-</span><span id="AssigneeForm-119"><a href="#AssigneeForm-119"><span class="linenos">119</span></a>            <span class="n">context</span><span class="o">=</span><span class="n">context</span>
-</span><span id="AssigneeForm-120"><a href="#AssigneeForm-120"><span class="linenos">120</span></a>        <span class="p">)</span>
-</span><span id="AssigneeForm-121"><a href="#AssigneeForm-121"><span class="linenos">121</span></a>
-</span><span id="AssigneeForm-122"><a href="#AssigneeForm-122"><span class="linenos">122</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssigneeForm-123"><a href="#AssigneeForm-123"><span class="linenos">123</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_changed</span><span class="p">():</span>
-</span><span id="AssigneeForm-124"><a href="#AssigneeForm-124"><span class="linenos">124</span></a>            <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
-</span><span id="AssigneeForm-125"><a href="#AssigneeForm-125"><span class="linenos">125</span></a>                <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
-</span><span id="AssigneeForm-126"><a href="#AssigneeForm-126"><span class="linenos">126</span></a>                    <span class="n">field_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
-</span><span id="AssigneeForm-127"><a href="#AssigneeForm-127"><span class="linenos">127</span></a>                    <span class="k">if</span> <span class="n">field_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">changed_data</span><span class="p">:</span>
-</span><span id="AssigneeForm-128"><a href="#AssigneeForm-128"><span class="linenos">128</span></a>                        <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm-129"><a href="#AssigneeForm-129"><span class="linenos">129</span></a>                            <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm-130"><a href="#AssigneeForm-130"><span class="linenos">130</span></a>                            <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm-131"><a href="#AssigneeForm-131"><span class="linenos">131</span></a>                        <span class="p">)</span>
-</span><span id="AssigneeForm-132"><a href="#AssigneeForm-132"><span class="linenos">132</span></a>                        <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="n">field_name</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span>
-</span><span id="AssigneeForm-133"><a href="#AssigneeForm-133"><span class="linenos">133</span></a>                            <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span>
-</span><span id="AssigneeForm-134"><a href="#AssigneeForm-134"><span class="linenos">134</span></a>                        <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
-</span><span id="AssigneeForm-135"><a href="#AssigneeForm-135"><span class="linenos">135</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm-136"><a href="#AssigneeForm-136"><span class="linenos">136</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm-137"><a href="#AssigneeForm-137"><span class="linenos">137</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm-138"><a href="#AssigneeForm-138"><span class="linenos">138</span></a>                            <span class="p">)</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
-</span><span id="AssigneeForm-139"><a href="#AssigneeForm-139"><span class="linenos">139</span></a>                        <span class="k">else</span><span class="p">:</span>
-</span><span id="AssigneeForm-140"><a href="#AssigneeForm-140"><span class="linenos">140</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">update_or_create</span><span class="p">(</span>
-</span><span id="AssigneeForm-141"><a href="#AssigneeForm-141"><span class="linenos">141</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm-142"><a href="#AssigneeForm-142"><span class="linenos">142</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm-143"><a href="#AssigneeForm-143"><span class="linenos">143</span></a>                                <span class="n">defaults</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;ammount&#39;</span><span class="p">:</span> <span class="n">value</span><span class="p">}</span>
-</span><span id="AssigneeForm-144"><a href="#AssigneeForm-144"><span class="linenos">144</span></a>                            <span class="p">)</span>
+</span><span id="AssigneeForm-83"><a href="#AssigneeForm-83"><span class="linenos"> 83</span></a>                <span class="k">if</span> <span class="ow">not</span> <span class="n">disabled</span><span class="p">:</span>
+</span><span id="AssigneeForm-84"><a href="#AssigneeForm-84"><span class="linenos"> 84</span></a>                    <span class="n">disabled</span> <span class="o">=</span> <span class="n">period</span><span class="o">.</span><span class="n">end</span> <span class="o">&lt;</span> <span class="n">assignment</span><span class="o">.</span><span class="n">project</span><span class="o">.</span><span class="n">start</span>
+</span><span id="AssigneeForm-85"><a href="#AssigneeForm-85"><span class="linenos"> 85</span></a>                    <span class="n">disabled</span> <span class="o">|=</span> <span class="n">period</span><span class="o">.</span><span class="n">start</span> <span class="o">&gt;</span> <span class="n">assignment</span><span class="o">.</span><span class="n">project</span><span class="o">.</span><span class="n">end</span>
+</span><span id="AssigneeForm-86"><a href="#AssigneeForm-86"><span class="linenos"> 86</span></a>
+</span><span id="AssigneeForm-87"><a href="#AssigneeForm-87"><span class="linenos"> 87</span></a>                <span class="n">field</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">DecimalField</span><span class="p">(</span>
+</span><span id="AssigneeForm-88"><a href="#AssigneeForm-88"><span class="linenos"> 88</span></a>                    <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="AssigneeForm-89"><a href="#AssigneeForm-89"><span class="linenos"> 89</span></a>                    <span class="n">min_value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+</span><span id="AssigneeForm-90"><a href="#AssigneeForm-90"><span class="linenos"> 90</span></a>                    <span class="n">max_digits</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
+</span><span id="AssigneeForm-91"><a href="#AssigneeForm-91"><span class="linenos"> 91</span></a>                    <span class="n">decimal_places</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
+</span><span id="AssigneeForm-92"><a href="#AssigneeForm-92"><span class="linenos"> 92</span></a>                    <span class="n">disabled</span><span class="o">=</span><span class="n">disabled</span>
+</span><span id="AssigneeForm-93"><a href="#AssigneeForm-93"><span class="linenos"> 93</span></a>                <span class="p">)</span>
+</span><span id="AssigneeForm-94"><a href="#AssigneeForm-94"><span class="linenos"> 94</span></a>
+</span><span id="AssigneeForm-95"><a href="#AssigneeForm-95"><span class="linenos"> 95</span></a>                <span class="n">initial</span> <span class="o">=</span> <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span>
+</span><span id="AssigneeForm-96"><a href="#AssigneeForm-96"><span class="linenos"> 96</span></a>                <span class="k">if</span> <span class="n">workhours_correction</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
+</span><span id="AssigneeForm-97"><a href="#AssigneeForm-97"><span class="linenos"> 97</span></a>                    <span class="n">initial</span> <span class="o">+=</span> <span class="n">workhours_correction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ammount</span>
+</span><span id="AssigneeForm-98"><a href="#AssigneeForm-98"><span class="linenos"> 98</span></a>                <span class="k">if</span> <span class="n">initial</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+</span><span id="AssigneeForm-99"><a href="#AssigneeForm-99"><span class="linenos"> 99</span></a>                    <span class="n">field</span><span class="o">.</span><span class="n">initial</span> <span class="o">=</span> <span class="n">initial</span>
+</span><span id="AssigneeForm-100"><a href="#AssigneeForm-100"><span class="linenos">100</span></a>
+</span><span id="AssigneeForm-101"><a href="#AssigneeForm-101"><span class="linenos">101</span></a>                <span class="bp">self</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">field</span>
+</span><span id="AssigneeForm-102"><a href="#AssigneeForm-102"><span class="linenos">102</span></a>
+</span><span id="AssigneeForm-103"><a href="#AssigneeForm-103"><span class="linenos">103</span></a>    <span class="k">def</span> <span class="nf">_get_field_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssigneeForm-104"><a href="#AssigneeForm-104"><span class="linenos">104</span></a>        <span class="k">return</span> <span class="p">[</span>
+</span><span id="AssigneeForm-105"><a href="#AssigneeForm-105"><span class="linenos">105</span></a>            <span class="p">(</span>
+</span><span id="AssigneeForm-106"><a href="#AssigneeForm-106"><span class="linenos">106</span></a>                <span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm-107"><a href="#AssigneeForm-107"><span class="linenos">107</span></a>                <span class="p">[</span>
+</span><span id="AssigneeForm-108"><a href="#AssigneeForm-108"><span class="linenos">108</span></a>                    <span class="bp">self</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span>
+</span><span id="AssigneeForm-109"><a href="#AssigneeForm-109"><span class="linenos">109</span></a>                <span class="p">]</span>
+</span><span id="AssigneeForm-110"><a href="#AssigneeForm-110"><span class="linenos">110</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span>
+</span><span id="AssigneeForm-111"><a href="#AssigneeForm-111"><span class="linenos">111</span></a>        <span class="p">]</span>
+</span><span id="AssigneeForm-112"><a href="#AssigneeForm-112"><span class="linenos">112</span></a>
+</span><span id="AssigneeForm-113"><a href="#AssigneeForm-113"><span class="linenos">113</span></a>    <span class="k">def</span> <span class="nf">as_html</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssigneeForm-114"><a href="#AssigneeForm-114"><span class="linenos">114</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context</span><span class="p">()</span>
+</span><span id="AssigneeForm-115"><a href="#AssigneeForm-115"><span class="linenos">115</span></a>        <span class="n">context</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
+</span><span id="AssigneeForm-116"><a href="#AssigneeForm-116"><span class="linenos">116</span></a>            <span class="s1">&#39;assignee&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span><span class="p">,</span>
+</span><span id="AssigneeForm-117"><a href="#AssigneeForm-117"><span class="linenos">117</span></a>            <span class="s1">&#39;year&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_year</span><span class="p">,</span>
+</span><span id="AssigneeForm-118"><a href="#AssigneeForm-118"><span class="linenos">118</span></a>            <span class="s1">&#39;periods&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">,</span>
+</span><span id="AssigneeForm-119"><a href="#AssigneeForm-119"><span class="linenos">119</span></a>            <span class="s1">&#39;fields_more&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_field_structure</span><span class="p">()</span>
+</span><span id="AssigneeForm-120"><a href="#AssigneeForm-120"><span class="linenos">120</span></a>        <span class="p">})</span>
+</span><span id="AssigneeForm-121"><a href="#AssigneeForm-121"><span class="linenos">121</span></a>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
+</span><span id="AssigneeForm-122"><a href="#AssigneeForm-122"><span class="linenos">122</span></a>            <span class="n">template_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
+</span><span id="AssigneeForm-123"><a href="#AssigneeForm-123"><span class="linenos">123</span></a>            <span class="n">context</span><span class="o">=</span><span class="n">context</span>
+</span><span id="AssigneeForm-124"><a href="#AssigneeForm-124"><span class="linenos">124</span></a>        <span class="p">)</span>
+</span><span id="AssigneeForm-125"><a href="#AssigneeForm-125"><span class="linenos">125</span></a>
+</span><span id="AssigneeForm-126"><a href="#AssigneeForm-126"><span class="linenos">126</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssigneeForm-127"><a href="#AssigneeForm-127"><span class="linenos">127</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_changed</span><span class="p">():</span>
+</span><span id="AssigneeForm-128"><a href="#AssigneeForm-128"><span class="linenos">128</span></a>            <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
+</span><span id="AssigneeForm-129"><a href="#AssigneeForm-129"><span class="linenos">129</span></a>                <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
+</span><span id="AssigneeForm-130"><a href="#AssigneeForm-130"><span class="linenos">130</span></a>                    <span class="n">field_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
+</span><span id="AssigneeForm-131"><a href="#AssigneeForm-131"><span class="linenos">131</span></a>                    <span class="k">if</span> <span class="n">field_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">changed_data</span><span class="p">:</span>
+</span><span id="AssigneeForm-132"><a href="#AssigneeForm-132"><span class="linenos">132</span></a>                        <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm-133"><a href="#AssigneeForm-133"><span class="linenos">133</span></a>                            <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm-134"><a href="#AssigneeForm-134"><span class="linenos">134</span></a>                            <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm-135"><a href="#AssigneeForm-135"><span class="linenos">135</span></a>                        <span class="p">)</span>
+</span><span id="AssigneeForm-136"><a href="#AssigneeForm-136"><span class="linenos">136</span></a>                        <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="n">field_name</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span>
+</span><span id="AssigneeForm-137"><a href="#AssigneeForm-137"><span class="linenos">137</span></a>                            <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span>
+</span><span id="AssigneeForm-138"><a href="#AssigneeForm-138"><span class="linenos">138</span></a>                        <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+</span><span id="AssigneeForm-139"><a href="#AssigneeForm-139"><span class="linenos">139</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm-140"><a href="#AssigneeForm-140"><span class="linenos">140</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm-141"><a href="#AssigneeForm-141"><span class="linenos">141</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm-142"><a href="#AssigneeForm-142"><span class="linenos">142</span></a>                            <span class="p">)</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
+</span><span id="AssigneeForm-143"><a href="#AssigneeForm-143"><span class="linenos">143</span></a>                        <span class="k">else</span><span class="p">:</span>
+</span><span id="AssigneeForm-144"><a href="#AssigneeForm-144"><span class="linenos">144</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">update_or_create</span><span class="p">(</span>
+</span><span id="AssigneeForm-145"><a href="#AssigneeForm-145"><span class="linenos">145</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm-146"><a href="#AssigneeForm-146"><span class="linenos">146</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm-147"><a href="#AssigneeForm-147"><span class="linenos">147</span></a>                                <span class="n">defaults</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;ammount&#39;</span><span class="p">:</span> <span class="n">value</span><span class="p">}</span>
+</span><span id="AssigneeForm-148"><a href="#AssigneeForm-148"><span class="linenos">148</span></a>                            <span class="p">)</span>
 </span></pre></div>
 
 
@@ -615,57 +623,61 @@
 
     </div>
     <a class="headerlink" href="#AssigneeForm.__init__"></a>
-            <div class="pdoc-code codehilite"><pre><span></span><span id="AssigneeForm.__init__-47"><a href="#AssigneeForm.__init__-47"><span class="linenos">47</span></a>    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">assignee</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">manager</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">year</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="AssigneeForm.__init__-48"><a href="#AssigneeForm.__init__-48"><span class="linenos">48</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="AssigneeForm.__init__-49"><a href="#AssigneeForm.__init__-49"><span class="linenos">49</span></a><span class="sd">        Constructs and returns an instance of this class.</span>
-</span><span id="AssigneeForm.__init__-50"><a href="#AssigneeForm.__init__-50"><span class="linenos">50</span></a><span class="sd">        &quot;&quot;&quot;</span>
-</span><span id="AssigneeForm.__init__-51"><a href="#AssigneeForm.__init__-51"><span class="linenos">51</span></a>        <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="AssigneeForm.__init__-52"><a href="#AssigneeForm.__init__-52"><span class="linenos">52</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span> <span class="o">=</span> <span class="n">assignee</span>
-</span><span id="AssigneeForm.__init__-53"><a href="#AssigneeForm.__init__-53"><span class="linenos">53</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_year</span> <span class="o">=</span> <span class="n">year</span>
-</span><span id="AssigneeForm.__init__-54"><a href="#AssigneeForm.__init__-54"><span class="linenos">54</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span> <span class="o">=</span> <span class="n">Period</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.__init__-55"><a href="#AssigneeForm.__init__-55"><span class="linenos">55</span></a>            <span class="n">start__year</span><span class="o">=</span><span class="n">year</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-56"><a href="#AssigneeForm.__init__-56"><span class="linenos">56</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;start&#39;</span><span class="p">)</span>
-</span><span id="AssigneeForm.__init__-57"><a href="#AssigneeForm.__init__-57"><span class="linenos">57</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.__init__-58"><a href="#AssigneeForm.__init__-58"><span class="linenos">58</span></a>            <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-59"><a href="#AssigneeForm.__init__-59"><span class="linenos">59</span></a>            <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-60"><a href="#AssigneeForm.__init__-60"><span class="linenos">60</span></a>            <span class="n">project__projectmanager__end__gte</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">date</span><span class="p">()</span>
-</span><span id="AssigneeForm.__init__-61"><a href="#AssigneeForm.__init__-61"><span class="linenos">61</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;project__invoice_number&#39;</span><span class="p">)</span>
-</span><span id="AssigneeForm.__init__-62"><a href="#AssigneeForm.__init__-62"><span class="linenos">62</span></a>
-</span><span id="AssigneeForm.__init__-63"><a href="#AssigneeForm.__init__-63"><span class="linenos">63</span></a>        <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
-</span><span id="AssigneeForm.__init__-64"><a href="#AssigneeForm.__init__-64"><span class="linenos">64</span></a>            <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
-</span><span id="AssigneeForm.__init__-65"><a href="#AssigneeForm.__init__-65"><span class="linenos">65</span></a>                <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.__init__-66"><a href="#AssigneeForm.__init__-66"><span class="linenos">66</span></a>                    <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-67"><a href="#AssigneeForm.__init__-67"><span class="linenos">67</span></a>                    <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-68"><a href="#AssigneeForm.__init__-68"><span class="linenos">68</span></a>                <span class="p">)</span>
-</span><span id="AssigneeForm.__init__-69"><a href="#AssigneeForm.__init__-69"><span class="linenos">69</span></a>                <span class="n">workhours_correction</span> <span class="o">=</span> <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.__init__-70"><a href="#AssigneeForm.__init__-70"><span class="linenos">70</span></a>                    <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-71"><a href="#AssigneeForm.__init__-71"><span class="linenos">71</span></a>                    <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-72"><a href="#AssigneeForm.__init__-72"><span class="linenos">72</span></a>                <span class="p">)</span>
-</span><span id="AssigneeForm.__init__-73"><a href="#AssigneeForm.__init__-73"><span class="linenos">73</span></a>
-</span><span id="AssigneeForm.__init__-74"><a href="#AssigneeForm.__init__-74"><span class="linenos">74</span></a>                <span class="n">disabled</span> <span class="o">=</span> <span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">()</span> <span class="o">&gt;</span> <span class="n">period</span><span class="o">.</span><span class="n">dead_line_final</span>
-</span><span id="AssigneeForm.__init__-75"><a href="#AssigneeForm.__init__-75"><span class="linenos">75</span></a>                <span class="k">if</span> <span class="ow">not</span> <span class="n">disabled</span><span class="p">:</span>
-</span><span id="AssigneeForm.__init__-76"><a href="#AssigneeForm.__init__-76"><span class="linenos">76</span></a>                    <span class="n">closure</span> <span class="o">=</span> <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.__init__-77"><a href="#AssigneeForm.__init__-77"><span class="linenos">77</span></a>                        <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-78"><a href="#AssigneeForm.__init__-78"><span class="linenos">78</span></a>                        <span class="n">period</span><span class="o">=</span><span class="n">period</span>
-</span><span id="AssigneeForm.__init__-79"><a href="#AssigneeForm.__init__-79"><span class="linenos">79</span></a>                    <span class="p">)</span>
-</span><span id="AssigneeForm.__init__-80"><a href="#AssigneeForm.__init__-80"><span class="linenos">80</span></a>                    <span class="k">if</span> <span class="n">closure</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
-</span><span id="AssigneeForm.__init__-81"><a href="#AssigneeForm.__init__-81"><span class="linenos">81</span></a>                        <span class="n">disabled</span> <span class="o">=</span> <span class="n">closure</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">is_closed_manager</span>
-</span><span id="AssigneeForm.__init__-82"><a href="#AssigneeForm.__init__-82"><span class="linenos">82</span></a>
-</span><span id="AssigneeForm.__init__-83"><a href="#AssigneeForm.__init__-83"><span class="linenos">83</span></a>                <span class="n">field</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">DecimalField</span><span class="p">(</span>
-</span><span id="AssigneeForm.__init__-84"><a href="#AssigneeForm.__init__-84"><span class="linenos">84</span></a>                    <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-85"><a href="#AssigneeForm.__init__-85"><span class="linenos">85</span></a>                    <span class="n">min_value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-86"><a href="#AssigneeForm.__init__-86"><span class="linenos">86</span></a>                    <span class="n">max_digits</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-87"><a href="#AssigneeForm.__init__-87"><span class="linenos">87</span></a>                    <span class="n">decimal_places</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
-</span><span id="AssigneeForm.__init__-88"><a href="#AssigneeForm.__init__-88"><span class="linenos">88</span></a>                    <span class="n">disabled</span><span class="o">=</span><span class="n">disabled</span>
-</span><span id="AssigneeForm.__init__-89"><a href="#AssigneeForm.__init__-89"><span class="linenos">89</span></a>                <span class="p">)</span>
-</span><span id="AssigneeForm.__init__-90"><a href="#AssigneeForm.__init__-90"><span class="linenos">90</span></a>
-</span><span id="AssigneeForm.__init__-91"><a href="#AssigneeForm.__init__-91"><span class="linenos">91</span></a>                <span class="n">initial</span> <span class="o">=</span> <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span>
-</span><span id="AssigneeForm.__init__-92"><a href="#AssigneeForm.__init__-92"><span class="linenos">92</span></a>                <span class="k">if</span> <span class="n">workhours_correction</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
-</span><span id="AssigneeForm.__init__-93"><a href="#AssigneeForm.__init__-93"><span class="linenos">93</span></a>                    <span class="n">initial</span> <span class="o">+=</span> <span class="n">workhours_correction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ammount</span>
-</span><span id="AssigneeForm.__init__-94"><a href="#AssigneeForm.__init__-94"><span class="linenos">94</span></a>                <span class="k">if</span> <span class="n">initial</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
-</span><span id="AssigneeForm.__init__-95"><a href="#AssigneeForm.__init__-95"><span class="linenos">95</span></a>                    <span class="n">field</span><span class="o">.</span><span class="n">initial</span> <span class="o">=</span> <span class="n">initial</span>
-</span><span id="AssigneeForm.__init__-96"><a href="#AssigneeForm.__init__-96"><span class="linenos">96</span></a>
-</span><span id="AssigneeForm.__init__-97"><a href="#AssigneeForm.__init__-97"><span class="linenos">97</span></a>                <span class="bp">self</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">field</span>
+            <div class="pdoc-code codehilite"><pre><span></span><span id="AssigneeForm.__init__-47"><a href="#AssigneeForm.__init__-47"><span class="linenos"> 47</span></a>    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">assignee</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">manager</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">year</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="AssigneeForm.__init__-48"><a href="#AssigneeForm.__init__-48"><span class="linenos"> 48</span></a><span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="AssigneeForm.__init__-49"><a href="#AssigneeForm.__init__-49"><span class="linenos"> 49</span></a><span class="sd">        Constructs and returns an instance of this class.</span>
+</span><span id="AssigneeForm.__init__-50"><a href="#AssigneeForm.__init__-50"><span class="linenos"> 50</span></a><span class="sd">        &quot;&quot;&quot;</span>
+</span><span id="AssigneeForm.__init__-51"><a href="#AssigneeForm.__init__-51"><span class="linenos"> 51</span></a>        <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="AssigneeForm.__init__-52"><a href="#AssigneeForm.__init__-52"><span class="linenos"> 52</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span> <span class="o">=</span> <span class="n">assignee</span>
+</span><span id="AssigneeForm.__init__-53"><a href="#AssigneeForm.__init__-53"><span class="linenos"> 53</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_year</span> <span class="o">=</span> <span class="n">year</span>
+</span><span id="AssigneeForm.__init__-54"><a href="#AssigneeForm.__init__-54"><span class="linenos"> 54</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span> <span class="o">=</span> <span class="n">Period</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.__init__-55"><a href="#AssigneeForm.__init__-55"><span class="linenos"> 55</span></a>            <span class="n">start__year</span><span class="o">=</span><span class="n">year</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-56"><a href="#AssigneeForm.__init__-56"><span class="linenos"> 56</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;start&#39;</span><span class="p">)</span>
+</span><span id="AssigneeForm.__init__-57"><a href="#AssigneeForm.__init__-57"><span class="linenos"> 57</span></a>        <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.__init__-58"><a href="#AssigneeForm.__init__-58"><span class="linenos"> 58</span></a>            <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-59"><a href="#AssigneeForm.__init__-59"><span class="linenos"> 59</span></a>            <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-60"><a href="#AssigneeForm.__init__-60"><span class="linenos"> 60</span></a>            <span class="n">project__projectmanager__end__gte</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">date</span><span class="p">()</span>
+</span><span id="AssigneeForm.__init__-61"><a href="#AssigneeForm.__init__-61"><span class="linenos"> 61</span></a>        <span class="p">)</span><span class="o">.</span><span class="n">select_related</span><span class="p">(</span><span class="s2">&quot;project&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;project__invoice_number&#39;</span><span class="p">)</span>
+</span><span id="AssigneeForm.__init__-62"><a href="#AssigneeForm.__init__-62"><span class="linenos"> 62</span></a>
+</span><span id="AssigneeForm.__init__-63"><a href="#AssigneeForm.__init__-63"><span class="linenos"> 63</span></a>        <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
+</span><span id="AssigneeForm.__init__-64"><a href="#AssigneeForm.__init__-64"><span class="linenos"> 64</span></a>            <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
+</span><span id="AssigneeForm.__init__-65"><a href="#AssigneeForm.__init__-65"><span class="linenos"> 65</span></a>                <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.__init__-66"><a href="#AssigneeForm.__init__-66"><span class="linenos"> 66</span></a>                    <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-67"><a href="#AssigneeForm.__init__-67"><span class="linenos"> 67</span></a>                    <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-68"><a href="#AssigneeForm.__init__-68"><span class="linenos"> 68</span></a>                <span class="p">)</span>
+</span><span id="AssigneeForm.__init__-69"><a href="#AssigneeForm.__init__-69"><span class="linenos"> 69</span></a>                <span class="n">workhours_correction</span> <span class="o">=</span> <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.__init__-70"><a href="#AssigneeForm.__init__-70"><span class="linenos"> 70</span></a>                    <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-71"><a href="#AssigneeForm.__init__-71"><span class="linenos"> 71</span></a>                    <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-72"><a href="#AssigneeForm.__init__-72"><span class="linenos"> 72</span></a>                <span class="p">)</span>
+</span><span id="AssigneeForm.__init__-73"><a href="#AssigneeForm.__init__-73"><span class="linenos"> 73</span></a>
+</span><span id="AssigneeForm.__init__-74"><a href="#AssigneeForm.__init__-74"><span class="linenos"> 74</span></a>                <span class="n">disabled</span> <span class="o">=</span> <span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">()</span> <span class="o">&gt;</span> <span class="n">period</span><span class="o">.</span><span class="n">dead_line_final</span>
+</span><span id="AssigneeForm.__init__-75"><a href="#AssigneeForm.__init__-75"><span class="linenos"> 75</span></a>                <span class="k">if</span> <span class="ow">not</span> <span class="n">disabled</span><span class="p">:</span>
+</span><span id="AssigneeForm.__init__-76"><a href="#AssigneeForm.__init__-76"><span class="linenos"> 76</span></a>                    <span class="n">closure</span> <span class="o">=</span> <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.__init__-77"><a href="#AssigneeForm.__init__-77"><span class="linenos"> 77</span></a>                        <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-78"><a href="#AssigneeForm.__init__-78"><span class="linenos"> 78</span></a>                        <span class="n">period</span><span class="o">=</span><span class="n">period</span>
+</span><span id="AssigneeForm.__init__-79"><a href="#AssigneeForm.__init__-79"><span class="linenos"> 79</span></a>                    <span class="p">)</span>
+</span><span id="AssigneeForm.__init__-80"><a href="#AssigneeForm.__init__-80"><span class="linenos"> 80</span></a>                    <span class="k">if</span> <span class="n">closure</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
+</span><span id="AssigneeForm.__init__-81"><a href="#AssigneeForm.__init__-81"><span class="linenos"> 81</span></a>                        <span class="n">disabled</span> <span class="o">=</span> <span class="n">closure</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">is_closed_manager</span>
+</span><span id="AssigneeForm.__init__-82"><a href="#AssigneeForm.__init__-82"><span class="linenos"> 82</span></a>
+</span><span id="AssigneeForm.__init__-83"><a href="#AssigneeForm.__init__-83"><span class="linenos"> 83</span></a>                <span class="k">if</span> <span class="ow">not</span> <span class="n">disabled</span><span class="p">:</span>
+</span><span id="AssigneeForm.__init__-84"><a href="#AssigneeForm.__init__-84"><span class="linenos"> 84</span></a>                    <span class="n">disabled</span> <span class="o">=</span> <span class="n">period</span><span class="o">.</span><span class="n">end</span> <span class="o">&lt;</span> <span class="n">assignment</span><span class="o">.</span><span class="n">project</span><span class="o">.</span><span class="n">start</span>
+</span><span id="AssigneeForm.__init__-85"><a href="#AssigneeForm.__init__-85"><span class="linenos"> 85</span></a>                    <span class="n">disabled</span> <span class="o">|=</span> <span class="n">period</span><span class="o">.</span><span class="n">start</span> <span class="o">&gt;</span> <span class="n">assignment</span><span class="o">.</span><span class="n">project</span><span class="o">.</span><span class="n">end</span>
+</span><span id="AssigneeForm.__init__-86"><a href="#AssigneeForm.__init__-86"><span class="linenos"> 86</span></a>
+</span><span id="AssigneeForm.__init__-87"><a href="#AssigneeForm.__init__-87"><span class="linenos"> 87</span></a>                <span class="n">field</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">DecimalField</span><span class="p">(</span>
+</span><span id="AssigneeForm.__init__-88"><a href="#AssigneeForm.__init__-88"><span class="linenos"> 88</span></a>                    <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-89"><a href="#AssigneeForm.__init__-89"><span class="linenos"> 89</span></a>                    <span class="n">min_value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-90"><a href="#AssigneeForm.__init__-90"><span class="linenos"> 90</span></a>                    <span class="n">max_digits</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-91"><a href="#AssigneeForm.__init__-91"><span class="linenos"> 91</span></a>                    <span class="n">decimal_places</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
+</span><span id="AssigneeForm.__init__-92"><a href="#AssigneeForm.__init__-92"><span class="linenos"> 92</span></a>                    <span class="n">disabled</span><span class="o">=</span><span class="n">disabled</span>
+</span><span id="AssigneeForm.__init__-93"><a href="#AssigneeForm.__init__-93"><span class="linenos"> 93</span></a>                <span class="p">)</span>
+</span><span id="AssigneeForm.__init__-94"><a href="#AssigneeForm.__init__-94"><span class="linenos"> 94</span></a>
+</span><span id="AssigneeForm.__init__-95"><a href="#AssigneeForm.__init__-95"><span class="linenos"> 95</span></a>                <span class="n">initial</span> <span class="o">=</span> <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span>
+</span><span id="AssigneeForm.__init__-96"><a href="#AssigneeForm.__init__-96"><span class="linenos"> 96</span></a>                <span class="k">if</span> <span class="n">workhours_correction</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
+</span><span id="AssigneeForm.__init__-97"><a href="#AssigneeForm.__init__-97"><span class="linenos"> 97</span></a>                    <span class="n">initial</span> <span class="o">+=</span> <span class="n">workhours_correction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ammount</span>
+</span><span id="AssigneeForm.__init__-98"><a href="#AssigneeForm.__init__-98"><span class="linenos"> 98</span></a>                <span class="k">if</span> <span class="n">initial</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+</span><span id="AssigneeForm.__init__-99"><a href="#AssigneeForm.__init__-99"><span class="linenos"> 99</span></a>                    <span class="n">field</span><span class="o">.</span><span class="n">initial</span> <span class="o">=</span> <span class="n">initial</span>
+</span><span id="AssigneeForm.__init__-100"><a href="#AssigneeForm.__init__-100"><span class="linenos">100</span></a>
+</span><span id="AssigneeForm.__init__-101"><a href="#AssigneeForm.__init__-101"><span class="linenos">101</span></a>                <span class="bp">self</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">field</span>
 </span></pre></div>
 
 
@@ -697,18 +709,18 @@
 
     </div>
     <a class="headerlink" href="#AssigneeForm.as_html"></a>
-            <div class="pdoc-code codehilite"><pre><span></span><span id="AssigneeForm.as_html-109"><a href="#AssigneeForm.as_html-109"><span class="linenos">109</span></a>    <span class="k">def</span> <span class="nf">as_html</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssigneeForm.as_html-110"><a href="#AssigneeForm.as_html-110"><span class="linenos">110</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context</span><span class="p">()</span>
-</span><span id="AssigneeForm.as_html-111"><a href="#AssigneeForm.as_html-111"><span class="linenos">111</span></a>        <span class="n">context</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
-</span><span id="AssigneeForm.as_html-112"><a href="#AssigneeForm.as_html-112"><span class="linenos">112</span></a>            <span class="s1">&#39;assignee&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span><span class="p">,</span>
-</span><span id="AssigneeForm.as_html-113"><a href="#AssigneeForm.as_html-113"><span class="linenos">113</span></a>            <span class="s1">&#39;year&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_year</span><span class="p">,</span>
-</span><span id="AssigneeForm.as_html-114"><a href="#AssigneeForm.as_html-114"><span class="linenos">114</span></a>            <span class="s1">&#39;periods&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">,</span>
-</span><span id="AssigneeForm.as_html-115"><a href="#AssigneeForm.as_html-115"><span class="linenos">115</span></a>            <span class="s1">&#39;fields_more&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_field_structure</span><span class="p">()</span>
-</span><span id="AssigneeForm.as_html-116"><a href="#AssigneeForm.as_html-116"><span class="linenos">116</span></a>        <span class="p">})</span>
-</span><span id="AssigneeForm.as_html-117"><a href="#AssigneeForm.as_html-117"><span class="linenos">117</span></a>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
-</span><span id="AssigneeForm.as_html-118"><a href="#AssigneeForm.as_html-118"><span class="linenos">118</span></a>            <span class="n">template_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
-</span><span id="AssigneeForm.as_html-119"><a href="#AssigneeForm.as_html-119"><span class="linenos">119</span></a>            <span class="n">context</span><span class="o">=</span><span class="n">context</span>
-</span><span id="AssigneeForm.as_html-120"><a href="#AssigneeForm.as_html-120"><span class="linenos">120</span></a>        <span class="p">)</span>
+            <div class="pdoc-code codehilite"><pre><span></span><span id="AssigneeForm.as_html-113"><a href="#AssigneeForm.as_html-113"><span class="linenos">113</span></a>    <span class="k">def</span> <span class="nf">as_html</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssigneeForm.as_html-114"><a href="#AssigneeForm.as_html-114"><span class="linenos">114</span></a>        <span class="n">context</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context</span><span class="p">()</span>
+</span><span id="AssigneeForm.as_html-115"><a href="#AssigneeForm.as_html-115"><span class="linenos">115</span></a>        <span class="n">context</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
+</span><span id="AssigneeForm.as_html-116"><a href="#AssigneeForm.as_html-116"><span class="linenos">116</span></a>            <span class="s1">&#39;assignee&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignee</span><span class="p">,</span>
+</span><span id="AssigneeForm.as_html-117"><a href="#AssigneeForm.as_html-117"><span class="linenos">117</span></a>            <span class="s1">&#39;year&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_year</span><span class="p">,</span>
+</span><span id="AssigneeForm.as_html-118"><a href="#AssigneeForm.as_html-118"><span class="linenos">118</span></a>            <span class="s1">&#39;periods&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">,</span>
+</span><span id="AssigneeForm.as_html-119"><a href="#AssigneeForm.as_html-119"><span class="linenos">119</span></a>            <span class="s1">&#39;fields_more&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_field_structure</span><span class="p">()</span>
+</span><span id="AssigneeForm.as_html-120"><a href="#AssigneeForm.as_html-120"><span class="linenos">120</span></a>        <span class="p">})</span>
+</span><span id="AssigneeForm.as_html-121"><a href="#AssigneeForm.as_html-121"><span class="linenos">121</span></a>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
+</span><span id="AssigneeForm.as_html-122"><a href="#AssigneeForm.as_html-122"><span class="linenos">122</span></a>            <span class="n">template_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
+</span><span id="AssigneeForm.as_html-123"><a href="#AssigneeForm.as_html-123"><span class="linenos">123</span></a>            <span class="n">context</span><span class="o">=</span><span class="n">context</span>
+</span><span id="AssigneeForm.as_html-124"><a href="#AssigneeForm.as_html-124"><span class="linenos">124</span></a>        <span class="p">)</span>
 </span></pre></div>
 
 
@@ -726,29 +738,29 @@
 
     </div>
     <a class="headerlink" href="#AssigneeForm.save"></a>
-            <div class="pdoc-code codehilite"><pre><span></span><span id="AssigneeForm.save-122"><a href="#AssigneeForm.save-122"><span class="linenos">122</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssigneeForm.save-123"><a href="#AssigneeForm.save-123"><span class="linenos">123</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_changed</span><span class="p">():</span>
-</span><span id="AssigneeForm.save-124"><a href="#AssigneeForm.save-124"><span class="linenos">124</span></a>            <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
-</span><span id="AssigneeForm.save-125"><a href="#AssigneeForm.save-125"><span class="linenos">125</span></a>                <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
-</span><span id="AssigneeForm.save-126"><a href="#AssigneeForm.save-126"><span class="linenos">126</span></a>                    <span class="n">field_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
-</span><span id="AssigneeForm.save-127"><a href="#AssigneeForm.save-127"><span class="linenos">127</span></a>                    <span class="k">if</span> <span class="n">field_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">changed_data</span><span class="p">:</span>
-</span><span id="AssigneeForm.save-128"><a href="#AssigneeForm.save-128"><span class="linenos">128</span></a>                        <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.save-129"><a href="#AssigneeForm.save-129"><span class="linenos">129</span></a>                            <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm.save-130"><a href="#AssigneeForm.save-130"><span class="linenos">130</span></a>                            <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm.save-131"><a href="#AssigneeForm.save-131"><span class="linenos">131</span></a>                        <span class="p">)</span>
-</span><span id="AssigneeForm.save-132"><a href="#AssigneeForm.save-132"><span class="linenos">132</span></a>                        <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="n">field_name</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span>
-</span><span id="AssigneeForm.save-133"><a href="#AssigneeForm.save-133"><span class="linenos">133</span></a>                            <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span>
-</span><span id="AssigneeForm.save-134"><a href="#AssigneeForm.save-134"><span class="linenos">134</span></a>                        <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
-</span><span id="AssigneeForm.save-135"><a href="#AssigneeForm.save-135"><span class="linenos">135</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssigneeForm.save-136"><a href="#AssigneeForm.save-136"><span class="linenos">136</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm.save-137"><a href="#AssigneeForm.save-137"><span class="linenos">137</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm.save-138"><a href="#AssigneeForm.save-138"><span class="linenos">138</span></a>                            <span class="p">)</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
-</span><span id="AssigneeForm.save-139"><a href="#AssigneeForm.save-139"><span class="linenos">139</span></a>                        <span class="k">else</span><span class="p">:</span>
-</span><span id="AssigneeForm.save-140"><a href="#AssigneeForm.save-140"><span class="linenos">140</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">update_or_create</span><span class="p">(</span>
-</span><span id="AssigneeForm.save-141"><a href="#AssigneeForm.save-141"><span class="linenos">141</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
-</span><span id="AssigneeForm.save-142"><a href="#AssigneeForm.save-142"><span class="linenos">142</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssigneeForm.save-143"><a href="#AssigneeForm.save-143"><span class="linenos">143</span></a>                                <span class="n">defaults</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;ammount&#39;</span><span class="p">:</span> <span class="n">value</span><span class="p">}</span>
-</span><span id="AssigneeForm.save-144"><a href="#AssigneeForm.save-144"><span class="linenos">144</span></a>                            <span class="p">)</span>
+            <div class="pdoc-code codehilite"><pre><span></span><span id="AssigneeForm.save-126"><a href="#AssigneeForm.save-126"><span class="linenos">126</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssigneeForm.save-127"><a href="#AssigneeForm.save-127"><span class="linenos">127</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_changed</span><span class="p">():</span>
+</span><span id="AssigneeForm.save-128"><a href="#AssigneeForm.save-128"><span class="linenos">128</span></a>            <span class="k">for</span> <span class="n">assignment</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_assignments</span><span class="p">:</span>
+</span><span id="AssigneeForm.save-129"><a href="#AssigneeForm.save-129"><span class="linenos">129</span></a>                <span class="k">for</span> <span class="n">period</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_periods</span><span class="p">:</span>
+</span><span id="AssigneeForm.save-130"><a href="#AssigneeForm.save-130"><span class="linenos">130</span></a>                    <span class="n">field_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">assignment</span><span class="o">.</span><span class="n">pk</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">period</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
+</span><span id="AssigneeForm.save-131"><a href="#AssigneeForm.save-131"><span class="linenos">131</span></a>                    <span class="k">if</span> <span class="n">field_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">changed_data</span><span class="p">:</span>
+</span><span id="AssigneeForm.save-132"><a href="#AssigneeForm.save-132"><span class="linenos">132</span></a>                        <span class="n">workhours</span> <span class="o">=</span> <span class="n">WorkHours</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.save-133"><a href="#AssigneeForm.save-133"><span class="linenos">133</span></a>                            <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm.save-134"><a href="#AssigneeForm.save-134"><span class="linenos">134</span></a>                            <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm.save-135"><a href="#AssigneeForm.save-135"><span class="linenos">135</span></a>                        <span class="p">)</span>
+</span><span id="AssigneeForm.save-136"><a href="#AssigneeForm.save-136"><span class="linenos">136</span></a>                        <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="n">field_name</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span>
+</span><span id="AssigneeForm.save-137"><a href="#AssigneeForm.save-137"><span class="linenos">137</span></a>                            <span class="n">workhours</span><span class="o">.</span><span class="n">aggregate</span><span class="p">(</span><span class="n">Sum</span><span class="p">(</span><span class="s1">&#39;hours&#39;</span><span class="p">))[</span><span class="s1">&#39;hours__sum&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span>
+</span><span id="AssigneeForm.save-138"><a href="#AssigneeForm.save-138"><span class="linenos">138</span></a>                        <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+</span><span id="AssigneeForm.save-139"><a href="#AssigneeForm.save-139"><span class="linenos">139</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssigneeForm.save-140"><a href="#AssigneeForm.save-140"><span class="linenos">140</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm.save-141"><a href="#AssigneeForm.save-141"><span class="linenos">141</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm.save-142"><a href="#AssigneeForm.save-142"><span class="linenos">142</span></a>                            <span class="p">)</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
+</span><span id="AssigneeForm.save-143"><a href="#AssigneeForm.save-143"><span class="linenos">143</span></a>                        <span class="k">else</span><span class="p">:</span>
+</span><span id="AssigneeForm.save-144"><a href="#AssigneeForm.save-144"><span class="linenos">144</span></a>                            <span class="n">WorkHoursCorrection</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">update_or_create</span><span class="p">(</span>
+</span><span id="AssigneeForm.save-145"><a href="#AssigneeForm.save-145"><span class="linenos">145</span></a>                                <span class="n">project_assignment</span><span class="o">=</span><span class="n">assignment</span><span class="p">,</span>
+</span><span id="AssigneeForm.save-146"><a href="#AssigneeForm.save-146"><span class="linenos">146</span></a>                                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssigneeForm.save-147"><a href="#AssigneeForm.save-147"><span class="linenos">147</span></a>                                <span class="n">defaults</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;ammount&#39;</span><span class="p">:</span> <span class="n">value</span><span class="p">}</span>
+</span><span id="AssigneeForm.save-148"><a href="#AssigneeForm.save-148"><span class="linenos">148</span></a>                            <span class="p">)</span>
 </span></pre></div>
 
 
@@ -909,35 +921,35 @@
 
     </div>
     <a class="headerlink" href="#AssgineeClosureForm"></a>
-            <div class="pdoc-code codehilite"><pre><span></span><span id="AssgineeClosureForm-147"><a href="#AssgineeClosureForm-147"><span class="linenos">147</span></a><span class="k">class</span> <span class="nc">AssgineeClosureForm</span><span class="p">(</span><span class="n">forms</span><span class="o">.</span><span class="n">Form</span><span class="p">):</span>
-</span><span id="AssgineeClosureForm-148"><a href="#AssgineeClosureForm-148"><span class="linenos">148</span></a>    <span class="n">assignee</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
-</span><span id="AssgineeClosureForm-149"><a href="#AssgineeClosureForm-149"><span class="linenos">149</span></a>    <span class="n">period</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">Period</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
-</span><span id="AssgineeClosureForm-150"><a href="#AssgineeClosureForm-150"><span class="linenos">150</span></a>    <span class="n">manager</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
-</span><span id="AssgineeClosureForm-151"><a href="#AssgineeClosureForm-151"><span class="linenos">151</span></a>
-</span><span id="AssgineeClosureForm-152"><a href="#AssgineeClosureForm-152"><span class="linenos">152</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssgineeClosureForm-153"><a href="#AssgineeClosureForm-153"><span class="linenos">153</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span>
-</span><span id="AssgineeClosureForm-154"><a href="#AssgineeClosureForm-154"><span class="linenos">154</span></a>            <span class="n">assignee</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;assignee&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm-155"><a href="#AssgineeClosureForm-155"><span class="linenos">155</span></a>            <span class="n">period</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm-156"><a href="#AssgineeClosureForm-156"><span class="linenos">156</span></a>            <span class="n">manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;manager&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm-157"><a href="#AssgineeClosureForm-157"><span class="linenos">157</span></a>            <span class="n">project_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssgineeClosureForm-158"><a href="#AssgineeClosureForm-158"><span class="linenos">158</span></a>                <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-159"><a href="#AssgineeClosureForm-159"><span class="linenos">159</span></a>                <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span>
-</span><span id="AssgineeClosureForm-160"><a href="#AssgineeClosureForm-160"><span class="linenos">160</span></a>            <span class="p">)</span>
-</span><span id="AssgineeClosureForm-161"><a href="#AssgineeClosureForm-161"><span class="linenos">161</span></a>
-</span><span id="AssgineeClosureForm-162"><a href="#AssgineeClosureForm-162"><span class="linenos">162</span></a>            <span class="n">objs</span> <span class="o">=</span> <span class="p">[</span><span class="n">PeriodClosure</span><span class="p">(</span>
-</span><span id="AssgineeClosureForm-163"><a href="#AssgineeClosureForm-163"><span class="linenos">163</span></a>                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-164"><a href="#AssgineeClosureForm-164"><span class="linenos">164</span></a>                <span class="n">project_assignment</span><span class="o">=</span><span class="n">project_assignment</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-165"><a href="#AssgineeClosureForm-165"><span class="linenos">165</span></a>                <span class="n">is_closed_contributor</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-166"><a href="#AssgineeClosureForm-166"><span class="linenos">166</span></a>                <span class="n">is_closed_manager</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-167"><a href="#AssgineeClosureForm-167"><span class="linenos">167</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">project_assignment</span> <span class="ow">in</span> <span class="n">project_assignments</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm-168"><a href="#AssgineeClosureForm-168"><span class="linenos">168</span></a>
-</span><span id="AssgineeClosureForm-169"><a href="#AssgineeClosureForm-169"><span class="linenos">169</span></a>            <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">bulk_create</span><span class="p">(</span>
-</span><span id="AssgineeClosureForm-170"><a href="#AssgineeClosureForm-170"><span class="linenos">170</span></a>                <span class="n">objs</span><span class="o">=</span><span class="n">objs</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-171"><a href="#AssgineeClosureForm-171"><span class="linenos">171</span></a>                <span class="n">ignore_conflicts</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-172"><a href="#AssgineeClosureForm-172"><span class="linenos">172</span></a>                <span class="n">update_conflicts</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm-173"><a href="#AssgineeClosureForm-173"><span class="linenos">173</span></a>                <span class="n">update_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;is_closed_contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;is_closed_manager&#39;</span><span class="p">],</span>
-</span><span id="AssgineeClosureForm-174"><a href="#AssgineeClosureForm-174"><span class="linenos">174</span></a>                <span class="n">unique_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">,</span> <span class="s1">&#39;project_assignment&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm-175"><a href="#AssgineeClosureForm-175"><span class="linenos">175</span></a>            <span class="p">)</span>
+            <div class="pdoc-code codehilite"><pre><span></span><span id="AssgineeClosureForm-151"><a href="#AssgineeClosureForm-151"><span class="linenos">151</span></a><span class="k">class</span> <span class="nc">AssgineeClosureForm</span><span class="p">(</span><span class="n">forms</span><span class="o">.</span><span class="n">Form</span><span class="p">):</span>
+</span><span id="AssgineeClosureForm-152"><a href="#AssgineeClosureForm-152"><span class="linenos">152</span></a>    <span class="n">assignee</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
+</span><span id="AssgineeClosureForm-153"><a href="#AssgineeClosureForm-153"><span class="linenos">153</span></a>    <span class="n">period</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">Period</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
+</span><span id="AssgineeClosureForm-154"><a href="#AssgineeClosureForm-154"><span class="linenos">154</span></a>    <span class="n">manager</span> <span class="o">=</span> <span class="n">forms</span><span class="o">.</span><span class="n">ModelChoiceField</span><span class="p">(</span><span class="n">queryset</span><span class="o">=</span><span class="n">User</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
+</span><span id="AssgineeClosureForm-155"><a href="#AssgineeClosureForm-155"><span class="linenos">155</span></a>
+</span><span id="AssgineeClosureForm-156"><a href="#AssgineeClosureForm-156"><span class="linenos">156</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssgineeClosureForm-157"><a href="#AssgineeClosureForm-157"><span class="linenos">157</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span>
+</span><span id="AssgineeClosureForm-158"><a href="#AssgineeClosureForm-158"><span class="linenos">158</span></a>            <span class="n">assignee</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;assignee&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm-159"><a href="#AssgineeClosureForm-159"><span class="linenos">159</span></a>            <span class="n">period</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm-160"><a href="#AssgineeClosureForm-160"><span class="linenos">160</span></a>            <span class="n">manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;manager&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm-161"><a href="#AssgineeClosureForm-161"><span class="linenos">161</span></a>            <span class="n">project_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssgineeClosureForm-162"><a href="#AssgineeClosureForm-162"><span class="linenos">162</span></a>                <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-163"><a href="#AssgineeClosureForm-163"><span class="linenos">163</span></a>                <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span>
+</span><span id="AssgineeClosureForm-164"><a href="#AssgineeClosureForm-164"><span class="linenos">164</span></a>            <span class="p">)</span>
+</span><span id="AssgineeClosureForm-165"><a href="#AssgineeClosureForm-165"><span class="linenos">165</span></a>
+</span><span id="AssgineeClosureForm-166"><a href="#AssgineeClosureForm-166"><span class="linenos">166</span></a>            <span class="n">objs</span> <span class="o">=</span> <span class="p">[</span><span class="n">PeriodClosure</span><span class="p">(</span>
+</span><span id="AssgineeClosureForm-167"><a href="#AssgineeClosureForm-167"><span class="linenos">167</span></a>                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-168"><a href="#AssgineeClosureForm-168"><span class="linenos">168</span></a>                <span class="n">project_assignment</span><span class="o">=</span><span class="n">project_assignment</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-169"><a href="#AssgineeClosureForm-169"><span class="linenos">169</span></a>                <span class="n">is_closed_contributor</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-170"><a href="#AssgineeClosureForm-170"><span class="linenos">170</span></a>                <span class="n">is_closed_manager</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-171"><a href="#AssgineeClosureForm-171"><span class="linenos">171</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">project_assignment</span> <span class="ow">in</span> <span class="n">project_assignments</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm-172"><a href="#AssgineeClosureForm-172"><span class="linenos">172</span></a>
+</span><span id="AssgineeClosureForm-173"><a href="#AssgineeClosureForm-173"><span class="linenos">173</span></a>            <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">bulk_create</span><span class="p">(</span>
+</span><span id="AssgineeClosureForm-174"><a href="#AssgineeClosureForm-174"><span class="linenos">174</span></a>                <span class="n">objs</span><span class="o">=</span><span class="n">objs</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-175"><a href="#AssgineeClosureForm-175"><span class="linenos">175</span></a>                <span class="n">ignore_conflicts</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-176"><a href="#AssgineeClosureForm-176"><span class="linenos">176</span></a>                <span class="n">update_conflicts</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm-177"><a href="#AssgineeClosureForm-177"><span class="linenos">177</span></a>                <span class="n">update_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;is_closed_contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;is_closed_manager&#39;</span><span class="p">],</span>
+</span><span id="AssgineeClosureForm-178"><a href="#AssgineeClosureForm-178"><span class="linenos">178</span></a>                <span class="n">unique_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">,</span> <span class="s1">&#39;project_assignment&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm-179"><a href="#AssgineeClosureForm-179"><span class="linenos">179</span></a>            <span class="p">)</span>
 </span></pre></div>
 
 
@@ -989,30 +1001,30 @@
 
     </div>
     <a class="headerlink" href="#AssgineeClosureForm.save"></a>
-            <div class="pdoc-code codehilite"><pre><span></span><span id="AssgineeClosureForm.save-152"><a href="#AssgineeClosureForm.save-152"><span class="linenos">152</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="AssgineeClosureForm.save-153"><a href="#AssgineeClosureForm.save-153"><span class="linenos">153</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span>
-</span><span id="AssgineeClosureForm.save-154"><a href="#AssgineeClosureForm.save-154"><span class="linenos">154</span></a>            <span class="n">assignee</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;assignee&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm.save-155"><a href="#AssgineeClosureForm.save-155"><span class="linenos">155</span></a>            <span class="n">period</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm.save-156"><a href="#AssgineeClosureForm.save-156"><span class="linenos">156</span></a>            <span class="n">manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;manager&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm.save-157"><a href="#AssgineeClosureForm.save-157"><span class="linenos">157</span></a>            <span class="n">project_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
-</span><span id="AssgineeClosureForm.save-158"><a href="#AssgineeClosureForm.save-158"><span class="linenos">158</span></a>                <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-159"><a href="#AssgineeClosureForm.save-159"><span class="linenos">159</span></a>                <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span>
-</span><span id="AssgineeClosureForm.save-160"><a href="#AssgineeClosureForm.save-160"><span class="linenos">160</span></a>            <span class="p">)</span>
-</span><span id="AssgineeClosureForm.save-161"><a href="#AssgineeClosureForm.save-161"><span class="linenos">161</span></a>
-</span><span id="AssgineeClosureForm.save-162"><a href="#AssgineeClosureForm.save-162"><span class="linenos">162</span></a>            <span class="n">objs</span> <span class="o">=</span> <span class="p">[</span><span class="n">PeriodClosure</span><span class="p">(</span>
-</span><span id="AssgineeClosureForm.save-163"><a href="#AssgineeClosureForm.save-163"><span class="linenos">163</span></a>                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-164"><a href="#AssgineeClosureForm.save-164"><span class="linenos">164</span></a>                <span class="n">project_assignment</span><span class="o">=</span><span class="n">project_assignment</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-165"><a href="#AssgineeClosureForm.save-165"><span class="linenos">165</span></a>                <span class="n">is_closed_contributor</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-166"><a href="#AssgineeClosureForm.save-166"><span class="linenos">166</span></a>                <span class="n">is_closed_manager</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-167"><a href="#AssgineeClosureForm.save-167"><span class="linenos">167</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">project_assignment</span> <span class="ow">in</span> <span class="n">project_assignments</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm.save-168"><a href="#AssgineeClosureForm.save-168"><span class="linenos">168</span></a>
-</span><span id="AssgineeClosureForm.save-169"><a href="#AssgineeClosureForm.save-169"><span class="linenos">169</span></a>            <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">bulk_create</span><span class="p">(</span>
-</span><span id="AssgineeClosureForm.save-170"><a href="#AssgineeClosureForm.save-170"><span class="linenos">170</span></a>                <span class="n">objs</span><span class="o">=</span><span class="n">objs</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-171"><a href="#AssgineeClosureForm.save-171"><span class="linenos">171</span></a>                <span class="n">ignore_conflicts</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-172"><a href="#AssgineeClosureForm.save-172"><span class="linenos">172</span></a>                <span class="n">update_conflicts</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="AssgineeClosureForm.save-173"><a href="#AssgineeClosureForm.save-173"><span class="linenos">173</span></a>                <span class="n">update_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;is_closed_contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;is_closed_manager&#39;</span><span class="p">],</span>
-</span><span id="AssgineeClosureForm.save-174"><a href="#AssgineeClosureForm.save-174"><span class="linenos">174</span></a>                <span class="n">unique_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">,</span> <span class="s1">&#39;project_assignment&#39;</span><span class="p">]</span>
-</span><span id="AssgineeClosureForm.save-175"><a href="#AssgineeClosureForm.save-175"><span class="linenos">175</span></a>            <span class="p">)</span>
+            <div class="pdoc-code codehilite"><pre><span></span><span id="AssgineeClosureForm.save-156"><a href="#AssgineeClosureForm.save-156"><span class="linenos">156</span></a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="AssgineeClosureForm.save-157"><a href="#AssgineeClosureForm.save-157"><span class="linenos">157</span></a>        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span>
+</span><span id="AssgineeClosureForm.save-158"><a href="#AssgineeClosureForm.save-158"><span class="linenos">158</span></a>            <span class="n">assignee</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;assignee&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm.save-159"><a href="#AssgineeClosureForm.save-159"><span class="linenos">159</span></a>            <span class="n">period</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm.save-160"><a href="#AssgineeClosureForm.save-160"><span class="linenos">160</span></a>            <span class="n">manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">&#39;manager&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm.save-161"><a href="#AssgineeClosureForm.save-161"><span class="linenos">161</span></a>            <span class="n">project_assignments</span> <span class="o">=</span> <span class="n">ProjectAssignment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
+</span><span id="AssgineeClosureForm.save-162"><a href="#AssgineeClosureForm.save-162"><span class="linenos">162</span></a>                <span class="n">contributor</span><span class="o">=</span><span class="n">assignee</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-163"><a href="#AssgineeClosureForm.save-163"><span class="linenos">163</span></a>                <span class="n">project__projectmanager__manager</span><span class="o">=</span><span class="n">manager</span>
+</span><span id="AssgineeClosureForm.save-164"><a href="#AssgineeClosureForm.save-164"><span class="linenos">164</span></a>            <span class="p">)</span>
+</span><span id="AssgineeClosureForm.save-165"><a href="#AssgineeClosureForm.save-165"><span class="linenos">165</span></a>
+</span><span id="AssgineeClosureForm.save-166"><a href="#AssgineeClosureForm.save-166"><span class="linenos">166</span></a>            <span class="n">objs</span> <span class="o">=</span> <span class="p">[</span><span class="n">PeriodClosure</span><span class="p">(</span>
+</span><span id="AssgineeClosureForm.save-167"><a href="#AssgineeClosureForm.save-167"><span class="linenos">167</span></a>                <span class="n">period</span><span class="o">=</span><span class="n">period</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-168"><a href="#AssgineeClosureForm.save-168"><span class="linenos">168</span></a>                <span class="n">project_assignment</span><span class="o">=</span><span class="n">project_assignment</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-169"><a href="#AssgineeClosureForm.save-169"><span class="linenos">169</span></a>                <span class="n">is_closed_contributor</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-170"><a href="#AssgineeClosureForm.save-170"><span class="linenos">170</span></a>                <span class="n">is_closed_manager</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-171"><a href="#AssgineeClosureForm.save-171"><span class="linenos">171</span></a>            <span class="p">)</span> <span class="k">for</span> <span class="n">project_assignment</span> <span class="ow">in</span> <span class="n">project_assignments</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm.save-172"><a href="#AssgineeClosureForm.save-172"><span class="linenos">172</span></a>
+</span><span id="AssgineeClosureForm.save-173"><a href="#AssgineeClosureForm.save-173"><span class="linenos">173</span></a>            <span class="n">PeriodClosure</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">bulk_create</span><span class="p">(</span>
+</span><span id="AssgineeClosureForm.save-174"><a href="#AssgineeClosureForm.save-174"><span class="linenos">174</span></a>                <span class="n">objs</span><span class="o">=</span><span class="n">objs</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-175"><a href="#AssgineeClosureForm.save-175"><span class="linenos">175</span></a>                <span class="n">ignore_conflicts</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-176"><a href="#AssgineeClosureForm.save-176"><span class="linenos">176</span></a>                <span class="n">update_conflicts</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="AssgineeClosureForm.save-177"><a href="#AssgineeClosureForm.save-177"><span class="linenos">177</span></a>                <span class="n">update_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;is_closed_contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;is_closed_manager&#39;</span><span class="p">],</span>
+</span><span id="AssgineeClosureForm.save-178"><a href="#AssgineeClosureForm.save-178"><span class="linenos">178</span></a>                <span class="n">unique_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;period&#39;</span><span class="p">,</span> <span class="s1">&#39;project_assignment&#39;</span><span class="p">]</span>
+</span><span id="AssgineeClosureForm.save-179"><a href="#AssgineeClosureForm.save-179"><span class="linenos">179</span></a>            <span class="p">)</span>
 </span></pre></div>