kivitendo/SL/BankAccount.pm @ da6d6eb0
0ce1b04e | Geoffrey Richardson | package SL::BankAccount;
|
|
use strict;
|
|||
use SL::DBUtils;
|
|||
sub save {
|
|||
$main::lxdebug->enter_sub();
|
|||
my $self = shift;
|
|||
my %params = @_;
|
|||
my $myconfig = \%main::myconfig;
|
|||
my $form = $main::form;
|
|||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
|||
if (!$params{id}) {
|
|||
($params{id}) = selectfirst_array_query($form, $dbh, qq|SELECT nextval('id')|);
|
|||
do_query($form, $dbh, qq|INSERT INTO bank_accounts (id, chart_id)
|
|||
VALUES (?, (SELECT id FROM chart LIMIT 1))|, conv_i($params{id}));
|
|||
}
|
|||
my $query =
|
|||
qq|UPDATE bank_accounts
|
|||
SET account_number = ?, bank_code = ?, bank = ?, iban = ?, bic = ?, chart_id = ?
|
|||
WHERE id = ?|;
|
|||
my @values = (@params{qw(account_number bank_code bank iban bic)}, conv_i($params{chart_id}), conv_i($params{id}));
|
|||
do_query($form, $dbh, $query, @values);
|
|||
$dbh->commit() unless ($params{dbh});
|
|||
$main::lxdebug->leave_sub();
|
|||
return $params{id};
|
|||
}
|
|||
sub retrieve {
|
|||
$main::lxdebug->enter_sub();
|
|||
my $self = shift;
|
|||
my %params = @_;
|
|||
Common::check_params(\%params, qw(id));
|
|||
my $myconfig = \%main::myconfig;
|
|||
my $form = $main::form;
|
|||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
|||
my $query = qq|SELECT * FROM bank_accounts WHERE id = ?|;
|
|||
my $account = selectfirst_hashref_query($form, $dbh, $query, conv_i($params{id}));
|
|||
$main::lxdebug->leave_sub();
|
|||
return $account;
|
|||
}
|
|||
sub list {
|
|||
$main::lxdebug->enter_sub();
|
|||
my $self = shift;
|
|||
my %params = @_;
|
|||
my $myconfig = \%main::myconfig;
|
|||
my $form = $main::form;
|
|||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
|||
my %sort_columns = (
|
|||
'account_number' => [ 'ba.account_number', ],
|
|||
'bank_code' => [ 'ba.bank_code', 'ba.account_number', ],
|
|||
'bank' => [ 'ba.bank', 'ba.account_number', ],
|
|||
'iban' => [ 'ba.iban', 'ba.account_number', ],
|
|||
'bic' => [ 'ba.bic', 'ba.account_number', ],
|
|||
'chart_accno' => [ 'c.accno', ],
|
|||
'chart_description' => [ 'c.description', ],
|
|||
);
|
|||
my %sort_spec = create_sort_spec('defs' => \%sort_columns, 'default' => 'bank', 'column' => $params{sortorder}, 'dir' => $params{sortdir});
|
|||
my $query =
|
|||
qq|SELECT ba.id, ba.account_number, ba.bank_code, ba.bank, ba.iban, ba.bic, ba.chart_id,
|
|||
c.accno AS chart_accno, c.description AS chart_description
|
|||
FROM bank_accounts ba
|
|||
LEFT JOIN chart c ON (ba.chart_id = c.id)
|
|||
ORDER BY $sort_spec{sql}|;
|
|||
my $results = selectall_hashref_query($form, $dbh, $query);
|
|||
$main::lxdebug->leave_sub();
|
|||
return $results;
|
|||
}
|
|||
1;
|