summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xLedgerSMB.pm63
-rw-r--r--LedgerSMB/Sysconfig.pm7
2 files changed, 38 insertions, 32 deletions
diff --git a/LedgerSMB.pm b/LedgerSMB.pm
index 3a38fef3..ddc639c8 100755
--- a/LedgerSMB.pm
+++ b/LedgerSMB.pm
@@ -52,12 +52,22 @@ non-whitespace characters.
This function determines the likely number of rows needed to hold text in a
textbox. It returns either that number or max, which ever is lower.
+=item merge ($hashref, keys => @list, index => $number);
+This command merges the $hashref into the current object. If keys are
+specified, only those keys are used. Otherwise all keys are merged.
+
+If an index is specified, the merged keys are given a form of
+"$key" . "_$index", otherwise the key is used on both sides.
+
=item redirect (msg => $string)
This function redirects to the script and argument set determined by
$self->{callback}, and if this is not set, goes to an info screen and prints
$msg.
+=item redo_rows (fields =>, new =>, count =>, rows => $integer);
+This function is undergoing serious redesign at the moment.
+
=head1 Copyright (C) 2006, The LedgerSMB core team.
# This work contains copyrighted information from a number of sources all used
@@ -501,7 +511,12 @@ sub db_init {
my %args = @_;
my $myconfig = $args{user};
- $self->{dbh} = $self->dbconnect_noauto($myconfig) || $self->dberror();
+ my $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser},
+ $myconfig->{dbpasswd}, {AutoCommit => 0}) or $self->dberror;
+
+ if ($myconfig->{dboptions}) {
+ $dbh->do($myconfig->{dboptions});
+ }
my $query =
"SELECT t.extends,
@@ -518,27 +533,15 @@ sub db_init {
}
}
-# Will merge this into db_init in the future.
-# Deprecated and hence undocumented. Chris.
-sub dbconnect_noauto {
-
- my ($self, $myconfig) = @_;
-
- # connect to database
- my $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}, {AutoCommit => 0}) or $self->dberror;
-
- # set db options
- if ($myconfig->{dboptions}) {
- $dbh->do($myconfig->{dboptions});
- }
-
- $dbh;
-}
-
-
+# This needs some *real* work.
sub redo_rows {
- my ($self, $flds, $new, $count, $numrows) = @_;
+ $self = shift @_;
+ %args = @_;
+ @flds = @{$args{fields}};
+ $new = $args{new};
+ $count = $args{count};
+ $numrows = $args{rows};
my @ndx = ();
@@ -552,7 +555,7 @@ sub redo_rows {
foreach my $item (sort { $a->{num} <=> $b->{num} } @ndx) {
$i++;
$j = $item->{ndx} - 1;
- for (@{$flds}) { $self->{"${_}_$i"} = $new->[$j]->{$_} }
+ for (@flds) { $self->{"${_}_$i"} = $new->[$j]->{$_} }
}
# delete empty rows
@@ -567,17 +570,19 @@ sub merge {
for my $arg ($self, $src){
shift;
}
- my @keys;
- if (scalar @keys){
- @keys = @_;
- print "Keys: ". scalar @keys . "\n";
- }
- else {
+ my %args = @_;
+ my @keys = @{$args{keys}};
+ my $index = $args{index};
+ if (! scalar @keys){
@keys = keys %{$src};
- print "Keys: ". scalar @keys . "\n";
}
for my $arg (keys %$src){
- $self->{$arg} = $src->{$arg};
+ if ($index){
+ $dst_arg = $arg . "_$index";
+ } else {
+ $dst_arg = $arg;
+ }
+ $self->{$dst_arg} = $src->{$arg};
}
}
diff --git a/LedgerSMB/Sysconfig.pm b/LedgerSMB/Sysconfig.pm
index a26b3cbc..d7526c29 100644
--- a/LedgerSMB/Sysconfig.pm
+++ b/LedgerSMB/Sysconfig.pm
@@ -105,9 +105,10 @@ $globalDBPassword = $config{globaldb}{DBPassword} if $config{globaldb}{DBPasswor
#putting this in an if clause for now so not to break other devel users
if ($config{globaldb}{DBname}){
- $GLOBALDBH = DBI->connect("dbi:Pg:dbname=$globalDBname host=$globalDBhost
- port=$globalDBport user=$globalDBUserName
- password=$globalDBPassword");
+ my $dbconnect = "dbi:Pg:dbname=$globalDBname host=$globalDBhost
+ port=$globalDBport user=$globalDBUserName
+ password=$globalDBPassword"; # for easier debugging
+ $GLOBALDBH = DBI->connect($dbconnect);
if (!$GLOBALDBH){
$form = new Form;
$form->error("No GlobalDBH Configured or Could not Connect");