| Finance-Bank-Cahoot documentation | Contained in the Finance-Bank-Cahoot distribution. |
Finance::Bank::Cahoot::Statement::Entry - Cahoot statement transaction object
This module describes describes the object that holds the information contained in a single statement transaction.
my $cahoot = Finance::Bank::Cahoot->new(credentials => 'ReadLine');
my @accounts = $cahoot->accounts;
$cahoot->set_account($accounts->[0]->{account});
my $snapshot = $cahoot->snapshot;
foreach my $transaction (@$snapshot) {
print $transaction->date, q{,},
$transaction->details, q{,},
$transaction->credit || 0, q{,},
$transaction->debit || 0, qq{\n};
}
Create a new instance of a a Cahoot statement. It is unlikely that the
new method should need to be called by anything other than
Finance::Bank::Cahoot.
Returns the date of the transaction as a text string in the form DD/MM/YYYY.
Returns the time of the transaction as returned by the time function.
Returns the balance of the account following the transaction (where available).
Returns the amount of the transaction if it is a debit.
Returns the amount of the transaction if it is a credit.
Returns the text description of the transaction.
This warning is from Simon Cozens' Finance::Bank::LloydsTSB, and seems
just as apt here.
This is code for online banking, and that means your money, and that means BE CAREFUL. You are encouraged, nay, expected, to audit the source of this module yourself to reassure yourself that I am not doing anything untoward with your banking data. This software is useful to me, but is provided under NO GUARANTEE, explicit or implied.
This has only been tested on my own accounts. I imagine it should work on any account types, but I can't guarantee this.
Jon Connell <jon@figsandfudge.com>
Copyright 2007 by Jon Connell
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Finance-Bank-Cahoot documentation | Contained in the Finance-Bank-Cahoot distribution. |
# Copyright (c) 2007 Jon Connell. # All Rights Reserved. # # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. package Finance::Bank::Cahoot::Statement::Entry; use base qw(Class::Accessor); __PACKAGE__->mk_ro_accessors(qw(time date details debit credit balance)); ## no critic use strict; use warnings 'all'; use vars qw($VERSION); $VERSION = '1.07'; use Carp qw(croak); use Date::Parse qw(str2time); sub new { my ($class, $row) = @_; croak 'No row data passed to '.__PACKAGE__.' constructor' if not defined $row; croak 'row data is not an array ref' if ref $row ne 'ARRAY'; my $self = { time => str2time($row->[0].' 00:00:00 +0000 (GMT)'), date => _trim($row->[0]), details => _trim($row->[1]), debit => _trim($row->[2]), ## no critic (ProhibitMagicNumbers) credit => _trim($row->[3]) }; ## no critic (ProhibitMagicNumbers) # Balance may be undef (avoid 'Odd number of elements in anonymous hash') $self->{balance} = _trim($row->[4]); bless $self, $class; return $self; } sub _trim { my ($str) = @_; return if not defined $str; $str =~ s/[\x80-\xff]//gs; $str =~ s/\r//gs; $str =~ s/\s+/ /gs; $str =~ s/^\s+//gs; $str =~ s/\s+$//gs; return $str; } 1; __END__