NAME
Finance::Bank::BR::Caixa::CSV - Parse statement exported from Brazilian bank Caixa Econômica Federal
SYNOPSIS
use Finance::Bank::BR::Caixa::CSV;
my $csv = Finance::Bank::BR::Caixa::CSV->new($filename);
my $balance = $csv->balance;
my @data = $csv->statement;
foreach my $transaction (@data) {
say "$transaction->{date}, $transaction->{name}, $transaction->{extra}, $transaction->{value}, $transaction->{balance}";
}
Description
This module is an object-oriented interface that parses statements exported as CSV from the Internet Banking for the Brazilian bank Caixa Econômica Federal.
CSV
new($filename)
The new()
method creates a new CSV object containing the data parsed from $filename
.
If an error occurs while loading the file, new()
returns undef
.
balance()
The balance()
method returns the balance calculated from the file assuming initial balance of 0.
statement()
The statement()
method returns an array of transactions, described as below.
Transaction
The transaction is a hash containing the following keys:
name
A string with a name describing the transaction.
value
A floating number containing the credit (positive) or debit (negative) of the transaction.
date
A DateTime object representing the date when the transaction occurred.
balance
A floating number containing the balance resulting from the transaction.
extra
Data provided by the bank identifying the transaction. In this case, a number specific to the type of transaction. It can be used to help uniquely identify the transaction.
COPYRIGHT AND LICENSE
Copyright (C) 2015-2016 Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License; either version 2 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 81:
Non-ASCII character seen before =encoding in 'Econômica'. Assuming UTF-8