kivitendo/SL/BankAccount.pm @ 79b7fc43
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
|
||||
843de783 | Geoffrey Richardson | SET name= ?, account_number = ?, bank_code = ?, bank = ?, iban = ?, bic = ?, chart_id = ?
|
||
0ce1b04e | Geoffrey Richardson | WHERE id = ?|;
|
||
843de783 | Geoffrey Richardson | my @values = (@params{qw(name account_number bank_code bank iban bic)}, conv_i($params{chart_id}), conv_i($params{id}));
|
||
0ce1b04e | Geoffrey Richardson | |||
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;
|
||||
}
|
||||
ebd37c0e | Thomas Heck | sub delete {
|
||
$::lxdebug->enter_sub();
|
||||
my $self = shift;
|
||||
my %params = @_;
|
||||
Common::check_params(\%params, qw(id));
|
||||
my $dbh = $params{dbh} || $::form->get_standard_dbh(%::myconfig);
|
||||
my $query = '
|
||||
DELETE
|
||||
FROM bank_accounts
|
||||
WHERE id = ?';
|
||||
do_query($::form, $dbh, $query, conv_i($params{id}));
|
||||
$dbh->commit();
|
||||
$::lxdebug->leave_sub();
|
||||
}
|
||||
0ce1b04e | Geoffrey Richardson | 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 = (
|
||||
843de783 | Geoffrey Richardson | 'name' => [ 'ba.name', ],
|
||
0ce1b04e | Geoffrey Richardson | '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 =
|
||||
843de783 | Geoffrey Richardson | qq|SELECT ba.id, ba.name, ba.account_number, ba.bank_code, ba.bank, ba.iban, ba.bic, ba.chart_id,
|
||
0ce1b04e | Geoffrey Richardson | 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;
|