Projekt

Allgemein

Profil

Herunterladen (3,04 KB) Statistiken
| Zweig: | Markierung: | Revision:
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 name= ?, account_number = ?, bank_code = ?, bank = ?, iban = ?, bic = ?, chart_id = ?
WHERE id = ?|;
my @values = (@params{qw(name 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 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();
}

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 = (
'name' => [ 'ba.name', ],
'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.name, 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;
(10-10/77)