Create LSV+ files with ease.
Setup
Add the gem to your project:
gem 'lsv-plus'
Run bundle to install:
$ bundle install
Usage
To create a new LSV+ file, follow the steps below.
# instantiate a new LSV+ file
file = LSVplus::File.new(
creator_identification: 'WTAGI',
currency: 'CHF',
processing_type: 'P',
creation_date: Date.today,
lsv_identification: 'WT001',
)
# add some records to the file
record1 = LSVplus::Record.new(
processing_date: Date.today + 1,
creditor_bank_clearing_number: 1337,
amount: BigDecimal.new('1337.42'),
debitor_bank_clearing_number: 42,
creditor_iban: 'CH9300762011623852957',
creditor_address: ['Fancy AG', 'Funnystreet 42'],
debitor_account: '123.456-78XY',
debitor_address: ['Debit AG', 'Other Street 1337', 'Somewhere City'],
message: ['Invoice 133 via BDD'],
reference_type: 'A',
reference: '200002000000004443332000061',
esr_member_id: '133742',
)
file.add_record record1
record2 = LSVplus::Record.new(
processing_date: Date.today + 1,
creditor_bank_clearing_number: 1337,
amount: BigDecimal.new('42.10'),
debitor_bank_clearing_number: 1337,
creditor_iban: 'CH9300762011623852957',
creditor_address: ['Fancy AG', 'Funnystreet 42'],
debitor_account: '455.24401-AB',
debitor_address: ['Customer 77', 'Bubu Av', 'New Lala City'],
message: ['Invoice 42 via BDD'],
reference_type: 'B',
reference: '030000SWAGFEEFORYOLO',
esr_member_id: nil,
)
file.add_record record2
# generate the LSV+ file and return it as a string
file.to_s
# => "8750P201601071337 2016010642 WTAGI0000001WT001CHF000001337,42CH9300762011623852957 Fancy AG Funnystreet 42 123.456-78XY Debit AG Other Street 1337 Somewhere City Invoice 133 via BDD A200002000000004443332000061133742 8750P201601071337 201601061337 WTAGI0000002WT001CHF000000042,10CH9300762011623852957 Fancy AG Funnystreet 42 455.24401-AB Customer 77 Bubu Av New Lala City Invoice 42 via BDD B030000SWAGFEEFORYOLO 890020160106WTAGI0000002CHF000001379,52"