vesr 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/.gitkeep +0 -0
- data/app/helpers/esr_record_helper.rb +18 -0
- data/app/models/esr_file.rb +14 -3
- data/app/models/esr_record.rb +15 -6
- data/app/models/esr_record_types.rb +29 -0
- data/app/views/esr_records/_esr_record.html.haml +1 -1
- data/lib/vesr/version.rb +1 -1
- metadata +19 -7
- data/app/assets/images/16x16/book_extra_earning.png +0 -0
- data/app/assets/images/16x16/reactivate.png +0 -0
- data/app/assets/images/16x16/resolve.png +0 -0
- data/app/assets/images/16x16/show_all.png +0 -0
- data/app/assets/images/16x16/write_off.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae7e408a671168464173f8f975352930137d89ef
|
4
|
+
data.tar.gz: b558c3cc6bdd0373587246fb5a6dfe656c707895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee0ce7d1edb35a4ec9662dcfc52bf79ba5231190dfbc96650ba1020623132cad60bdacf437e6f85f68999322937c833e0ffe77ff7a35147eafb76fe72410ae08
|
7
|
+
data.tar.gz: 73f57511a7651bb6d3fbb05ed9d643d22af65aff458ed570534681fe6f3b27235d54528c6361a39109eade3eea301ca0178d110eb14dfc5f948230826ed95979
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module EsrRecordHelper
|
2
|
+
def event_image(event)
|
3
|
+
html_class = case event.to_s
|
4
|
+
when 'book_extra_earning'
|
5
|
+
'icon-circle-arrow-up'
|
6
|
+
when 'reactivate'
|
7
|
+
'icon-refresh'
|
8
|
+
when 'resolve'
|
9
|
+
'icon-ok'
|
10
|
+
when 'show_all'
|
11
|
+
'icon-list-alt'
|
12
|
+
when 'write_off'
|
13
|
+
'icon-circle-arrow-down'
|
14
|
+
end
|
15
|
+
|
16
|
+
content_tag :span, '', class: html_class
|
17
|
+
end
|
18
|
+
end
|
data/app/models/esr_file.rb
CHANGED
@@ -31,8 +31,19 @@ class EsrFile < ActiveRecord::Base
|
|
31
31
|
|
32
32
|
private
|
33
33
|
def create_records
|
34
|
-
File.new(file.current_path).each
|
35
|
-
|
36
|
-
|
34
|
+
File.new(file.current_path).each do |line|
|
35
|
+
if EsrRecord.supported_line?(line)
|
36
|
+
esr_records << create_esr_record(line)
|
37
|
+
else
|
38
|
+
Rails.logger.info "VESR: Ignoring line #{line}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def create_esr_record(line)
|
44
|
+
record = EsrRecord.new.parse(line)
|
45
|
+
record.save
|
46
|
+
Rails.logger.error "VESR: Record #{record.inspect} is invalid: #{record.errors.inspect}" unless record.valid?
|
47
|
+
record
|
37
48
|
end
|
38
49
|
end
|
data/app/models/esr_record.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
class EsrRecord < ActiveRecord::Base
|
4
|
+
SUPPORTED_RECORD_TYPES = [
|
5
|
+
:lsv_credit
|
6
|
+
]
|
7
|
+
|
4
8
|
# Access restrictions
|
5
9
|
attr_accessible :file, :remarks
|
6
10
|
|
@@ -40,6 +44,11 @@ class EsrRecord < ActiveRecord::Base
|
|
40
44
|
scope :unsolved, where(:state => ['overpaid', 'underpaid', 'missing'])
|
41
45
|
scope :valid, where(:state => 'paid')
|
42
46
|
|
47
|
+
def self.supported_line?(line)
|
48
|
+
record_type_code = line[0..2]
|
49
|
+
record_type = EsrRecordTypes.lookup_code record_type_code
|
50
|
+
SUPPORTED_RECORD_TYPES.include?(record_type)
|
51
|
+
end
|
43
52
|
|
44
53
|
private
|
45
54
|
def parse_date(value)
|
@@ -196,16 +205,16 @@ class EsrRecord < ActiveRecord::Base
|
|
196
205
|
|
197
206
|
if invoice
|
198
207
|
esr_booking = invoice.bookings.build
|
199
|
-
|
208
|
+
credit_account = invoice.balance_account
|
200
209
|
else
|
201
210
|
esr_booking = Booking.new
|
202
|
-
|
211
|
+
credit_account = DebitInvoice.balance_account
|
203
212
|
end
|
204
213
|
|
205
214
|
esr_booking.update_attributes(
|
206
215
|
:amount => amount,
|
207
|
-
:debit_account =>
|
208
|
-
:credit_account =>
|
216
|
+
:debit_account => vesr_account,
|
217
|
+
:credit_account => credit_account,
|
209
218
|
:value_date => value_date,
|
210
219
|
:title => "VESR Zahlung",
|
211
220
|
:comments => remarks
|
@@ -240,8 +249,8 @@ class EsrRecord < ActiveRecord::Base
|
|
240
249
|
Booking.create(:title => "Ausserordentlicher Ertrag",
|
241
250
|
:comments => comments || "Zahlung kann keiner Rechnung zugewiesen werden",
|
242
251
|
:amount => self.amount,
|
243
|
-
:debit_account =>
|
244
|
-
:credit_account => Account.
|
252
|
+
:debit_account => vesr_account,
|
253
|
+
:credit_account => Account.find_by_tag('vesr:extra-earnings'),
|
245
254
|
:value_date => Date.today)
|
246
255
|
end
|
247
256
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module EsrRecordTypes
|
2
|
+
RECORD_TYPES = {
|
3
|
+
esr_e_banking_credit: '002',
|
4
|
+
esr_e_banking_cancellation: '005',
|
5
|
+
esr_e_banking_correction: '008',
|
6
|
+
esr_post_office_counter_credit: '012',
|
7
|
+
esr_post_office_counter_cancellation: '015',
|
8
|
+
esr_post_office_counter_correction: '018',
|
9
|
+
|
10
|
+
esr_plus_e_banking_credit: '102',
|
11
|
+
esr_plus_e_banking_cancellation: '105',
|
12
|
+
esr_plus_e_banking_correction: '108',
|
13
|
+
esr_plus_post_office_counter_credit: '112',
|
14
|
+
esr_plus_post_office_counter_cancellation: '115',
|
15
|
+
esr_plus_post_office_counter_correction: '118',
|
16
|
+
|
17
|
+
lsv_credit: '202',
|
18
|
+
lsv_cancellation: '205',
|
19
|
+
|
20
|
+
total_record_credit: '999',
|
21
|
+
total_record_cancellation: '995',
|
22
|
+
}
|
23
|
+
|
24
|
+
def self.lookup_code(lookup_code)
|
25
|
+
RECORD_TYPES.each do |name, code|
|
26
|
+
return name if code == lookup_code
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -7,4 +7,4 @@
|
|
7
7
|
%td.currency= currency_fmt(esr_record.invoice.balance.currency_round) if esr_record.invoice
|
8
8
|
%td.action-links
|
9
9
|
- esr_record.aasm.events.each do |event|
|
10
|
-
= link_to
|
10
|
+
= link_to event_image(event.name), polymorphic_url([event.name, esr_record]), :remote => true, :method => :post, :title => t_action(event.name)
|
data/lib/vesr/version.rb
CHANGED
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: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roman Simecek
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aasm
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '4.1'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rspec
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 3.4.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 3.4.0
|
28
42
|
description: VESR provides support for ESR number calculations and gives ready to
|
29
43
|
use Rails components.
|
30
44
|
email:
|
@@ -38,16 +52,14 @@ extra_rdoc_files:
|
|
38
52
|
files:
|
39
53
|
- LICENSE.txt
|
40
54
|
- README.rdoc
|
41
|
-
- app/assets/images
|
42
|
-
- app/assets/images/16x16/reactivate.png
|
43
|
-
- app/assets/images/16x16/resolve.png
|
44
|
-
- app/assets/images/16x16/show_all.png
|
45
|
-
- app/assets/images/16x16/write_off.png
|
55
|
+
- app/assets/images/.gitkeep
|
46
56
|
- app/assets/stylesheets/vesr.scss
|
47
57
|
- app/controllers/esr_files_controller.rb
|
48
58
|
- app/controllers/esr_records_controller.rb
|
59
|
+
- app/helpers/esr_record_helper.rb
|
49
60
|
- app/models/esr_file.rb
|
50
61
|
- app/models/esr_record.rb
|
62
|
+
- app/models/esr_record_types.rb
|
51
63
|
- app/uploaders/esr_file_uploader.rb
|
52
64
|
- app/views/esr_files/_esr_file.html.haml
|
53
65
|
- app/views/esr_files/_form.html.haml
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|