catarse_pagarme 1.5.3 → 2.0.0

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +7 -7
  3. data/app/assets/javascripts/catarse_pagarme/application.js +1 -1
  4. data/app/assets/javascripts/catarse_pagarme/credit_card.js +19 -21
  5. data/app/assets/javascripts/catarse_pagarme/payment_choice.js +0 -1
  6. data/app/assets/javascripts/catarse_pagarme/payment_slip.js +6 -6
  7. data/app/controllers/catarse_pagarme/credit_card_base_controller.rb +4 -4
  8. data/app/controllers/catarse_pagarme/notifications_controller.rb +1 -14
  9. data/app/controllers/catarse_pagarme/slip_controller.rb +3 -3
  10. data/app/helpers/catarse_pagarme/application_helper.rb +1 -1
  11. data/app/models/catarse_pagarme/contribution_delegator.rb +10 -14
  12. data/app/models/catarse_pagarme/transaction_base.rb +2 -11
  13. data/app/views/catarse_pagarme/pagarme/_terms.html.slim +6 -0
  14. data/app/views/catarse_pagarme/pagarme/review.html.slim +103 -104
  15. data/catarse_pagarme.gemspec +1 -1
  16. data/config/routes.rb +1 -4
  17. data/lib/catarse_pagarme/configuration.rb +1 -10
  18. data/lib/catarse_pagarme/version.rb +1 -1
  19. data/spec/controllers/catarse_pagarme/credit_cards_controller_spec.rb +3 -3
  20. data/spec/controllers/catarse_pagarme/notifications_controller_spec.rb +2 -10
  21. data/spec/models/catarse_pagarme/contribution_delegator_spec.rb +1 -14
  22. data/spec/models/catarse_pagarme/credit_card_transaction_spec.rb +2 -15
  23. data/spec/models/catarse_pagarme/slip_transaction_spec.rb +2 -15
  24. data/spec/spec_helper.rb +1 -1
  25. data/spec/support/factories.rb +3 -8
  26. metadata +5 -8
  27. data/app/models/catarse_pagarme/bank_account_concern.rb +0 -58
  28. data/app/models/catarse_pagarme/fee_calculator_concern.rb +0 -66
  29. data/spec/models/catarse_pagarme/bank_account_concern_spec.rb +0 -46
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4ba46bca94f1ff4f9461ea5ee5b99798e1e80f7
4
- data.tar.gz: 082fc8e59856c856bf6f3dab97c710027f935fe9
3
+ metadata.gz: ea2622f55d3204092b95029e30222ee11d53ef09
4
+ data.tar.gz: db723fbfa732d4415e27ac35f277aebc5bfe8435
5
5
  SHA512:
6
- metadata.gz: dc5e1858379c685bceb097b3737db4f8cbaa35ee202165f2f65aa416db7d157fbc3233101c936a61db78256317f9847b92204bcebd12b09d6fb5076fcf3826e2
7
- data.tar.gz: 236f314db22fb50785f5fe70ff5ef01fc35785ae7112d1de196bd4233f20f6340fe8dc34f5b56e78181868b1f523d27016300949190abe8ba2ca428f2eb64ac2
6
+ metadata.gz: 959cc0e8544a66213446bf515ab834087d1ac24750aa8eb8ed400db618261e7406fb20eaf55ab2bf31a9e9c4b2a58536d8516f11c9d19698fc0880aca35b8f8b
7
+ data.tar.gz: 53922520a96378bc0387cfdccbadbba0e00e6bc68c00cf79f25d6972850d13216dcb53e06e9035963868ee43cf8254002dbe04db7b3241e2307514040eead0ff
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- catarse_pagarme (1.5.2)
5
- pagarme (~> 1.9.9)
4
+ catarse_pagarme (2.0.0)
5
+ pagarme (~> 1.9.5)
6
6
  rails (~> 4.0)
7
7
 
8
8
  GEM
@@ -52,8 +52,8 @@ GEM
52
52
  mime-types (1.25.1)
53
53
  minitest (5.4.0)
54
54
  multi_json (1.10.1)
55
- netrc (0.10.2)
56
- pagarme (1.9.9)
55
+ netrc (0.7.7)
56
+ pagarme (1.9.6)
57
57
  multi_json
58
58
  rest-client
59
59
  pg (0.17.1)
@@ -92,15 +92,15 @@ GEM
92
92
  rspec-core (~> 2.14.0)
93
93
  rspec-expectations (~> 2.14.0)
94
94
  rspec-mocks (~> 2.14.0)
95
- sprockets (2.12.3)
95
+ sprockets (2.12.2)
96
96
  hike (~> 1.2)
97
97
  multi_json (~> 1.0)
98
98
  rack (~> 1.0)
99
99
  tilt (~> 1.1, != 1.3.0)
100
- sprockets-rails (2.2.2)
100
+ sprockets-rails (2.1.4)
101
101
  actionpack (>= 3.0)
102
102
  activesupport (>= 3.0)
103
- sprockets (>= 2.8, < 4.0)
103
+ sprockets (~> 2.8)
104
104
  thor (0.19.1)
105
105
  thread_safe (0.3.4)
106
106
  tilt (1.4.1)
@@ -3,7 +3,7 @@ App.addChild('PagarmeForm', {
3
3
 
4
4
  activate: function() {
5
5
  this.message = this.$('.next_step_after_valid_document .alert-danger');
6
- this.loader = this.$('.loader');
6
+ this.loader = this.$('.loader img');
7
7
 
8
8
  this.contributionId = $('input#contribution_id').val();
9
9
  this.projectId = $('input#project_id').val();
@@ -5,30 +5,28 @@ App.views.PagarmeForm.addChild('PaymentCard', {
5
5
  'keyup input[type="text"]' : 'creditCardInputValidator',
6
6
  'keyup #payment_card_number' : 'onKeyupPaymentCardNumber',
7
7
  'click input#credit_card_submit' : 'onSubmit',
8
- 'click a.use_another-card': 'showCreditCardForm'
8
+ 'change .creditcard-records' : 'onChangeCard'
9
+ },
10
+
11
+ onChangeCard: function(event){
12
+ var $target = $(event.currentTarget);
13
+ $target.siblings().removeClass('selected');
14
+ $target.addClass('selected');
15
+ if($(event.target).val() == 0){
16
+ this.$('.type_card_data').slideDown('slow');
17
+ }
18
+ else{
19
+ this.$('.type_card_data').slideUp('slow');
20
+ }
9
21
  },
10
22
 
11
23
  activate: function(options){
12
24
  var that = this;
13
25
  this.pagarmeForm = this.parent;
14
- this.message = this.$('.alert-danger');
26
+ this.message = this.$('.payment-error-message');
15
27
  this.$('input#payment_card_date').mask('99/99');
16
28
  },
17
29
 
18
- showCreditCardForm: function(e) {
19
- var that = this;
20
- e.preventDefault();
21
-
22
- that.$('ul.my_credit_cards').hide();
23
- that.$('a.use_another-card ').hide();
24
- that.$('.type_card_data').show();
25
- that.$('.save_card').show();
26
-
27
- $.each(that.$('.my_credit_cards input:radio[name=payment_subscription_card]'), function(i, item) {
28
- $(item).prop('checked', false);
29
- });
30
- },
31
-
32
30
  getUrl: function(){
33
31
  var that = this;
34
32
  var url = '';
@@ -52,7 +50,7 @@ App.views.PagarmeForm.addChild('PaymentCard', {
52
50
  },
53
51
 
54
52
  selectedCard: function() {
55
- return this.$('.my_credit_cards input:radio[name=payment_subscription_card]:checked');
53
+ return this.$('input:radio[data-stored][name=payment_subscription_card]:checked');
56
54
  },
57
55
 
58
56
  hasSelectedSomeCard: function() {
@@ -81,7 +79,7 @@ App.views.PagarmeForm.addChild('PaymentCard', {
81
79
 
82
80
  getInstallments: function() {
83
81
  if(this.hasSelectedSomeCard()) {
84
- return this.$('.my_credit_cards select#payment_card_installments').val();
82
+ return this.$('.my-credit-cards .selected select#payment_card_installments').val();
85
83
  } else {
86
84
  return this.$('.type_card_data select#payment_card_installments').val();
87
85
  }
@@ -102,8 +100,8 @@ App.views.PagarmeForm.addChild('PaymentCard', {
102
100
  that.parent.loader.hide();
103
101
 
104
102
  if(response.payment_status == 'failed'){
105
- that.message.find('p').html(response.message);
106
- that.message.fadeIn('fast')
103
+ that.message.find('.message-text').html(response.message);
104
+ that.message.slideDown('slow')
107
105
 
108
106
  $(e.currentTarget).show();
109
107
  } else {
@@ -120,7 +118,7 @@ App.views.PagarmeForm.addChild('PaymentCard', {
120
118
  },
121
119
 
122
120
  onKeyupPaymentCardNumber: function(e){
123
- this.$('input#payment_card_flag').val(this.getCardFlag($(e.currentTarget).val()))
121
+ this.$('#payment_card_flag').html(this.getCardFlag($(e.currentTarget).val()))
124
122
  },
125
123
 
126
124
  getCardFlag: function(number) {
@@ -16,7 +16,6 @@ App.views.PagarmeForm.addChild('PaymentChoice', {
16
16
 
17
17
  activate: function(){
18
18
  var that = this.parent;
19
-
20
19
  that.$('input#payment_type_credit_card').click();
21
20
  }
22
21
  });
@@ -8,7 +8,7 @@ App.views.PagarmeForm.addChild('PaymentSlip', {
8
8
 
9
9
  activate: function(options){
10
10
  this.PagarmeForm = this.parent;
11
- this.message = this.$('.alert-danger');
11
+ this.message = this.$('.payment-error-message');
12
12
  this.$('#user_bank_account_attributes_name').brbanks();
13
13
  },
14
14
 
@@ -44,18 +44,18 @@ App.views.PagarmeForm.addChild('PaymentSlip', {
44
44
  }
45
45
  };
46
46
 
47
- $.post('/payment/pagarme/'+that.PagarmeForm.contributionId+'/pay_slip.json', bankAccountAttributes, null, 'json').success(function(response){
47
+ $.post('/payment/pagarme/'+that.PagarmeForm.contributionId+'/pay_slip', bankAccountAttributes).success(function(response){
48
48
  parent.loader.hide();
49
49
  if(response.payment_status == 'failed'){
50
- that.message.find('p').html(response.message);
51
- that.message.fadeIn('fast')
50
+ that.message.find('.message-text').html(response.message);
51
+ that.message.slideDown('slow')
52
52
 
53
53
  $(e.currentTarget).show();
54
54
  } else if(response.boleto_url) {
55
- var link = $('<a target="__blank">'+response.boleto_url+'</a>')
55
+ var link = $('<a class="alt-link" target="__blank">'+response.boleto_url+'</a>')
56
56
  link.attr('href', response.boleto_url);
57
57
  that.$('.link_content').empty().html(link);
58
- that.$('.payment_section:visible .subtitle').fadeIn('fast');
58
+ that.$('#payment-slip-link').slideDown('slow');
59
59
  }
60
60
  });
61
61
  }
@@ -18,7 +18,7 @@ module CatarsePagarme
18
18
  end
19
19
 
20
20
  def get_installment
21
- if contribution.value.to_f < CatarsePagarme.configuration.minimum_value_for_installment.to_f
21
+ if contribution.value < CatarsePagarme.configuration.minimum_value_for_installment
22
22
  1
23
23
  elsif params[:payment_card_installments].to_i > 0
24
24
  params[:payment_card_installments].to_i
@@ -36,9 +36,9 @@ module CatarsePagarme
36
36
  card_expiration_year: splited_month_and_year[1],
37
37
  card_cvv: params[:payment_card_source],
38
38
  amount: delegator.value_with_installment_tax(get_installment),
39
- postback_url: ipn_pagarme_index_url(host: CatarsePagarme.configuration.host,
40
- subdomain: CatarsePagarme.configuration.subdomain,
41
- protocol: CatarsePagarme.configuration.protocol),
39
+ postback_url: ipn_pagarme_url(contribution, host: CatarsePagarme.configuration.host,
40
+ subdomain: CatarsePagarme.configuration.subdomain,
41
+ protocol: CatarsePagarme.configuration.protocol),
42
42
  installments: get_installment,
43
43
  customer: {
44
44
  email: contribution.user.email,
@@ -8,25 +8,12 @@ module CatarsePagarme
8
8
  contribution.payment_notifications.create(extra_data: params.to_json)
9
9
 
10
10
  if PagarMe::validate_fingerprint(contribution.try(:payment_id), params[:fingerprint])
11
-
12
- if params[:current_status] == 'paid' && params[:desired_status] == 'refunded'
13
- contribution.try(:invalid_refund)
14
- else
15
- delegator.change_status_by_transaction(params[:current_status])
16
- delegator.fill_acquirer_data
17
- end
18
-
11
+ delegator.change_status_by_transaction(params[:current_status])
19
12
  return render nothing: true, status: 200
20
13
  end
21
14
  end
22
15
 
23
16
  render nothing: true, status: 404
24
17
  end
25
-
26
- protected
27
-
28
- def contribution
29
- @contribution ||= PaymentEngines.find_payment({ payment_id: params[:id] })
30
- end
31
18
  end
32
19
  end
@@ -21,9 +21,9 @@ module CatarsePagarme
21
21
  payment_method: 'boleto',
22
22
  boleto_expiration_date: 2.days.from_now,
23
23
  amount: delegator.value_for_transaction,
24
- postback_url: ipn_pagarme_index_url(host: CatarsePagarme.configuration.host,
25
- subdomain: CatarsePagarme.configuration.subdomain,
26
- protocol: CatarsePagarme.configuration.protocol),
24
+ postback_url: ipn_pagarme_url(contribution, host: CatarsePagarme.configuration.host,
25
+ subdomain: CatarsePagarme.configuration.subdomain,
26
+ protocol: CatarsePagarme.configuration.protocol),
27
27
  customer: {
28
28
  email: contribution.user.email,
29
29
  name: contribution.user.name
@@ -6,7 +6,7 @@ module CatarsePagarme
6
6
 
7
7
  collection = installments.map do |installment|
8
8
  installment_number = installment[0].to_i
9
- if installment_number <= CatarsePagarme.configuration.max_installments.to_i
9
+ if installment_number <= CatarsePagarme.configuration.max_installments
10
10
  amount = installment[1]['installment_amount'] / 100.0
11
11
 
12
12
  optional_text = nil
@@ -1,7 +1,6 @@
1
1
  module CatarsePagarme
2
2
  class ContributionDelegator
3
3
  attr_accessor :contribution, :transaction
4
- include FeeCalculatorConcern
5
4
 
6
5
  def initialize(contribution)
7
6
  configure_pagarme
@@ -21,15 +20,6 @@ module CatarsePagarme
21
20
  end
22
21
  end
23
22
 
24
- def fill_acquirer_data
25
- if !contribution.acquirer_name.present? || !contribution.acquirer_tid.present?
26
- contribution.update_attributes({
27
- acquirer_name: transaction.acquirer_name,
28
- acquirer_tid: transaction.tid
29
- })
30
- end
31
- end
32
-
33
23
  def refund
34
24
  if contribution.is_credit_card?
35
25
  transaction.refund
@@ -52,10 +42,6 @@ module CatarsePagarme
52
42
  end
53
43
  end
54
44
 
55
- def value_for_installment(installment)
56
- get_installment(installment).try(:[], "installment_amount")
57
- end
58
-
59
45
  def transaction
60
46
  @transaction ||= ::PagarMe::Transaction.find_by_id(self.contribution.payment_id)
61
47
  end
@@ -75,6 +61,16 @@ module CatarsePagarme
75
61
  })
76
62
  end
77
63
 
64
+ def get_fee(payment_method, acquirer_name = nil)
65
+ if payment_method == PaymentType::SLIP
66
+ CatarsePagarme.configuration.slip_tax.to_f
67
+ else
68
+ if acquirer_name != 'cielo'
69
+ (self.contribution.value * CatarsePagarme.configuration.credit_card_tax.to_f) + CatarsePagarme.configuration.credit_card_cents_fee.to_f
70
+ end
71
+ end
72
+ end
73
+
78
74
  protected
79
75
 
80
76
  def bank_account_attributes
@@ -11,7 +11,6 @@ module CatarsePagarme
11
11
 
12
12
  def change_contribution_state
13
13
  self.contribution.update_attributes(attributes_to_contribution)
14
- update_fee
15
14
  self.contribution.payment_notifications.create(extra_data: self.transaction.to_json)
16
15
  delegator.change_status_by_transaction(self.transaction.status)
17
16
  end
@@ -23,22 +22,14 @@ module CatarsePagarme
23
22
  def attributes_to_contribution
24
23
  {
25
24
  payment_choice: payment_method,
25
+ payment_service_fee: delegator.get_fee(payment_method, self.transaction.acquirer_name),
26
26
  payment_id: self.transaction.id,
27
27
  payment_method: 'Pagarme',
28
28
  slip_url: self.transaction.boleto_url,
29
- installments: (self.transaction.installments || 1),
30
- installment_value: (delegator.value_for_installment(self.transaction.installments || 0) / 100.0).to_f,
31
- acquirer_name: self.transaction.acquirer_name,
32
- acquirer_tid: self.transaction.tid
29
+ installments: (self.transaction.installments || 1)
33
30
  }
34
31
  end
35
32
 
36
- def update_fee
37
- self.contribution.update_attributes({
38
- payment_service_fee: delegator.get_fee(payment_method, self.transaction.acquirer_name),
39
- })
40
- end
41
-
42
33
  def delegator
43
34
  self.contribution.pagarme_delegator
44
35
  end
@@ -0,0 +1,6 @@
1
+ .fontsize-smallest.u-text-center.u-marginbottom-30
2
+ | Ao apoiar, você concorda com os
3
+ = link_to 'Termos de Uso', main_app.terms_of_use_path, class: 'alt-link'
4
+ | e
5
+ = link_to 'Política de Privacidade', main_app.privacy_policy_path, class: 'alt-link'
6
+
@@ -3,111 +3,110 @@
3
3
  = form_tag 'javascript:void(0);', :class => 'pagarme' do
4
4
 
5
5
  .next_step_after_valid_document
6
+ .w-row.list_payment.w-form
7
+ .w-col.w-col-7.w-col-small-7.back-payment-moip-options-column
8
+ = radio_button_tag 'payment_type', "credit_card", false, class: 'w-radio-input back-payment-radio-button'
9
+ = label_tag :payment_type_credit_card, nil, class: "cards w-form-label" do
10
+ = image_tag 'catarse_bootstrap/payment_cards.jpg'
11
+ .w-col.w-col-5.w-col-small-5.back-payment-moip-options-column
12
+ = radio_button_tag 'payment_type', "slip", false, class: 'w-radio-input back-payment-radio-button'
13
+ = label_tag :payment_type_slip, class: "boleto w-form-label" do
14
+ = image_tag 'catarse_bootstrap/payment_boleto.jpg'
6
15
 
7
- .list_payment
8
- .input
9
- = radio_button_tag 'payment_type', "credit_card"
10
- = label_tag :payment_type_credit_card, nil, :class => "cards"
11
-
12
- = radio_button_tag 'payment_type', "slip"
13
- = label_tag :payment_type_slip, 'Boleto', :class => "boleto"
14
-
16
+ .formwrapper
15
17
  #payment_type_credit_card_section.payment_section
16
- h3= t('projects.contributions.review.form.labels.payment_card')
17
-
18
- .clearfix
19
-
20
- .bootstrap-twitter style="float: none;"
21
- .alert.alert-danger.hide
22
- p.error_msg
23
- .clearfix
24
-
25
- .clearfix
26
-
27
- .choose_card
28
- ul class="my_credit_cards #{(current_user.credit_cards.present? ? '' : 'hide')}"
29
- - current_user.credit_cards.each_with_index do |credit_card, i|
30
- li.credit_card
31
- .radio_button
32
- = radio_button_tag :payment_subscription_card, credit_card.subscription_id, { checked: (i == 0) }
33
- .select_installments
34
- - if @contribution.value.to_f >= CatarsePagarme.configuration.minimum_value_for_installment.to_f
35
- = select_tag :payment_card_installments, options_for_select(installments_for_select(@contribution))
36
- .card_info
18
+ div[class="my-credit-cards w-form back-payment-form-creditcard formwrapper records-choice #{(current_user.credit_cards.present? ? '' : 'w-hidden')}"]
19
+ - current_user.credit_cards.each_with_index do |credit_card, i|
20
+ .w-row.creditcard-records
21
+ .w-col.w-col-1
22
+ .w-radio.w-clearfix.back-payment-credit-card-radio-field
23
+ = radio_button_tag :payment_subscription_card, credit_card.subscription_id, i == 0, {"data-stored" => true}
24
+ .w-col.w-col-2
25
+ .fontsize-small.fontweight-semibold.text-success
26
+ = credit_card.card_brand.upcase
27
+ .w-col.w-col-5
28
+ .fontsize-small.fontweight-semibold.u-marginbottom-20
37
29
  = "XXXX.XXXX.XXXX.#{credit_card.last_digits}"
38
- .card_brand
39
- = credit_card.card_brand
40
- .clearfix
41
-
42
- .bootstrap-twitter
43
- a href='javascript:void(0)' class="btn use_another-card #{(current_user.credit_cards.present? ? '' : 'hide')}"
44
- | Utilizar outro cartão
45
-
46
- div class="type_card_data #{(current_user.credit_cards.present? ? 'hide' : '')}"
47
- .div
48
- .owner_outside
49
- .owner
50
- ol.inputs
51
- li.name
52
- = label_tag :payment_card_name, t('projects.contributions.edit.form_labels.payment_card_name')
53
- = text_field_tag :payment_card_name, nil
54
- - if @contribution.value.to_f >= CatarsePagarme.configuration.minimum_value_for_installment.to_f
55
- li.cpf
56
- = label_tag :payment_card_installments, t('projects.contributions.edit.form_labels.payment_card_installments')
57
- = select_tag :payment_card_installments, options_for_select(installments_for_select(@contribution))
58
- .div
59
- .infocard_outside
60
- .infocard
61
- ol.inputs
62
- li.number
63
- = label_tag :payment_card_number, t('projects.contributions.edit.form_labels.payment_card_number')
64
- = text_field_tag :payment_card_number, nil
65
- li.flag
66
- = label_tag :payment_card_flag, t('projects.contributions.edit.form_labels.payment_card_flag')
67
- = text_field_tag :payment_card_flag, nil, { disabled: true }
68
- li.source
69
- = label_tag :payment_card_source, t('projects.contributions.edit.form_labels.payment_card_source')
70
- = text_field_tag :payment_card_source, nil
71
- li.date
72
- = label_tag :payment_card_date, t('projects.contributions.edit.form_labels.payment_card_date')
73
- = text_field_tag :payment_card_date, nil
74
-
75
- .clearfix
76
- .bootstrap-twitter
77
- div class="save_card #{(current_user.credit_cards.present? ? 'hide' : '')}"
78
- = check_box_tag :payment_save_card, 1, false
79
- = label_tag :payment_save_card, t('projects.contributions.edit.payment_save_card')
80
- .loader.hide= image_tag('loading.gif')
81
- .clearfix
82
- = submit_tag t('projects.contributions.review.form.labels.submit'), :class => 'btn btn-primary btn-large', :id => "credit_card_submit"
83
-
84
- #payment_type_slip_section.hide.payment_section
85
- h3= t('projects.contributions.review.form.labels.payment_boleto')
86
- .clearfix
87
- .bootstrap-twitter style="float: none;"
88
- .alert.alert-danger.hide
89
- p.error_msg
90
- .clearfix
91
- .bootstrap-twitter
92
- .bootstrap-form
93
-
94
- .bootstrap-alert
95
- .alert.credit_alert
96
- = t('users.current_user_fields.bank_account_hint')
30
+ .w-col.w-col-4
31
+ = select_tag :payment_card_installments, options_for_select(installments_for_select(@contribution)), class: 'w-select text-field text-field-creditcard'
32
+ .w-row.creditcard-records
33
+ .w-col.w-col-1
34
+ .w-radio.w-clearfix.back-payment-credit-card-radio-field
35
+ = radio_button_tag :payment_subscription_card, 0
36
+ .w-col.w-col-11
37
+ .fontsize-small.fontweight-semibold.fontcolor-secondary
38
+ = t('projects.contributions.edit.form_labels.user_another_card')
39
+ div[class="w-form formwrapper type_card_data #{(current_user.credit_cards.present? ? 'w-hidden' : '')}"]
40
+ .w-row
41
+ .w-col.w-col-12
42
+ .field-label.fontweight-semibold
43
+ = label_tag :payment_card_name, t('projects.contributions.edit.form_labels.payment_card_name'), class: 'field-label fontweight-semibold'
44
+ = text_field_tag :payment_card_name, nil, class: 'w-input text-field'
45
+ .w-row
46
+ .w-col.w-col-6.w-sub-col
47
+ = label_tag :payment_card_number, t('projects.contributions.edit.form_labels.payment_card_number'), class: 'fontweight-semibold field-label'
48
+ .card-brand.prefix.text-field
49
+ #payment_card_flag.fontsize-smallest.fontcolor-secondary.u-text-center
50
+ |&nbsp;
51
+ .card-number
52
+ = text_field_tag :payment_card_number, nil, class: 'w-input text-field postfix'
53
+ .w-col.w-col-6
54
+ .w-row
55
+ .w-col.w-col-6.w-col-small-6.w-col-tiny-6.w-sub-col-middle
56
+ = label_tag :payment_card_source, t('projects.contributions.edit.form_labels.payment_card_source'), class: 'field-label fontweight-semibold'
57
+ = text_field_tag :payment_card_source, nil, class: 'w-input text-field'
58
+ .w-col.w-col-6.w-col-small-6.w-col-tiny-6
59
+ = label_tag :payment_card_date, t('projects.contributions.edit.form_labels.payment_card_date'), class: 'field-label fontweight-semibold'
60
+ = text_field_tag :payment_card_date, nil, class: 'w-input text-field'
61
+ - if @contribution.value >= CatarsePagarme.configuration.minimum_value_for_installment
62
+ .w-row
63
+ .w-col.w-col-6.w-sub-col
64
+ = label_tag :payment_card_installments, t('projects.contributions.edit.form_labels.payment_card_installments'), class: 'field-label fontweight-semibold'
65
+ = select_tag :payment_card_installments, options_for_select(installments_for_select(@contribution)), class: 'w-select text-field'
66
+ .w-checkbox.w-clearfix
67
+ = check_box_tag :payment_save_card, 1, false, class: 'w-checkbox-input'
68
+ = label_tag :payment_save_card, t('projects.contributions.edit.payment_save_card'), class: 'w-form-label'
69
+ .w-row
70
+ .w-col.w-col-12
71
+ .payment-error-message.card.card-error.u-radius.zindex-10.u-marginbottom-30.w-hidden
72
+ .fontsize-smaller.fontweight-bold.u-marginbottom-10= t('projects.contributions.edit.review_errors_title')
73
+ .message-text.fontsize-smaller = t('.review_errors')
74
+ .w-row
75
+ .w-col.w-col-push-3.w-col-6
76
+ #card-loading.loader.u-text-center.w-col.w-col-12.u-marginbottom-30 = image_tag "catarse_bootstrap/loader.gif"
77
+ = submit_tag t('projects.contributions.review.form.labels.submit'), :class => 'btn btn-large u-marginbottom-20', :id => "credit_card_submit"
78
+ = render partial: 'terms'
97
79
 
98
- = simple_form_for current_user, url: 'javascript:void(0)' do |f|
99
- .bank_accounts
100
- = f.simple_fields_for :bank_account do |bank_form|
101
- = bank_form.input :bank_id, as: :select, collection: Bank.to_collection, input_html: { style: 'width: 150px' }
102
- = bank_form.input :agency, as: :string
103
- = bank_form.input :agency_digit, as: :string
104
- = bank_form.input :account, as: :string
105
- = bank_form.input :account_digit, as: :string
106
- = bank_form.input :owner_name, as: :string, input_html: { value: bank_form.object.owner_name || current_user.full_name }
107
- = bank_form.input :owner_document, as: :string, input_html: { value: bank_form.object.owner_document || current_user.cpf }
108
- .clearfix
109
- .loader.hide= image_tag('loading.gif')
110
- = submit_tag t('projects.contributions.review.form.labels.build_boleto'), :class => 'btn btn-primary btn-large', :id => "build_boleto"
111
- .clearfix
112
- p.subtitle.hide= t('projects.contributions.review.form.labels.payment_boleto_subtitle')
113
- .link_content
80
+ #payment_type_slip_section.payment_section.w-hidden
81
+ = simple_form_for current_user, url: 'javascript:void(0)' do |f|
82
+ .bank_accounts
83
+ = f.simple_fields_for :bank_account do |bank_form|
84
+ .w-row
85
+ = bank_form.input :bank_id, as: :select, collection: Bank.order(:code, :name).to_collection, wrapper_html: {class: 'w-col w-col-12'}
86
+ .w-row
87
+ = bank_form.input :agency, as: :string, wrapper_html: {class: 'w-col w-sub-col-middle w-col-4 w-col-small-8'}
88
+ = bank_form.input :agency_digit, as: :string, wrapper_html: {class: 'w-col w-sub-col-middle w-sub-col w-col-2 w-col-small-4'}
89
+ = bank_form.input :account, as: :string, wrapper_html: {class: 'w-col w-sub-col-middle w-col-4 w-col-small-8'}
90
+ = bank_form.input :account_digit, as: :string, wrapper_html: {class: 'w-col w-col-2 w-col-small-4'}
91
+ .w-row
92
+ = bank_form.input :owner_name, as: :string, input_html: { value: bank_form.object.owner_name || current_user.full_name }, wrapper_html: {class: 'w-col w-sub-col w-col-6'}
93
+ = bank_form.input :owner_document, as: :string, input_html: { value: bank_form.object.owner_document || current_user.cpf }, wrapper_html: {class: 'w-col w-col-6'}
94
+ .w-row
95
+ .w-col.w-col-12
96
+ .card.card-message.u-radius.fontsize-small.zindex-10.u-marginbottom-30
97
+ | Após clicar no botão abaixo, você receberá um link com o boleto para completar o pagamento.
98
+ .w-row
99
+ .w-col.w-col-12
100
+ .payment-error-message.card.card-error.u-radius.zindex-10.u-marginbottom-30.w-hidden
101
+ .fontsize-smaller.fontweight-bold.u-marginbottom-10= t('projects.contributions.edit.review_errors_title')
102
+ .message-text.fontsize-smaller = t('.review_errors')
103
+ .w-row
104
+ .w-col.w-col-12
105
+ #payment-slip-link.card.card-message.fontsize-small.u-radius.u-marginbottom-30.zindex-10.w-hidden
106
+ .link_content.fontsize-smaller
107
+ .fontsize-smaller Você também receberá um email com esse boleto.
108
+ .w-row
109
+ .w-col.w-col-push-3.w-col-6
110
+ #card-loading.loader.u-text-center.w-col.w-col-12.u-marginbottom-30 = image_tag "catarse_bootstrap/loader.gif"
111
+ = submit_tag t('projects.contributions.review.form.labels.build_boleto'), :class => 'btn btn-large u-marginbottom-20', :id => "build_boleto"
112
+ = render partial: 'terms'
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
19
 
20
20
  s.add_dependency "rails", "~> 4.0"
21
- s.add_dependency "pagarme", "~> 1.9.9"
21
+ s.add_dependency "pagarme", "~> 1.9.5"
22
22
 
23
23
  s.add_development_dependency "rspec-rails", "~> 2.14.0"
24
24
  s.add_development_dependency "factory_girl_rails"
data/config/routes.rb CHANGED
@@ -4,15 +4,12 @@ CatarsePagarme::Engine.routes.draw do
4
4
  member do
5
5
  get :review
6
6
  put :second_slip, to: 'slip#update'
7
+ post :ipn, to: 'notifications#create'
7
8
  post :pay_credit_card, to: 'credit_cards#create'
8
9
  post :pay_slip, to: 'slip#create'
9
10
  post :pay_with_subscription, to: 'subscriptions#create'
10
11
  put :pay_with_subscription, to: 'subscriptions#update'
11
12
  end
12
13
 
13
- collection do
14
- post :ipn, to: 'notifications#create'
15
- end
16
-
17
14
  end
18
15
  end
@@ -1,9 +1,7 @@
1
1
  module CatarsePagarme
2
2
  class Configuration
3
3
  attr_accessor :api_key, :slip_tax, :credit_card_tax, :interest_rate, :host, :subdomain, :protocol,
4
- :max_installments, :minimum_value_for_installment, :credit_card_cents_fee, :pagarme_tax, :stone_tax,
5
- :cielo_tax, :cielo_installment_diners_tax, :cielo_installment_not_diners_tax,
6
- :cielo_installment_amex_tax, :cielo_installment_not_amex_tax
4
+ :max_installments, :minimum_value_for_installment, :credit_card_cents_fee
7
5
 
8
6
  def initialize
9
7
  self.api_key = ''
@@ -16,13 +14,6 @@ module CatarsePagarme
16
14
  self.host = 'catarse.me'
17
15
  self.subdomain = 'www'
18
16
  self.protocol = 'http'
19
- self.pagarme_tax = 0.0063
20
- self.stone_tax = 0.0307
21
- self.cielo_tax = 0.038
22
- self.cielo_installment_diners_tax = 0.048
23
- self.cielo_installment_not_diners_tax = 0.0455
24
- self.cielo_installment_amex_tax = 0.058
25
- self.cielo_installment_not_amex_tax = 0.048
26
17
  end
27
18
  end
28
19
  end
@@ -1,3 +1,3 @@
1
1
  module CatarsePagarme
2
- VERSION = "1.5.3"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -27,12 +27,12 @@ describe CatarsePagarme::CreditCardsController do
27
27
  before do
28
28
  post :create, {
29
29
  locale: :pt, project_id: project.id, contribution_id: contribution.id, use_route: 'catarse_pagarme',
30
- payment_card_date: '10/17', payment_card_number: '4012888888881881', payment_card_name: 'Foo bar',
31
- payment_card_source: '574', payment_card_installments: '1' }
30
+ payment_card_date: '10/17', payment_card_number: '4901720080344448', payment_card_name: 'Foo bar',
31
+ payment_card_source: '143', payment_card_installments: '1' }
32
32
 
33
33
  end
34
34
 
35
- it 'payment_status should be filled' do
35
+ it 'payment_status should be filled and not failed' do
36
36
  expect(ActiveSupport::JSON.decode(response.body)['payment_status']).not_to be_nil
37
37
  end
38
38
 
@@ -1,20 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CatarsePagarme::NotificationsController do
4
- let(:fake_transaction) {
5
- t = double
6
- t.stub(:card_brand).and_return('visa')
7
- t.stub(:acquirer_name).and_return('stone')
8
- t.stub(:tid).and_return('404040404')
9
- t
10
- }
11
4
  before do
12
5
  PagarMe.stub(:validate_fingerprint).and_return(true)
13
- PagarMe::Transaction.stub(:find_by_id).and_return(fake_transaction)
14
6
  end
15
7
 
16
8
  let(:project) { create(:project, goal: 10_000, state: 'online') }
17
- let(:contribution) { create(:contribution, value: 10, project: project, payment_id: 'abcd') }
9
+ let(:contribution) { create(:contribution, value: 10, project: project) }
18
10
  let(:credit_card) { create(:credit_card, subscription_id: '1542')}
19
11
 
20
12
  describe 'CREATE' do
@@ -32,7 +24,7 @@ describe CatarsePagarme::NotificationsController do
32
24
  context "with valid contribution" do
33
25
  before do
34
26
  PaymentEngines.stub(:find_payment).and_return(contribution)
35
- post :create, { locale: :pt, id: 'abcd', use_route: 'catarse_pagarme' }
27
+ post :create, { locale: :pt, id: contribution.id, use_route: 'catarse_pagarme' }
36
28
  end
37
29
 
38
30
  it "should save an extra_data into payment_notifications" do
@@ -30,22 +30,9 @@ describe CatarsePagarme::ContributionDelegator do
30
30
  end
31
31
 
32
32
  context "#get_fee" do
33
- let(:fake_transaction) {
34
- t = double
35
- t.stub(:card_brand).and_return('visa')
36
- t.stub(:acquirer_name).and_return('stone')
37
- t.stub(:acquirer_tid).and_return('404040404')
38
- t
39
- }
40
-
41
33
  before do
42
34
  CatarsePagarme.configuration.stub(:slip_tax).and_return(2.00)
43
35
  CatarsePagarme.configuration.stub(:credit_card_tax).and_return(0.01)
44
- CatarsePagarme.configuration.stub(:pagarme_tax).and_return(0.0063)
45
- CatarsePagarme.configuration.stub(:cielo_tax).and_return(0.038)
46
- CatarsePagarme.configuration.stub(:stone_tax).and_return(0.0307)
47
-
48
- delegator.stub(:transaction).and_return(fake_transaction)
49
36
  end
50
37
 
51
38
  context 'when choice is slip' do
@@ -55,7 +42,7 @@ describe CatarsePagarme::ContributionDelegator do
55
42
 
56
43
  context 'when choice is credit card' do
57
44
  subject { delegator.get_fee(CatarsePagarme::PaymentType::CREDIT_CARD).to_f }
58
- it { expect(subject).to eq(0.83) }
45
+ it { expect(subject).to eq(0.49) }
59
46
  end
60
47
  end
61
48
 
@@ -11,7 +11,6 @@ describe CatarsePagarme::CreditCardTransaction do
11
11
  transaction.stub(:boleto_url).and_return(nil)
12
12
  transaction.stub(:installments).and_return(3)
13
13
  transaction.stub(:acquirer_name).and_return('stone')
14
- transaction.stub(:tid).and_return('123123')
15
14
  transaction
16
15
  }
17
16
 
@@ -40,7 +39,7 @@ describe CatarsePagarme::CreditCardTransaction do
40
39
  describe '#charge!' do
41
40
  describe 'with valid attributes' do
42
41
  before do
43
- contribution.should_receive(:update_attributes).at_least(1).and_call_original
42
+ contribution.should_receive(:update_attributes).and_call_original
44
43
  CatarsePagarme::ContributionDelegator.any_instance.should_receive(:change_status_by_transaction).with('paid')
45
44
 
46
45
  card_transaction.charge!
@@ -52,7 +51,7 @@ describe CatarsePagarme::CreditCardTransaction do
52
51
  end
53
52
 
54
53
  it "should update contribution payment_service_fee" do
55
- expect(contribution.payment_service_fee.to_f).to eq(4.08)
54
+ expect(contribution.payment_service_fee.to_f).to eq(1.39)
56
55
  end
57
56
 
58
57
  it "should update contribution payment_method" do
@@ -66,18 +65,6 @@ describe CatarsePagarme::CreditCardTransaction do
66
65
  it "should update contribution payment_choice" do
67
66
  expect(contribution.payment_choice).to eq(CatarsePagarme::PaymentType::CREDIT_CARD)
68
67
  end
69
-
70
- it "should update contribution acquirer_name" do
71
- expect(contribution.acquirer_name).to eq('stone')
72
- end
73
-
74
- it "should update contribution acquirer_tid" do
75
- expect(contribution.acquirer_tid).to eq('123123')
76
- end
77
-
78
- it "should update contribution installment_value" do
79
- expect(contribution.installment_value).to_not be_nil
80
- end
81
68
  end
82
69
  end
83
70
 
@@ -8,9 +8,8 @@ describe CatarsePagarme::SlipTransaction do
8
8
  transaction.stub(:charge).and_return(true)
9
9
  transaction.stub(:status).and_return('paid')
10
10
  transaction.stub(:boleto_url).and_return('boleto url')
11
- transaction.stub(:installments).and_return(1)
11
+ transaction.stub(:installments).and_return(nil)
12
12
  transaction.stub(:acquirer_name).and_return('pagarme')
13
- transaction.stub(:tid).and_return('123123')
14
13
  transaction
15
14
  }
16
15
  let(:valid_attributes) do
@@ -72,7 +71,7 @@ describe CatarsePagarme::SlipTransaction do
72
71
  before do
73
72
  slip_transaction.should_receive(:update_user_bank_account).and_call_original
74
73
  slip_transaction.user.should_receive(:update_attributes).and_return(true)
75
- contribution.should_receive(:update_attributes).at_least(1).and_call_original
74
+ contribution.should_receive(:update_attributes).and_call_original
76
75
  CatarsePagarme::ContributionDelegator.any_instance.should_receive(:change_status_by_transaction).with('paid')
77
76
 
78
77
  slip_transaction.charge!
@@ -98,18 +97,6 @@ describe CatarsePagarme::SlipTransaction do
98
97
  it "should update contribution payment_choice" do
99
98
  expect(contribution.payment_choice).to eq(CatarsePagarme::PaymentType::SLIP)
100
99
  end
101
-
102
- it "should update contribution acquirer_name" do
103
- expect(contribution.acquirer_name).to eq('pagarme')
104
- end
105
-
106
- it "should update contribution acquirer_tid" do
107
- expect(contribution.acquirer_tid).to eq('123123')
108
- end
109
-
110
- it "should update contribution installment_value" do
111
- expect(contribution.installment_value).to_not be_nil
112
- end
113
100
  end
114
101
  end
115
102
 
data/spec/spec_helper.rb CHANGED
@@ -30,7 +30,7 @@ RSpec.configure do |config|
30
30
  end
31
31
 
32
32
  config.before(:each) do
33
- PagarMe.stub(:api_key).and_return('ak_test_XLoo19QDn9kg5JFGU70x12IA4NqbAv')
33
+ PagarMe.stub(:api_key).and_return('ak_test_Rw4JR98FmYST2ngEHtMvVf5QJW7Eoo')
34
34
  PaymentEngines.stub(:configuration).and_return({})
35
35
  end
36
36
  end
@@ -32,19 +32,14 @@ FactoryGirl.define do
32
32
  f.name_pt { generate(:name) }
33
33
  end
34
34
 
35
- factory :bank do |f|
36
- f.name { generate(:uid) }
37
- f.code { generate(:uid) }
38
- end
39
-
40
35
  factory :bank_account do |f|
41
- f.association :bank
36
+ f.name 'Foo bar'
42
37
  f.account '1234'
43
38
  f.account_digit '1'
44
39
  f.agency '1'
45
40
  f.agency_digit '2'
46
- f.owner_name 'fooo'
47
- f.owner_document '9889'
41
+ f.user_name 'fooo'
42
+ f.user_document '9889'
48
43
  end
49
44
 
50
45
  factory :project do |f|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: catarse_pagarme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antônio Roberto Silva
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-26 00:00:00.000000000 Z
12
+ date: 2014-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 1.9.9
34
+ version: 1.9.5
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 1.9.9
41
+ version: 1.9.5
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec-rails
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -110,18 +110,17 @@ files:
110
110
  - app/controllers/catarse_pagarme/slip_controller.rb
111
111
  - app/controllers/catarse_pagarme/subscriptions_controller.rb
112
112
  - app/helpers/catarse_pagarme/application_helper.rb
113
- - app/models/catarse_pagarme/bank_account_concern.rb
114
113
  - app/models/catarse_pagarme/contribution_concern.rb
115
114
  - app/models/catarse_pagarme/contribution_delegator.rb
116
115
  - app/models/catarse_pagarme/credit_card_concern.rb
117
116
  - app/models/catarse_pagarme/credit_card_delegator.rb
118
117
  - app/models/catarse_pagarme/credit_card_transaction.rb
119
- - app/models/catarse_pagarme/fee_calculator_concern.rb
120
118
  - app/models/catarse_pagarme/payment_type.rb
121
119
  - app/models/catarse_pagarme/save_credit_card_transaction.rb
122
120
  - app/models/catarse_pagarme/slip_transaction.rb
123
121
  - app/models/catarse_pagarme/subscription_transaction.rb
124
122
  - app/models/catarse_pagarme/transaction_base.rb
123
+ - app/views/catarse_pagarme/pagarme/_terms.html.slim
125
124
  - app/views/catarse_pagarme/pagarme/review.html.slim
126
125
  - app/views/layouts/catarse_pagarme/application.html.erb
127
126
  - bin/rails
@@ -191,7 +190,6 @@ files:
191
190
  - spec/dummy/public/500.html
192
191
  - spec/dummy/public/favicon.ico
193
192
  - spec/helpers/catarse_pagarme/application_helper_spec.rb
194
- - spec/models/catarse_pagarme/bank_account_concern_spec.rb
195
193
  - spec/models/catarse_pagarme/contribution_delegator_spec.rb
196
194
  - spec/models/catarse_pagarme/credit_card_transaction_spec.rb
197
195
  - spec/models/catarse_pagarme/slip_transaction_spec.rb
@@ -278,7 +276,6 @@ test_files:
278
276
  - spec/dummy/public/500.html
279
277
  - spec/dummy/public/favicon.ico
280
278
  - spec/helpers/catarse_pagarme/application_helper_spec.rb
281
- - spec/models/catarse_pagarme/bank_account_concern_spec.rb
282
279
  - spec/models/catarse_pagarme/contribution_delegator_spec.rb
283
280
  - spec/models/catarse_pagarme/credit_card_transaction_spec.rb
284
281
  - spec/models/catarse_pagarme/slip_transaction_spec.rb
@@ -1,58 +0,0 @@
1
- module CatarsePagarme::BankAccountConcern
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
-
6
- validate :must_be_valid_on_pagarme
7
-
8
- def must_be_valid_on_pagarme
9
- pagarme_errors.each do |p_error|
10
- _attr = attributes_parsed_from_pagarme[p_error.parameter_name.to_sym]
11
- errors.add(_attr, :invalid)
12
- end
13
- end
14
-
15
- private
16
-
17
- def pagarme_errors
18
- configure_pagarme
19
- bank_account = ::PagarMe::BankAccount.new(attributes_parsed_to_pagarme)
20
-
21
- begin
22
- bank_account.create
23
-
24
- []
25
- rescue Exception => e
26
- e.errors
27
- end
28
- end
29
-
30
- def attributes_parsed_to_pagarme
31
- {
32
- bank_code: self.bank.try(:code),
33
- agencia: self.agency,
34
- agencia_dv: self.agency_digit,
35
- conta: self.account,
36
- conta_dv: self.account_digit,
37
- legal_name: self.owner_name,
38
- document_number: self.owner_document
39
- }
40
- end
41
-
42
- def attributes_parsed_from_pagarme
43
- {
44
- bank_code: :bank,
45
- agencia: :agency,
46
- agencia_dv: :agency_digit,
47
- conta: :account,
48
- conta_dv: :account_digit,
49
- legal_name: :owner_name,
50
- document_number: :owner_document
51
- }
52
- end
53
-
54
- def configure_pagarme
55
- ::PagarMe.api_key = CatarsePagarme.configuration.api_key
56
- end
57
- end
58
- end
@@ -1,66 +0,0 @@
1
- module CatarsePagarme::FeeCalculatorConcern
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
-
6
- def get_fee(payment_method, acquirer_name = nil)
7
- if payment_method == ::CatarsePagarme::PaymentType::SLIP
8
- CatarsePagarme.configuration.slip_tax.to_f
9
- else
10
- if acquirer_name == 'stone'
11
- self.contribution.installments > 1 ? tax_calc_for_installment(stone_tax) : tax_calc(stone_tax)
12
- else
13
- if self.transaction.card_brand == 'amex'
14
- self.contribution.installments > 1 ? tax_calc_for_installment(cielo_installment_amex_tax) : tax_calc(cielo_installment_not_amex_tax)
15
- else
16
- current_tax = self.transaction.card_brand == 'diners' ? installment_diners_tax : installment_not_diners_tax
17
- self.contribution.installments > 1 ? tax_calc_for_installment(current_tax) : tax_calc(cielo_tax)
18
- end
19
- end
20
- end
21
- end
22
-
23
- protected
24
-
25
- def tax_calc acquirer_tax
26
- ((self.contribution.value * pagarme_tax) + cents_fee).round(2) + (self.contribution.value * acquirer_tax).round(2)
27
- end
28
-
29
- def tax_calc_for_installment acquirer_tax
30
- (((self.contribution.installment_value * self.contribution.installments) * pagarme_tax) + cents_fee).round(2) + ((self.contribution.installment_value * acquirer_tax).round(2) * self.contribution.installments)
31
- end
32
-
33
- def cents_fee
34
- CatarsePagarme.configuration.credit_card_cents_fee.to_f
35
- end
36
-
37
- def pagarme_tax
38
- CatarsePagarme.configuration.pagarme_tax.to_f
39
- end
40
-
41
- def cielo_tax
42
- CatarsePagarme.configuration.cielo_tax.to_f
43
- end
44
-
45
- def stone_tax
46
- CatarsePagarme.configuration.stone_tax.to_f
47
- end
48
-
49
- def installment_diners_tax
50
- CatarsePagarme.configuration.cielo_installment_diners_tax.to_f
51
- end
52
-
53
- def installment_not_diners_tax
54
- CatarsePagarme.configuration.cielo_installment_not_diners_tax.to_f
55
- end
56
-
57
- def cielo_installment_amex_tax
58
- CatarsePagarme.configuration.cielo_installment_amex_tax.to_f
59
- end
60
-
61
- def cielo_installment_not_amex_tax
62
- CatarsePagarme.configuration.cielo_installment_not_amex_tax.to_f
63
- end
64
-
65
- end
66
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class FakeBankAccount < BankAccount
4
- include CatarsePagarme::BankAccountConcern
5
- end
6
-
7
- describe FakeBankAccount do
8
- let(:bank) { create(:bank) }
9
-
10
- let(:valid_attr) do
11
- vb = build(:bank_account, bank: bank)
12
- vb.attributes
13
- end
14
-
15
- let(:valid_attr_on_pagarme) do
16
- {
17
- bank_id: bank.id,
18
- agency: '1732',
19
- agency_dv: '8',
20
- account: '25483',
21
- account_dv: 'X',
22
- owner_name: 'Lorem Ipsum',
23
- owner_document: '111.111.111-11'
24
- }
25
- end
26
-
27
- describe "validate :must_be_valid_on_pagarme" do
28
- context "when bank account has invalid data on pagarme" do
29
- let(:bank_account_on_pagarme) { FakeBankAccount.new(valid_attr) }
30
- let(:local_bank_account) { BankAccount.new(valid_attr) }
31
-
32
- it "local_bank_account should be valid" do
33
- expect(local_bank_account.valid?).to be_true
34
- end
35
-
36
- it "bank_account_on_pagarme should be not valid with these attrs" do
37
- expect(bank_account_on_pagarme.valid?).to be_false
38
- end
39
-
40
- it "bank_account_on_pagarme should be valid with another attrs" do
41
- subject { FakeBankAccount.new(valid_attr_on_pagarme).valid? }
42
- expect(subject).to be_true
43
- end
44
- end
45
- end
46
- end