Add page listing due contributions
This commit is contained in:
parent
1f8a04ec5a
commit
b4dda05575
@ -23,6 +23,23 @@ class ContributionsController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
# GET /contributions/due
|
||||
def due
|
||||
@due_members = Member.where(status: %i[expired cancelled]).to_a
|
||||
|
||||
@due_contributions = (2000..Date.today.year)
|
||||
.to_a
|
||||
.map do |year|
|
||||
[year, @due_members.select {|m| m.expires_on < Date.new(year, 12, 31) }.map { |m|
|
||||
OpenStruct.new(
|
||||
member: m,
|
||||
amount: m.category == 'normal' ? 30 : 6,
|
||||
)
|
||||
}]
|
||||
end
|
||||
.reject { |(_, m)| m.empty? }
|
||||
end
|
||||
|
||||
# GET /contributions/new
|
||||
def new
|
||||
@contribution = Contribution.new
|
||||
|
31
app/views/contributions/due.html.erb
Normal file
31
app/views/contributions/due.html.erb
Normal file
@ -0,0 +1,31 @@
|
||||
<h1><%= t 'contributions.due.title' %></h1>
|
||||
|
||||
<% @due_contributions.each do |(year, contributions)| %>
|
||||
<h2><%= year %></h2>
|
||||
<table class='zebra'>
|
||||
<tr>
|
||||
<th><%= t('members.attributes.display_name') %></th>
|
||||
<th><%= t('members.attributes.expires_on') %></th>
|
||||
<th><%= t('members.attributes.category') %></th>
|
||||
<th><%= t('contributions.attributes.amount') %></th>
|
||||
</tr>
|
||||
<% contributions.each do |contribution| %>
|
||||
<tr>
|
||||
<td>
|
||||
<%= link_to contribution.member do %><%= contribution.member.number %>. <%= contribution.member.display_name %><% end %>
|
||||
</td>
|
||||
<td><%= contribution.member.expires_on %></td>
|
||||
<td><%= contribution.member.category %></td>
|
||||
<td><%= number_to_currency(contribution.amount, unit: "€") %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Total</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th><%= number_to_currency(contributions.map(&:amount).sum, unit: "€") %></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<% end %>
|
@ -48,6 +48,8 @@ en:
|
||||
student: "Student"
|
||||
retired: "Retired"
|
||||
contributions:
|
||||
due:
|
||||
title: "Due contributions"
|
||||
new:
|
||||
expires_on_warning: |
|
||||
Adding a contribution will automatically bump the membership expiration
|
||||
|
@ -93,6 +93,8 @@ pt:
|
||||
data de inscrição é automaticamente definida como a data de pagamento,
|
||||
e a data de expiração passa a ser um ano após essa data. Podes definir
|
||||
uma data de expiração manualmente usando o próximo campo.
|
||||
due:
|
||||
title: "Contribuições em dívida"
|
||||
notification_mailer:
|
||||
expiration_in_60d:
|
||||
subject: "ANSOL - Pagamento anual de quotas"
|
||||
|
@ -14,6 +14,10 @@ Rails.application.routes.draw do
|
||||
end
|
||||
|
||||
resources :contributions, only: [:index, :edit, :update, :destroy] do
|
||||
collection do
|
||||
get :due
|
||||
end
|
||||
|
||||
member do
|
||||
get :delete
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user