diff --git a/app/controllers/admin/sheets_controller.rb b/app/controllers/admin/sheets_controller.rb index 295a290..782cbf9 100644 --- a/app/controllers/admin/sheets_controller.rb +++ b/app/controllers/admin/sheets_controller.rb @@ -43,13 +43,16 @@ class Admin::SheetsController < ApplicationController end - - if params[:sheet_filter] - @sheets = Sheet.search_by_params(params[:sheet_filter]) + if params[:no_years] + @sheets = Sheet.joins(:sheet_years).where(:sheet_years => {:paid_at => nil, :gift_year => false}).where("sheet_years.year > 2017") else - @sheets = Sheet.all(:limit => 100) - end + if params[:sheet_filter] + @sheets = Sheet.search_by_params(params[:sheet_filter]) + else + @sheets = Sheet.all(:limit => 100) + end + end respond_to do |format| diff --git a/app/models/sheet.rb b/app/models/sheet.rb index 260ef50..b147e54 100644 --- a/app/models/sheet.rb +++ b/app/models/sheet.rb @@ -27,18 +27,30 @@ class Sheet < ActiveRecord::Base SHEET_TYPE = {1 => "adherent",2 => "sympathisant"} - attr_accessor :error_join + attr_accessor :error_join, :new_web_form before_validation do - if self.sheet_years[0] - if self.sheet_years[0].join_type == 1 - self.sheet_years[0].amount = 10 - elsif self.sheet_years[0].join_type == 2 - self.sheet_years[0].amount = 15 - end - end - if self.web + + if self.web and self.new_web_form + + if self.sheet_years[0] + + if self.sheet_years[0].benefactor + self.sheet_years[0].validate_bienfaiteur = true + self.sheet_years[0].amount = self.sheet_years[0].personalized_price + + else + + if self.sheet_years[0].join_type == 1 + self.sheet_years[0].amount = 10 + elsif self.sheet_years[0].join_type == 2 + self.sheet_years[0].amount = 15 + end + end + end + + if self.people.size > 1 if self.sheet_years[0] if self.sheet_years[0].join_type == 1 diff --git a/app/models/sheet_year.rb b/app/models/sheet_year.rb index 4aa0ece..2189835 100644 --- a/app/models/sheet_year.rb +++ b/app/models/sheet_year.rb @@ -4,11 +4,22 @@ class SheetYear < ActiveRecord::Base has_one :person, :through => :sheet validates_presence_of :year + attr_accessor :personalized_price, :validate_bienfaiteur + + validates :personalized_price, :presence => true, numericality:{greater_than_or_equal_to: 20}, :if => :validate_bienfaiteur + + #attr_accessible :year, :join_type, :benefactor, :gift_year, :paid_at, :amount, :payment_type, :bank, :check_number, :sheet_id, :plume + + JOIN_TYPE = {1 => "Individuel", 2 => "Familial", 3 =>"Association"} PAYMENT_TYPE = {1 => "Chèque", 2 => "Liquide", 3 => "Paypal (ou carte bancaire)"} + before_validation do + self.gift_year = false if !self.gift_year + end + after_save do sy = self.sheet.sheet_years[0] diff --git a/app/views/admin/sheets/index.html.haml b/app/views/admin/sheets/index.html.haml index 7951640..280390a 100644 --- a/app/views/admin/sheets/index.html.haml +++ b/app/views/admin/sheets/index.html.haml @@ -15,6 +15,7 @@ %br %h1 Liste des fiches +=link_to "Voir les fiches avec des années où le paiement n'a pas été validé", params.merge(:no_years => true) =render :partial => "sheets_search", :locals => {:url => ""} %br = link_to 'Ajouter une fiche', new_admin_sheet_path, :remote => true, :class => "btn" diff --git a/app/views/public/joins/select_sheet.html.haml b/app/views/public/joins/select_sheet.html.haml index 4988b70..95da7b4 100644 --- a/app/views/public/joins/select_sheet.html.haml +++ b/app/views/public/joins/select_sheet.html.haml @@ -4,9 +4,9 @@ =semantic_form_for @sheet, :url => save_sheet_public_joins_path(), :html => {:method => :get} do |form| - + -form.object.new_web_form = true =form.inputs do - + =form.hidden_field :new_web_form =form.hidden_field :sheet_type =form.hidden_field :web @@ -40,17 +40,20 @@ =form.semantic_fields_for :sheet_years do |f| .field =f.hidden_field :year + %br =form.input :error_join, :label => false, :input_html => {:style => "display:none;"} = f.input :join_type, :collection => {"Individuel (10€)" => 1, "Familial (15€)" => 2}, :as => :select, :label => "Type d'adhésion :", :include_blank => false - -if false - = f.label :benefactor, "Bienfaiteur : " - = f.check_box :benefactor - - %br - = f.label :gift_year, "Année d'adhésion offerte : " - = f.check_box :gift_year, :onchange => "payment_form($(this));" + + + =f.input :benefactor, :label => "Adhésion bienfaiteur ? (somme libre au dessus de 20€)", :input_html => {:onchange => "if($(this).is(':checked')){$('.bienfaiteur').show();}else{$('.bienfaiteur').hide();}"} + + .bienfaiteur{:style => ("display:none" if !f.object.benefactor)} + =f.input :personalized_price, :label => "Montant de votre adhésion bienfaiteur :" + + + %br