adherent 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/adherent/icones/address-book-open.png +0 -0
- data/app/assets/images/adherent/icones/bandaid.png +0 -0
- data/app/assets/images/adherent/icones/card-address.png +0 -0
- data/app/assets/images/adherent/icones/home.png +0 -0
- data/app/assets/images/adherent/icones/user-plus.png +0 -0
- data/app/assets/images/adherent/icones/users.png +0 -0
- data/app/controllers/adherent/adhesions_controller.rb +2 -6
- data/app/controllers/adherent/coords_controller.rb +2 -22
- data/app/controllers/adherent/payments_controller.rb +2 -8
- data/app/controllers/adherent/reglements_controller.rb +1 -0
- data/app/helpers/adherent/application_helper.rb +4 -0
- data/app/models/adherent/adhesion.rb +16 -14
- data/app/models/adherent/coord.rb +4 -0
- data/app/models/adherent/member.rb +19 -7
- data/app/models/adherent/payment.rb +23 -20
- data/app/models/adherent/reglement.rb +3 -0
- data/app/views/adherent/adhesions/edit.html.erb +1 -1
- data/app/views/adherent/adhesions/index.html.haml +1 -1
- data/app/views/adherent/adhesions/new.html.erb +1 -1
- data/app/views/adherent/coords/edit.html.erb +1 -3
- data/app/views/adherent/coords/new.html.erb +1 -1
- data/app/views/adherent/coords/show.html.erb +2 -2
- data/app/views/adherent/members/edit.html.erb +2 -3
- data/app/views/adherent/members/index.html.erb +8 -8
- data/app/views/adherent/members/new.html.erb +1 -1
- data/app/views/adherent/members/show.html.erb +4 -3
- data/app/views/adherent/payments/index.html.haml +1 -1
- data/app/views/adherent/payments/new.html.erb +1 -1
- data/app/views/adherent/reglements/new.html.erb +1 -1
- data/config/initializers/pick_date_extension.rb +12 -4
- data/config/locales/fr.yml +3 -1
- data/lib/adherent/engine.rb +5 -0
- data/lib/adherent/version.rb +1 -1
- data/test/dummy/app/controllers/application_controller.rb +1 -1
- data/test/dummy/log/development.log +24686 -0
- data/test/dummy/log/test.log +76446 -0
- data/test/dummy/tmp/cache/assets/BF0/070/sprockets%2F42b486109907c85c344e3428f5615140 +0 -0
- data/test/dummy/tmp/cache/assets/C44/670/sprockets%2Fe128312dd259094d00196a3f02f41819 +0 -0
- data/test/dummy/tmp/cache/assets/C4D/C10/sprockets%2Fe52bf847776498593423b635698c989c +0 -0
- data/test/dummy/tmp/cache/assets/C50/1E0/sprockets%2Fd687f61462083316a5947ccd9211605a +0 -0
- data/test/dummy/tmp/cache/assets/C53/BA0/sprockets%2F0701319e027b68d87b4d5727aa571973 +0 -0
- data/test/dummy/tmp/cache/assets/C8B/B50/sprockets%2F1bf0946089435ce76a87bd41668373c2 +0 -0
- data/test/dummy/tmp/cache/assets/C90/510/sprockets%2Ff5920073f4480657faac32986b1f8587 +0 -0
- data/test/dummy/tmp/cache/assets/C91/5E0/sprockets%2F28a1436ca683918e98c79266d19d430e +0 -0
- data/test/dummy/tmp/cache/assets/CA4/930/sprockets%2F72a29d61339a55b21d1ac7ec59153244 +0 -0
- data/test/dummy/tmp/cache/assets/CA6/0A0/sprockets%2F63a72244bdf73521f399e501b341d16d +0 -0
- data/test/dummy/tmp/cache/assets/CAD/BF0/sprockets%2Fd27d4e6bd84d0108fc54a21959181335 +0 -0
- data/test/dummy/tmp/cache/assets/CB3/3E0/sprockets%2Ff03d611409c3b2c45d75f97158197ee0 +0 -0
- data/test/dummy/tmp/cache/assets/CC6/700/sprockets%2Fda996593aa3789391cab3d7762f13687 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/410/sprockets%2Fc39062f6a04c41168a923ea22d701a5a +0 -0
- data/test/dummy/tmp/cache/assets/CCB/400/sprockets%2Fb211324ce679335840009b6a2aa45cfc +0 -0
- data/test/dummy/tmp/cache/assets/CD6/8A0/sprockets%2Fcb476833cd1a806e251da407a58d9520 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/0B0/sprockets%2Ffef07c3c165353f861564ede180350a4 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/EB0/sprockets%2F0e17703d917f6560e5c3b46ae85c09a2 +0 -0
- data/test/dummy/tmp/cache/assets/CE0/B90/sprockets%2F7baa8d092b9d409d47643521a8b55e62 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/EB0/sprockets%2Fe2d34e55c19309ae4d1b8628d38514c6 +0 -0
- data/test/dummy/tmp/cache/assets/CE4/B80/sprockets%2Fdc146f8d1ff283ff045000f8349e3942 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/700/sprockets%2Ff51725f304c66b6ed8ab01120cb1a593 +0 -0
- data/test/dummy/tmp/cache/assets/CFD/F60/sprockets%2Faac72c81c4f00133234e7d1bb46d7925 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/520/sprockets%2Fa659c61ab2078241e32ebaf671f87e41 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/CC0/sprockets%2F90fc5652fe6161075680fcd4cd0c45d2 +0 -0
- data/test/dummy/tmp/cache/assets/D14/210/sprockets%2Fb5db5427cdef8d152ae598d461178026 +0 -0
- data/test/dummy/tmp/cache/assets/D15/960/sprockets%2F557c56f5b8b86ba772e07281f1f3a0c7 +0 -0
- data/test/dummy/tmp/cache/assets/D16/870/sprockets%2F3f2a439772fcd9cd0f434f723837ae51 +0 -0
- data/test/dummy/tmp/cache/assets/D16/D00/sprockets%2F52e940c5c1d8089bcdf984d4d27c5520 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/390/sprockets%2F1d08a6978a059fa2494e078ec1ac7e93 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/820/sprockets%2F20a218b05c2726d14bd025c36ba31ddd +0 -0
- data/test/dummy/tmp/cache/assets/D1A/D90/sprockets%2F6c459fd8844374d4aa166c64f544fae0 +0 -0
- data/test/dummy/tmp/cache/assets/D20/590/sprockets%2F22948c5cb4a59a4c252888f75cdf387a +0 -0
- data/test/dummy/tmp/cache/assets/D25/100/sprockets%2F4b9f1fdc6f9b86cc0624a7951766d926 +0 -0
- data/test/dummy/tmp/cache/assets/D26/A70/sprockets%2Fbb35e749193d15ad00bf0d04513a3bd6 +0 -0
- data/test/dummy/tmp/cache/assets/D27/980/sprockets%2F65718e7a65fd89199b02b7cd38b90be9 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/220/sprockets%2Fb0d6ff4608e402650ca685bc013d5d0a +0 -0
- data/test/dummy/tmp/cache/assets/D2B/FA0/sprockets%2F32aa9ce8b2315cc01f8a2c27374215ce +0 -0
- data/test/dummy/tmp/cache/assets/D32/5D0/sprockets%2F3acc8697202c55974ff0122bcf20fa2b +0 -0
- data/test/dummy/tmp/cache/assets/D3E/7A0/sprockets%2Ff9a1dbe464c536a11de32284fbc89192 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/640/sprockets%2F9b448668c4c3a12d6aaa017b94e69ed2 +0 -0
- data/test/dummy/tmp/cache/assets/D42/040/sprockets%2F3def97f4406db752008fa340f74a6e3f +0 -0
- data/test/dummy/tmp/cache/assets/D44/860/sprockets%2F9157a652853bd3cea861bd767fed0b08 +0 -0
- data/test/dummy/tmp/cache/assets/D44/BF0/sprockets%2Fcf34626c45538b36718fd50fa9bcb2e6 +0 -0
- data/test/dummy/tmp/cache/assets/D45/2A0/sprockets%2F9c55f3eca763e68ded31023b7f66543a +0 -0
- data/test/dummy/tmp/cache/assets/D48/B20/sprockets%2F5768e2da329c68c958acde5d26124de0 +0 -0
- data/test/dummy/tmp/cache/assets/D48/FD0/sprockets%2F4403ce85c7fe84fe60d426553aa99b1f +0 -0
- data/test/dummy/tmp/cache/assets/D4B/710/sprockets%2F41e4ac5488184198d7e33e18b7aece4f +0 -0
- data/test/dummy/tmp/cache/assets/D4B/C40/sprockets%2F2428f6c76bb4a5efb583e158681fb73d +0 -0
- data/test/dummy/tmp/cache/assets/D51/560/sprockets%2Ff6c8347aff37a4784ea82069ba176f5f +0 -0
- data/test/dummy/tmp/cache/assets/D56/090/sprockets%2F4af17d268e2ffe72af8a78b78811f666 +0 -0
- data/test/dummy/tmp/cache/assets/D57/2C0/sprockets%2F57e8e5954196bd14468ff5db3ae99cd0 +0 -0
- data/test/dummy/tmp/cache/assets/D5F/600/sprockets%2F9c4623e57da4d15adb71bd1b04188b1d +0 -0
- data/test/dummy/tmp/cache/assets/D63/7A0/sprockets%2Fa0d549181d4ba25b5ed57b841efc2d14 +0 -0
- data/test/dummy/tmp/cache/assets/D68/100/sprockets%2F7d7522df5cd3ba1f22c81c653dd5d651 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/5C0/sprockets%2F9b410af44867a4979d1aea0ab84ed24b +0 -0
- data/test/dummy/tmp/cache/assets/D6B/970/sprockets%2F214e29a7345faee9672bca1756e4aaf1 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/D20/sprockets%2Fee6531726dfe6592fa84b42a420b6acd +0 -0
- data/test/dummy/tmp/cache/assets/D70/650/sprockets%2Fe9a55b9e2e492638448a622c2fc0bfab +0 -0
- data/test/dummy/tmp/cache/assets/D71/AF0/sprockets%2Fb289e7b3562dcfd42bd0957f27a2f52a +0 -0
- data/test/dummy/tmp/cache/assets/D73/0F0/sprockets%2F5ba6d2f108d33e64b84fc4dd91960d6e +0 -0
- data/test/dummy/tmp/cache/assets/D73/8B0/sprockets%2Fac0e6a1f5b87c2966f07864c89c0acc3 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/800/sprockets%2F850d92cf676cc2c2c662ee8dc328f82c +0 -0
- data/test/dummy/tmp/cache/assets/D7D/950/sprockets%2F8259f3fc885403b4eea8dd12964c2ffc +0 -0
- data/test/dummy/tmp/cache/assets/D92/430/sprockets%2Fc55e2bbc3d3c5566893be021ec1c4ab7 +0 -0
- data/test/dummy/tmp/cache/assets/D9A/810/sprockets%2F53a9bd5325fcfa4148c273e3deb2d19d +0 -0
- data/test/dummy/tmp/cache/assets/D9D/BA0/sprockets%2Fa3a3f78f8e854339e32a5ab0638abbbf +0 -0
- data/test/dummy/tmp/cache/assets/DA7/930/sprockets%2F06db55d1b7d0c96a4ff1657e169e6ece +0 -0
- data/test/dummy/tmp/cache/assets/DA8/0D0/sprockets%2F74dcf71bbdf4ad56a3b4338b93d9866c +0 -0
- data/test/dummy/tmp/cache/assets/DAD/860/sprockets%2F11e875f5b7f7f5efbad0f6b5f880e244 +0 -0
- data/test/dummy/tmp/cache/assets/DAD/8E0/sprockets%2F498547cbaefbf040cfff05e9c6e53386 +0 -0
- data/test/dummy/tmp/cache/assets/DB0/A80/sprockets%2F9fdb8e951f975dae3836c2ccf0f65a34 +0 -0
- data/test/dummy/tmp/cache/assets/DBC/890/sprockets%2Fa6a1ac17a4326ab9f49d1a74de70f3aa +0 -0
- data/test/dummy/tmp/cache/assets/DC1/9E0/sprockets%2F4fdc113ba37308cc3d7d2dbbe1e9d625 +0 -0
- data/test/dummy/tmp/cache/assets/DCC/170/sprockets%2Fa2b9a6a717a82fc483c94abbe71aa95f +0 -0
- data/test/dummy/tmp/cache/assets/DCD/870/sprockets%2F26f53f256948ecabba69abf1e1dea282 +0 -0
- data/test/dummy/tmp/cache/assets/DD4/980/sprockets%2Fed1289bfd5270a38bd9adfcb8d0627c8 +0 -0
- data/test/dummy/tmp/cache/assets/DD7/110/sprockets%2Fa7626606dec6ffd4a8a4b76abb7f6a94 +0 -0
- data/test/dummy/tmp/cache/assets/DD7/2D0/sprockets%2F9f68c831ccc33f95a6b0a5d7aaf76d8a +0 -0
- data/test/dummy/tmp/cache/assets/E12/820/sprockets%2Ff8ced48d293d9ae81be776bac3d3de86 +0 -0
- data/test/dummy/tmp/cache/assets/E2A/410/sprockets%2F73874a0edbd48f62ca7cad3c4a9e6aca +0 -0
- data/test/dummy/tmp/cache/assets/E3B/7A0/sprockets%2F3c7ac679f8c2cf31dec4ed6ee8064ece +0 -0
- data/test/dummy/tmp/cache/assets/E5A/2A0/sprockets%2Fed33dc2e47cddca2a7f3b9d850f01fef +0 -0
- data/test/dummy/tmp/cache/assets/E8E/C80/sprockets%2Fbcfe97b68b37db0b902decd4ea5ae8ea +0 -0
- data/test/dummy/tmp/capybara/capybara-201308230842396609518899.html +2 -0
- data/test/dummy/tmp/capybara/capybara-201308231131452286985805.html +2 -0
- data/test/dummy/tmp/capybara/capybara-201308231134102302539877.html +80 -0
- data/test/dummy/tmp/capybara/capybara-201308231250391236128298.html +80 -0
- data/test/dummy/tmp/capybara/capybara-201308231253582766291529.html +171 -0
- data/test/dummy/tmp/capybara/capybara-201308240659049618867125.html +171 -0
- data/test/dummy/tmp/capybara/capybara-201308240700213116620673.html +171 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- metadata +86 -54
- data/app/views/adherent/adhesions/show.html.erb +0 -2
- data/app/views/adherent/coords/index.html.erb +0 -55
- data/app/views/adherent/payments/edit.html.erb +0 -2
- data/app/views/adherent/payments/show.html.erb +0 -2
- data/app/views/adherent/reglements/index.html.erb +0 -2
- data/app/views/adherent/reglements/show.html.erb +0 -2
- data/test/adherent_test.rb +0 -7
- data/test/fixtures/adherent/adhesions.yml +0 -13
- data/test/fixtures/adherent/coords.yml +0 -21
- data/test/fixtures/adherent/members.yml +0 -13
- data/test/fixtures/adherent/payments.yml +0 -19
- data/test/fixtures/adherent/reglements.yml +0 -11
- data/test/functional/adherent/adhesions_controller_test.rb +0 -32
- data/test/functional/adherent/coords_controller_test.rb +0 -53
- data/test/functional/adherent/members_controller_test.rb +0 -55
- data/test/functional/adherent/payments_controller_test.rb +0 -32
- data/test/functional/adherent/reglements_controller_test.rb +0 -25
- data/test/integration/navigation_test.rb +0 -10
- data/test/test_helper.rb +0 -27
- data/test/unit/adherent/adhesion_test.rb +0 -36
- data/test/unit/adherent/coord_test.rb +0 -9
- data/test/unit/adherent/member_test.rb +0 -17
- data/test/unit/adherent/payment_test.rb +0 -24
- data/test/unit/adherent/reglement_test.rb +0 -9
- data/test/unit/helpers/adherent/adhesion_helper_test.rb +0 -6
- data/test/unit/helpers/adherent/coords_helper_test.rb +0 -6
- data/test/unit/helpers/adherent/members_helper_test.rb +0 -6
- data/test/unit/helpers/adherent/payments_helper_test.rb +0 -6
- data/test/unit/helpers/adherent/reglements_helper_test.rb +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cc38f0e8374b387fb78018d2256a35d72eaa42a0
|
|
4
|
+
data.tar.gz: 6da830b9cba2dfb5172b2187667515a232e913c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8929f5da67a218679c1cb133780e9c64e1643c2eb638f9d4d19e5aefcdfc7f3d972fe1809fa7b8a6350eb98480dc05e92dc98ec916ef2e8ecaff7967e4b8c787
|
|
7
|
+
data.tar.gz: 050ca3b73234556f4b891a1e9827f68478ce33386d2622970e479bfdd59e281f3fb285200ea4bc8e47da2e8d6c1a1570bd6f7e4776495572704c9711935696af
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -21,7 +21,7 @@ module Adherent
|
|
|
21
21
|
# PUT /adhesions/1
|
|
22
22
|
# PUT /adhesions/1.json
|
|
23
23
|
def update
|
|
24
|
-
@adhesion =
|
|
24
|
+
@adhesion = @member.adhesions.find(params[:id])
|
|
25
25
|
|
|
26
26
|
respond_to do |format|
|
|
27
27
|
if @adhesion.update_attributes(params[:adhesion])
|
|
@@ -57,11 +57,7 @@ module Adherent
|
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
@adhesion= @member.adhesions.find(params[:id])
|
|
63
|
-
|
|
64
|
-
end
|
|
60
|
+
|
|
65
61
|
|
|
66
62
|
# DELETE /adhesion/1
|
|
67
63
|
# DELETE /coords/1.json
|
|
@@ -6,17 +6,7 @@ module Adherent
|
|
|
6
6
|
class CoordsController < ApplicationController
|
|
7
7
|
|
|
8
8
|
before_filter :find_member, :except=>[:index]
|
|
9
|
-
|
|
10
|
-
# GET /coords.json
|
|
11
|
-
def index
|
|
12
|
-
@coords = @organism.members.collect {|m| m.coord }
|
|
13
|
-
|
|
14
|
-
respond_to do |format|
|
|
15
|
-
format.html # index.html.erb
|
|
16
|
-
format.json { render json: @coords }
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
9
|
+
|
|
20
10
|
# GET /coords/1
|
|
21
11
|
# GET /coords/1.json
|
|
22
12
|
def show
|
|
@@ -79,17 +69,7 @@ module Adherent
|
|
|
79
69
|
end
|
|
80
70
|
end
|
|
81
71
|
|
|
82
|
-
|
|
83
|
-
# DELETE /coords/1.json
|
|
84
|
-
def destroy
|
|
85
|
-
@coord = Coord.find(params[:id])
|
|
86
|
-
@coord.destroy
|
|
87
|
-
|
|
88
|
-
respond_to do |format|
|
|
89
|
-
format.html { redirect_to coords_url }
|
|
90
|
-
format.json { head :no_content }
|
|
91
|
-
end
|
|
92
|
-
end
|
|
72
|
+
|
|
93
73
|
|
|
94
74
|
protected
|
|
95
75
|
|
|
@@ -24,14 +24,8 @@ module Adherent
|
|
|
24
24
|
render 'new'
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@payment = @member.payments.find(params[:id])
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def show
|
|
33
|
-
@payment = @member.payments.find(params[:id])
|
|
34
|
-
end
|
|
27
|
+
|
|
28
|
+
|
|
35
29
|
|
|
36
30
|
# DELETE /payment/1
|
|
37
31
|
# DELETE /coords/1.json
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Adherent
|
|
4
4
|
class Adhesion < ActiveRecord::Base
|
|
5
5
|
|
|
6
|
-
attr_accessible :from_date, :
|
|
6
|
+
attr_accessible :from_date, :to_date, :amount
|
|
7
7
|
|
|
8
8
|
belongs_to :member
|
|
9
9
|
has_many :reglements
|
|
@@ -15,23 +15,25 @@ module Adherent
|
|
|
15
15
|
pick_date_for :from_date, :to_date
|
|
16
16
|
|
|
17
17
|
# partant d'une adhésion, retourne un hash avec les attributs correspondants à
|
|
18
|
-
# un renouvellement d'adhésion
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
:to_date=>I18n.l(
|
|
23
|
-
amount:
|
|
18
|
+
# un renouvellement d'adhésion.
|
|
19
|
+
# S'il n'y pas d'adhésion, fonctionne avec des valeurs par défaut
|
|
20
|
+
def self.next_adh_values(montant = 0)
|
|
21
|
+
{:from_date =>I18n.l(Date.today),
|
|
22
|
+
:to_date=>I18n.l(Date.today.years_since(1) -1 ),
|
|
23
|
+
amount: montant
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def next_adh_values(montant = 0)
|
|
28
|
+
montant = amount if montant == 0
|
|
29
|
+
{:from_date =>I18n.l(read_attribute(:to_date)+1),
|
|
30
|
+
:to_date=>I18n.l(read_attribute(:to_date).years_since(1)),
|
|
31
|
+
amount: montant
|
|
24
32
|
}
|
|
25
|
-
else
|
|
26
|
-
{:from_date=>I18n.l(Date.today),
|
|
27
|
-
:to_date=>I18n.l(Date.today.years_since(1) - 1),
|
|
28
|
-
amount:0
|
|
29
|
-
}
|
|
30
|
-
end
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
# liste toutes les adhésions qui ne sont pas payées
|
|
34
|
-
# TODO voir pour faire une requête SQL qui serait surment moins
|
|
36
|
+
# TODO voir pour faire une requête SQL ou un scope qui serait surment moins
|
|
35
37
|
# consommatrice de mémoire
|
|
36
38
|
def self.unpaid
|
|
37
39
|
all.reject {|adh| adh.is_paid?}
|
|
@@ -5,33 +5,45 @@ module Adherent
|
|
|
5
5
|
pick_date_for :birthdate
|
|
6
6
|
|
|
7
7
|
belongs_to :organism, class_name: 'Organism'
|
|
8
|
-
has_one :coord
|
|
8
|
+
has_one :coord, dependent: :destroy
|
|
9
9
|
has_many :adhesions
|
|
10
10
|
has_many :payments
|
|
11
11
|
|
|
12
|
-
validates :number, :name, :forname , :presence=>true
|
|
12
|
+
validates :number, :name, :forname , :organism_id, :presence=>true
|
|
13
13
|
validates_uniqueness_of :number, :scope=>:organism_id
|
|
14
14
|
|
|
15
|
+
# array des adhésions impayées par ordre de date
|
|
15
16
|
def unpaid_adhesions
|
|
16
|
-
adhesions.reject {|adh| adh.is_paid? }
|
|
17
|
+
adhesions.order(:to_date).reject {|adh| adh.is_paid? }
|
|
17
18
|
end
|
|
18
19
|
|
|
20
|
+
# indique s'il y a des adhésions impayées pour ce membre
|
|
19
21
|
def unpaid_adhesions?
|
|
20
22
|
unpaid_adhesions.any?
|
|
21
23
|
end
|
|
22
24
|
|
|
25
|
+
# donne le montant total des adhésions impayées
|
|
23
26
|
def unpaid_amount
|
|
24
27
|
unpaid_adhesions.sum(&:due)
|
|
25
28
|
end
|
|
26
29
|
|
|
30
|
+
# renvoie le prenom NOM
|
|
27
31
|
def to_s
|
|
28
|
-
[forname, name.
|
|
32
|
+
[forname, name.upcase].join(' ')
|
|
29
33
|
end
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
# renvoie une nouvelle adhésion préremplie avec les éléments issus de la
|
|
36
|
+
# dernière adhésion.
|
|
37
|
+
# il est possible d'imposer le montant si nécessaire
|
|
38
|
+
def next_adhesion(amount = nil)
|
|
39
|
+
amount ||= 0
|
|
32
40
|
adh = adhesions(true).order('to_date').last
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
if adh
|
|
42
|
+
vals = adh.next_adh_values(amount)
|
|
43
|
+
else
|
|
44
|
+
vals = Adhesion::next_adh_values(amount)
|
|
45
|
+
end
|
|
46
|
+
adhesions.new(vals)
|
|
35
47
|
end
|
|
36
48
|
|
|
37
49
|
end
|
|
@@ -6,7 +6,7 @@ module Adherent
|
|
|
6
6
|
|
|
7
7
|
attr_accessible :amount, :date, :mode
|
|
8
8
|
|
|
9
|
-
validates :amount, :date, :mode, presence:true
|
|
9
|
+
validates :amount, :date, :mode, :member_id, presence:true
|
|
10
10
|
|
|
11
11
|
pick_date_for :date
|
|
12
12
|
|
|
@@ -17,44 +17,47 @@ module Adherent
|
|
|
17
17
|
|
|
18
18
|
after_create :imputation
|
|
19
19
|
|
|
20
|
+
# Pour faire une imputation sur une adhesion dont l'id est transmise en argument.
|
|
21
|
+
# Utile lorsque le payment est fait par un membre pour payer l'adhésion d'un tiers
|
|
22
|
+
# (par exemple un membre de sa famille).
|
|
23
|
+
# TODO faire que la valeur de retour soit true ou false pour
|
|
24
|
+
# que la méthode créate du controller puisse tester et rediriger en conséquence
|
|
25
|
+
def imputation_on_adh(adh_id)
|
|
26
|
+
Adhesion.find(adh_id).add_reglement(id, non_impute)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# calcule le montant du paiement qui n'a pas été imputé, donc qui
|
|
30
|
+
# ne correspond pas à des réglements
|
|
31
|
+
def non_impute
|
|
32
|
+
amount - reglements(true).sum(:amount)
|
|
33
|
+
end
|
|
34
|
+
|
|
20
35
|
|
|
36
|
+
protected
|
|
21
37
|
# quand on reçoit un paiement, il faut en réaliser l'imputation,
|
|
22
38
|
# plusieurs cas de figure sont à envisager.
|
|
23
39
|
#
|
|
24
|
-
# Le cas le plus simple est lorsque le montant est inférieur ou égal
|
|
40
|
+
# Le cas le plus simple est lorsque le montant est inférieur ou égal aux
|
|
25
41
|
# montant dus par le membre pour les adhésions en cours.
|
|
26
42
|
#
|
|
27
|
-
# Donc on impute sur les adhésions du membre non soldées
|
|
28
|
-
#
|
|
29
|
-
#
|
|
43
|
+
# Donc on impute sur les adhésions du membre non soldées en commençant par les
|
|
44
|
+
# plus anciennes.
|
|
30
45
|
#
|
|
31
46
|
#
|
|
32
47
|
def imputation
|
|
33
48
|
# liste les adhésions non soldées et le montant total dû
|
|
34
49
|
# pour chaque adhésion non soldée (prise dans l'ordre chrono)
|
|
35
50
|
# on crée un réglement du montant dû dans la limité du montant du paiement.
|
|
36
|
-
un_paid_adhs = member.adhesions.order(:to_date).reject {|adh| adh.is_paid?}
|
|
37
51
|
a_imputer = amount
|
|
38
|
-
|
|
52
|
+
member.unpaid_adhesions.each do |adh|
|
|
39
53
|
if a_imputer > 0
|
|
40
|
-
|
|
41
|
-
a_imputer -=
|
|
54
|
+
reglemt = adh.add_reglement(id, a_imputer)
|
|
55
|
+
a_imputer -= reglemt.amount
|
|
42
56
|
end
|
|
43
57
|
end
|
|
44
58
|
end
|
|
45
59
|
|
|
46
|
-
# pour faire une imputation sur une adhesion dont l'id est transmise en argument
|
|
47
|
-
# TODO faire que la valeur de retour soit true ou false pour
|
|
48
|
-
# que la méthode créate du controller puisse tester et rediriger en conséquence
|
|
49
|
-
def imputation_on_adh(adh_id)
|
|
50
|
-
Adhesion.find(adh_id).add_reglement(id, amount)
|
|
51
|
-
end
|
|
52
60
|
|
|
53
|
-
# calcule le montant du paiement qui n'a pas été imputé, donc qui
|
|
54
|
-
# ne correspond pas à des réglements
|
|
55
|
-
def non_impute
|
|
56
|
-
amount - reglements(true).sum(:amount)
|
|
57
|
-
end
|
|
58
61
|
|
|
59
62
|
end
|
|
60
63
|
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
<%= content_for :menu do %>
|
|
3
|
-
<%=
|
|
3
|
+
<%= icon_to_users %>
|
|
4
4
|
<%= icon_to 'modifier.png', edit_member_coord_path(@member) %>
|
|
5
5
|
|
|
6
6
|
<% end -%>
|
|
7
7
|
|
|
8
8
|
<div class="champ">
|
|
9
|
-
<h3>Fiche <%= I18n::t('coord').pluralize %> <%= "#{@member.
|
|
9
|
+
<h3>Fiche <%= I18n::t('coord').pluralize %> <%= "#{@member.to_s}" %></h3>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="row-fluid inner-champ">
|
|
12
12
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<%= content_for :menu do %>
|
|
2
|
+
<%= icon_to 'users.png', members_path, title:'Liste des membres' %>
|
|
3
|
+
<%= icon_to 'card-address.png', member_coord_path(@member), title:'Coordonnées' %>
|
|
2
4
|
|
|
3
|
-
<%= icon_to 'nouveau.png', new_member_path %>
|
|
4
|
-
<%= icon_to 'detail.png', @member %>
|
|
5
|
-
<%= icon_to 'retour.png', :back %>
|
|
6
5
|
<% end -%>
|
|
7
6
|
|
|
8
7
|
<div class="champ">
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<%= content_for :menu do %>
|
|
2
|
-
<%= icon_to '
|
|
3
|
-
<%= icon_to '
|
|
2
|
+
<%= icon_to 'home.png', main_app.root_path %>
|
|
3
|
+
<%= icon_to 'user-plus.png', new_member_path %>
|
|
4
4
|
<% end -%>
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
<div class="champ">
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
<h3>
|
|
10
|
+
<h3>Liste des <%= I18n::t('members') %></h3>
|
|
11
11
|
<table class="table table-striped table-bordered table-condensed" cellpadding="0" cellspacing="0" border="0">
|
|
12
12
|
<thead>
|
|
13
13
|
<tr>
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
<td><%= member.birthdate %></td>
|
|
37
37
|
<td><%= member.coord ? member.coord.mail : '' %>
|
|
38
38
|
<td><%= member.coord ? member.coord.tel : '' %>
|
|
39
|
-
<td><%= icon_to '
|
|
40
|
-
<%= icon_to '
|
|
39
|
+
<td><%= icon_to 'card-address.png', member_coord_path(member), title:'Coordonnées', id:"coord_member_#{member.id}" %>
|
|
40
|
+
<%= icon_to 'bandaid.png', member_adhesions_path(member), title:'Liste des adhésions', id:"adhesion_member_#{member.id}"%>
|
|
41
41
|
|
|
42
|
-
<%= icon_to 'payment.png', member_payments_path(member), title: 'Liste des paiements' %>
|
|
43
|
-
<%= icon_to 'modifier.png', edit_member_path(member) %>
|
|
44
|
-
<%= icon_to 'supprimer.png', member, :confirm => 'Etes vous sur ?', :method => :delete %></td>
|
|
42
|
+
<%= icon_to 'payment.png', member_payments_path(member), title: 'Liste des paiements' , id:"payment_member_#{member.id}"%>
|
|
43
|
+
<%= icon_to 'modifier.png', edit_member_path(member) , id:"edit_member_#{member.id}" %>
|
|
44
|
+
<%= icon_to 'supprimer.png', member, id:"delete_member_#{member.id}", :confirm => 'Etes vous sur ?', :method => :delete %></td>
|
|
45
45
|
</tr>
|
|
46
46
|
<% end %>
|
|
47
47
|
</tbody>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
<%= content_for :menu do %>
|
|
3
|
-
|
|
3
|
+
<%= icon_to 'users.png', members_path, title:'Liste des membres' %>
|
|
4
|
+
<%= icon_to 'card-address.png', member_coord_path(@member) , title:'Coordonées' %>
|
|
4
5
|
<%= icon_to 'modifier.png', edit_member_path(@member) %>
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
|
|
7
8
|
<% end -%>
|
|
8
9
|
|
|
9
10
|
<div class="champ">
|