diff --git a/app/controllers/entries_controller.rb b/app/controllers/entries_controller.rb index b18c4a4..825ed12 100644 --- a/app/controllers/entries_controller.rb +++ b/app/controllers/entries_controller.rb @@ -37,8 +37,9 @@ class EntriesController < ApplicationController end @fortbildungskosten_by_year = Entry.total_fortbildungskosten_by_year(current_user) + @selbstsupervision_by_year = Entry.total_selbsterfahrungskosten_by_year(current_user) @selbsterfahrungskosten_by_year = Entry.total_selbsterfahrungskosten_by_year(current_user) - + @allekosten_by_year = Entry.total_semesterkosten_by_year(current_user) # Voraussichtliches Ende je Kombination basierend auf weekly_target_matrix @estimated_end_by_typ_art = {} @remaining_minutes_matrix.each do |typ, arts| diff --git a/app/models/entry.rb b/app/models/entry.rb index 419df05..531f54a 100644 --- a/app/models/entry.rb +++ b/app/models/entry.rb @@ -12,12 +12,18 @@ class Entry < ApplicationRecord before_save :normalize_time PRAKTIKUMSTYPEN = %w[propädeutikum fachspezifikum] - ENTRY_ARTEN = %w[Praktikum Selbsterfahrung Supervision Fortbildung] + ENTRY_ARTEN = %w[Praktikum Selbsterfahrung Supervision Fortbildung Semesterkosten] validates :praktikums_typ, inclusion: { in: PRAKTIKUMSTYPEN } validates :entry_art, inclusion: { in: ENTRY_ARTEN } validates :distance_km, numericality: { only_integer: true, greater_than_or_equal_to: 0 } + after_initialize :set_default_date, if: :new_record? + + def set_default_date + self.date ||= Date.today + end + def kilometer_pauschale return 0 unless distance_km.present? distance_km * 0.42 @@ -35,6 +41,18 @@ class Entry < ApplicationRecord .transform_values { |entries| entries.sum { |e| e.kosten.to_f } } end + def self.total_supervision_by_year(user) + where(user: user, entry_art: 'Supervision') + .group_by { |e| e.date.year } + .transform_values { |entries| entries.sum { |e| e.kosten.to_f } } + end + + def self.total_semesterkosten_by_year(user) + where(user: user) + .group_by { |e| e.date.year } + .transform_values { |entries| entries.sum { |e| e.kosten.to_f } } + end + def jahr date.year end diff --git a/app/views/entries/index.html.erb b/app/views/entries/index.html.erb index 382f982..9c61a0e 100644 --- a/app/views/entries/index.html.erb +++ b/app/views/entries/index.html.erb @@ -1,32 +1,65 @@
<%= year %>: - <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %> -
- <% end %> +<%= year %>: + <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %> +
+ <% end %> +<%= year %>: + <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %> +
+ <% end %> +<%= year %>: + <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %> +
+ <% end %> +<%= year %>: <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %>
- <% end %> +<%= year %>: + <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %> +
+ <% end %> +<%= year %>: <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %>
- <% end %> +<%= year %>: + <%= number_to_currency(sum, unit: "€", separator: ",", delimiter: ".", precision: 2) %> +
+ <% end %> +<%= @total_minutes / 60 %> h <%= @total_minutes % 60 %> min
+Gesamtzeit: <%= @total_minutes / 60 %> h <%= @total_minutes % 60 %> min
+| Typ | Art | Kilometer | -Pauschale | +Pauschale Kosten |
Aktionen | @@ -96,16 +129,29 @@<%= entry.date.strftime('%d.%m.%Y') %> | <%= entry.hours.to_i %>h <%= entry.minutes.to_i %>min | - <%= entry.entry_art == "Fortbildung" ? "Fortbildung" : entry.praktikums_typ.capitalize %> + <%= ["Fortbildung", "Semesterkosten"].include?(entry.entry_art) ? entry.entry_art : entry.praktikums_typ.capitalize %> | - <%= entry.entry_art == "Fortbildung" ? entry.beschreibung : entry.entry_art.capitalize %> + <%= ["Fortbildung", "Semesterkosten"].include?(entry.entry_art) ? entry.beschreibung : entry.entry_art.capitalize %> | <%= entry.distance_km.to_f %> km | -<%= number_to_currency(entry.kilometer_pauschale, unit: "€", separator: ",", delimiter: ".") %> | +
+
+ <% if entry.kilometer_pauschale.present? %>
+
+ <%= number_to_currency(entry.kilometer_pauschale, unit: "€", separator: ",", delimiter: ".") %>
+ <% end %>
+
+ <% if entry.kosten.present? %>
+ <%= number_to_currency(entry.kosten, unit: "€", separator: ",", delimiter: ".") %>
+ <% end %>
+ |
+
+
<%= link_to 'Bearbeiten', edit_entry_path(entry), class: 'btn btn-sm btn-outline-primary' %>
<%= link_to 'Löschen', entry_path(entry), class: 'btn btn-sm btn-outline-danger open-delete-modal' %>
+
|
<% end %>
|---|