supplier_payments 0.0.2 → 0.0.3
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/README.md +3 -1
- data/lib/supplier_payments/payment_file/domestic_records.rb +91 -91
- data/lib/supplier_payments/payment_file/records.rb +7 -5
- data/lib/supplier_payments/payment_file.rb +3 -2
- data/lib/supplier_payments/version.rb +1 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/supplier_payments/payment_file/records_spec.rb +13 -13
- data/spec/supplier_payments/payment_file_spec.rb +14 -14
- metadata +11 -10
- data/.circleci/config.yml +0 -14
- data/.gitignore +0 -5
- data/Gemfile +0 -11
- data/Rakefile +0 -5
- data/supplier_payments.gemspec +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04ff3cee936f9098084b55000054afe00d1fe203c41e4eda8e297de31de9c413
|
4
|
+
data.tar.gz: 05436f41f0ff3c26c3d035c255e45724ef140245f4b01b488fd5e72e5d7e4f68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9b54e8a2da0c46aacbe644bb713c9c6e6f869b61a7a58ca6d53f21c015c2eaabbb933e4effc5d4f3faaf5b68935177dcb2f1d68deffefc820b153df37f0b508
|
7
|
+
data.tar.gz: 7220a009d5a050571dea1f46e084c498c4e29e8d49478869c1b9bdb9c0f84a5bad4b0bc99544a690bcd5a6dc2cf573e1f0673e2a65643f1ce89a48c4f12b342d
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Supplier Payments
|
2
2
|
|
3
|
-
[](https://github.com/barsoom/supplier_payments/actions/workflows/ci.yml)
|
4
4
|
|
5
5
|
Library for making Bankgirot supplier payment files, _Leverantörsbetalningar_.
|
6
6
|
|
@@ -8,3 +8,5 @@ Library for making Bankgirot supplier payment files, _Leverantörsbetalningar_.
|
|
8
8
|
|
9
9
|
* På svenska: ["Leverantörsbetalningar, teknisk manual"](http://www.bgc.se/globalassets/dokument/tekniska-manualer/leverantorsbetalningar_tekniskmanual_sv.pdf) (PDF)
|
10
10
|
* In English: ["Supplier Payments (Leverantörsbetalningar), technical manual"](http://www.bgc.se/globalassets/dokument/tekniska-manualer/supplierpayments_leverantorsbetalningar_technicalmanual_en.pdf) (PDF)
|
11
|
+
|
12
|
+
[API documentation for this gem](https://www.rubydoc.info/gems/supplier_payments/)
|
@@ -1,160 +1,160 @@
|
|
1
1
|
module SupplierPayments
|
2
2
|
class PaymentFile
|
3
3
|
class OpeningRecord < AbstractRecord
|
4
|
-
self.transaction_code =
|
4
|
+
self.transaction_code = "11"
|
5
5
|
self.layout = [
|
6
|
-
[ :transaction_code!, 2,
|
7
|
-
[ :sender_bankgiro, 10,
|
8
|
-
[ :date_written, 6,
|
9
|
-
[ :product, 22,
|
10
|
-
[ :payment_date, 6,
|
11
|
-
[ :reserved!, 13,
|
12
|
-
[ :currency_code, 3,
|
13
|
-
[ :reserved!, 18,
|
6
|
+
[ :transaction_code!, 2, "N" ],
|
7
|
+
[ :sender_bankgiro, 10, "N", :right_align, :zerofill ],
|
8
|
+
[ :date_written, 6, "N" ],
|
9
|
+
[ :product, 22, "A" ],
|
10
|
+
[ :payment_date, 6, "N" ],
|
11
|
+
[ :reserved!, 13, "N" ],
|
12
|
+
[ :currency_code, 3, "A" ],
|
13
|
+
[ :reserved!, 18, "A" ],
|
14
14
|
]
|
15
15
|
end
|
16
16
|
|
17
17
|
class FixedInformationRecord < AbstractRecord
|
18
|
-
self.transaction_code =
|
18
|
+
self.transaction_code = "12"
|
19
19
|
self.layout = [
|
20
|
-
[ :transaction_code!, 2,
|
21
|
-
[ :information_text, 50,
|
20
|
+
[ :transaction_code!, 2, "N" ],
|
21
|
+
[ :information_text, 50, "A" ], # Information reported to recipients with bankgiro number in
|
22
22
|
# all sections with the same forwarding bankgiro number
|
23
23
|
# (For example: Merry Christmas, We have moved etc.) or blank.
|
24
|
-
[ :end_date, 6,
|
25
|
-
[ :reserved!, 22,
|
24
|
+
[ :end_date, 6, "A" ],
|
25
|
+
[ :reserved!, 22, "A" ],
|
26
26
|
]
|
27
27
|
end
|
28
28
|
|
29
29
|
class HeaderRecord < AbstractRecord
|
30
|
-
self.transaction_code =
|
30
|
+
self.transaction_code = "13"
|
31
31
|
self.layout = [
|
32
|
-
[ :transaction_code!, 2,
|
33
|
-
[ :payment_specifications_header, 25,
|
34
|
-
[ :net_amount_header, 12,
|
35
|
-
[ :reserved!, 41,
|
32
|
+
[ :transaction_code!, 2, "N" ],
|
33
|
+
[ :payment_specifications_header, 25, "A" ],
|
34
|
+
[ :net_amount_header, 12, "A" ],
|
35
|
+
[ :reserved!, 41, "A" ],
|
36
36
|
]
|
37
37
|
end
|
38
38
|
|
39
39
|
class PaymentRecord < AbstractRecord
|
40
|
-
self.transaction_code =
|
40
|
+
self.transaction_code = "14"
|
41
41
|
self.layout = [
|
42
|
-
[ :transaction_code!, 2,
|
43
|
-
[ :bankgiro_or_credit_transfer_number, 10,
|
44
|
-
[ :ocr, 25,
|
45
|
-
[ :amount, 12,
|
46
|
-
[ :payment_date, 6,
|
47
|
-
[ :reserved!, 5,
|
48
|
-
[ :information_to_sender, 20,
|
42
|
+
[ :transaction_code!, 2, "N" ],
|
43
|
+
[ :bankgiro_or_credit_transfer_number, 10, "N", :right_align, :zerofill ],
|
44
|
+
[ :ocr, 25, "A" ],
|
45
|
+
[ :amount, 12, "N", :right_align, :zerofill ],
|
46
|
+
[ :payment_date, 6, "N" ], # YYMMDD or GENAST
|
47
|
+
[ :reserved!, 5, "A" ],
|
48
|
+
[ :information_to_sender, 20, "A" ],
|
49
49
|
]
|
50
50
|
end
|
51
51
|
|
52
52
|
class DeductionRecord < AbstractRecord
|
53
|
-
self.transaction_code =
|
53
|
+
self.transaction_code = "15"
|
54
54
|
self.layout = [
|
55
|
-
[ :transaction_code!, 2,
|
56
|
-
[ :bankgiro_or_credit_transfer_number, 10,
|
57
|
-
[ :ocr, 25,
|
58
|
-
[ :deduction_amount, 12,
|
59
|
-
[ :deduction_date, 6,
|
60
|
-
[ :reserved!, 5,
|
61
|
-
[ :information_to_sender, 20,
|
55
|
+
[ :transaction_code!, 2, "N" ],
|
56
|
+
[ :bankgiro_or_credit_transfer_number, 10, "N", :right_align, :zerofill ],
|
57
|
+
[ :ocr, 25, "A" ],
|
58
|
+
[ :deduction_amount, 12, "N", :right_align, :zerofill ],
|
59
|
+
[ :deduction_date, 6, "N" ], # YYMMDD or GENAST
|
60
|
+
[ :reserved!, 5, "A" ],
|
61
|
+
[ :information_to_sender, 20, "A" ],
|
62
62
|
]
|
63
63
|
end
|
64
64
|
|
65
65
|
class CreditInvoiceWithMonitoringRecord < AbstractRecord
|
66
|
-
self.transaction_code =
|
66
|
+
self.transaction_code = "16"
|
67
67
|
self.layout = [
|
68
|
-
[ :transaction_code!, 2,
|
69
|
-
[ :bankgiro_or_credit_transfer_number, 10,
|
70
|
-
[ :ocr, 25,
|
71
|
-
[ :amount, 12,
|
72
|
-
[ :last_monitoring_day, 6,
|
73
|
-
[ :reserved!, 5,
|
74
|
-
[ :information_to_sender, 20,
|
68
|
+
[ :transaction_code!, 2, "N" ],
|
69
|
+
[ :bankgiro_or_credit_transfer_number, 10, "N", :right_align, :zerofill ],
|
70
|
+
[ :ocr, 25, "A" ],
|
71
|
+
[ :amount, 12, "N", :right_align, :zerofill ],
|
72
|
+
[ :last_monitoring_day, 6, "A" ], # YYMMDD or GENAST
|
73
|
+
[ :reserved!, 5, "A" ],
|
74
|
+
[ :information_to_sender, 20, "N" ],
|
75
75
|
]
|
76
76
|
end
|
77
77
|
|
78
78
|
class InformationRecord < AbstractRecord
|
79
|
-
self.transaction_code =
|
79
|
+
self.transaction_code = "25"
|
80
80
|
self.layout = [
|
81
|
-
[ :transaction_code!, 2,
|
82
|
-
[ :bankgiro_or_credit_transfer_number, 10,
|
83
|
-
[ :information_text, 50,
|
84
|
-
[ :reserved!, 18,
|
81
|
+
[ :transaction_code!, 2, "N" ],
|
82
|
+
[ :bankgiro_or_credit_transfer_number, 10, "N", :right_align, :zerofill ],
|
83
|
+
[ :information_text, 50, "A" ],
|
84
|
+
[ :reserved!, 18, "A" ],
|
85
85
|
]
|
86
86
|
end
|
87
87
|
|
88
88
|
class TotalAmountRecord < AbstractRecord
|
89
|
-
self.transaction_code =
|
89
|
+
self.transaction_code = "29"
|
90
90
|
self.layout = [
|
91
|
-
[ :transaction_code!, 2,
|
92
|
-
[ :sender_bankgiro, 10,
|
93
|
-
[ :number_of_payment_records, 8,
|
94
|
-
[ :total_amount, 12,
|
95
|
-
[ :negative_total_amount, 1,
|
96
|
-
[ :reserved!, 47,
|
91
|
+
[ :transaction_code!, 2, "N" ],
|
92
|
+
[ :sender_bankgiro, 10, "N", :right_align, :zerofill ],
|
93
|
+
[ :number_of_payment_records, 8, "N", :right_align, :zerofill ],
|
94
|
+
[ :total_amount, 12, "N", :right_align, :zerofill ],
|
95
|
+
[ :negative_total_amount, 1, "A" ], # Minus sign (if total amount is negative) or blank.
|
96
|
+
[ :reserved!, 47, "A" ],
|
97
97
|
]
|
98
98
|
end
|
99
99
|
|
100
100
|
class NameRecord < AbstractRecord
|
101
|
-
self.transaction_code =
|
101
|
+
self.transaction_code = "26"
|
102
102
|
self.layout = [
|
103
|
-
[ :transaction_code!, 2,
|
104
|
-
[ :reserved!, 4,
|
105
|
-
[ :credit_transfer_number, 6,
|
106
|
-
[ :payee_name, 35,
|
107
|
-
[ :extra_information, 33,
|
103
|
+
[ :transaction_code!, 2, "N" ],
|
104
|
+
[ :reserved!, 4, "N", :zerofill ], # 0000
|
105
|
+
[ :credit_transfer_number, 6, "N", :right_align, :zerofill ], # Must be the same as in the payment record or account number record, to which it belongs.
|
106
|
+
[ :payee_name, 35, "A", :upcase ],
|
107
|
+
[ :extra_information, 33, "A" ], # Used, for example, for C/O addresses.
|
108
108
|
]
|
109
109
|
end
|
110
110
|
|
111
111
|
class AddressRecord < AbstractRecord
|
112
|
-
self.transaction_code =
|
112
|
+
self.transaction_code = "27"
|
113
113
|
self.layout = [
|
114
|
-
[ :transaction_code!, 2,
|
115
|
-
[ :reserved!, 4,
|
116
|
-
[ :credit_transfer_number, 6,
|
117
|
-
[ :payee_address, 35,
|
118
|
-
[ :post_code, 5,
|
119
|
-
[ :town, 20,
|
120
|
-
[ :reserved!, 8,
|
114
|
+
[ :transaction_code!, 2, "N" ],
|
115
|
+
[ :reserved!, 4, "N", :zerofill ],
|
116
|
+
[ :credit_transfer_number, 6, "N", :right_align, :zerofill ],
|
117
|
+
[ :payee_address, 35, "A", :upcase ],
|
118
|
+
[ :post_code, 5, "N" ], # No spaces
|
119
|
+
[ :town, 20, "A", :upcase ],
|
120
|
+
[ :reserved!, 8, "A" ],
|
121
121
|
]
|
122
122
|
end
|
123
123
|
|
124
124
|
class AccountNumberRecord < AbstractRecord
|
125
|
-
self.transaction_code =
|
125
|
+
self.transaction_code = "40"
|
126
126
|
self.layout = [
|
127
|
-
[ :transaction_code!, 2,
|
128
|
-
[ :reserved!, 4,
|
129
|
-
[ :credit_transfer_number, 6,
|
130
|
-
[ :clearing_number, 4,
|
131
|
-
[ :account_number, 12,
|
132
|
-
[ :payment_identification, 12,
|
133
|
-
[ :code_for_salary, 1,
|
134
|
-
[ :reserved!, 39,
|
127
|
+
[ :transaction_code!, 2, "N" ],
|
128
|
+
[ :reserved!, 4, "N", :zerofill ], # 0000
|
129
|
+
[ :credit_transfer_number, 6, "N", :right_align, :zerofill ],
|
130
|
+
[ :clearing_number, 4, "N" ],
|
131
|
+
[ :account_number, 12, "N", :right_align, :zerofill ],
|
132
|
+
[ :payment_identification, 12, "A" ], # Information to the payee to identify the payment. Printed on the payee's bank statement.
|
133
|
+
[ :code_for_salary, 1, "A" ], # L for salary, else blank.
|
134
|
+
[ :reserved!, 39, "A" ],
|
135
135
|
]
|
136
136
|
end
|
137
137
|
|
138
138
|
class PlusGiroPaymentRecord < AbstractRecord
|
139
|
-
self.transaction_code =
|
139
|
+
self.transaction_code = "54"
|
140
140
|
self.layout = [
|
141
|
-
[ :transaction_code!, 2,
|
142
|
-
[ :plusgiro_account, 10,
|
143
|
-
[ :ocr, 25,
|
144
|
-
[ :amount, 12,
|
145
|
-
[ :payment_date, 6,
|
146
|
-
[ :reserved!, 5,
|
147
|
-
[ :information_to_sender, 20,
|
141
|
+
[ :transaction_code!, 2, "N" ],
|
142
|
+
[ :plusgiro_account, 10, "N", :right_align, :zerofill ],
|
143
|
+
[ :ocr, 25, "A" ],
|
144
|
+
[ :amount, 12, "N", :right_align, :zerofill ],
|
145
|
+
[ :payment_date, 6, "A" ], # YYMMDD or GENAST.
|
146
|
+
[ :reserved!, 5, "A" ],
|
147
|
+
[ :information_to_sender, 20, "A" ], # Optional text or blank.
|
148
148
|
]
|
149
149
|
end
|
150
150
|
|
151
151
|
class PlusGiroInformationRecord < AbstractRecord
|
152
|
-
self.transaction_code =
|
152
|
+
self.transaction_code = "65"
|
153
153
|
self.layout = [
|
154
|
-
[ :transaction_code!, 2,
|
155
|
-
[ :plusgiro_account, 10,
|
156
|
-
[ :information_text, 35,
|
157
|
-
[ :reserved!, 33,
|
154
|
+
[ :transaction_code!, 2, "N" ],
|
155
|
+
[ :plusgiro_account, 10, "N", :right_align, :zerofill ],
|
156
|
+
[ :information_text, 35, "A" ], # Optional text, printed on notifications and lists.
|
157
|
+
[ :reserved!, 33, "A" ],
|
158
158
|
]
|
159
159
|
end
|
160
160
|
end
|
@@ -12,10 +12,11 @@ module SupplierPayments
|
|
12
12
|
|
13
13
|
def layout=(layout)
|
14
14
|
length = layout_length(layout)
|
15
|
-
raise LayoutError.new("Layout length #{
|
15
|
+
raise LayoutError.new("Layout length #{length} is not 80") unless length == 80
|
16
16
|
|
17
17
|
layout.each do |field, length, format, *opts|
|
18
18
|
next if field[-1] == "!"
|
19
|
+
|
19
20
|
attr_accessor field
|
20
21
|
end
|
21
22
|
|
@@ -41,7 +42,7 @@ module SupplierPayments
|
|
41
42
|
if field[-1] == "!"
|
42
43
|
io.seek(length, IO::SEEK_CUR)
|
43
44
|
else
|
44
|
-
record.send("#{
|
45
|
+
record.send("#{field}=", io.read(length))
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
@@ -50,7 +51,7 @@ module SupplierPayments
|
|
50
51
|
|
51
52
|
def initialize(attrs = {})
|
52
53
|
attrs.each do |key, value|
|
53
|
-
self.send("#{
|
54
|
+
self.send("#{key}=", value)
|
54
55
|
end
|
55
56
|
end
|
56
57
|
|
@@ -63,9 +64,10 @@ module SupplierPayments
|
|
63
64
|
def inspect
|
64
65
|
str = self.class.layout.map { |field, length, format, *opts|
|
65
66
|
next if field[-1] == "!"
|
66
|
-
|
67
|
+
|
68
|
+
":#{field} => #{send(field).inspect}"
|
67
69
|
}.compact.join(", ")
|
68
|
-
"<#{
|
70
|
+
"<#{self.class.name}(#{transaction_code}) #{str}>"
|
69
71
|
end
|
70
72
|
|
71
73
|
def transaction_code
|
@@ -20,7 +20,7 @@ module SupplierPayments
|
|
20
20
|
|
21
21
|
def to_s
|
22
22
|
records.map { |record|
|
23
|
-
"#{
|
23
|
+
"#{record.to_s.dup.force_encoding("ISO-8859-15")}\r\n"
|
24
24
|
}.join
|
25
25
|
end
|
26
26
|
|
@@ -28,6 +28,7 @@ module SupplierPayments
|
|
28
28
|
records = data.lines.map do |line|
|
29
29
|
line.strip!
|
30
30
|
next if line.empty?
|
31
|
+
|
31
32
|
record_class(line).parse(line)
|
32
33
|
end
|
33
34
|
new(records)
|
@@ -38,7 +39,7 @@ module SupplierPayments
|
|
38
39
|
def self.record_class(line)
|
39
40
|
record_classes.find do |record_class|
|
40
41
|
line.match(/^#{record_class.transaction_code}/)
|
41
|
-
end or raise "No record class found for line: #{
|
42
|
+
end or raise "No record class found for line: #{line.inspect}"
|
42
43
|
end
|
43
44
|
end
|
44
45
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
require
|
1
|
+
require "spec_helper"
|
2
2
|
|
3
3
|
describe SupplierPayments::PaymentFile::AbstractRecord do
|
4
|
-
context
|
4
|
+
context "with a test record class" do
|
5
5
|
class TestRecord < SupplierPayments::PaymentFile::AbstractRecord
|
6
|
-
self.transaction_code =
|
6
|
+
self.transaction_code = "99"
|
7
7
|
self.layout = [
|
8
|
-
[ :transaction_code!, 2,
|
9
|
-
[ :foo, 14,
|
10
|
-
[ :bar, 20,
|
11
|
-
[ :reserved!, 5,
|
12
|
-
[ :baz, 10,
|
13
|
-
[ :reserved!, 29,
|
8
|
+
[ :transaction_code!, 2, "N" ],
|
9
|
+
[ :foo, 14, "N", :zerofill, :right_align ],
|
10
|
+
[ :bar, 20, "A" ],
|
11
|
+
[ :reserved!, 5, "N", :zerofill ],
|
12
|
+
[ :baz, 10, "A", :right_align, :upcase ],
|
13
|
+
[ :reserved!, 29, "A" ],
|
14
14
|
]
|
15
15
|
end
|
16
16
|
|
17
|
-
it
|
17
|
+
it "should parse a line" do
|
18
18
|
record = TestRecord.parse("9900000000054321BBBBBBBBBBBBBBBBBBBBxxxxx YYYYY ")
|
19
19
|
expect(record.transaction_code).to eq("99")
|
20
20
|
expect(record.foo).to eq("00000000054321")
|
@@ -22,7 +22,7 @@ describe SupplierPayments::PaymentFile::AbstractRecord do
|
|
22
22
|
expect(record.baz).to eq(" YYYYY")
|
23
23
|
end
|
24
24
|
|
25
|
-
it
|
25
|
+
it "should make a line" do
|
26
26
|
record = TestRecord.new
|
27
27
|
record.foo = 1234
|
28
28
|
record.bar = "ASDFG"
|
@@ -30,7 +30,7 @@ describe SupplierPayments::PaymentFile::AbstractRecord do
|
|
30
30
|
expect(record.to_s).to eq("9900000000001234ASDFG 00000 GHIJK ")
|
31
31
|
end
|
32
32
|
|
33
|
-
it
|
33
|
+
it "should strip long lines" do
|
34
34
|
record = TestRecord.new
|
35
35
|
record.foo = 314159265358979323846
|
36
36
|
expect(record.to_s.length).to eq(80)
|
@@ -43,7 +43,7 @@ describe SupplierPayments::PaymentFile::AbstractRecord do
|
|
43
43
|
Class.new(SupplierPayments::PaymentFile::AbstractRecord) do
|
44
44
|
self.transaction_code = "98"
|
45
45
|
self.layout = [
|
46
|
-
[ :transaction_code, 2,
|
46
|
+
[ :transaction_code, 2, "N" ],
|
47
47
|
]
|
48
48
|
end
|
49
49
|
}.to raise_error(SupplierPayments::PaymentFile::AbstractRecord::LayoutError)
|
@@ -1,14 +1,14 @@
|
|
1
|
-
require
|
1
|
+
require "spec_helper"
|
2
2
|
|
3
3
|
describe SupplierPayments::PaymentFile do
|
4
4
|
describe ".load" do
|
5
|
-
context
|
5
|
+
context "with LBin-exempel1.txt" do
|
6
6
|
before do
|
7
|
-
@raw_data = File.read(fixture_path(
|
7
|
+
@raw_data = File.read(fixture_path("LBin-exempel1.txt"))
|
8
8
|
@raw_data.force_encoding("iso-8859-15")
|
9
9
|
end
|
10
10
|
|
11
|
-
it
|
11
|
+
it "should load a file" do
|
12
12
|
file = SupplierPayments::PaymentFile.load(@raw_data)
|
13
13
|
@raw_data.lines.zip(file.to_s.lines).each do |line1, line2|
|
14
14
|
expect(line1.strip).to eq(line2.force_encoding("iso-8859-15").strip)
|
@@ -16,13 +16,13 @@ describe SupplierPayments::PaymentFile do
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
context
|
19
|
+
context "with LBin-exempel2.txt" do
|
20
20
|
before do
|
21
|
-
@raw_data = File.read(fixture_path(
|
21
|
+
@raw_data = File.read(fixture_path("LBin-exempel2.txt"))
|
22
22
|
@raw_data.force_encoding("iso-8859-15")
|
23
23
|
end
|
24
24
|
|
25
|
-
it
|
25
|
+
it "should load a file" do
|
26
26
|
file = SupplierPayments::PaymentFile.load(@raw_data)
|
27
27
|
@raw_data.lines.zip(file.to_s.lines).each do |line1, line2|
|
28
28
|
expect(line1.strip).to eq(line2.force_encoding("iso-8859-15").strip)
|
@@ -33,14 +33,14 @@ describe SupplierPayments::PaymentFile do
|
|
33
33
|
|
34
34
|
describe "#to_s" do
|
35
35
|
class TestRecord < SupplierPayments::PaymentFile::AbstractRecord
|
36
|
-
self.transaction_code =
|
36
|
+
self.transaction_code = "99"
|
37
37
|
self.layout = [
|
38
|
-
[ :transaction_code!, 2,
|
39
|
-
[ :foo, 14,
|
40
|
-
[ :bar, 20,
|
41
|
-
[ :reserved!, 5,
|
42
|
-
[ :baz, 10,
|
43
|
-
[ :reserved!, 29,
|
38
|
+
[ :transaction_code!, 2, "N" ],
|
39
|
+
[ :foo, 14, "N", :zerofill, :right_align ],
|
40
|
+
[ :bar, 20, "A" ],
|
41
|
+
[ :reserved!, 5, "N", :zerofill ],
|
42
|
+
[ :baz, 10, "A", :right_align, :upcase ],
|
43
|
+
[ :reserved!, 29, "A" ],
|
44
44
|
]
|
45
45
|
end
|
46
46
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supplier_payments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Alin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Parse and generate supplier payment files for "Leverantörsbetalningar"
|
14
14
|
in Bankgirot.
|
@@ -18,11 +18,7 @@ executables: []
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
-
- ".circleci/config.yml"
|
22
|
-
- ".gitignore"
|
23
|
-
- Gemfile
|
24
21
|
- README.md
|
25
|
-
- Rakefile
|
26
22
|
- lib/supplier_payments.rb
|
27
23
|
- lib/supplier_payments/payment_file.rb
|
28
24
|
- lib/supplier_payments/payment_file/domestic_records.rb
|
@@ -33,10 +29,10 @@ files:
|
|
33
29
|
- spec/spec_helper.rb
|
34
30
|
- spec/supplier_payments/payment_file/records_spec.rb
|
35
31
|
- spec/supplier_payments/payment_file_spec.rb
|
36
|
-
- supplier_payments.gemspec
|
37
32
|
homepage: https://github.com/barsoom/supplier_payments
|
38
33
|
licenses: []
|
39
|
-
metadata:
|
34
|
+
metadata:
|
35
|
+
rubygems_mfa_required: 'true'
|
40
36
|
post_install_message:
|
41
37
|
rdoc_options: []
|
42
38
|
require_paths:
|
@@ -52,8 +48,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
52
48
|
- !ruby/object:Gem::Version
|
53
49
|
version: '0'
|
54
50
|
requirements: []
|
55
|
-
rubygems_version: 3.
|
51
|
+
rubygems_version: 3.2.31
|
56
52
|
signing_key:
|
57
53
|
specification_version: 4
|
58
54
|
summary: Parse and generate supplier payment files for Bankgirot.
|
59
|
-
test_files:
|
55
|
+
test_files:
|
56
|
+
- spec/fixtures/LBin-exempel1.txt
|
57
|
+
- spec/fixtures/LBin-exempel2.txt
|
58
|
+
- spec/spec_helper.rb
|
59
|
+
- spec/supplier_payments/payment_file/records_spec.rb
|
60
|
+
- spec/supplier_payments/payment_file_spec.rb
|
data/.circleci/config.yml
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
data/supplier_payments.gemspec
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "supplier_payments/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "supplier_payments"
|
7
|
-
s.version = SupplierPayments::VERSION
|
8
|
-
s.authors = ["Andreas Alin"]
|
9
|
-
s.email = ["andreas.alin@gmail.com"]
|
10
|
-
s.homepage = "https://github.com/barsoom/supplier_payments"
|
11
|
-
s.summary = %q{Parse and generate supplier payment files for Bankgirot.}
|
12
|
-
s.description = %q{Parse and generate supplier payment files for "Leverantörsbetalningar" in Bankgirot.}
|
13
|
-
|
14
|
-
s.files = `git ls-files`.split("\n")
|
15
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
-
s.require_paths = ["lib"]
|
17
|
-
end
|