Skip to content
This repository was archived by the owner on Jul 24, 2020. It is now read-only.

Commit 4c63b83

Browse files
committed
Merge pull request #1197 from YaleSTC/1121_returned_overdue
[1121] view returned overdue
2 parents 0653874 + f013b36 commit 4c63b83

8 files changed

+22
-8
lines changed

app/controllers/reservations_controller.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ def set_filter
3434

3535
f = (can? :manage, Reservation) ? :upcoming : :reserved
3636

37-
@filters = [:reserved, :checked_out, :overdue, :returned, :upcoming,
38-
:requested, :approved_requests, :denied]
39-
@filters << :missed unless AppConfig.check(:res_exp_time)
37+
@filters = [:reserved, :checked_out, :overdue, :returned, :returned_overdue,
38+
:upcoming, :requested, :approved_requests, :denied]
39+
@filters << :missed unless AppConfig.first.res_exp_time
4040

4141
# if filter in session set it
4242
if session[:filter]

app/models/reservation.rb

+8-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,14 @@ def time_checked_out
131131
end
132132

133133
def late_fee
134-
equipment_model.late_fee.to_f
134+
if checked_in
135+
end_date = checked_in.to_date
136+
else
137+
end_date = Time.zone.today
138+
end
139+
fee = equipment_model.late_fee * (end_date - due_date)
140+
fee = 0 if fee < 0
141+
fee
135142
end
136143

137144
def reserver

app/views/admin_mailer/overdue_checked_in_fine_admin.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
Notes: <%= markdown(@overdue_checked_in.notes) %>
1212
<% end %>
1313

14-
<p>The late fee is <%= number_to_currency(@overdue_checked_in.equipment_model.late_fee) %> per day, for a total of <%= number_to_currency(((@overdue_checked_in.checked_in.to_date - @overdue_checked_in.due_date )).to_i*(@overdue_checked_in.equipment_model.late_fee))%>
14+
<p>The late fee is <%= number_to_currency(@overdue_checked_in.equipment_model.late_fee) %> per day, for a total of <%= number_to_currency(@overdue_checked_in.late_fee) %>
1515
</p>
1616

1717
<br />

app/views/reservations/_check_in_form.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
<footer>
7171
<p>
7272
This equipment is <strong class="error">overdue.</strong><br />
73-
At a fee of <%= number_to_currency(reservation.late_fee) %> / day, the renter owes <strong><%= number_to_currency(reservation.late_fee * (Time.zone.today - reservation.due_date).to_i) %></strong> total.
73+
At a fee of <%= number_to_currency(reservation.equipment_model.late_fee) %> / day, the renter owes <strong><%= number_to_currency(reservation.late_fee) %></strong> total.
7474
</p>
7575
</footer>
7676

app/views/reservations/_check_out_form.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<footer>
5454
<p>
5555
This equipment is <strong>due back on <%= reservation.due_date.to_s(:long) %>.</strong><br />
56-
An overdue return will incur a combined late fee of <strong><%= number_to_currency(reservation.late_fee) %> / day.</strong>
56+
An overdue return will incur a combined late fee of <strong><%= number_to_currency(reservation.equipment_model.late_fee) %> / day.</strong>
5757
</p>
5858
</footer>
5959
</div>

app/views/reservations/_index_nav.html.erb

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<%= render partial: 'index_nav_tab', locals: {filter: :missed, text: 'Missed'} %>
1212
<% end %>
1313
<%= render partial: 'index_nav_tab', locals: {filter: :returned, text: 'Returned'} %>
14+
<%= render partial: 'index_nav_tab', locals: {filter: :returned_overdue, text: 'Returned Overdue'} %>
1415
<%= render partial: 'index_nav_tab', locals: {filter: :approved_requests, text: 'Approved'} %>
1516
<%= render partial: 'index_nav_tab', locals: {filter: :denied, text: 'Denied'} %>
1617
</ul>

app/views/reservations/_reservations_list.html.erb

+6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
<th>Item</th>
1010
<th>Start Date</th>
1111
<th>Due Date</th>
12+
<% if @filter == :overdue || @filter == :returned_overdue %>
13+
<th>Late Fee</th>
14+
<% end %>
1215
</tr>
1316
</thead>
1417
<tbody>
@@ -38,6 +41,9 @@
3841
</td>
3942
<td><%= reservation.start_date.to_s(:long) %></td>
4043
<td><%= reservation.due_date.to_s(:long) %></td>
44+
<% if @filter == :overdue || @filter == :returned_overdue %>
45+
<td><%= number_to_currency reservation.late_fee %></td>
46+
<% end %>
4147
</tr>
4248
<% end %>
4349
</tbody>
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<p>This is a receipt for your late equipment return. </p>
22

33
<% if @reservation.equipment_model.late_fee > 0 %>
4-
<p>Your late fee is <%= number_to_currency(@reservation.equipment_model.late_fee) %> per day, for a total of <%= number_to_currency(((@reservation.checked_in.to_date - @reservation.due_date)).to_i*(@reservation.equipment_model.late_fee))%>
4+
<p>Your late fee is <%= number_to_currency(@reservation.equipment_model.late_fee) %> per day, for a total of <%= number_to_currency(@reservation.late_fee) %>
55
</p>
66
<% end %>

0 commit comments

Comments
 (0)