vesr 0.12.7 → 0.13.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.
@@ -1,3 +1,11 @@
1
+ table {
2
+ &.esr_records, &.esr_files {
3
+ .currency {
4
+ text-align: right;
5
+ }
6
+ }
7
+ }
8
+
1
9
  tr.esr_record.overpaid {
2
10
  background-color: #FCF8E3;
3
11
  }
@@ -9,9 +9,10 @@ class EsrFile < ActiveRecord::Base
9
9
 
10
10
  # File upload
11
11
  mount_uploader :file, EsrFileUploader
12
+ validates :file, :presence => true
12
13
 
13
14
  has_many :esr_records, :dependent => :destroy
14
-
15
+
15
16
  # String
16
17
  def to_s(format = :default)
17
18
  case format
@@ -5,10 +5,10 @@ class EsrRecord < ActiveRecord::Base
5
5
  attr_accessible :file, :remarks
6
6
 
7
7
  belongs_to :esr_file
8
-
8
+
9
9
  belongs_to :booking, :dependent => :destroy, :autosave => true
10
10
  belongs_to :invoice
11
-
11
+
12
12
  # State Machine
13
13
  include AASM
14
14
  aasm_column :state
@@ -21,6 +21,7 @@ class EsrRecord < ActiveRecord::Base
21
21
  aasm_state :overpaid
22
22
  aasm_state :underpaid
23
23
  aasm_state :resolved
24
+ aasm_state :duplicate
24
25
 
25
26
  aasm_event :write_off do
26
27
  transitions :from => :underpaid, :to => :resolved
@@ -34,10 +35,11 @@ class EsrRecord < ActiveRecord::Base
34
35
  transitions :from => [:overpaid, :missing], :to => :resolved
35
36
  end
36
37
 
37
- scope :invalid, where(:state => ['overpaid', 'underpaid', 'resolved'])
38
+ scope :invalid, where(:state => ['overpaid', 'underpaid', 'resolved', 'duplicate'])
38
39
  scope :unsolved, where(:state => ['overpaid', 'underpaid', 'missing'])
39
40
  scope :valid, where(:state => 'paid')
40
41
 
42
+
41
43
  private
42
44
  def parse_date(value)
43
45
  year = value[0..1].to_i + 2000
@@ -50,15 +52,15 @@ class EsrRecord < ActiveRecord::Base
50
52
  def payment_date=(value)
51
53
  write_attribute(:payment_date, parse_date(value))
52
54
  end
53
-
55
+
54
56
  def transaction_date=(value)
55
57
  write_attribute(:transaction_date, parse_date(value))
56
58
  end
57
-
59
+
58
60
  def value_date=(value)
59
61
  write_attribute(:value_date, parse_date(value))
60
62
  end
61
-
63
+
62
64
  def reference=(value)
63
65
  write_attribute(:reference, value[0..-2])
64
66
  end
@@ -130,6 +132,11 @@ class EsrRecord < ActiveRecord::Base
130
132
  end
131
133
 
132
134
  def update_state
135
+ if duplicate_of.present?
136
+ self.state = 'duplicate'
137
+ return
138
+ end
139
+
133
140
  if self.invoice.nil?
134
141
  self.state = 'missing'
135
142
  return
@@ -154,7 +161,7 @@ class EsrRecord < ActiveRecord::Base
154
161
 
155
162
  # Invoices
156
163
  before_create :assign_invoice, :create_esr_booking, :update_state, :update_remarks, :update_invoice_state
157
-
164
+
158
165
  private
159
166
  def assign_invoice
160
167
  # Prepare remarks to not be null
@@ -168,12 +175,19 @@ class EsrRecord < ActiveRecord::Base
168
175
  self.invoice = imported_invoice
169
176
  end
170
177
  end
171
-
178
+
172
179
  def vesr_account
173
180
  BankAccount.find_by_esr_id(client_id)
174
181
  end
175
182
 
183
+ # Tries to find a record this would duplicate
184
+ def duplicate_of
185
+ EsrRecord.where(:reference => reference, :bank_pc_id => bank_pc_id, :amount => amount, :payment_date => payment_date, :transaction_date => transaction_date).first
186
+ end
187
+
176
188
  def create_esr_booking
189
+ return if duplicate_of.present?
190
+
177
191
  if invoice
178
192
  esr_booking = invoice.bookings.build
179
193
  debit_account = invoice.balance_account
@@ -181,7 +195,7 @@ class EsrRecord < ActiveRecord::Base
181
195
  esr_booking = Booking.new
182
196
  debit_account = Invoice.direct_account
183
197
  end
184
-
198
+
185
199
  esr_booking.update_attributes(
186
200
  :amount => amount,
187
201
  :credit_account => vesr_account,
@@ -190,11 +204,11 @@ class EsrRecord < ActiveRecord::Base
190
204
  :title => "VESR Zahlung",
191
205
  :comments => remarks
192
206
  )
193
-
207
+
194
208
  esr_booking.save
195
-
209
+
196
210
  self.booking = esr_booking
197
-
211
+
198
212
  return esr_booking
199
213
  end
200
214
 
@@ -208,7 +222,7 @@ class EsrRecord < ActiveRecord::Base
208
222
  end
209
223
  end
210
224
 
211
- public
225
+ public
212
226
  def create_write_off_booking
213
227
  invoice.write_off("Korrektur nach VESR Zahlung").save
214
228
  end
@@ -1,6 +1,6 @@
1
1
  %tr[esr_file]
2
2
  %td= link_to l(esr_file.updated_at), esr_file, 'data-href-container' => 'tr'
3
- %td.right= esr_file.esr_records.paid.count
4
- %td.right= esr_file.esr_records.invalid.count
5
- %td.right= esr_file.esr_records.missing.count
6
- %td.right= currency_fmt(esr_file.esr_records.sum(:amount) || 0.0)
3
+ %td.currency= esr_file.esr_records.paid.count
4
+ %td.currency= esr_file.esr_records.invalid.count
5
+ %td.currency= esr_file.esr_records.missing.count
6
+ %td.currency= currency_fmt(esr_file.esr_records.sum(:amount) || 0.0)
@@ -1,7 +1,6 @@
1
1
  = simple_form_for resource do |f|
2
- = f.input :file, :as => :file
3
-
4
2
  .row-fluid
5
- .span12= f.input :remarks, :input_html => {:rows => 4}
3
+ = f.input :file, :as => :file
6
4
 
7
- = f.button :submit
5
+ .form-actions
6
+ = f.button :submit
@@ -2,10 +2,10 @@
2
2
  %thead
3
3
  %tr
4
4
  %th= t_attr :updated_at, EsrFile
5
- %th.right= t_attr :bookings, EsrFile
6
- %th.right= t_attr :invalid_bookings, EsrFile
7
- %th.right= t_attr :missing_bookings, EsrFile
8
- %th.right= t_attr :total_amount, EsrFile
5
+ %th.currency= t_attr :bookings, EsrFile
6
+ %th.currency= t_attr :invalid_bookings, EsrFile
7
+ %th.currency= t_attr :missing_bookings, EsrFile
8
+ %th.currency= t_attr :total_amount, EsrFile
9
9
  %th.action-links
10
10
  %tbody
11
11
  = render @esr_files
@@ -1,4 +1,4 @@
1
- %table.table.table-striped.collection
1
+ %table.table.table-striped.esr_records.collection
2
2
  %thead
3
3
  %tr
4
4
  %th= t_attr :value_date, EsrRecord
@@ -1,3 +1,3 @@
1
1
  module Vesr
2
- VERSION = "0.12.7"
2
+ VERSION = "0.13.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vesr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.7
4
+ version: 0.13.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-11-07 00:00:00.000000000 Z
13
+ date: 2014-04-29 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: VESR provides support for ESR number calculations and gives ready to
16
16
  use Rails components.
@@ -28,7 +28,7 @@ files:
28
28
  - app/assets/images/16x16/resolve.png
29
29
  - app/assets/images/16x16/show_all.png
30
30
  - app/assets/images/16x16/write_off.png
31
- - app/assets/stylesheets/vesr.css
31
+ - app/assets/stylesheets/vesr.scss
32
32
  - app/controllers/esr_files_controller.rb
33
33
  - app/controllers/esr_records_controller.rb
34
34
  - app/models/esr_file.rb